diff --git a/libs/display/EInkDisplay/include/EInkDisplay.h b/libs/display/EInkDisplay/include/EInkDisplay.h index 2d380ca..10d832f 100644 --- a/libs/display/EInkDisplay/include/EInkDisplay.h +++ b/libs/display/EInkDisplay/include/EInkDisplay.h @@ -43,6 +43,7 @@ class EInkDisplay { #endif void displayBuffer(RefreshMode mode = FAST_REFRESH); + // EXPERIMENTAL: Windowed update - display only a rectangular region void displayWindow(uint16_t x, uint16_t y, uint16_t w, uint16_t h); void displayGrayBuffer(bool turnOffScreen = false); diff --git a/libs/display/EInkDisplay/src/EInkDisplay.cpp b/libs/display/EInkDisplay/src/EInkDisplay.cpp index 962b716..1f7e0ac 100644 --- a/libs/display/EInkDisplay/src/EInkDisplay.cpp +++ b/libs/display/EInkDisplay/src/EInkDisplay.cpp @@ -452,6 +452,9 @@ void EInkDisplay::displayBuffer(RefreshMode mode) { #endif } +// EXPERIMENTAL: Windowed update support +// Displays only a rectangular region of the frame buffer, preserving the rest of the screen. +// Requirements: x and w must be byte-aligned (multiples of 8 pixels) void EInkDisplay::displayWindow(uint16_t x, uint16_t y, uint16_t w, uint16_t h) { Serial.printf("[%lu] Displaying window at (%d,%d) size (%dx%d)\n", millis(), x, y, w, h);