From c0a6503960a5e4216d13c10dfcbc5a2bd588acd8 Mon Sep 17 00:00:00 2001 From: philmoz Date: Mon, 16 Oct 2023 17:05:54 +1100 Subject: [PATCH] fix(color): Gauge invertRect assumed WHITE rather than PRIMARY2 (#4164) --- radio/src/thirdparty/libopenui/src/bitmapbuffer.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/radio/src/thirdparty/libopenui/src/bitmapbuffer.cpp b/radio/src/thirdparty/libopenui/src/bitmapbuffer.cpp index 6afefb99d..cdc6dc4cb 100644 --- a/radio/src/thirdparty/libopenui/src/bitmapbuffer.cpp +++ b/radio/src/thirdparty/libopenui/src/bitmapbuffer.cpp @@ -613,14 +613,16 @@ void BitmapBuffer::invertRect(coord_t x, coord_t y, coord_t w, coord_t h, LcdFla // No 'opacity' here, only 'color' pixel_t color = COLOR_VAL(flags); RGB_SPLIT(color, red, green, blue); + pixel_t bg_color = COLOR_VAL(COLOR_THEME_PRIMARY2); + RGB_SPLIT(bg_color, bgRed, bgGreen, bgBlue); DMAWait(); for (int i = y; i < y + h; i++) { pixel_t * p = getPixelPtrAbs(x, i); for (int j = 0; j < w; j++) { // TODO ASSERT_IN_DISPLAY(p); - RGB_SPLIT(*p, bgRed, bgGreen, bgBlue); - drawPixel(p, RGB_JOIN(0x1F + red - bgRed, 0x3F + green - bgGreen, 0x1F + blue - bgBlue)); + RGB_SPLIT(*p, pRed, pGreen, pBlue); + drawPixel(p, RGB_JOIN(bgRed + red - pRed, bgGreen + green - pGreen, bgBlue + blue - pBlue)); MOVE_TO_NEXT_RIGHT_PIXEL(p); } }