Skip to content

Commit 8022b34

Browse files
committed
fix stride for rotation of odd-pixel-counts
1 parent 3f9bc26 commit 8022b34

File tree

2 files changed

+12
-10
lines changed

2 files changed

+12
-10
lines changed

adafruit_epd/ssd1675.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,11 @@ class Adafruit_SSD1675(Adafruit_EPD):
6868
def __init__(self, width, height, spi, *, cs_pin, dc_pin, sramcs_pin, rst_pin, busy_pin):
6969
super(Adafruit_SSD1675, self).__init__(width, height, spi, cs_pin, dc_pin,
7070
sramcs_pin, rst_pin, busy_pin)
71-
if width % 8 != 0:
72-
width += (8 - width % 8)
71+
stride = width
72+
if stride % 8 != 0:
73+
stride += (8 - stride % 8)
7374

74-
self._buffer1_size = int(width * height / 8)
75+
self._buffer1_size = int(stride * height / 8)
7576
self._buffer2_size = self._buffer1_size
7677

7778
if sramcs_pin:
@@ -82,9 +83,9 @@ def __init__(self, width, height, spi, *, cs_pin, dc_pin, sramcs_pin, rst_pin, b
8283
self._buffer2 = bytearray(self._buffer2_size)
8384
# since we have *two* framebuffers - one for red and one for black
8485
# we dont subclass but manage manually
85-
self._framebuf1 = adafruit_framebuf.FrameBuffer(self._buffer1, width, height,
86+
self._framebuf1 = adafruit_framebuf.FrameBuffer(self._buffer1, width, height, stride=stride,
8687
buf_format=adafruit_framebuf.MHMSB)
87-
self._framebuf2 = adafruit_framebuf.FrameBuffer(self._buffer2, width, height,
88+
self._framebuf2 = adafruit_framebuf.FrameBuffer(self._buffer2, width, height, stride=stride,
8889
buf_format=adafruit_framebuf.MHMSB)
8990
self.set_black_buffer(0, True)
9091
self.set_color_buffer(0, True)

adafruit_epd/ssd1675b.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -94,10 +94,11 @@ class Adafruit_SSD1675B(Adafruit_EPD):
9494
def __init__(self, width, height, spi, *, cs_pin, dc_pin, sramcs_pin, rst_pin, busy_pin):
9595
super(Adafruit_SSD1675B, self).__init__(width, height, spi, cs_pin, dc_pin,
9696
sramcs_pin, rst_pin, busy_pin)
97-
if width % 8 != 0:
98-
width += (8 - width % 8)
97+
stride = width
98+
if stride % 8 != 0:
99+
stride += (8 - stride % 8)
99100

100-
self._buffer1_size = int(width * height / 8)
101+
self._buffer1_size = int(stride * height / 8)
101102
self._buffer2_size = self._buffer1_size
102103

103104
if sramcs_pin:
@@ -108,9 +109,9 @@ def __init__(self, width, height, spi, *, cs_pin, dc_pin, sramcs_pin, rst_pin, b
108109
self._buffer2 = bytearray(self._buffer2_size)
109110
# since we have *two* framebuffers - one for red and one for black
110111
# we dont subclass but manage manually
111-
self._framebuf1 = adafruit_framebuf.FrameBuffer(self._buffer1, width, height,
112+
self._framebuf1 = adafruit_framebuf.FrameBuffer(self._buffer1, width, height, stride=stride,
112113
buf_format=adafruit_framebuf.MHMSB)
113-
self._framebuf2 = adafruit_framebuf.FrameBuffer(self._buffer2, width, height,
114+
self._framebuf2 = adafruit_framebuf.FrameBuffer(self._buffer2, width, height, stride=stride,
114115
buf_format=adafruit_framebuf.MHMSB)
115116
self.set_black_buffer(0, True)
116117
self.set_color_buffer(0, True)

0 commit comments

Comments
 (0)