Mercurial > mamba
changeset 413:cbbba6ddc77d
Use cached level images for extra blazing fastitude.
author | Jeremy Thurgood <firxen@gmail.com> |
---|---|
date | Sat, 17 Sep 2011 14:51:59 +0200 |
parents | e2d5d937eac1 |
children | 442007704a9a |
files | mamba/widgets/levelbutton.py |
diffstat | 1 files changed, 11 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/mamba/widgets/levelbutton.py Sat Sep 17 14:49:19 2011 +0200 +++ b/mamba/widgets/levelbutton.py Sat Sep 17 14:51:59 2011 +0200 @@ -20,19 +20,24 @@ self.rect.height = 100 self.prepare() + def make_thumbnail(self, dest_rect): + level_surface = pygame.Surface(self.level.get_size(), SRCALPHA) + self.level.draw(level_surface) + size = level_surface.get_rect().fit(dest_rect).size + level_thumbnail = pygame.transform.scale(level_surface, size) + return level_thumbnail + def prepare(self): self.surface = pygame.Surface(self.rect.size, SRCALPHA) self.surface.fill(0) - # Level Thumbnail - level_surface = pygame.Surface(self.level.get_size(), SRCALPHA) - self.level.draw(level_surface) dest_rect = pygame.Rect((self.border, self.border), (self.rect.width - self.border, self.rect.height - self.border)) - size = level_surface.get_rect().fit(dest_rect).size - level_thumbnail = pygame.transform.scale(level_surface, size) - self.surface.blit(level_thumbnail, dest_rect) + # Level Thumbnail + if not hasattr(self.level, 'button_thumbnail'): + self.level.button_thumbnail = self.make_thumbnail(dest_rect) + self.surface.blit(self.level.button_thumbnail, dest_rect) if self.done: image = load_image('menus/tick.png')