From 523c9793cb81f21211b8687c2dd0da2b02bf4f46 Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Mon, 23 Mar 2020 17:13:46 +0100 Subject: [PATCH] draw label: remove 8bpp optimization becasue it's not that effective --- src/lv_draw/lv_draw_label.c | 61 +++++++++++++++---------------------- 1 file changed, 24 insertions(+), 37 deletions(-) diff --git a/src/lv_draw/lv_draw_label.c b/src/lv_draw/lv_draw_label.c index f519b1839..93b860a45 100644 --- a/src/lv_draw/lv_draw_label.c +++ b/src/lv_draw/lv_draw_label.c @@ -523,45 +523,32 @@ static void draw_letter_normal(lv_coord_t pos_x, lv_coord_t pos_y, lv_font_glyph for(row = row_start ; row < row_end; row++) { int32_t mask_p_start = mask_p; - if(bpp == 8) { - if(opa == LV_OPA_COVER) { - lv_memcpy(&mask_buf[mask_p], map_p, col_end - col_start + 1); - mask_p += col_end - col_start + 1; - map_p += box_w + 1; - } else { - for(col = col_start; col < col_end; col++) { - mask_buf[mask_p] = bpp_opa_table_p[*map_p]; - mask_p++; - map_p++; - } - } - } else { - bitmask = bitmask_init >> col_bit; - for(col = col_start; col < col_end; col++) { - /*Load the pixel's opacity into the mask*/ - letter_px = (*map_p & bitmask) >> (col_bit_max - col_bit); - if(letter_px) { - mask_buf[mask_p] = bpp_opa_table_p[letter_px]; - } - else { - mask_buf[mask_p] = 0; - } + bitmask = bitmask_init >> col_bit; + for(col = col_start; col < col_end; col++) { + /*Load the pixel's opacity into the mask*/ + letter_px = (*map_p & bitmask) >> (col_bit_max - col_bit); + if(letter_px) { + mask_buf[mask_p] = bpp_opa_table_p[letter_px]; + } + else { + mask_buf[mask_p] = 0; + } - /*Go to the next column*/ - if(col_bit < col_bit_max) { - col_bit += bpp; - bitmask = bitmask >> bpp; - } - else { - col_bit = 0; - bitmask = bitmask_init; - map_p++; - } + /*Go to the next column*/ + if(col_bit < col_bit_max) { + col_bit += bpp; + bitmask = bitmask >> bpp; + } + else { + col_bit = 0; + bitmask = bitmask_init; + map_p++; + } + + /*Next mask byte*/ + mask_p++; + } - /*Next mask byte*/ - mask_p++; - } - } /*Apply masks if any*/ if(other_mask_cnt) {