fix(canvas): lv_canvas_set_px for indexed images (#6226)
Signed-off-by: Xu Xingliang <xuxingliang@xiaomi.com> Co-authored-by: Xu Xingliang <xuxingliang@xiaomi.com>
This commit is contained in:
committed by
GitHub
parent
74b50b2c56
commit
25c469db58
BIN
tests/ref_imgs/widgets/canvas_1.png
Normal file
BIN
tests/ref_imgs/widgets/canvas_1.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.2 KiB |
@@ -61,4 +61,74 @@ void test_canvas_functions_invalidate(void)
|
||||
TEST_ASSERT(draw_counter == 4);
|
||||
}
|
||||
|
||||
void test_canvas_fill_and_set_px(void)
|
||||
{
|
||||
lv_obj_t * canvas = lv_canvas_create(lv_screen_active());
|
||||
lv_obj_center(canvas);
|
||||
|
||||
LV_DRAW_BUF_DEFINE_STATIC(buf_i1, 10, 10, LV_COLOR_FORMAT_I1);
|
||||
LV_DRAW_BUF_INIT_STATIC(buf_i1);
|
||||
lv_canvas_set_draw_buf(canvas, &buf_i1);
|
||||
lv_canvas_set_palette(canvas, 0, lv_color32_make(0x00, 0xff, 0x00, 0xff));
|
||||
lv_canvas_set_palette(canvas, 1, lv_color32_make(0x00, 0x00, 0xff, 0xff));
|
||||
lv_canvas_fill_bg(canvas, lv_color_hex(0), LV_OPA_COVER);
|
||||
lv_canvas_set_px(canvas, 1, 7, lv_color_hex(1), 0);
|
||||
TEST_ASSERT_EQUAL_SCREENSHOT("widgets/canvas_1.png");
|
||||
|
||||
LV_DRAW_BUF_DEFINE_STATIC(buf_i2, 10, 10, LV_COLOR_FORMAT_I2);
|
||||
LV_DRAW_BUF_INIT_STATIC(buf_i2);
|
||||
lv_canvas_set_draw_buf(canvas, &buf_i2);
|
||||
lv_canvas_set_palette(canvas, 0, lv_color32_make(0x00, 0xff, 0x00, 0xff));
|
||||
lv_canvas_set_palette(canvas, 3, lv_color32_make(0x00, 0x00, 0xff, 0xff));
|
||||
lv_canvas_fill_bg(canvas, lv_color_hex(0), LV_OPA_COVER);
|
||||
lv_canvas_set_px(canvas, 1, 7, lv_color_hex(3), 0);
|
||||
TEST_ASSERT_EQUAL_SCREENSHOT("widgets/canvas_1.png");
|
||||
|
||||
LV_DRAW_BUF_DEFINE_STATIC(buf_i4, 10, 10, LV_COLOR_FORMAT_I4);
|
||||
LV_DRAW_BUF_INIT_STATIC(buf_i4);
|
||||
lv_canvas_set_draw_buf(canvas, &buf_i4);
|
||||
lv_canvas_set_palette(canvas, 0, lv_color32_make(0x00, 0xff, 0x00, 0xff));
|
||||
lv_canvas_set_palette(canvas, 15, lv_color32_make(0x00, 0x00, 0xff, 0xff));
|
||||
lv_canvas_fill_bg(canvas, lv_color_hex(0), LV_OPA_COVER);
|
||||
lv_canvas_set_px(canvas, 1, 7, lv_color_hex(15), 0);
|
||||
TEST_ASSERT_EQUAL_SCREENSHOT("widgets/canvas_1.png");
|
||||
|
||||
LV_DRAW_BUF_DEFINE_STATIC(buf_i8, 10, 10, LV_COLOR_FORMAT_I8);
|
||||
LV_DRAW_BUF_INIT_STATIC(buf_i8);
|
||||
lv_canvas_set_draw_buf(canvas, &buf_i8);
|
||||
lv_canvas_set_palette(canvas, 0, lv_color32_make(0x00, 0xff, 0x00, 0xff));
|
||||
lv_canvas_set_palette(canvas, 255, lv_color32_make(0x00, 0x00, 0xff, 0xff));
|
||||
lv_canvas_fill_bg(canvas, lv_color_hex(0), LV_OPA_COVER);
|
||||
lv_canvas_set_px(canvas, 1, 7, lv_color_hex(255), 0);
|
||||
TEST_ASSERT_EQUAL_SCREENSHOT("widgets/canvas_1.png");
|
||||
|
||||
LV_DRAW_BUF_DEFINE_STATIC(buf_rgb888, 10, 10, LV_COLOR_FORMAT_RGB888);
|
||||
LV_DRAW_BUF_INIT_STATIC(buf_rgb888);
|
||||
lv_canvas_set_draw_buf(canvas, &buf_rgb888);
|
||||
lv_canvas_fill_bg(canvas, lv_color_hex(0x00ff00), LV_OPA_COVER);
|
||||
lv_canvas_set_px(canvas, 1, 7, lv_color_hex(0x0000ff), 0);
|
||||
TEST_ASSERT_EQUAL_SCREENSHOT("widgets/canvas_1.png");
|
||||
|
||||
LV_DRAW_BUF_DEFINE_STATIC(buf_rgb565, 10, 10, LV_COLOR_FORMAT_RGB565);
|
||||
LV_DRAW_BUF_INIT_STATIC(buf_rgb565);
|
||||
lv_canvas_set_draw_buf(canvas, &buf_rgb565);
|
||||
lv_canvas_fill_bg(canvas, lv_color_hex(0x00ff00), LV_OPA_COVER);
|
||||
lv_canvas_set_px(canvas, 1, 7, lv_color_hex(0x0000ff), 0);
|
||||
TEST_ASSERT_EQUAL_SCREENSHOT("widgets/canvas_1.png");
|
||||
|
||||
LV_DRAW_BUF_DEFINE_STATIC(buf_xrgb8888, 10, 10, LV_COLOR_FORMAT_XRGB8888);
|
||||
LV_DRAW_BUF_INIT_STATIC(buf_xrgb8888);
|
||||
lv_canvas_set_draw_buf(canvas, &buf_xrgb8888);
|
||||
lv_canvas_fill_bg(canvas, lv_color_hex(0x00ff00), LV_OPA_COVER);
|
||||
lv_canvas_set_px(canvas, 1, 7, lv_color_hex(0x0000ff), 0);
|
||||
TEST_ASSERT_EQUAL_SCREENSHOT("widgets/canvas_1.png");
|
||||
|
||||
LV_DRAW_BUF_DEFINE_STATIC(buf_argb8888, 10, 10, LV_COLOR_FORMAT_ARGB8888);
|
||||
LV_DRAW_BUF_INIT_STATIC(buf_argb8888);
|
||||
lv_canvas_set_draw_buf(canvas, &buf_argb8888);
|
||||
lv_canvas_fill_bg(canvas, lv_color_hex(0x00ff00), LV_OPA_COVER);
|
||||
lv_canvas_set_px(canvas, 1, 7, lv_color_hex(0x0000ff), LV_OPA_COVER);
|
||||
TEST_ASSERT_EQUAL_SCREENSHOT("widgets/canvas_1.png");
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user