Mercurial > boomslang
comparison pyntnclick/resources.py @ 638:d1ec9e739e23 pyntnclick
Make TextWidget work (probably)
author | Stefano Rivera <stefano@rivera.za.net> |
---|---|
date | Sun, 12 Feb 2012 01:27:53 +0200 |
parents | 85153f422522 |
children | 43b49f1de828 |
comparison
equal
deleted
inserted
replaced
637:c27087877c84 | 638:d1ec9e739e23 |
---|---|
23 | 23 |
24 def __init__(self, resource_module, language=None): | 24 def __init__(self, resource_module, language=None): |
25 self.resource_module = resource_module | 25 self.resource_module = resource_module |
26 self.language = language | 26 self.language = language |
27 self._image_cache = {} | 27 self._image_cache = {} |
28 self._font_cache = {} | |
28 self._transformed_image_cache = {} | 29 self._transformed_image_cache = {} |
29 | 30 |
30 def get_resource_path(self, *resource_path_fragments): | 31 def get_resource_path(self, *resource_path_fragments): |
31 """Find the resource in one of a number of different places. | 32 """Find the resource in one of a number of different places. |
32 | 33 |
94 for transform in transforms: | 95 for transform in transforms: |
95 image = transform(image) | 96 image = transform(image) |
96 self._transformed_image_cache[key] = image | 97 self._transformed_image_cache[key] = image |
97 | 98 |
98 return image | 99 return image |
100 | |
101 def get_font(self, file_name, font_size, basedir=None): | |
102 """Load a a font, cached if possible.""" | |
103 if basedir is None: | |
104 basedir = 'fonts' | |
105 key = (basedir, file_name, font_size) | |
106 if key not in self._font_cache: | |
107 fontfn = self.get_resource_path(basedir, file_name) | |
108 self._font_cache[key] = pygame.font.Font(fontfn, font_size) | |
109 return self._font_cache[key] |