From 4dcd66e4fb68a31f3238c576db0d38a8ab6b68f5 Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Sat, 10 Feb 2024 22:03:37 +0100 Subject: [PATCH] add test --- src/core/lv_refr.c | 16 ++++++- tests/ref_imgs/draw/layer_transform_1.png | Bin 0 -> 2842 bytes tests/ref_imgs/draw/layer_transform_2.png | Bin 0 -> 15107 bytes .../test_cases/draw/test_layer_transform.c | 44 ++++++++++++++++++ 4 files changed, 58 insertions(+), 2 deletions(-) create mode 100644 tests/ref_imgs/draw/layer_transform_1.png create mode 100644 tests/ref_imgs/draw/layer_transform_2.png create mode 100644 tests/src/test_cases/draw/test_layer_transform.c diff --git a/src/core/lv_refr.c b/src/core/lv_refr.c index d61e0425b0e7..0278a43cbb84 100644 --- a/src/core/lv_refr.c +++ b/src/core/lv_refr.c @@ -925,10 +925,22 @@ void refr_obj(lv_layer_t * layer, lv_obj_t * obj) area_need_alpha ? LV_COLOR_FORMAT_ARGB8888 : LV_COLOR_FORMAT_NATIVE, &layer_area_act); lv_obj_redraw(new_layer, obj); + lv_point_t pivot = { + .x = lv_obj_get_style_transform_pivot_x(obj, 0), + .y = lv_obj_get_style_transform_pivot_y(obj, 0) + }; + + if(LV_COORD_IS_PCT(pivot.x)) { + pivot.x = (LV_COORD_GET_PCT(pivot.x) * lv_area_get_width(&obj->coords)) / 100; + } + if(LV_COORD_IS_PCT(pivot.y)) { + pivot.y = (LV_COORD_GET_PCT(pivot.y) * lv_area_get_height(&obj->coords)) / 100; + } + lv_draw_image_dsc_t layer_draw_dsc; lv_draw_image_dsc_init(&layer_draw_dsc); - layer_draw_dsc.pivot.x = obj->coords.x1 + lv_obj_get_style_transform_pivot_x(obj, 0) - new_layer->buf_area.x1; - layer_draw_dsc.pivot.y = obj->coords.y1 + lv_obj_get_style_transform_pivot_y(obj, 0) - new_layer->buf_area.y1; + layer_draw_dsc.pivot.x = obj->coords.x1 + pivot.x - new_layer->buf_area.x1; + layer_draw_dsc.pivot.y = obj->coords.y1 + pivot.y - new_layer->buf_area.y1; layer_draw_dsc.opa = opa; layer_draw_dsc.rotation = lv_obj_get_style_transform_rotation(obj, 0); diff --git a/tests/ref_imgs/draw/layer_transform_1.png b/tests/ref_imgs/draw/layer_transform_1.png new file mode 100644 index 0000000000000000000000000000000000000000..28e94adc578bdd5075565934be057dc02c5b8103 GIT binary patch literal 2842 zcmeAS@N?(olHy`uVBq!ia0y~yU{+vYV0^&A1QfZHI&TpJ1J^@O7srr_Id5+}`rUah zd;FpJu}!a@@g#p|@zi%X5Uq0KIg5_4rnbuI30x;vYux+hsIfvkd zJSmR1S><*|)-3tIq)x7|VSSy)i^b(_y{lKRW@KJe`(_enisPSn{-R7-Z@7&&f^ZxuQ?hou63QJ2( zzp^E)&D9a(=jXFKx321Xk=_2fpP$OAt6wP|i25w3_(751&rj~{yK{Q__w8oZ{=EC+ z&GL&)bUEBhrA)>a;5y7wB$IV`S!Ov2s$asKh( z^^yGN`;VL7?=d{~_2I+y=jZv_vPT3naYy7PZ>-p|+xpmze}#MQ&8#>R_47}S&b&Uu zWBTjkey$OSIO*PUAPeX+kU_6r?YnOM_(ev~|2Z5FV&gV6h?@EP|NnASJb(U~d4G~E zzfLp#`b>ZG@%(B3e?4UXAI`DoG`HA>LvP;X^n839{_548V%JfK*486k4ikQ zNq;4q{pOuTc{|gN<3NkJ>i<2NY(Dya| zeEznjxt6AVKgOBoC|*Q ZiUla{n%>$j2yF8*c)I$ztaD0e0s!@Q>lOe2 literal 0 HcmV?d00001 diff --git a/tests/ref_imgs/draw/layer_transform_2.png b/tests/ref_imgs/draw/layer_transform_2.png new file mode 100644 index 0000000000000000000000000000000000000000..9dc1ee015333757e2d886ebd59e873ffa4a6d978 GIT binary patch literal 15107 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 Iw0rsg0HHF=p#T5? literal 0 HcmV?d00001 diff --git a/tests/src/test_cases/draw/test_layer_transform.c b/tests/src/test_cases/draw/test_layer_transform.c new file mode 100644 index 000000000000..d90daf97614b --- /dev/null +++ b/tests/src/test_cases/draw/test_layer_transform.c @@ -0,0 +1,44 @@ +#if LV_BUILD_TEST +#include "../lvgl.h" + +#include "unity/unity.h" + +void setUp(void) +{ + /* Function run before every test */ +} + +void tearDown(void) +{ + /* Function run after every test */ + lv_obj_clean(lv_screen_active()); +} + +void test_no_residual_border_on_scale_down(void) +{ + lv_obj_t * obj = lv_obj_create(lv_screen_active()); + lv_obj_set_size(obj, 100, 100); + lv_obj_center(obj); + lv_obj_set_style_border_color(obj, lv_color_hex3(0xf00), 0); + lv_obj_set_style_bg_color(obj, lv_color_hex3(0x0f0), 0); + TEST_ASSERT_EQUAL_SCREENSHOT("draw/layer_transform_1.png"); + + int32_t pivot_x[] = {lv_pct(50), lv_pct(8), lv_pct(0), lv_pct(106), lv_pct(-16)}; + int32_t pivot_y[] = {lv_pct(50), lv_pct(12), lv_pct(0), lv_pct(113), lv_pct(-27)}; + int32_t scale[] = {256 * 4, 412, 569, 288, 711}; + + uint32_t i; + for(i = 0; i < 5; i++) { + lv_obj_set_style_transform_pivot_x(obj, pivot_x[i], 0); + lv_obj_set_style_transform_pivot_y(obj, pivot_y[i], 0); + lv_obj_set_style_transform_scale(obj, scale[i], 0); + lv_refr_now(NULL); + + /*Should be the same as the original without any artifacts*/ + lv_obj_set_style_transform_scale(obj, 256, 0); + TEST_ASSERT_EQUAL_SCREENSHOT("draw/layer_transform_1.png"); + } + +} + +#endif