From cad680a3e304ead4f85708d6189fb303336c3ced Mon Sep 17 00:00:00 2001 From: Pascal Deneaux Date: Sun, 3 Feb 2019 13:51:06 +0100 Subject: [PATCH 1/4] implemented scroll method to framebuf (2nd attempt) pythonIZED the scroll method from modframebuf.c https://github.com/micropython/micropython/blob/b9ec6037edf5e6ff6f8f400d70f7351d1b0af67d/extmod/modframebuf.c#L513 --- adafruit_framebuf.py | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/adafruit_framebuf.py b/adafruit_framebuf.py index fa28224..89f0b60 100644 --- a/adafruit_framebuf.py +++ b/adafruit_framebuf.py @@ -252,9 +252,31 @@ def blit(self): """blit is not yet implemented""" raise NotImplementedError() - def scroll(self): - """scroll is not yet implemented""" - raise NotImplementedError() + def scroll(self, delta_x, delta_y): + """shifts framebuf in x and y direction""" + if delta_x < 0: + shift_x = 0 + xend = self.width + delta_x + dt_x = 1 + else: + shift_x = self.width - 1 + xend = delta_x - 1 + dt_x = -1 + if delta_y < 0: + y = 0 + yend = self.height + delta_y + dt_y = 1 + else: + y = self.height - 1 + yend = delta_y - 1 + dt_y = -1 + while y != yend: + x = shift_x + while x != xend: + self.format.set_pixel(self, x, y, + self.format.get_pixel(self, x - delta_x, y - delta_y)) + x += dt_x + y += dt_y def text(self, string, x, y, color, *, font_name="font5x8.bin"): From a3aa5b6e1be7018029830a6bd7475fa9c3d73407 Mon Sep 17 00:00:00 2001 From: Pascal Deneaux Date: Sun, 3 Feb 2019 13:57:44 +0100 Subject: [PATCH 2/4] fixed bad-continuation added 2 whitespaces --- adafruit_framebuf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/adafruit_framebuf.py b/adafruit_framebuf.py index 89f0b60..7b8b80f 100644 --- a/adafruit_framebuf.py +++ b/adafruit_framebuf.py @@ -274,7 +274,7 @@ def scroll(self, delta_x, delta_y): x = shift_x while x != xend: self.format.set_pixel(self, x, y, - self.format.get_pixel(self, x - delta_x, y - delta_y)) + self.format.get_pixel(self, x - delta_x, y - delta_y)) x += dt_x y += dt_y From efc7d0516cbe3bbdcdc33b07d48706fb11199e89 Mon Sep 17 00:00:00 2001 From: Pascal Deneaux Date: Sun, 3 Feb 2019 14:06:13 +0100 Subject: [PATCH 3/4] Update adafruit_framebuf.py --- adafruit_framebuf.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/adafruit_framebuf.py b/adafruit_framebuf.py index 7b8b80f..7f3f174 100644 --- a/adafruit_framebuf.py +++ b/adafruit_framebuf.py @@ -273,8 +273,8 @@ def scroll(self, delta_x, delta_y): while y != yend: x = shift_x while x != xend: - self.format.set_pixel(self, x, y, - self.format.get_pixel(self, x - delta_x, y - delta_y)) + self.format.set_pixel( + self, x, y, self.format.get_pixel(self, x - delta_x, y - delta_y)) x += dt_x y += dt_y From b2827a22c324b6a1b47c99e5299502470ad9e92c Mon Sep 17 00:00:00 2001 From: Pascal Deneaux Date: Sun, 3 Feb 2019 14:08:21 +0100 Subject: [PATCH 4/4] Update adafruit_framebuf.py this indentation is driving me crazy. --- adafruit_framebuf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/adafruit_framebuf.py b/adafruit_framebuf.py index 7f3f174..6a736bd 100644 --- a/adafruit_framebuf.py +++ b/adafruit_framebuf.py @@ -274,7 +274,7 @@ def scroll(self, delta_x, delta_y): x = shift_x while x != xend: self.format.set_pixel( - self, x, y, self.format.get_pixel(self, x - delta_x, y - delta_y)) + self, x, y, self.format.get_pixel(self, x - delta_x, y - delta_y)) x += dt_x y += dt_y