diff --git a/adafruit_pixel_framebuf.py b/adafruit_pixel_framebuf.py index 2096090..4da9be9 100755 --- a/adafruit_pixel_framebuf.py +++ b/adafruit_pixel_framebuf.py @@ -85,6 +85,7 @@ def __init__( ) self._buffer = bytearray(width * height * 3) + self._double_buffer = bytearray(width * height * 3) super().__init__( self._buffer, width, height, buf_format=adafruit_framebuf.RGB888 ) @@ -99,5 +100,12 @@ def display(self): for _y in range(self._height): for _x in range(self._width): index = (_y * self.stride + _x) * 3 - self._grid[(_x, _y)] = tuple(self._buffer[index : index + 3]) + if ( + self._buffer[index : index + 3] + != self._double_buffer[index : index + 3] + ): + self._grid[(_x, _y)] = tuple(self._buffer[index : index + 3]) + self._double_buffer[index : index + 3] = self._buffer[ + index : index + 3 + ] self._grid.show()