| 82 | } |
| 83 | |
| 84 | void HalDisplay::displayGrayscaleBase(RefreshMode fallback, bool turnOffScreen) { |
| 85 | // X3: a HALF fallback means the caller wants a clean base (e.g. the sleep |
| 86 | // cover, a full-screen swap from arbitrary prior content). Without this, the |
| 87 | // X3 grayscale base takes its gentle differential happy path and the prior |
| 88 | // home/reader frame ghosts through the soft aa_pre_bw_mid waveform. Forcing a |
| 89 | // resync makes displayGrayscaleBase clear first, matching displayBuffer(HALF). |
| 90 | // The reader's FAST path is deliberately left on the differential path so |
| 91 | // per-page grayscale stays cheap. |
| 92 | if (gpio.deviceIsX3() && fallback == RefreshMode::HALF_REFRESH) { |
| 93 | einkDisplay.requestResync(1); |
| 94 | } |
| 95 | |
| 96 | einkDisplay.displayGrayscaleBase(convertRefreshMode(fallback), turnOffScreen); |
| 97 | } |
| 98 | |
| 99 | void HalDisplay::preconditionGrayscale() { einkDisplay.preconditionGrayscale(); } |
| 100 |
no test coverage detected