From e79f86fa243871f0ab72e0fc4dc6ba908067df35 Mon Sep 17 00:00:00 2001 From: Xuan Son Nguyen Date: Mon, 16 Feb 2026 11:13:34 +0100 Subject: [PATCH] more resync --- lib/hal/HalDisplay.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/hal/HalDisplay.cpp b/lib/hal/HalDisplay.cpp index 2cd4159fe..0d6241b3f 100644 --- a/lib/hal/HalDisplay.cpp +++ b/lib/hal/HalDisplay.cpp @@ -48,7 +48,7 @@ EInkDisplay::RefreshMode convertRefreshMode(HalDisplay::RefreshMode mode) { } void HalDisplay::displayBuffer(HalDisplay::RefreshMode mode, bool turnOffScreen) { - if (gpio.deviceIsX3() && lastBufferWasGray) { + if (gpio.deviceIsX3() && (lastBufferWasGray || mode == RefreshMode::HALF_REFRESH)) { einkDisplay.requestResync(); } lastBufferWasGray = false; @@ -56,7 +56,7 @@ void HalDisplay::displayBuffer(HalDisplay::RefreshMode mode, bool turnOffScreen) } void HalDisplay::refreshDisplay(HalDisplay::RefreshMode mode, bool turnOffScreen) { - if (gpio.deviceIsX3() && lastBufferWasGray) { + if (gpio.deviceIsX3() && (lastBufferWasGray || mode == RefreshMode::HALF_REFRESH)) { einkDisplay.requestResync(); } lastBufferWasGray = false; @@ -78,8 +78,11 @@ void HalDisplay::copyGrayscaleMsbBuffers(const uint8_t* msbBuffer) { einkDisplay void HalDisplay::cleanupGrayscaleBuffers(const uint8_t* bwBuffer) { einkDisplay.cleanupGrayscaleBuffers(bwBuffer); } void HalDisplay::displayGrayBuffer(bool turnOffScreen) { - einkDisplay.displayGrayBuffer(turnOffScreen); + if (gpio.deviceIsX3() && !lastBufferWasGray) { + einkDisplay.requestResync(); + } lastBufferWasGray = true; + einkDisplay.displayGrayBuffer(turnOffScreen); } uint16_t HalDisplay::getDisplayWidth() const { return einkDisplay.getDisplayWidth(); }