Hi Ben, I like this solution for staying with the original API. Tested it with ordered groups and it still performs correctly. I'm missing a couple pieces in terms of how it works with batches, though. I can't find the code change that actually causes Batch to use OrderedVertexDomain - can you point me to it?
On Saturday, November 19, 2016 at 8:30:59 AM UTC-6, Benjamin Moran wrote: > > Hi Josh, > > I took your work and ran with it a little, to see if it could be fit into > the existing api. So far, It seems to be going OK, but I would greatly > appreciate your feedback on this. I'm just kinda winging it here :) > You can find my "ordered_sprite" branch here: > https://bitbucket.org/treehousegames/pyglet/branch/ordered_sprite > > First of all, I implemented an OrderedVertexDomain which is a copy of your > OrderedDomain. The main difference is that it has it's own vertex_lists > list, and sorting method. It also has it's own "create" method, which > monkey patches an "order" attribute on the vertex_list, for use by the > sorting method. There is a simple "self.dirty" attribute that determines if > the vertex_lists list should be sorted automatically before the next draw. > > By pushing all of that down the stack into the vertexdomain, The Sprite > and SpriteGroup classes could be left almost original. The only addition > being a "depth" property on the Sprite class which updates the vertex list > order attribute, and sets the domain to "dirty" so that it will be sorted > before the next draw. > > As for requiring all sprites to be on the same TextureAtlas for blending > to work correctly, that is still a requirement (no way around this in > OpenGL). However, it's up to the user to ensure this part. It would be > "automatic" if using the pyglet.resource module. If the user doesn't use a > single atlas, everything will still work fine - but of course sorting won't > work because they will be in different domains. > > I haven't tested any of it yet, but I think animations and such will work > fine since it's using the existing Groups and such. > > -Ben > > > > On Friday, November 18, 2016 at 5:46:52 AM UTC+9, Josh wrote: >> >> Hi Ben, >> >> There's no roadblock with migrating OrderedDomains, it's just something I >> skipped for now (similar to animation support). It will require going >> deeper into the weeds with pyglet's allocation system, and there are some >> aspects of that I still don't understand. >> >> Best, >> >> Josh >> > -- You received this message because you are subscribed to the Google Groups "pyglet-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/pyglet-users. For more options, visit https://groups.google.com/d/optout.
