From 95347b768b17ffc5d6b0f1aac648ad84421656ad Mon Sep 17 00:00:00 2001 From: SmartAnda <908656706@qq.com> Date: Wed, 28 Jul 2021 14:58:25 +0800 Subject: [PATCH] fix circle drawing algorithms (#2413) --- src/draw/lv_draw_mask.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/draw/lv_draw_mask.c b/src/draw/lv_draw_mask.c index 69fccc78a..d35c4720c 100644 --- a/src/draw/lv_draw_mask.c +++ b/src/draw/lv_draw_mask.c @@ -1291,20 +1291,20 @@ static void circ_calc_aa4(_lv_draw_mask_radius_circle_dsc_t * c, lv_coord_t radi int32_t mid = radius * 723; int32_t mid_int = mid >> 10; if(cir_x[cir_size-1] != mid_int || cir_y[cir_size-1] != mid_int) { - tmp = mid - (mid_int << 10); - if(tmp <= 512) { - tmp = tmp * tmp * 2; - tmp = tmp >> (10 + 6); + int32_t tmp_val = mid - (mid_int << 10); + if(tmp_val <= 512) { + tmp_val = tmp_val * tmp_val * 2; + tmp_val = tmp_val >> (10 + 6); } else { - tmp = 1024 - tmp; - tmp = (int32_t)tmp * tmp * 2; - tmp = (int32_t)tmp >> (10 + 6); - tmp = 15 - tmp; + tmp_val = 1024 - tmp_val; + tmp_val = tmp_val * tmp_val * 2; + tmp_val = tmp_val >> (10 + 6); + tmp_val = 15 - tmp_val; } cir_x[cir_size] = mid_int; cir_y[cir_size] = mid_int; - c->cir_opa[cir_size] = tmp; + c->cir_opa[cir_size] = tmp_val; c->cir_opa[cir_size] *= 16; cir_size++; }