From ab1a833052aa0736448b2785540e57e8d0af76f3 Mon Sep 17 00:00:00 2001 From: FoamyGuy Date: Fri, 3 Jul 2020 08:34:34 -0500 Subject: [PATCH] trying to implement fill_row function --- displayio/display.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/displayio/display.py b/displayio/display.py index 1ea5d55..3f93177 100644 --- a/displayio/display.py +++ b/displayio/display.py @@ -330,9 +330,21 @@ class Display: """Encode a postion into bytes.""" return struct.pack(self._bounds_encoding, x, y) + def _rgb_tuple_to_rgb565(self, color_tuple): + return ( + ((color_tuple[0] & 0x00F8) << 8) + | ((color_tuple[1] & 0x00FC) << 3) + | (color_tuple[2] & 0x00F8) >> 3 + ) + def fill_row(self, y, buffer): """Extract the pixels from a single row""" - pass + for x in range(0, self._width): + _rgb_565 = self._rgb_tuple_to_rgb565(self._buffer.getpixel((x, y))) + buffer[x * 2] = _rgb_565 >> 8 + buffer[x * 2 + 1] = _rgb_565 + #(data[i * 2] << 8) + data[i * 2 + 1] + return buffer @property def auto_refresh(self): -- 2.49.0