projects
/
erdslangetjie.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
7251307
)
Actually use kivy's cache when loading resources
author
Neil
<neil@dip.sun.ac.za>
Sat, 20 Apr 2013 20:07:36 +0000
(22:07 +0200)
committer
Neil
<neil@dip.sun.ac.za>
Sat, 20 Apr 2013 20:07:36 +0000
(22:07 +0200)
erdslangetjie/data.py
patch
|
blob
|
history
diff --git
a/erdslangetjie/data.py
b/erdslangetjie/data.py
index ad42ff3f58e8b25920583922c3a3431427cd5c3c..2ee869120d5880f9c5bbf1c7bbf3b9d5435cc1c6 100644
(file)
--- a/
erdslangetjie/data.py
+++ b/
erdslangetjie/data.py
@@
-11,11
+11,13
@@
pyglet.resource search path.
import os
from kivy.core.image import ImageLoader
from kivy.core.audio import SoundLoader
import os
from kivy.core.image import ImageLoader
from kivy.core.audio import SoundLoader
+from kivy.cache import Cache
data_py = os.path.abspath(os.path.dirname(__file__))
data_dir = os.path.normpath(os.path.join(data_py, '..', 'data'))
data_py = os.path.abspath(os.path.dirname(__file__))
data_dir = os.path.normpath(os.path.join(data_py, '..', 'data'))
-loader = ImageLoader()
+
image
loader = ImageLoader()
soundloader = SoundLoader()
soundloader = SoundLoader()
+Cache.register('bane', limit=200)
def filepath(filename):
def filepath(filename):
@@
-33,11
+35,21
@@
def load(filename, mode='rb'):
return open(filepath(filename), mode)
return open(filepath(filename), mode)
+def _cache_load(filename, loader):
+ '''Load an object either from disk or from the cache.
+
+ We rely on kivy's caching infrastructure'''
+ path = filepath(filename)
+ obj = Cache.get('bane', path)
+ if obj is None:
+ obj = loader.load(path)
+ Cache.append('bane', path, obj)
+ return obj
+
+
def load_image(filename):
def load_image(filename):
- '''Load an image into a kivy texture. We rely on kivy's caching
- infrastructure'''
- return loader.load(filepath(filename))
+ return _cache_load(filename, imageloader)
def load_sound(filename):
def load_sound(filename):
- return
soundloader.load(filepath(filename)
)
+ return
_cache_load(filename, soundloader
)