From 3d93975e0a118168127f76cb1c782dc94600c0af Mon Sep 17 00:00:00 2001 From: Todd Goyen Date: Mon, 13 Apr 2020 19:39:39 -0700 Subject: [PATCH] Prevent Red Channel from clobbering Green in color_blend_true_color_additive() - In 8 and 32 bit mode, Red channel data would leak into Green --- src/lv_draw/lv_draw_blend.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lv_draw/lv_draw_blend.c b/src/lv_draw/lv_draw_blend.c index 16ab4517c..d1d425617 100644 --- a/src/lv_draw/lv_draw_blend.c +++ b/src/lv_draw/lv_draw_blend.c @@ -815,11 +815,11 @@ static inline lv_color_t color_blend_true_color_additive(lv_color_t fg, lv_color fg.ch.red = LV_MATH_MIN(tmp, 255); #endif + tmp = bg.ch.green + fg.ch.green; #if LV_COLOR_DEPTH == 8 fg.ch.green = LV_MATH_MIN(tmp, 7); #elif LV_COLOR_DEPTH == 16 #if LV_COLOR_16_SWAP == 0 - tmp = bg.ch.green + fg.ch.green; fg.ch.green = LV_MATH_MIN(tmp, 63); #else tmp = (bg.ch.green_h << 3) + bg.ch.green_l + (fg.ch.green_h << 3) + fg.ch.green_l;