From ece34950040e218fc73605a4e88f1060c2a274f8 Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Wed, 31 Aug 2022 21:14:32 +0200 Subject: [PATCH] fix(draw): allow drawing outline with LV_DRAW_COMPLEX == 0 too --- src/draw/sw/lv_draw_sw_rect.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/draw/sw/lv_draw_sw_rect.c b/src/draw/sw/lv_draw_sw_rect.c index 2b2ea9820..47285c9f4 100644 --- a/src/draw/sw/lv_draw_sw_rect.c +++ b/src/draw/sw/lv_draw_sw_rect.c @@ -1159,12 +1159,13 @@ void draw_border_generic(lv_draw_ctx_t * draw_ctx, const lv_area_t * outer_area, bool mask_any = lv_draw_mask_is_any(outer_area); +#if LV_DRAW_COMPLEX + if(!mask_any && rout == 0 && rin == 0) { draw_border_simple(draw_ctx, outer_area, inner_area, color, opa); return; } -#if LV_DRAW_COMPLEX /*Get clipped draw area which is the real draw area. *It is always the same or inside `coords`*/ lv_area_t draw_area; @@ -1375,6 +1376,11 @@ void draw_border_generic(lv_draw_ctx_t * draw_ctx, const lv_area_t * outer_area, #else /*LV_DRAW_COMPLEX*/ LV_UNUSED(blend_mode); + if(!mask_any) { + draw_border_simple(draw_ctx, outer_area, inner_area, color, opa); + return; + } + #endif /*LV_DRAW_COMPLEX*/ } static void draw_border_simple(lv_draw_ctx_t * draw_ctx, const lv_area_t * outer_area, const lv_area_t * inner_area,