From 6770e1ab32b44aef2f0c80c07399dfea95351c67 Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Thu, 31 Jan 2019 20:24:30 +0100 Subject: [PATCH] Revert "lv_canvas: support indexed images" This reverts commit ed8ec4a4c2d0d750bded87199d5fe3a465674276. --- lv_objx/lv_canvas.c | 60 +++------------------------------------------ 1 file changed, 4 insertions(+), 56 deletions(-) diff --git a/lv_objx/lv_canvas.c b/lv_objx/lv_canvas.c index 5976623ca..c1465cdb2 100644 --- a/lv_objx/lv_canvas.c +++ b/lv_objx/lv_canvas.c @@ -109,53 +109,10 @@ void lv_canvas_set_px(lv_obj_t * canvas, lv_coord_t x, lv_coord_t y, lv_color_t return; } - uint8_t * buf_u8 = (uint8_t *) ext->dsc.data; - - if(ext->dsc.header.cf == LV_IMG_CF_TRUE_COLOR || - ext->dsc.header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA || - ext->dsc.header.cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED) - { - uint32_t px_size = lv_img_color_format_get_px_size(ext->dsc.header.cf) >> 3; - uint32_t px = ext->dsc.header.w * y * px_size + x * px_size; - - memcpy(&buf_u8[px], &c, sizeof(lv_color_t)); - } - else if(ext->dsc.header.cf == LV_IMG_CF_INDEXED_1BIT) { - buf_u8 += 4 * 2; - uint8_t bit = x & 0x7; - x = x >> 3; - - uint32_t px = (ext->dsc.header.w >> 3) * y + x; - buf_u8[px] = buf_u8[px] & ~(1 << (7 - bit)); - buf_u8[px] = buf_u8[px] | ((c.full & 0x1) << (7 - bit)); - } - else if(ext->dsc.header.cf == LV_IMG_CF_INDEXED_2BIT) { - buf_u8 += 4 * 4; - uint8_t bit = (x & 0x3) * 2; - x = x >> 2; - - uint32_t px = (ext->dsc.header.w >> 2) * y + x; - - buf_u8[px] = buf_u8[px] & ~(3 << (6 - bit)); - buf_u8[px] = buf_u8[px] | ((c.full & 0x3) << (6 - bit)); - } - else if(ext->dsc.header.cf == LV_IMG_CF_INDEXED_4BIT) { - buf_u8 += 4 * 16; - uint8_t bit = (x & 0x1) * 4; - x = x >> 1; - - uint32_t px = (ext->dsc.header.w >> 1) * y + x; - - buf_u8[px] = buf_u8[px] & ~(0xF << (4 - bit)); - buf_u8[px] = buf_u8[px] | ((c.full & 0xF) << (4 - bit)); - } - else if(ext->dsc.header.cf == LV_IMG_CF_INDEXED_8BIT) { - buf_u8 += 4 * 256; - uint32_t px = ext->dsc.header.w * y + x; - buf_u8[px] = c.full; - } - + uint32_t px_size = lv_img_color_format_get_px_size(ext->dsc.header.cf) >> 3; + uint32_t px = ext->dsc.header.w * y * px_size + x * px_size; + memcpy((void*)&ext->dsc.data[px], &c, sizeof(lv_color_t)); } /** @@ -240,17 +197,8 @@ void lv_canvas_mult_buf(lv_obj_t * canvas, void * to_copy, lv_coord_t w, lv_coor for(i = 0; i < h; i++) { for(j = 0; j < w; j++) { canvas_buf_color[j].red = (uint16_t) ((uint16_t) canvas_buf_color[j].red * copy_buf_color[j].red) >> 8; - canvas_buf_color[j].blue = (uint16_t) ((uint16_t) canvas_buf_color[j].blue * copy_buf_color[j].blue) >> 8; -#if LV_COLOR_16_SWAP == 0 canvas_buf_color[j].green = (uint16_t) ((uint16_t) canvas_buf_color[j].green * copy_buf_color[j].green) >> 8; -#else - uint8_t green_canvas = (canvas_buf_color[j].green_h << 3) + canvas_buf_color[j].green_l; - uint8_t green_buffer = (copy_buf_color[j].green_h << 3) + copy_buf_color[j].green_l; - uint8_t green_result = (uint16_t) ((uint16_t) green_canvas * green_buffer) >> 8; - canvas_buf_color[j].green_h = green_result >> 3; - canvas_buf_color[j].green_l = green_result & 0x7; - -#endif + canvas_buf_color[j].blue = (uint16_t) ((uint16_t) canvas_buf_color[j].blue * copy_buf_color[j].blue) >> 8; } copy_buf_color += w; canvas_buf_color += ext->dsc.header.w;