Another option could be creating a custom group that uses glTranslate as part of it's state to shift the view. You'd have to manually remove offscreen tiles from the batch still.
I'm not sure if that's a horrible hack to put that into the group system, but using glTranslate to move large amounts of rendering seems like a good idea to me. (But I'm far from an expert ;D) On Sep 14, 8:28 pm, josch <[EMAIL PROTECTED]> wrote: > another attempt to make the most of pyglet: > > forget the code, it's unreadable anyway. > here are my ideas: > > given the following view of a map: > (different chars mean there are different textures used) > > ooooooooooooAAAA > oooooooooooooAAA > XoooooooooooooAA > XXoooooooooooooA > XXoooooooooooooo > Xooooooooooooooo > oooooooooooooooo > > now we move the camera to the east by two steps > > ooooooooooAAAAAA > oooooooooooAAAAA > ooooooooooooAAAA > oooooooooooooAAA > ooooooooooooooAA > oooooooooooooooA > oooooooooooooooo > > how do we do this? > well, there are three posibilities that came to my mind: > > 1. > this is what i currently do: > for each different texture used by the tiles in the scene i create a > seperate vertex list with batch.add(). this would be three lists in > the first map view and two in the second containing all those tiles > that use this texture. > when the map is moved i only delete() the old lists and create new > ones again with batch.add() > actually up to now this is quite fast and i get 600fps while scrolling > but of course i dont know how it scales. > > 2. > one could also create one vertex list for every tile currently visible > on the screen. so there would be tiles_x*tiles_y vertex lists with one > GL_QUAD with 4 vertices each. > movement would be done by swapping the textureregions of every tile > and also swap the texture (respectively the group) by migrating the > vertexlist if necessary > > 3. > a last option that came to my mind is to dynamically delete and create > vertex lists. > in the example above one would delete() the list for the X texture and > resize() the other two. > then setting the new coordinates and textureregions in the resized > lists. > > ------------------------------------ > > and some additional thoughts about storing my tile images in textures. > > of course i could use resource.image and i would like to use it as it > is nicely distribution independent (also usable with py2exe and > py2app) but with using it i would add some overhead in animation and > movement since i would have to check whether the new animation frame > is still in the same texture or not and then migrating the vertex list > to the new group (again overhead) and after that back again. > plz correct me but for this reason, isnt it most practical to let all > animation frames be in one texture? > and i see no way to do this with the ressource module so i will > probably implement my own loading mechanisms while borrowing stuff > from resource.py. is this the right way to do it? --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "pyglet-users" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/pyglet-users?hl=en -~----------~----~----~----~------~----~------~--~---
