I posted your fix to pyglet-issues.

Nicolas


On Jun 24, 2:58 pm, Nicolas Rougier <[email protected]> wrote:
> Thanks, works like a charm.
> This caching should be included directly within pyglet Label class.
>
> Here is a modified version with static attributes instead of global
> variables:
>
> class Label(pyglet.text.Label):
>     _cached_groups = {}
>     def _init_groups(self, group):
>         if not group:
>             return
>         if group not in self.__class__._cached_groups.keys():
>             top = pyglet.text.layout.TextLayoutGroup(group)
>             bg = pyglet.graphics.OrderedGroup(0,top)
>             fg = pyglet.text.layout.TextLayoutForegroundGroup(1,top)
>             fg2 =
> pyglet.text.layout.TextLayoutForegroundDecorationGroup (2,top)
>             self.__class__._cached_groups[group] = [top,bg,fg,fg2,0]
>         groups = self.__class__._cached_groups[group]
>         self.top_group= groups[0]
>         self.background_group = groups[1]
>         self.foreground_group = groups[2]
>         self.foreground_decoration_group = groups[3]
>         groups[4] += 1
>
>     def delete(self):
>         pyglet.text.Label.delete(self)
>         group = self.top_group.parent
>         if group is not None:
>             groups = self.__class__._cached_groups[group]
>             groups[4] -= 1
>             if not groups[4]:
>                 del self.__class__._cached_groups[group]
>             self.top_group = None
>             self.background_self = None
>             self.foreground_group = None
>             self.foreground_decoration_group = None
>
> Nicolas
>
> On Jun 24, 7:44 am, Lynx <[email protected]> wrote:
>
>
>
> > Oops, made a mistake - replace self.top_group with top_group in the
> > following lines!
>
> > On Jun 23, 10:41 pm, Lynx <[email protected]> wrote:
>
> > >             top_group = pyglet.text.layout.TextLayoutGroup(group)
> > >             background_group = pyglet.graphics.OrderedGroup(0,
> > > self.top_group)
> > >             foreground_group = \
> > >                 pyglet.text.layout.TextLayoutForegroundGroup(1,
> > > self.top_group)
> > >             foreground_decoration_group = \
> > >                 pyglet.text.layout.TextLayoutForegroundDecorationGroup
> > > (
> > >                     2, self.top_group)
--~--~---------~--~----~------------~-------~--~----~
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