from ._palette import Palette
from ._structs import RectangleStruct, TransformStruct
-__version__ = "0.0.0-auto.0"
+__version__ = "0.0.0+auto.0"
__repo__ = "https://github.com/adafruit/Adafruit_Blinka_displayio.git"
),
resample=Image.NEAREST,
)
- if absolute_transform.mirror_x:
+ if absolute_transform.mirror_x != self._flip_x:
image = image.transpose(Image.FLIP_LEFT_RIGHT)
- if absolute_transform.mirror_y:
+ if absolute_transform.mirror_y != self._flip_y:
image = image.transpose(Image.FLIP_TOP_BOTTOM)
- if absolute_transform.transpose_xy:
+ if absolute_transform.transpose_xy != self._transpose_xy:
image = image.transpose(Image.TRANSPOSE)
x *= absolute_transform.dx
y *= absolute_transform.dy
"""The pixel shader of the tilegrid."""
return self._pixel_shader
+ @pixel_shader.setter
+ def pixel_shader(self, new_pixel_shader: Union[ColorConverter, Palette]) -> None:
+ if not isinstance(new_pixel_shader, ColorConverter) and not isinstance(
+ new_pixel_shader, Palette
+ ):
+ raise TypeError(
+ "Unsupported Type: new_pixel_shader must be ColorConverter or Palette"
+ )
+
+ self._pixel_shader = new_pixel_shader
+
+ @property
+ def bitmap(self) -> Union[Bitmap, OnDiskBitmap, Shape]:
+ """The Bitmap, OnDiskBitmap, or Shape that is assigned to this TileGrid"""
+ return self._bitmap
+
+ @bitmap.setter
+ def bitmap(self, new_bitmap: Union[Bitmap, OnDiskBitmap, Shape]) -> None:
+
+ if (
+ not isinstance(new_bitmap, Bitmap)
+ and not isinstance(new_bitmap, OnDiskBitmap)
+ and not isinstance(new_bitmap, Shape)
+ ):
+ raise TypeError(
+ "Unsupported Type: new_bitmap must be Bitmap, OnDiskBitmap, or Shape"
+ )
+
+ if (
+ new_bitmap.width != self.bitmap.width
+ or new_bitmap.height != self.bitmap.height
+ ):
+ raise ValueError("New bitmap must be same size as old bitmap")
+
+ self._bitmap = new_bitmap
+
def _extract_and_check_index(self, index):
if isinstance(index, (tuple, list)):
x = index[0]
self._tiles[index] = value
@property
- def width(self):
+ def width(self) -> int:
"""Width in tiles"""
return self._width
@property
- def height(self):
+ def height(self) -> int:
"""Height in tiles"""
return self._height
@property
- def tile_width(self):
+ def tile_width(self) -> int:
"""Width of each tile in pixels"""
return self._tile_width
@property
- def tile_height(self):
+ def tile_height(self) -> int:
"""Height of each tile in pixels"""
return self._tile_height