diff options
| author | Daniel Thompson <daniel@redfelineninja.org.uk> | 2020-02-03 22:34:54 (GMT) |
|---|---|---|
| committer | Daniel Thompson <daniel@redfelineninja.org.uk> | 2020-02-03 22:34:54 (GMT) |
| commit | 57035ce0805222800e8cb24e459e612f802d0a50 (patch) | |
| tree | fc4e9500abfba9962fa5c48d141de7934122b009 /wasp/drivers/st7789.py | |
| parent | 118b7bab006323bf65a23c3fe3e1a0a30a91c17a (diff) | |
wasp: st7789: Make fill() control sizing
Diffstat (limited to 'wasp/drivers/st7789.py')
| -rw-r--r-- | wasp/drivers/st7789.py | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/wasp/drivers/st7789.py b/wasp/drivers/st7789.py index 8a9e4d6..d96d417 100644 --- a/wasp/drivers/st7789.py +++ b/wasp/drivers/st7789.py @@ -83,15 +83,22 @@ class ST7789(object): self.write_data(bytearray([y >> 8, y & 0xff, yp >> 8, yp & 0xff])) self.write_cmd(_RAMWR) - def fill(self, bg): - self.set_window() + def fill(self, bg, x=0, y=0, w=None, h=None): + if not w: + w = self.width - x + if not h: + h = self.height - y + self.set_window(x, y, w, h) # Populate the line buffer - for x in range(0, 2 * self.width, 2): - self.linebuffer[x] = bg >> 8 - self.linebuffer[x+1] = bg & 0xff - for y in range(self.height): - self.write_data(self.linebuffer) + buf = memoryview(self.linebuffer)[0:2*w] + for xi in range(0, 2*w, 2): + buf[xi] = bg >> 8 + buf[xi+1] = bg & 0xff + + # Do the fill + for yi in range(h): + self.write_data(buf) @micropython.native def rleblit(self, image, pos=(0, 0), fg=0xffff, bg=0): |
