if not output_pixel.opaque:
full_coverage = False
else:
- mask[offset // 8] |= 1 << (offset % 8)
- # print("Mask", mask)
+ mask[offset // 32] |= 1 << (offset % 32)
if colorspace.depth == 16:
struct.pack_into(
"H",
- buffer,
+ buffer.cast("B"),
offset * 2,
output_pixel.pixel,
)
elif colorspace.depth == 32:
struct.pack_into(
"I",
- buffer,
+ buffer.cast("B"),
offset * 4,
output_pixel.pixel,
)
# even if we multiply it back out
offset = (
col * pixels_per_byte
- + (row // pixels_per_byte) * width
+ + (row // pixels_per_byte) * pixels_per_byte * width
+ (row % pixels_per_byte)
)
shift = (offset % pixels_per_byte) * colorspace.depth
# Reverse the shift by subtracting it from the leftmost shift
shift = (pixels_per_byte - 1) * colorspace.depth - shift
buffer[offset // pixels_per_byte] |= output_pixel.pixel << shift
+
return full_coverage
def _finish_refresh(self):