From: Melissa LeBlanc-Williams Date: Wed, 8 Jul 2020 16:31:27 +0000 (-0700) Subject: Avoid drawing offscreen stuff X-Git-Tag: 0.5.2^2~1 X-Git-Url: https://git.ayoreis.com/hackapet/Adafruit_Blinka_Displayio.git/commitdiff_plain/0ab5cf2fae7d14a4125d911d5323f080485e25ac?hp=-c Avoid drawing offscreen stuff --- 0ab5cf2fae7d14a4125d911d5323f080485e25ac diff --git a/displayio/tilegrid.py b/displayio/tilegrid.py index 2b2f8c7..2c815a4 100644 --- a/displayio/tilegrid.py +++ b/displayio/tilegrid.py @@ -279,15 +279,22 @@ class TileGrid: source_x = source_y = 0 if x < 0: - source_x = 0 - x + source_x = round(0 - x) x = 0 if y < 0: - source_y = 0 - y + source_y = round(0 - y) y = 0 - buffer.alpha_composite( - image, (round(x), round(y)), source=(round(source_x), round(source_y)) - ) + x = round(x) + y = round(y) + + if ( + x <= buffer.width + and y <= buffer.height + and source_x <= image.width + and source_y <= image.height + ): + buffer.alpha_composite(image, (x, y), source=(source_x, source_y)) # pylint: enable=too-many-locals,too-many-branches