1 #if LV_BUILD_TEST 2 #include "../lvgl.h" 3 #include "../../lvgl_private.h" 4 #include "../demos/lv_demos.h" 5 6 #include "unity/unity.h" 7 setUp(void)8void setUp(void) 9 { 10 /* Function run before every test */ 11 } 12 tearDown(void)13void tearDown(void) 14 { 15 /* Function run after every test */ 16 } 17 test_render_to_argb4444(void)18void test_render_to_argb4444(void) 19 { 20 /** 21 * There is a slight color deviation between thorvg on 32-bit and 64-bit platforms. 22 * The deviation will be amplified when using lower precision color formats. 23 * Only 64-bit platforms are tested here. 24 */ 25 #if LV_USE_DRAW_VG_LITE && LV_USE_SNAPSHOT && !defined(NON_AMD64_BUILD) 26 27 lv_opa_t opa_values[2] = {0xff, 0x80}; 28 uint32_t opa; 29 for(opa = 0; opa < 2; opa++) { 30 uint32_t i; 31 for(i = 0; i < LV_DEMO_RENDER_SCENE_NUM; i++) { 32 33 /*Skip test with transformed indexed images if they are not loaded to RAM*/ 34 if(LV_BIN_DECODER_RAM_LOAD == 0 && 35 (i == LV_DEMO_RENDER_SCENE_IMAGE_NORMAL_2 || 36 i == LV_DEMO_RENDER_SCENE_IMAGE_RECOLOR_2)) continue; 37 38 lv_demo_render(i, opa_values[opa]); 39 lv_draw_buf_t * draw_buf = lv_snapshot_take(lv_screen_active(), LV_COLOR_FORMAT_ARGB4444); 40 lv_obj_t * img = lv_image_create(lv_layer_top()); 41 lv_image_set_src(img, draw_buf); 42 43 char buf[128]; 44 lv_snprintf(buf, sizeof(buf), "draw/render/argb4444/demo_render_%s_opa_%d.png", 45 lv_demo_render_get_scene_name(i), opa_values[opa]); 46 TEST_ASSERT_EQUAL_SCREENSHOT(buf); 47 lv_obj_delete(img); 48 lv_draw_buf_destroy(draw_buf); 49 } 50 } 51 #else 52 TEST_PASS(); 53 #endif 54 } 55 56 #endif 57