# THE SOFTWARE.
"""
-`displayio`
+`displayio.tilegrid`
================================================================================
displayio for Blinka
"""
+from recordclass import recordclass
from PIL import Image
from displayio.bitmap import Bitmap
from displayio.colorconverter import ColorConverter
from displayio.ondiskbitmap import OnDiskBitmap
from displayio.shape import Shape
from displayio.palette import Palette
-from displayio import Rectangle
-from displayio import Transform
__version__ = "0.0.0-auto.0"
__repo__ = "https://github.com/adafruit/Adafruit_Blinka_displayio.git"
+Rectangle = recordclass("Rectangle", "x1 y1 x2 y2")
+Transform = recordclass("Transform", "x y dx dy scale transpose_xy mirror_x mirror_y")
+
# pylint: disable=too-many-instance-attributes
class TileGrid:
"""Position a grid of tiles sourced from a bitmap and pixel_shader combination. Multiple
x = self._x
y = self._y
- for tile_x in range(0, self._width):
- for tile_y in range(0, self._height):
+ for tile_x in range(self._width):
+ for tile_y in range(self._height):
tile_index = self._tiles[tile_y * self._width + tile_x]
tile_index_x = tile_index % tile_count_x
tile_index_y = tile_index // tile_count_x
for pixel_x in range(self._tile_width):
for pixel_y in range(self._tile_height):
- image_x = tile_x * self._tile_width + pixel_x
- image_y = tile_y * self._tile_height + pixel_y
- bitmap_x = tile_index_x * self._tile_width + pixel_x
- bitmap_y = tile_index_y * self._tile_height + pixel_y
+ image_x = (tile_x * self._tile_width) + pixel_x
+ image_y = (tile_y * self._tile_height) + pixel_y
+ bitmap_x = (tile_index_x * self._tile_width) + pixel_x
+ bitmap_y = (tile_index_y * self._tile_height) + pixel_y
pixel_color = self._pixel_shader[
self._bitmap[bitmap_x, bitmap_y]
]
- if not pixel_color["transparent"]:
- image.putpixel((image_x, image_y), pixel_color["rgb888"])
+ # if not pixel_color["transparent"]:
+ image.putpixel((image_x, image_y), pixel_color["rgba"])
+
if self._absolute_transform is not None:
if self._absolute_transform.scale > 1:
image = image.resize(