use partial draw
Some checks failed
Python CI / test (3.12) (push) Failing after 42s
Python CI / test (3.13) (push) Failing after 40s

This commit is contained in:
Duncan Tourolle 2025-11-23 15:21:36 +01:00
parent bfa51c1439
commit 64c9177604

View File

@ -176,8 +176,8 @@ class IT8951DisplayDriver:
# Prepare image for e-ink
prepared_image = self._prepare_image(image)
# Update frame buffer
self.display.frame_buf = prepared_image
# Update frame buffer using paste (more reliable than direct assignment)
self.display.frame_buf.paste(prepared_image, (0, 0))
# Increment refresh counter
self._refresh_count += 1
@ -316,9 +316,15 @@ class IT8951DisplayDriver:
if hasattr(self.display, 'epd') and self.auto_sleep:
self.display.epd.run()
# Use partial update for efficiency
# IT8951 library tracks what changed and only updates that region
self.display.draw_partial(display_mode)
# Use full refresh for INIT mode (clears ghosting) or first few refreshes
# Use partial refresh for fast updates
if display_mode == DisplayModes.INIT or self._refresh_count <= 2:
# Full refresh - more reliable for initial displays
self.display.draw_full(display_mode)
else:
# Partial update for efficiency
# IT8951 library tracks what changed and only updates that region
self.display.draw_partial(display_mode)
async def set_brightness(self, level: int) -> None:
"""