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))
# 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)
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:
import sys # pylint: disable=unused-import
import fontio
+from displayio.tilegrid import TileGrid
__version__ = "0.0.0-auto.0"
__repo__ = "https://github.com/adafruit/Adafruit_Blinka_displayio.git"
# TODO: Tap into stdout to get the REPL
# sys.stdout = open('out.dat', 'w')
# sys.stdout.close()
+
+
+class Terminal:
+ """Displays text in a TileGrid
+
+ The terminalio module contains classes to display a character stream on a display. The built in font is available as terminalio.FONT.
+ """
+
+ def __init__(self, tilegrid, font):
+ if not isinstance(tilefrid, TileGrid):
+ raise TypeError("Expected a TileGrid")
+ self._tilegrid = tilegrid
+ if not isinstance(font, fontio.BuiltinFont):
+ raise TypeError("Expected a BuiltinFont")
+ self._font = font
+ self._cursor_x = 0
+ self._curcor_y = 0
+ self._first_row = 0
+ for x in range(self._tilegrid.width):
+ for y in range(self._tilegrid.height):
+ self._tilegrid[x, y] = 0
+
+ def write(self, buf):
+ """Write the buffer of bytes to the bus."""
+ pass