Here's the problem:

SpriteGroup and other built-in groups, which I modeled my
PolygonModeGroup on, will only be grouped when the parent is the
*exact* same object.  I think it would be better to use the same
equality logic for parents as we do for siblings.  This simply means
we just change `self.parent is other.parent` to `self.parent ==
other.parent` and `hash((id(self.parent), self.mode, self.face))` to
`hash((self.parent, self.mode, self.face))`.

This made a huge difference in my game.  I don't remember the exact
numbers, but I went from ~20 FPS with a few dozen objects to 60 FPS.

I doubt you'd run into this problem with a simple two-level hierarchy
like most of the demos probably have.  But I can't see how you'd avoid
significant performance problems if you have three or more levels of
groups.  Unless you manage each group object individually, to be sure
children share the same parent.

What do you guys think?  Is this a bug, or is there a reason for the
existing behavior?

-- 
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