X-Git-Url: https://git.ayoreis.com/hackapet/Adafruit_Blinka_Displayio.git/blobdiff_plain/54953acca52d8964e554f0d3ad70d686ecc60f3a..716a25f0bd1691ae1abfc9501dc1fb245d80be6d:/displayio/display.py diff --git a/displayio/display.py b/displayio/display.py index 1ea5d55..757092d 100644 --- a/displayio/display.py +++ b/displayio/display.py @@ -53,8 +53,17 @@ BACKLIGHT_IN_OUT = 1 BACKLIGHT_PWM = 2 # pylint: disable=unnecessary-pass, unused-argument - # pylint: disable=too-many-instance-attributes + + +def _rgb_tuple_to_rgb565(color_tuple): + return ( + ((color_tuple[0] & 0x00F8) << 8) + | ((color_tuple[1] & 0x00FC) << 3) + | (color_tuple[2] & 0x00F8) >> 3 + ) + + class Display: """This initializes a display and connects it into CircuitPython. Unlike other objects in CircuitPython, Display objects live until ``displayio.release_displays()`` is called. @@ -332,7 +341,11 @@ class Display: def fill_row(self, y, buffer): """Extract the pixels from a single row""" - pass + for x in range(0, self._width): + _rgb_565 = _rgb_tuple_to_rgb565(self._buffer.getpixel((x, y))) + buffer[x * 2] = (_rgb_565 >> 8) & 0xFF + buffer[x * 2 + 1] = _rgb_565 & 0xFF + return buffer @property def auto_refresh(self):