]> Repositories - hackapet/Adafruit_Blinka_Displayio.git/commitdiff
Merge pull request #25 from makermelissa/optimization 0.4.1
authorMelissa LeBlanc-Williams <melissa@adafruit.com>
Mon, 29 Jun 2020 21:18:35 +0000 (14:18 -0700)
committerGitHub <noreply@github.com>
Mon, 29 Jun 2020 21:18:35 +0000 (14:18 -0700)
Divide by zero and speed up bug fixes

displayio/display.py
displayio/tilegrid.py

index eb3d6356d90ac092bed4dc8041212d3ae8abe5af..b9f86dc0bf8b1b6c5d5bc2ab33867d1c00f5e86a 100644 (file)
@@ -213,6 +213,8 @@ class Display:
         When auto refresh is on, updates the display immediately. (The display will also
         update without calls to this.)
         """
+        self._subrectangles = []
+
         # Go through groups and and add each to buffer
         if self._current_group is not None:
             buffer = Image.new("RGBA", (self._width, self._height))
@@ -221,8 +223,9 @@ class Display:
             # save image to buffer (or probably refresh buffer so we can compare)
             self._buffer.paste(buffer)
 
-        # Eventually calculate dirty rectangles here
-        self._subrectangles.append(Rectangle(0, 0, self._width, self._height))
+        if self._current_group is not None:
+            # Eventually calculate dirty rectangles here
+            self._subrectangles.append(Rectangle(0, 0, self._width, self._height))
 
         for area in self._subrectangles:
             self._refresh_display_area(area)
index 774dd77733a6c7bf0b89fd96ab434551cab589b5..c88498da33e94d2e11755c06ba0c51771b350169 100644 (file)
@@ -103,10 +103,10 @@ class TileGrid:
             tile_width = bitmap_width
         if tile_height is None:
             tile_height = bitmap_height
-        if bitmap_width % tile_width != 0:
+        if tile_width > 0 and bitmap_width % tile_width != 0:
             raise ValueError("Tile width must exactly divide bitmap width")
         self._tile_width = tile_width
-        if bitmap_height % tile_height != 0:
+        if tile_height > 0 and bitmap_height % tile_height != 0:
             raise ValueError("Tile height must exactly divide bitmap height")
         self._tile_height = tile_height
         if not 0 <= default_tile <= 255: