thx for the clarification!
from the API docs:
"Ordered groups with a common parent are rendered in ascending order
of their order field."
i must have misread this but indeed it says that ordered groups only
order those within a common parent.
So i put the ordered group as a parent and the TextureGroup as the
child - this creates three distinct groups and renders fine!

On Nov 4, 10:47 pm, "Alex Holkner" <[EMAIL PROTECTED]> wrote:
> On 11/5/08, josch <[EMAIL PROTECTED]> wrote:
>
>
>
>
>
> >  consider this code:
>
> >  import pyglet
>
> >  atlas1 = pyglet.image.atlas.TextureAtlas()
> >  atlas2 = pyglet.image.atlas.TextureAtlas()
>
> >  texture_group1 = pyglet.graphics.TextureGroup(atlas1.texture)
> >  texture_group2 = pyglet.graphics.TextureGroup(atlas2.texture)
> >  group1 = pyglet.graphics.OrderedGroup(0, texture_group1)
> >  group2 = pyglet.graphics.OrderedGroup(1, texture_group2)
> >  group3 = pyglet.graphics.OrderedGroup(2, texture_group1)
>
> >  tile1 = atlas1.add(pyglet.image.load(None,
> >  file=pyglet.resource.file('test.png')))
> >  tile2 = atlas2.add(pyglet.image.load(None,
> >  file=pyglet.resource.file('test.png')))
> >  tile3 = atlas1.add(pyglet.image.load(None,
> >  file=pyglet.resource.file('test.png')))
>
> >  batch = pyglet.graphics.Batch()
> >  vertex_list = []
>
> >  vertex_list.append(batch.add(4, pyglet.gl.GL_QUADS, group1,
> >     ('v2i', [0, 0, 32, 0, 32, 32, 0, 32]),
> >     ('t3f', tile1.tex_coords),
> >     ('c4B', (255,255,255,255)*4)))
>
> >  vertex_list.append(batch.add(4, pyglet.gl.GL_QUADS, group2,
> >     ('v2i', [8, 8, 40, 8, 40, 40, 8, 40]),
> >     ('t3f', tile2.tex_coords),
> >     ('c4B', (255,255,255,255)*4)))
>
> >  vertex_list.append(batch.add(4, pyglet.gl.GL_QUADS, group3,
> >     ('v2i', [16, 16, 48, 16, 48, 48, 16, 48]),
> >     ('t3f', tile3.tex_coords),
> >     ('c4B', (255,255,255,255)*4)))
>
> >  window = pyglet.window.Window(800, 600)
>
> > [EMAIL PROTECTED]
> >  def on_draw():
> >     pyglet.gl.glClear(pyglet.gl.GL_COLOR_BUFFER_BIT)
> >     batch.draw()
>
> >  pyglet.app.run()
>
> >  I would assume that from the ordering in the OrderedGroup that the
> >  vertex lists are drawn in this order:
> >  tile1, tile2, tile3
> >  but when executing this code it can be seen that they get drawn in
> >  this order:
> >  tile1, tile3, tile2
>
> >  why? is this a bug?
>
> No, groups are sorted by their parents first -- this is to reduce the
> number of state changes.  If you need to use atlas1 both before and
> after atlas2, it will need to appear at least twice in the batch's
> rendering order.
>
> You may find the PYGLET_DEBUG_GRAPHICS_BATCH environment variable
> useful; seehttp://pyglet.org/doc/programming_guide/debugging_tools.html
>
> Alex.
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to