changeset 11:988c08cf091c

Only blit to the dirty rects
author Radomir Dopieralski <sheep-devel@sheep.art.pl>
date Wed, 14 Mar 2012 12:10:38 +0100
parents a822c9f688f2
children 218b390564c9
files jelly/display.py
diffstat 1 files changed, 5 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/jelly/display.py	Tue Mar 13 22:46:56 2012 +0100
+++ b/jelly/display.py	Wed Mar 14 12:10:38 2012 +0100
@@ -97,8 +97,8 @@
             sb += db
 
     def draw(self):
-        self.screen.blit(self.background, (0, 0))
         if self.first_draw:
+            self.screen.blit(self.background, (0, 0))
             self.lights.draw(self.fog)
             self.shadows.draw(self.screen)
             self.sprites.draw(self.screen)
@@ -109,10 +109,12 @@
             self.lights.clear(self.fog, self.memory)
             visible = self.lights.draw(self.fog)
             self.dirty.extend(visible)
-            self.sprites.clear(self.screen, self.background)
+            for rect in self.dirty:
+                self.screen.blit(self.background, rect.topleft, rect)
             self.shadows.draw(self.screen)
             self.sprites.draw(self.screen)
-            self.screen.blit(self.fog, (0, 0))
+            for rect in self.dirty:
+                self.screen.blit(self.fog, rect.topleft, rect)
         pygame.display.update(self.dirty)
         self.dirty = []