Currently, if you set pyglet.resource.path to ["foo"] and load "abc.png"
(foo/abc.png), and then change pyglet.resource.path to ["bar"] and try to
load "abc.png", you still get foo/abc.png, since the caching looks at the
name of the image file only.

This simple patch makes it so that the images are cached per specific
setting of pyglet.resource.path.  I included the patch as an attachment and
inline below since it's so tiny.

# HG changeset patch
# User Nathan Stocks <[email protected]>
# Date 1349326606 21600
# Node ID f8102f9ee5b19c43c6129dac070bf393f82e3ef7
# Parent  bf7f6c05275664ed76aab926944fe3a6a74ff022
Made it so that once you load an image, you can still load more images of
the same name by changing pyglet.resource.path.

diff -r bf7f6c052756 -r f8102f9ee5b1 pyglet/resource.py
--- a/pyglet/resource.py Sat Sep 15 16:48:08 2012 -0500
+++ b/pyglet/resource.py Wed Oct 03 22:56:46 2012 -0600
@@ -504,9 +504,9 @@
         '''
         self._require_index()
         if name in self._cached_images:
-            identity = self._cached_images[name]
+            identity = self._cached_images[str(self.path)+name]
         else:
-            identity = self._cached_images[name] = self._alloc_image(name,
+            identity = self._cached_images[str(self.path)+name] =
self._alloc_image(name,
                 atlas=atlas)

         if not rotate and not flip_x and not flip_y:


Works great for me!

Thoughts?

~ Nathan

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

Attachment: resource_cache_fix.diff
Description: Binary data

Reply via email to