import time
import struct
-import circuitpython_typing
+from circuitpython_typing import WriteableBuffer, ReadableBuffer
from paralleldisplay import ParallelBus
from ._fourwire import FourWire
from ._group import Group
if self.current_group is not None:
self.current_group._update_transform(self.transform)
- def show(self, root_group: Group) -> bool:
- # pylint: disable=protected-access
-
+ def set_root_group(self, root_group: Group) -> bool:
"""
Switches to displaying the given group of layers. When group is `None`, the
default CircuitPython terminal will be shown.
:param Optional[displayio.Group] root_group: The group to show.
"""
-
- """
- # TODO: Implement Supervisor
- if root_group is None:
- circuitpython_splash = _Supervisor().circuitpython_splash
- if not circuitpython_splash._in_group:
- root_group = circuitpython_splash
- elif self.current_group == circuitpython_splash:
- return True
- """
+ # pylint: disable=protected-access
if root_group == self.current_group:
return True
def fill_area(
self,
area: Area,
- mask: circuitpython_typing.WriteableBuffer,
- buffer: circuitpython_typing.WriteableBuffer,
+ mask: WriteableBuffer,
+ buffer: WriteableBuffer,
) -> bool:
"""Call the current group's fill area function"""
if self.current_group is not None:
)
return False
- """
- def _clip(self, rectangle):
- if self._core.rotation in (90, 270):
- width, height = self._core.height, self._core.width
- else:
- width, height = self._core.width, self._core.height
-
- rectangle.x1 = max(rectangle.x1, 0)
- rectangle.y1 = max(rectangle.y1, 0)
- rectangle.x2 = min(rectangle.x2, width)
- rectangle.y2 = min(rectangle.y2, height)
-
- return rectangle
- """
-
def clip_area(self, area: Area, clipped: Area) -> bool:
"""Shrink the area to the region shared by the two areas"""
if not overlaps:
return False
- # Expand the area if we have multiple pixels per byte and we need to byte align the bounds
+ # Expand the area if we have multiple pixels per byte and we need to byte
+ # align the bounds
if self.colorspace.depth < 8:
pixels_per_byte = (
8 // self.colorspace.depth * self.colorspace.bytes_per_cell
if self.colorspace.depth < 8:
pixels_per_byte = 8 // self.colorspace.depth
if self.colorspace.pixels_in_byte_share_row:
- region_x1 /= pixels_per_byte * self.colorspace.bytes_per_cell
- region_x2 /= pixels_per_byte * self.colorspace.bytes_per_cell
+ region_x1 //= pixels_per_byte * self.colorspace.bytes_per_cell
+ region_x2 //= pixels_per_byte * self.colorspace.bytes_per_cell
else:
- region_y1 /= pixels_per_byte * self.colorspace.bytes_per_cell
- region_y2 /= pixels_per_byte * self.colorspace.bytes_per_cell
+ region_y1 //= pixels_per_byte * self.colorspace.bytes_per_cell
+ region_y2 //= pixels_per_byte * self.colorspace.bytes_per_cell
region_x2 -= 1
region_y2 -= 1
)
else:
data_type = DISPLAY_COMMAND
- """
- self._core.send(
- DISPLAY_COMMAND, CHIP_SELECT_TOGGLE_EVERY_BYTE, bytes([command]) + data
- )
- self._core.send(DISPLAY_DATA, CHIP_SELECT_UNTOUCHED, data)
- """
if self.ram_width < 0x100: # Single Byte Bounds
data = struct.pack(">BB", region_x1, region_x2)
self,
data_type: int,
chip_select: int,
- data: circuitpython_typing.ReadableBuffer,
+ data: ReadableBuffer,
) -> None:
"""
Send the data to the current bus