On Dec 22, 12:01 pm, Casey Duncan <[email protected]> wrote:
> On Tue, Dec 22, 2009 at 10:36 AM, Hello3171 <[email protected]> wrote:
> > So once all sprites which reference a texture are destroyed, the
> > texture will be removed by itself whenever (by the gc)?
>
> So long as nothing else references that texture, yes. However there is
> no way to tell how long that will take. Though in many cases that is
> not important.
>
>
>
>
>
> > To be clear, in these scenarios:
>
> > #my object does this
> > sprite = pyglet.sprite.Sprite(texture)
>
> > If I have one single reference to this object and I delete this
> > reference, the object should be free to be garbage collected. And when
> > this happens the sprite should be garbage collected. I do not need to
> > call sprite.delete()
>
> > 2#My object does this:
> > sprite = pyglet.sprite.Sprite(texture, batch=batch)
>
> > In this case I do need to call sprite.delete() to remove the sprite
> > from the sprite batch, only then can it be garbage collected.
>
> > OR is it more appropriate to do this:
>
> > sprite.batch = None
>
> > This would remove it from the batch?
>
> The batch does not contain a reference to the sprite. The batch is a
> place for the sprite to store its vertex list. When you are using a
> batched sprite, you should call sprite.delete() when you are done with
> it, otherwise it's vertex list may remain in the batch for a while
> until the sprite object is collected. This could cause a "ghost" of
> the sprite to continue to be drawn until collection actually occurs.
>
> Note the docstring for Sprite.delete:
>
>         '''Force immediate removal of the sprite from video memory.
>
>         This is often necessary when using batches, as the Python garbage
>         collector will not necessarily call the finalizer as soon as the
>         sprite is garbage.
>         '''
>
> -Casey

Good to know, thanks very much Casey

--

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