Thanks for the heads-up, I was reading the posts you made. I think my use case is actually nowhere nearly that demanding -- the textures I'm creating are mostly one-and-done things used for animating moving backgrounds -- but I like what you're working on all the same and am curious to see where it goes. (I also have no direct experience with Numpy -- *yet* -- but I might well be able to concoct a use case for the sake of getting experience with it!)
On Sunday, January 17, 2016 at 5:25:58 PM UTC-5, Serdar Yegulalp wrote: > > I've been working on a Pyglet app that creates textures dynamically rather > than loading them by way of resources on disk. Unfortunately, this means > textures have a way of piling up in memory. Fortunately, a little close > reading of the docs showed there's a way to force the release of cached > textures if you don't need them anymore. > > 1) Create a list to hold your textures: > > texture_list = [] > > 2) Append dynamically created textures to the list. > > texture_list.append(pyglet.image.Texture.create( <dimensions> )) > > 3) When you're done with a texture, pop it off the list. > > texture_list.pop( <texture_index>) > > 4) Call pyglet.gl.get_current_context().set_current() to ensure that the > unused textures are purged from the _doomed_textures list in the context > cache. > > This last step is what's most important, because otherwise dynamically > created textures just get cached in the hope that they'll be re-used, when > in fact they never are in this particular scenario. > > Cache pileups look like a memory leak in Pyglet, and in fact for the > longest time I was treating it like a memory leak, when in fact it isn't -- > it's a by-product of Pyglet's own behaviors re: textures. > > One possible future suggestion (which I'll submit separately as a feature > request) is that textures can be created with some kind of boolean flag > (maybe "no_cache"?) to keep them from being cached. But for now this works. > -- 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.
