aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorGabor Kiss-Vamosi <kisvegabor@gmail.com>2023-11-15 12:51:48 +0100
committerGabor Kiss-Vamosi <kisvegabor@gmail.com>2023-11-15 12:57:50 +0100
commit6e91a1e99ce020394698f650502e32cb88722912 (patch)
treec2f32d521fd2e6ba984c61a1f06cab0f31fc9497 /tests
parent628fb98b523d24089d339db3292a8181286b7560 (diff)
downloadlvgl-6e91a1e99ce020394698f650502e32cb88722912.tar.gz
lvgl-6e91a1e99ce020394698f650502e32cb88722912.zip
test(draw): add rendering test for RGB565, RGB888, XRGRB8888, and ARGB8888
Diffstat (limited to 'tests')
-rw-r--r--tests/ref_imgs/draw/render/argb8888/demo_render_arc_image_opa_128.pngbin0 -> 18209 bytes
-rw-r--r--tests/ref_imgs/draw/render/argb8888/demo_render_arc_image_opa_255.pngbin0 -> 19613 bytes
-rw-r--r--tests/ref_imgs/draw/render/argb8888/demo_render_arc_normal_opa_128.pngbin0 -> 11737 bytes
-rw-r--r--tests/ref_imgs/draw/render/argb8888/demo_render_arc_normal_opa_255.pngbin0 -> 12515 bytes
-rw-r--r--tests/ref_imgs/draw/render/argb8888/demo_render_border_opa_128.png (renamed from tests/ref_imgs/draw/render/demo_render_border_opa_128.png)bin9322 -> 9322 bytes
-rw-r--r--tests/ref_imgs/draw/render/argb8888/demo_render_border_opa_255.png (renamed from tests/ref_imgs/draw/render/demo_render_border_opa_255.png)bin9352 -> 9352 bytes
-rw-r--r--tests/ref_imgs/draw/render/argb8888/demo_render_box_shadow_opa_128.pngbin0 -> 16170 bytes
-rw-r--r--tests/ref_imgs/draw/render/argb8888/demo_render_box_shadow_opa_255.pngbin0 -> 18348 bytes
-rw-r--r--tests/ref_imgs/draw/render/argb8888/demo_render_fill_opa_128.png (renamed from tests/ref_imgs/draw/render/demo_render_fill_opa_128.png)bin15249 -> 15249 bytes
-rw-r--r--tests/ref_imgs/draw/render/argb8888/demo_render_fill_opa_255.png (renamed from tests/ref_imgs/draw/render/demo_render_fill_opa_255.png)bin16410 -> 16410 bytes
-rw-r--r--tests/ref_imgs/draw/render/argb8888/demo_render_image normal_opa_128.pngbin0 -> 48555 bytes
-rw-r--r--tests/ref_imgs/draw/render/argb8888/demo_render_image normal_opa_255.pngbin0 -> 55007 bytes
-rw-r--r--tests/ref_imgs/draw/render/argb8888/demo_render_image_recolor_opa_128.pngbin0 -> 44018 bytes
-rw-r--r--tests/ref_imgs/draw/render/argb8888/demo_render_image_recolor_opa_255.pngbin0 -> 50528 bytes
-rw-r--r--tests/ref_imgs/draw/render/argb8888/demo_render_layer_normal_opa_128.pngbin0 -> 65339 bytes
-rw-r--r--tests/ref_imgs/draw/render/argb8888/demo_render_layer_normal_opa_255.pngbin0 -> 61803 bytes
-rw-r--r--tests/ref_imgs/draw/render/argb8888/demo_render_line_opa_128.pngbin0 -> 14233 bytes
-rw-r--r--tests/ref_imgs/draw/render/argb8888/demo_render_line_opa_255.pngbin0 -> 14340 bytes
-rw-r--r--tests/ref_imgs/draw/render/argb8888/demo_render_text_opa_128.png (renamed from tests/ref_imgs/draw/render/demo_render_text_opa_128.png)bin17342 -> 17342 bytes
-rw-r--r--tests/ref_imgs/draw/render/argb8888/demo_render_text_opa_255.png (renamed from tests/ref_imgs/draw/render/demo_render_text_opa_255.png)bin16701 -> 16701 bytes
-rw-r--r--tests/ref_imgs/draw/render/argb8888/demo_render_triangle_opa_128.pngbin0 -> 19161 bytes
-rw-r--r--tests/ref_imgs/draw/render/argb8888/demo_render_triangle_opa_255.pngbin0 -> 22597 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb565/demo_render_arc_image_opa_128.pngbin0 -> 15946 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb565/demo_render_arc_image_opa_255.pngbin0 -> 17648 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb565/demo_render_arc_normal_opa_128.pngbin0 -> 10243 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb565/demo_render_arc_normal_opa_255.pngbin0 -> 11511 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb565/demo_render_border_opa_128.pngbin0 -> 8625 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb565/demo_render_border_opa_255.pngbin0 -> 9074 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb565/demo_render_box_shadow_opa_128.pngbin0 -> 12887 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb565/demo_render_box_shadow_opa_255.pngbin0 -> 14968 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb565/demo_render_fill_opa_128.pngbin0 -> 13427 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb565/demo_render_fill_opa_255.pngbin0 -> 15422 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb565/demo_render_image normal_opa_128.pngbin0 -> 33787 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb565/demo_render_image normal_opa_255.pngbin0 -> 43025 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb565/demo_render_image_recolor_opa_128.pngbin0 -> 31305 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb565/demo_render_image_recolor_opa_255.pngbin0 -> 40422 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb565/demo_render_layer_normal_opa_128.pngbin0 -> 49812 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb565/demo_render_layer_normal_opa_255.pngbin0 -> 51187 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb565/demo_render_line_opa_128.pngbin0 -> 12049 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb565/demo_render_line_opa_255.pngbin0 -> 12674 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb565/demo_render_text_opa_128.pngbin0 -> 16995 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb565/demo_render_text_opa_255.pngbin0 -> 17156 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb565/demo_render_triangle_opa_128.pngbin0 -> 14699 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb565/demo_render_triangle_opa_255.pngbin0 -> 19680 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb888/demo_render_arc_image_opa_128.png (renamed from tests/ref_imgs/draw/render/demo_render_arc_image_opa_128.png)bin18399 -> 18399 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb888/demo_render_arc_image_opa_255.png (renamed from tests/ref_imgs/draw/render/demo_render_arc_image_opa_255.png)bin19758 -> 19758 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb888/demo_render_arc_normal_opa_128.png (renamed from tests/ref_imgs/draw/render/demo_render_arc_normal_opa_128.png)bin11879 -> 11879 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb888/demo_render_arc_normal_opa_255.png (renamed from tests/ref_imgs/draw/render/demo_render_arc_normal_opa_255.png)bin12552 -> 12552 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb888/demo_render_border_opa_128.pngbin0 -> 9322 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb888/demo_render_border_opa_255.pngbin0 -> 9352 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb888/demo_render_box_shadow_opa_128.png (renamed from tests/ref_imgs/draw/render/demo_render_box_shadow_opa_128.png)bin16638 -> 16638 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb888/demo_render_box_shadow_opa_255.png (renamed from tests/ref_imgs/draw/render/demo_render_box_shadow_opa_255.png)bin18543 -> 18543 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb888/demo_render_fill_opa_128.pngbin0 -> 15249 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb888/demo_render_fill_opa_255.pngbin0 -> 16410 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb888/demo_render_image normal_opa_128.png (renamed from tests/ref_imgs/draw/render/demo_render_image normal_opa_128.png)bin48620 -> 48620 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb888/demo_render_image normal_opa_255.png (renamed from tests/ref_imgs/draw/render/demo_render_image normal_opa_255.png)bin55019 -> 55019 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb888/demo_render_image_recolor_opa_128.png (renamed from tests/ref_imgs/draw/render/demo_render_image_recolor_opa_128.png)bin44077 -> 44077 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb888/demo_render_image_recolor_opa_255.png (renamed from tests/ref_imgs/draw/render/demo_render_image_recolor_opa_255.png)bin50543 -> 50543 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb888/demo_render_layer_normal_opa_128.png (renamed from tests/ref_imgs/draw/render/demo_render_layer_normal_opa_128.png)bin65401 -> 65401 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb888/demo_render_layer_normal_opa_255.png (renamed from tests/ref_imgs/draw/render/demo_render_layer_normal_opa_255.png)bin61844 -> 61844 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb888/demo_render_line_opa_128.png (renamed from tests/ref_imgs/draw/render/demo_render_line_opa_128.png)bin14543 -> 14543 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb888/demo_render_line_opa_255.png (renamed from tests/ref_imgs/draw/render/demo_render_line_opa_255.png)bin14427 -> 14427 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb888/demo_render_text_opa_128.pngbin0 -> 17342 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb888/demo_render_text_opa_255.pngbin0 -> 16701 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb888/demo_render_triangle_opa_128.png (renamed from tests/ref_imgs/draw/render/demo_render_triangle_opa_128.png)bin19294 -> 19294 bytes
-rw-r--r--tests/ref_imgs/draw/render/rgb888/demo_render_triangle_opa_255.png (renamed from tests/ref_imgs/draw/render/demo_render_triangle_opa_255.png)bin22629 -> 22629 bytes
-rw-r--r--tests/ref_imgs/draw/render/xrgb8888/demo_render_arc_image_opa_128.pngbin0 -> 18399 bytes
-rw-r--r--tests/ref_imgs/draw/render/xrgb8888/demo_render_arc_image_opa_255.pngbin0 -> 19758 bytes
-rw-r--r--tests/ref_imgs/draw/render/xrgb8888/demo_render_arc_normal_opa_128.pngbin0 -> 11879 bytes
-rw-r--r--tests/ref_imgs/draw/render/xrgb8888/demo_render_arc_normal_opa_255.pngbin0 -> 12552 bytes
-rw-r--r--tests/ref_imgs/draw/render/xrgb8888/demo_render_border_opa_128.pngbin0 -> 9322 bytes
-rw-r--r--tests/ref_imgs/draw/render/xrgb8888/demo_render_border_opa_255.pngbin0 -> 9352 bytes
-rw-r--r--tests/ref_imgs/draw/render/xrgb8888/demo_render_box_shadow_opa_128.pngbin0 -> 16638 bytes
-rw-r--r--tests/ref_imgs/draw/render/xrgb8888/demo_render_box_shadow_opa_255.pngbin0 -> 18543 bytes
-rw-r--r--tests/ref_imgs/draw/render/xrgb8888/demo_render_fill_opa_128.pngbin0 -> 15249 bytes
-rw-r--r--tests/ref_imgs/draw/render/xrgb8888/demo_render_fill_opa_255.pngbin0 -> 16410 bytes
-rw-r--r--tests/ref_imgs/draw/render/xrgb8888/demo_render_image normal_opa_128.pngbin0 -> 48620 bytes
-rw-r--r--tests/ref_imgs/draw/render/xrgb8888/demo_render_image normal_opa_255.pngbin0 -> 55019 bytes
-rw-r--r--tests/ref_imgs/draw/render/xrgb8888/demo_render_image_recolor_opa_128.pngbin0 -> 44077 bytes
-rw-r--r--tests/ref_imgs/draw/render/xrgb8888/demo_render_image_recolor_opa_255.pngbin0 -> 50543 bytes
-rw-r--r--tests/ref_imgs/draw/render/xrgb8888/demo_render_layer_normal_opa_128.pngbin0 -> 65401 bytes
-rw-r--r--tests/ref_imgs/draw/render/xrgb8888/demo_render_layer_normal_opa_255.pngbin0 -> 61844 bytes
-rw-r--r--tests/ref_imgs/draw/render/xrgb8888/demo_render_line_opa_128.pngbin0 -> 14543 bytes
-rw-r--r--tests/ref_imgs/draw/render/xrgb8888/demo_render_line_opa_255.pngbin0 -> 14427 bytes
-rw-r--r--tests/ref_imgs/draw/render/xrgb8888/demo_render_text_opa_128.pngbin0 -> 17342 bytes
-rw-r--r--tests/ref_imgs/draw/render/xrgb8888/demo_render_text_opa_255.pngbin0 -> 16701 bytes
-rw-r--r--tests/ref_imgs/draw/render/xrgb8888/demo_render_triangle_opa_128.pngbin0 -> 19294 bytes
-rw-r--r--tests/ref_imgs/draw/render/xrgb8888/demo_render_triangle_opa_255.pngbin0 -> 22629 bytes
-rw-r--r--tests/src/test_cases/draw/test_render_to_argb8888.c37
-rw-r--r--tests/src/test_cases/draw/test_render_to_rgb565.c (renamed from tests/src/test_cases/draw/test_render.c)10
-rw-r--r--tests/src/test_cases/draw/test_render_to_rgb888.c37
-rw-r--r--tests/src/test_cases/draw/test_render_to_xrgb8888.c37
-rw-r--r--tests/unity/unity_support.c98
93 files changed, 195 insertions, 24 deletions
diff --git a/tests/ref_imgs/draw/render/argb8888/demo_render_arc_image_opa_128.png b/tests/ref_imgs/draw/render/argb8888/demo_render_arc_image_opa_128.png
new file mode 100644
index 000000000..dc903d843
--- /dev/null
+++ b/tests/ref_imgs/draw/render/argb8888/demo_render_arc_image_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/argb8888/demo_render_arc_image_opa_255.png b/tests/ref_imgs/draw/render/argb8888/demo_render_arc_image_opa_255.png
new file mode 100644
index 000000000..c135ce299
--- /dev/null
+++ b/tests/ref_imgs/draw/render/argb8888/demo_render_arc_image_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/argb8888/demo_render_arc_normal_opa_128.png b/tests/ref_imgs/draw/render/argb8888/demo_render_arc_normal_opa_128.png
new file mode 100644
index 000000000..9cb8263d2
--- /dev/null
+++ b/tests/ref_imgs/draw/render/argb8888/demo_render_arc_normal_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/argb8888/demo_render_arc_normal_opa_255.png b/tests/ref_imgs/draw/render/argb8888/demo_render_arc_normal_opa_255.png
new file mode 100644
index 000000000..0aa4d3037
--- /dev/null
+++ b/tests/ref_imgs/draw/render/argb8888/demo_render_arc_normal_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/demo_render_border_opa_128.png b/tests/ref_imgs/draw/render/argb8888/demo_render_border_opa_128.png
index b2c1f0395..b2c1f0395 100644
--- a/tests/ref_imgs/draw/render/demo_render_border_opa_128.png
+++ b/tests/ref_imgs/draw/render/argb8888/demo_render_border_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/demo_render_border_opa_255.png b/tests/ref_imgs/draw/render/argb8888/demo_render_border_opa_255.png
index b633ebfbf..b633ebfbf 100644
--- a/tests/ref_imgs/draw/render/demo_render_border_opa_255.png
+++ b/tests/ref_imgs/draw/render/argb8888/demo_render_border_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/argb8888/demo_render_box_shadow_opa_128.png b/tests/ref_imgs/draw/render/argb8888/demo_render_box_shadow_opa_128.png
new file mode 100644
index 000000000..5dd1b592f
--- /dev/null
+++ b/tests/ref_imgs/draw/render/argb8888/demo_render_box_shadow_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/argb8888/demo_render_box_shadow_opa_255.png b/tests/ref_imgs/draw/render/argb8888/demo_render_box_shadow_opa_255.png
new file mode 100644
index 000000000..28d106dce
--- /dev/null
+++ b/tests/ref_imgs/draw/render/argb8888/demo_render_box_shadow_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/demo_render_fill_opa_128.png b/tests/ref_imgs/draw/render/argb8888/demo_render_fill_opa_128.png
index 9a6c327dc..9a6c327dc 100644
--- a/tests/ref_imgs/draw/render/demo_render_fill_opa_128.png
+++ b/tests/ref_imgs/draw/render/argb8888/demo_render_fill_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/demo_render_fill_opa_255.png b/tests/ref_imgs/draw/render/argb8888/demo_render_fill_opa_255.png
index 5b1ea22fc..5b1ea22fc 100644
--- a/tests/ref_imgs/draw/render/demo_render_fill_opa_255.png
+++ b/tests/ref_imgs/draw/render/argb8888/demo_render_fill_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/argb8888/demo_render_image normal_opa_128.png b/tests/ref_imgs/draw/render/argb8888/demo_render_image normal_opa_128.png
new file mode 100644
index 000000000..25817f7c5
--- /dev/null
+++ b/tests/ref_imgs/draw/render/argb8888/demo_render_image normal_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/argb8888/demo_render_image normal_opa_255.png b/tests/ref_imgs/draw/render/argb8888/demo_render_image normal_opa_255.png
new file mode 100644
index 000000000..ddf96b6fe
--- /dev/null
+++ b/tests/ref_imgs/draw/render/argb8888/demo_render_image normal_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/argb8888/demo_render_image_recolor_opa_128.png b/tests/ref_imgs/draw/render/argb8888/demo_render_image_recolor_opa_128.png
new file mode 100644
index 000000000..10679be6b
--- /dev/null
+++ b/tests/ref_imgs/draw/render/argb8888/demo_render_image_recolor_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/argb8888/demo_render_image_recolor_opa_255.png b/tests/ref_imgs/draw/render/argb8888/demo_render_image_recolor_opa_255.png
new file mode 100644
index 000000000..eeba5abec
--- /dev/null
+++ b/tests/ref_imgs/draw/render/argb8888/demo_render_image_recolor_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/argb8888/demo_render_layer_normal_opa_128.png b/tests/ref_imgs/draw/render/argb8888/demo_render_layer_normal_opa_128.png
new file mode 100644
index 000000000..bca80cba6
--- /dev/null
+++ b/tests/ref_imgs/draw/render/argb8888/demo_render_layer_normal_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/argb8888/demo_render_layer_normal_opa_255.png b/tests/ref_imgs/draw/render/argb8888/demo_render_layer_normal_opa_255.png
new file mode 100644
index 000000000..c66ae4a7a
--- /dev/null
+++ b/tests/ref_imgs/draw/render/argb8888/demo_render_layer_normal_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/argb8888/demo_render_line_opa_128.png b/tests/ref_imgs/draw/render/argb8888/demo_render_line_opa_128.png
new file mode 100644
index 000000000..c662a8d88
--- /dev/null
+++ b/tests/ref_imgs/draw/render/argb8888/demo_render_line_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/argb8888/demo_render_line_opa_255.png b/tests/ref_imgs/draw/render/argb8888/demo_render_line_opa_255.png
new file mode 100644
index 000000000..30d7e82ef
--- /dev/null
+++ b/tests/ref_imgs/draw/render/argb8888/demo_render_line_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/demo_render_text_opa_128.png b/tests/ref_imgs/draw/render/argb8888/demo_render_text_opa_128.png
index 81bdc54b6..81bdc54b6 100644
--- a/tests/ref_imgs/draw/render/demo_render_text_opa_128.png
+++ b/tests/ref_imgs/draw/render/argb8888/demo_render_text_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/demo_render_text_opa_255.png b/tests/ref_imgs/draw/render/argb8888/demo_render_text_opa_255.png
index 2b0b88996..2b0b88996 100644
--- a/tests/ref_imgs/draw/render/demo_render_text_opa_255.png
+++ b/tests/ref_imgs/draw/render/argb8888/demo_render_text_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/argb8888/demo_render_triangle_opa_128.png b/tests/ref_imgs/draw/render/argb8888/demo_render_triangle_opa_128.png
new file mode 100644
index 000000000..4aeeb5580
--- /dev/null
+++ b/tests/ref_imgs/draw/render/argb8888/demo_render_triangle_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/argb8888/demo_render_triangle_opa_255.png b/tests/ref_imgs/draw/render/argb8888/demo_render_triangle_opa_255.png
new file mode 100644
index 000000000..c4c942745
--- /dev/null
+++ b/tests/ref_imgs/draw/render/argb8888/demo_render_triangle_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/rgb565/demo_render_arc_image_opa_128.png b/tests/ref_imgs/draw/render/rgb565/demo_render_arc_image_opa_128.png
new file mode 100644
index 000000000..fed784f40
--- /dev/null
+++ b/tests/ref_imgs/draw/render/rgb565/demo_render_arc_image_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/rgb565/demo_render_arc_image_opa_255.png b/tests/ref_imgs/draw/render/rgb565/demo_render_arc_image_opa_255.png
new file mode 100644
index 000000000..63ce8fd7e
--- /dev/null
+++ b/tests/ref_imgs/draw/render/rgb565/demo_render_arc_image_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/rgb565/demo_render_arc_normal_opa_128.png b/tests/ref_imgs/draw/render/rgb565/demo_render_arc_normal_opa_128.png
new file mode 100644
index 000000000..2b59bf77c
--- /dev/null
+++ b/tests/ref_imgs/draw/render/rgb565/demo_render_arc_normal_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/rgb565/demo_render_arc_normal_opa_255.png b/tests/ref_imgs/draw/render/rgb565/demo_render_arc_normal_opa_255.png
new file mode 100644
index 000000000..a764f9821
--- /dev/null
+++ b/tests/ref_imgs/draw/render/rgb565/demo_render_arc_normal_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/rgb565/demo_render_border_opa_128.png b/tests/ref_imgs/draw/render/rgb565/demo_render_border_opa_128.png
new file mode 100644
index 000000000..4b79e19ed
--- /dev/null
+++ b/tests/ref_imgs/draw/render/rgb565/demo_render_border_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/rgb565/demo_render_border_opa_255.png b/tests/ref_imgs/draw/render/rgb565/demo_render_border_opa_255.png
new file mode 100644
index 000000000..eb9ef2c47
--- /dev/null
+++ b/tests/ref_imgs/draw/render/rgb565/demo_render_border_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/rgb565/demo_render_box_shadow_opa_128.png b/tests/ref_imgs/draw/render/rgb565/demo_render_box_shadow_opa_128.png
new file mode 100644
index 000000000..547f4723e
--- /dev/null
+++ b/tests/ref_imgs/draw/render/rgb565/demo_render_box_shadow_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/rgb565/demo_render_box_shadow_opa_255.png b/tests/ref_imgs/draw/render/rgb565/demo_render_box_shadow_opa_255.png
new file mode 100644
index 000000000..d8f004a41
--- /dev/null
+++ b/tests/ref_imgs/draw/render/rgb565/demo_render_box_shadow_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/rgb565/demo_render_fill_opa_128.png b/tests/ref_imgs/draw/render/rgb565/demo_render_fill_opa_128.png
new file mode 100644
index 000000000..458a308bf
--- /dev/null
+++ b/tests/ref_imgs/draw/render/rgb565/demo_render_fill_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/rgb565/demo_render_fill_opa_255.png b/tests/ref_imgs/draw/render/rgb565/demo_render_fill_opa_255.png
new file mode 100644
index 000000000..9860df14d
--- /dev/null
+++ b/tests/ref_imgs/draw/render/rgb565/demo_render_fill_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/rgb565/demo_render_image normal_opa_128.png b/tests/ref_imgs/draw/render/rgb565/demo_render_image normal_opa_128.png
new file mode 100644
index 000000000..7b727c285
--- /dev/null
+++ b/tests/ref_imgs/draw/render/rgb565/demo_render_image normal_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/rgb565/demo_render_image normal_opa_255.png b/tests/ref_imgs/draw/render/rgb565/demo_render_image normal_opa_255.png
new file mode 100644
index 000000000..08f659faf
--- /dev/null
+++ b/tests/ref_imgs/draw/render/rgb565/demo_render_image normal_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/rgb565/demo_render_image_recolor_opa_128.png b/tests/ref_imgs/draw/render/rgb565/demo_render_image_recolor_opa_128.png
new file mode 100644
index 000000000..cf06c2f81
--- /dev/null
+++ b/tests/ref_imgs/draw/render/rgb565/demo_render_image_recolor_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/rgb565/demo_render_image_recolor_opa_255.png b/tests/ref_imgs/draw/render/rgb565/demo_render_image_recolor_opa_255.png
new file mode 100644
index 000000000..659c9334b
--- /dev/null
+++ b/tests/ref_imgs/draw/render/rgb565/demo_render_image_recolor_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/rgb565/demo_render_layer_normal_opa_128.png b/tests/ref_imgs/draw/render/rgb565/demo_render_layer_normal_opa_128.png
new file mode 100644
index 000000000..f51dcd468
--- /dev/null
+++ b/tests/ref_imgs/draw/render/rgb565/demo_render_layer_normal_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/rgb565/demo_render_layer_normal_opa_255.png b/tests/ref_imgs/draw/render/rgb565/demo_render_layer_normal_opa_255.png
new file mode 100644
index 000000000..269b3653f
--- /dev/null
+++ b/tests/ref_imgs/draw/render/rgb565/demo_render_layer_normal_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/rgb565/demo_render_line_opa_128.png b/tests/ref_imgs/draw/render/rgb565/demo_render_line_opa_128.png
new file mode 100644
index 000000000..93d194aed
--- /dev/null
+++ b/tests/ref_imgs/draw/render/rgb565/demo_render_line_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/rgb565/demo_render_line_opa_255.png b/tests/ref_imgs/draw/render/rgb565/demo_render_line_opa_255.png
new file mode 100644
index 000000000..1e90e5eca
--- /dev/null
+++ b/tests/ref_imgs/draw/render/rgb565/demo_render_line_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/rgb565/demo_render_text_opa_128.png b/tests/ref_imgs/draw/render/rgb565/demo_render_text_opa_128.png
new file mode 100644
index 000000000..86e872173
--- /dev/null
+++ b/tests/ref_imgs/draw/render/rgb565/demo_render_text_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/rgb565/demo_render_text_opa_255.png b/tests/ref_imgs/draw/render/rgb565/demo_render_text_opa_255.png
new file mode 100644
index 000000000..e4fd50f8f
--- /dev/null
+++ b/tests/ref_imgs/draw/render/rgb565/demo_render_text_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/rgb565/demo_render_triangle_opa_128.png b/tests/ref_imgs/draw/render/rgb565/demo_render_triangle_opa_128.png
new file mode 100644
index 000000000..372bdc3ec
--- /dev/null
+++ b/tests/ref_imgs/draw/render/rgb565/demo_render_triangle_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/rgb565/demo_render_triangle_opa_255.png b/tests/ref_imgs/draw/render/rgb565/demo_render_triangle_opa_255.png
new file mode 100644
index 000000000..507032474
--- /dev/null
+++ b/tests/ref_imgs/draw/render/rgb565/demo_render_triangle_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/demo_render_arc_image_opa_128.png b/tests/ref_imgs/draw/render/rgb888/demo_render_arc_image_opa_128.png
index 927dbacd1..927dbacd1 100644
--- a/tests/ref_imgs/draw/render/demo_render_arc_image_opa_128.png
+++ b/tests/ref_imgs/draw/render/rgb888/demo_render_arc_image_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/demo_render_arc_image_opa_255.png b/tests/ref_imgs/draw/render/rgb888/demo_render_arc_image_opa_255.png
index ea87294bd..ea87294bd 100644
--- a/tests/ref_imgs/draw/render/demo_render_arc_image_opa_255.png
+++ b/tests/ref_imgs/draw/render/rgb888/demo_render_arc_image_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/demo_render_arc_normal_opa_128.png b/tests/ref_imgs/draw/render/rgb888/demo_render_arc_normal_opa_128.png
index 285826930..285826930 100644
--- a/tests/ref_imgs/draw/render/demo_render_arc_normal_opa_128.png
+++ b/tests/ref_imgs/draw/render/rgb888/demo_render_arc_normal_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/demo_render_arc_normal_opa_255.png b/tests/ref_imgs/draw/render/rgb888/demo_render_arc_normal_opa_255.png
index 4d0773dc6..4d0773dc6 100644
--- a/tests/ref_imgs/draw/render/demo_render_arc_normal_opa_255.png
+++ b/tests/ref_imgs/draw/render/rgb888/demo_render_arc_normal_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/rgb888/demo_render_border_opa_128.png b/tests/ref_imgs/draw/render/rgb888/demo_render_border_opa_128.png
new file mode 100644
index 000000000..b2c1f0395
--- /dev/null
+++ b/tests/ref_imgs/draw/render/rgb888/demo_render_border_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/rgb888/demo_render_border_opa_255.png b/tests/ref_imgs/draw/render/rgb888/demo_render_border_opa_255.png
new file mode 100644
index 000000000..b633ebfbf
--- /dev/null
+++ b/tests/ref_imgs/draw/render/rgb888/demo_render_border_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/demo_render_box_shadow_opa_128.png b/tests/ref_imgs/draw/render/rgb888/demo_render_box_shadow_opa_128.png
index aa285acfb..aa285acfb 100644
--- a/tests/ref_imgs/draw/render/demo_render_box_shadow_opa_128.png
+++ b/tests/ref_imgs/draw/render/rgb888/demo_render_box_shadow_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/demo_render_box_shadow_opa_255.png b/tests/ref_imgs/draw/render/rgb888/demo_render_box_shadow_opa_255.png
index 178e7a37a..178e7a37a 100644
--- a/tests/ref_imgs/draw/render/demo_render_box_shadow_opa_255.png
+++ b/tests/ref_imgs/draw/render/rgb888/demo_render_box_shadow_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/rgb888/demo_render_fill_opa_128.png b/tests/ref_imgs/draw/render/rgb888/demo_render_fill_opa_128.png
new file mode 100644
index 000000000..9a6c327dc
--- /dev/null
+++ b/tests/ref_imgs/draw/render/rgb888/demo_render_fill_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/rgb888/demo_render_fill_opa_255.png b/tests/ref_imgs/draw/render/rgb888/demo_render_fill_opa_255.png
new file mode 100644
index 000000000..5b1ea22fc
--- /dev/null
+++ b/tests/ref_imgs/draw/render/rgb888/demo_render_fill_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/demo_render_image normal_opa_128.png b/tests/ref_imgs/draw/render/rgb888/demo_render_image normal_opa_128.png
index d7fc1c460..d7fc1c460 100644
--- a/tests/ref_imgs/draw/render/demo_render_image normal_opa_128.png
+++ b/tests/ref_imgs/draw/render/rgb888/demo_render_image normal_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/demo_render_image normal_opa_255.png b/tests/ref_imgs/draw/render/rgb888/demo_render_image normal_opa_255.png
index 0824e2171..0824e2171 100644
--- a/tests/ref_imgs/draw/render/demo_render_image normal_opa_255.png
+++ b/tests/ref_imgs/draw/render/rgb888/demo_render_image normal_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/demo_render_image_recolor_opa_128.png b/tests/ref_imgs/draw/render/rgb888/demo_render_image_recolor_opa_128.png
index 0b79833f9..0b79833f9 100644
--- a/tests/ref_imgs/draw/render/demo_render_image_recolor_opa_128.png
+++ b/tests/ref_imgs/draw/render/rgb888/demo_render_image_recolor_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/demo_render_image_recolor_opa_255.png b/tests/ref_imgs/draw/render/rgb888/demo_render_image_recolor_opa_255.png
index b3da87b0f..b3da87b0f 100644
--- a/tests/ref_imgs/draw/render/demo_render_image_recolor_opa_255.png
+++ b/tests/ref_imgs/draw/render/rgb888/demo_render_image_recolor_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/demo_render_layer_normal_opa_128.png b/tests/ref_imgs/draw/render/rgb888/demo_render_layer_normal_opa_128.png
index 711e3f680..711e3f680 100644
--- a/tests/ref_imgs/draw/render/demo_render_layer_normal_opa_128.png
+++ b/tests/ref_imgs/draw/render/rgb888/demo_render_layer_normal_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/demo_render_layer_normal_opa_255.png b/tests/ref_imgs/draw/render/rgb888/demo_render_layer_normal_opa_255.png
index c8ce3fcd7..c8ce3fcd7 100644
--- a/tests/ref_imgs/draw/render/demo_render_layer_normal_opa_255.png
+++ b/tests/ref_imgs/draw/render/rgb888/demo_render_layer_normal_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/demo_render_line_opa_128.png b/tests/ref_imgs/draw/render/rgb888/demo_render_line_opa_128.png
index 58afb5cf7..58afb5cf7 100644
--- a/tests/ref_imgs/draw/render/demo_render_line_opa_128.png
+++ b/tests/ref_imgs/draw/render/rgb888/demo_render_line_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/demo_render_line_opa_255.png b/tests/ref_imgs/draw/render/rgb888/demo_render_line_opa_255.png
index 2fd674f8e..2fd674f8e 100644
--- a/tests/ref_imgs/draw/render/demo_render_line_opa_255.png
+++ b/tests/ref_imgs/draw/render/rgb888/demo_render_line_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/rgb888/demo_render_text_opa_128.png b/tests/ref_imgs/draw/render/rgb888/demo_render_text_opa_128.png
new file mode 100644
index 000000000..81bdc54b6
--- /dev/null
+++ b/tests/ref_imgs/draw/render/rgb888/demo_render_text_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/rgb888/demo_render_text_opa_255.png b/tests/ref_imgs/draw/render/rgb888/demo_render_text_opa_255.png
new file mode 100644
index 000000000..2b0b88996
--- /dev/null
+++ b/tests/ref_imgs/draw/render/rgb888/demo_render_text_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/demo_render_triangle_opa_128.png b/tests/ref_imgs/draw/render/rgb888/demo_render_triangle_opa_128.png
index 95f7fc463..95f7fc463 100644
--- a/tests/ref_imgs/draw/render/demo_render_triangle_opa_128.png
+++ b/tests/ref_imgs/draw/render/rgb888/demo_render_triangle_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/demo_render_triangle_opa_255.png b/tests/ref_imgs/draw/render/rgb888/demo_render_triangle_opa_255.png
index fdc86a070..fdc86a070 100644
--- a/tests/ref_imgs/draw/render/demo_render_triangle_opa_255.png
+++ b/tests/ref_imgs/draw/render/rgb888/demo_render_triangle_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/xrgb8888/demo_render_arc_image_opa_128.png b/tests/ref_imgs/draw/render/xrgb8888/demo_render_arc_image_opa_128.png
new file mode 100644
index 000000000..927dbacd1
--- /dev/null
+++ b/tests/ref_imgs/draw/render/xrgb8888/demo_render_arc_image_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/xrgb8888/demo_render_arc_image_opa_255.png b/tests/ref_imgs/draw/render/xrgb8888/demo_render_arc_image_opa_255.png
new file mode 100644
index 000000000..ea87294bd
--- /dev/null
+++ b/tests/ref_imgs/draw/render/xrgb8888/demo_render_arc_image_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/xrgb8888/demo_render_arc_normal_opa_128.png b/tests/ref_imgs/draw/render/xrgb8888/demo_render_arc_normal_opa_128.png
new file mode 100644
index 000000000..285826930
--- /dev/null
+++ b/tests/ref_imgs/draw/render/xrgb8888/demo_render_arc_normal_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/xrgb8888/demo_render_arc_normal_opa_255.png b/tests/ref_imgs/draw/render/xrgb8888/demo_render_arc_normal_opa_255.png
new file mode 100644
index 000000000..4d0773dc6
--- /dev/null
+++ b/tests/ref_imgs/draw/render/xrgb8888/demo_render_arc_normal_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/xrgb8888/demo_render_border_opa_128.png b/tests/ref_imgs/draw/render/xrgb8888/demo_render_border_opa_128.png
new file mode 100644
index 000000000..b2c1f0395
--- /dev/null
+++ b/tests/ref_imgs/draw/render/xrgb8888/demo_render_border_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/xrgb8888/demo_render_border_opa_255.png b/tests/ref_imgs/draw/render/xrgb8888/demo_render_border_opa_255.png
new file mode 100644
index 000000000..b633ebfbf
--- /dev/null
+++ b/tests/ref_imgs/draw/render/xrgb8888/demo_render_border_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/xrgb8888/demo_render_box_shadow_opa_128.png b/tests/ref_imgs/draw/render/xrgb8888/demo_render_box_shadow_opa_128.png
new file mode 100644
index 000000000..aa285acfb
--- /dev/null
+++ b/tests/ref_imgs/draw/render/xrgb8888/demo_render_box_shadow_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/xrgb8888/demo_render_box_shadow_opa_255.png b/tests/ref_imgs/draw/render/xrgb8888/demo_render_box_shadow_opa_255.png
new file mode 100644
index 000000000..178e7a37a
--- /dev/null
+++ b/tests/ref_imgs/draw/render/xrgb8888/demo_render_box_shadow_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/xrgb8888/demo_render_fill_opa_128.png b/tests/ref_imgs/draw/render/xrgb8888/demo_render_fill_opa_128.png
new file mode 100644
index 000000000..9a6c327dc
--- /dev/null
+++ b/tests/ref_imgs/draw/render/xrgb8888/demo_render_fill_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/xrgb8888/demo_render_fill_opa_255.png b/tests/ref_imgs/draw/render/xrgb8888/demo_render_fill_opa_255.png
new file mode 100644
index 000000000..5b1ea22fc
--- /dev/null
+++ b/tests/ref_imgs/draw/render/xrgb8888/demo_render_fill_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/xrgb8888/demo_render_image normal_opa_128.png b/tests/ref_imgs/draw/render/xrgb8888/demo_render_image normal_opa_128.png
new file mode 100644
index 000000000..d7fc1c460
--- /dev/null
+++ b/tests/ref_imgs/draw/render/xrgb8888/demo_render_image normal_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/xrgb8888/demo_render_image normal_opa_255.png b/tests/ref_imgs/draw/render/xrgb8888/demo_render_image normal_opa_255.png
new file mode 100644
index 000000000..0824e2171
--- /dev/null
+++ b/tests/ref_imgs/draw/render/xrgb8888/demo_render_image normal_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/xrgb8888/demo_render_image_recolor_opa_128.png b/tests/ref_imgs/draw/render/xrgb8888/demo_render_image_recolor_opa_128.png
new file mode 100644
index 000000000..0b79833f9
--- /dev/null
+++ b/tests/ref_imgs/draw/render/xrgb8888/demo_render_image_recolor_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/xrgb8888/demo_render_image_recolor_opa_255.png b/tests/ref_imgs/draw/render/xrgb8888/demo_render_image_recolor_opa_255.png
new file mode 100644
index 000000000..b3da87b0f
--- /dev/null
+++ b/tests/ref_imgs/draw/render/xrgb8888/demo_render_image_recolor_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/xrgb8888/demo_render_layer_normal_opa_128.png b/tests/ref_imgs/draw/render/xrgb8888/demo_render_layer_normal_opa_128.png
new file mode 100644
index 000000000..711e3f680
--- /dev/null
+++ b/tests/ref_imgs/draw/render/xrgb8888/demo_render_layer_normal_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/xrgb8888/demo_render_layer_normal_opa_255.png b/tests/ref_imgs/draw/render/xrgb8888/demo_render_layer_normal_opa_255.png
new file mode 100644
index 000000000..c8ce3fcd7
--- /dev/null
+++ b/tests/ref_imgs/draw/render/xrgb8888/demo_render_layer_normal_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/xrgb8888/demo_render_line_opa_128.png b/tests/ref_imgs/draw/render/xrgb8888/demo_render_line_opa_128.png
new file mode 100644
index 000000000..58afb5cf7
--- /dev/null
+++ b/tests/ref_imgs/draw/render/xrgb8888/demo_render_line_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/xrgb8888/demo_render_line_opa_255.png b/tests/ref_imgs/draw/render/xrgb8888/demo_render_line_opa_255.png
new file mode 100644
index 000000000..2fd674f8e
--- /dev/null
+++ b/tests/ref_imgs/draw/render/xrgb8888/demo_render_line_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/xrgb8888/demo_render_text_opa_128.png b/tests/ref_imgs/draw/render/xrgb8888/demo_render_text_opa_128.png
new file mode 100644
index 000000000..81bdc54b6
--- /dev/null
+++ b/tests/ref_imgs/draw/render/xrgb8888/demo_render_text_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/xrgb8888/demo_render_text_opa_255.png b/tests/ref_imgs/draw/render/xrgb8888/demo_render_text_opa_255.png
new file mode 100644
index 000000000..2b0b88996
--- /dev/null
+++ b/tests/ref_imgs/draw/render/xrgb8888/demo_render_text_opa_255.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/xrgb8888/demo_render_triangle_opa_128.png b/tests/ref_imgs/draw/render/xrgb8888/demo_render_triangle_opa_128.png
new file mode 100644
index 000000000..95f7fc463
--- /dev/null
+++ b/tests/ref_imgs/draw/render/xrgb8888/demo_render_triangle_opa_128.png
Binary files differ
diff --git a/tests/ref_imgs/draw/render/xrgb8888/demo_render_triangle_opa_255.png b/tests/ref_imgs/draw/render/xrgb8888/demo_render_triangle_opa_255.png
new file mode 100644
index 000000000..fdc86a070
--- /dev/null
+++ b/tests/ref_imgs/draw/render/xrgb8888/demo_render_triangle_opa_255.png
Binary files differ
diff --git a/tests/src/test_cases/draw/test_render_to_argb8888.c b/tests/src/test_cases/draw/test_render_to_argb8888.c
new file mode 100644
index 000000000..5db900186
--- /dev/null
+++ b/tests/src/test_cases/draw/test_render_to_argb8888.c
@@ -0,0 +1,37 @@
+#if LV_BUILD_TEST || 1
+#include "../lvgl.h"
+#include "../demos/lv_demos.h"
+
+#include "unity/unity.h"
+
+void setUp(void)
+{
+ /* Function run before every test */
+}
+
+void tearDown(void)
+{
+ /* Function run after every test */
+ lv_display_set_color_format(NULL, LV_COLOR_FORMAT_XRGB8888);
+}
+
+void test_render_to_rgb565(void)
+{
+ lv_display_set_color_format(NULL, LV_COLOR_FORMAT_ARGB8888);
+
+ lv_opa_t opa_values[2] = {0xff, 0x80};
+ uint32_t opa;
+ for(opa = 0; opa < 2; opa++) {
+ uint32_t i;
+ for(i = 0; i < _LV_DEMO_RENDER_SCENE_NUM; i++) {
+ lv_demo_render(i, opa_values[opa]);
+
+ char buf[128];
+ lv_snprintf(buf, sizeof(buf), "draw/render/argb8888/demo_render_%s_opa_%d.png",
+ lv_demo_render_get_scene_name(i), opa_values[opa]);
+ TEST_ASSERT_EQUAL_SCREENSHOT(buf);
+ }
+ }
+}
+
+#endif
diff --git a/tests/src/test_cases/draw/test_render.c b/tests/src/test_cases/draw/test_render_to_rgb565.c
index 905731da1..a1e0058f1 100644
--- a/tests/src/test_cases/draw/test_render.c
+++ b/tests/src/test_cases/draw/test_render_to_rgb565.c
@@ -1,4 +1,4 @@
-#if LV_BUILD_TEST
+#if LV_BUILD_TEST || 1
#include "../lvgl.h"
#include "../demos/lv_demos.h"
@@ -12,12 +12,14 @@ void setUp(void)
void tearDown(void)
{
/* Function run after every test */
+ lv_display_set_color_format(NULL, LV_COLOR_FORMAT_XRGB8888);
}
-void test_render(void)
+void test_render_to_rgb565(void)
{
- lv_opa_t opa_values[2] = {0xff, 0x80};
+ lv_display_set_color_format(NULL, LV_COLOR_FORMAT_RGB565);
+ lv_opa_t opa_values[2] = {0xff, 0x80};
uint32_t opa;
for(opa = 0; opa < 2; opa++) {
uint32_t i;
@@ -25,7 +27,7 @@ void test_render(void)
lv_demo_render(i, opa_values[opa]);
char buf[128];
- lv_snprintf(buf, sizeof(buf), "draw/render/demo_render_%s_opa_%d.png",
+ lv_snprintf(buf, sizeof(buf), "draw/render/rgb565/demo_render_%s_opa_%d.png",
lv_demo_render_get_scene_name(i), opa_values[opa]);
TEST_ASSERT_EQUAL_SCREENSHOT(buf);
}
diff --git a/tests/src/test_cases/draw/test_render_to_rgb888.c b/tests/src/test_cases/draw/test_render_to_rgb888.c
new file mode 100644
index 000000000..77aa13d9b
--- /dev/null
+++ b/tests/src/test_cases/draw/test_render_to_rgb888.c
@@ -0,0 +1,37 @@
+#if LV_BUILD_TEST || 1
+#include "../lvgl.h"
+#include "../demos/lv_demos.h"
+
+#include "unity/unity.h"
+
+void setUp(void)
+{
+ /* Function run before every test */
+}
+
+void tearDown(void)
+{
+ /* Function run after every test */
+ lv_display_set_color_format(NULL, LV_COLOR_FORMAT_XRGB8888);
+}
+
+void test_render_to_rgb565(void)
+{
+ lv_display_set_color_format(NULL, LV_COLOR_FORMAT_RGB888);
+
+ lv_opa_t opa_values[2] = {0xff, 0x80};
+ uint32_t opa;
+ for(opa = 0; opa < 2; opa++) {
+ uint32_t i;
+ for(i = 0; i < _LV_DEMO_RENDER_SCENE_NUM; i++) {
+ lv_demo_render(i, opa_values[opa]);
+
+ char buf[128];
+ lv_snprintf(buf, sizeof(buf), "draw/render/rgb888/demo_render_%s_opa_%d.png",
+ lv_demo_render_get_scene_name(i), opa_values[opa]);
+ TEST_ASSERT_EQUAL_SCREENSHOT(buf);
+ }
+ }
+}
+
+#endif
diff --git a/tests/src/test_cases/draw/test_render_to_xrgb8888.c b/tests/src/test_cases/draw/test_render_to_xrgb8888.c
new file mode 100644
index 000000000..2dde2efab
--- /dev/null
+++ b/tests/src/test_cases/draw/test_render_to_xrgb8888.c
@@ -0,0 +1,37 @@
+#if LV_BUILD_TEST || 1
+#include "../lvgl.h"
+#include "../demos/lv_demos.h"
+
+#include "unity/unity.h"
+
+void setUp(void)
+{
+ /* Function run before every test */
+}
+
+void tearDown(void)
+{
+ /* Function run after every test */
+ lv_display_set_color_format(NULL, LV_COLOR_FORMAT_XRGB8888);
+}
+
+void test_render_to_rgb565(void)
+{
+ lv_display_set_color_format(NULL, LV_COLOR_FORMAT_XRGB8888);
+
+ lv_opa_t opa_values[2] = {0xff, 0x80};
+ uint32_t opa;
+ for(opa = 0; opa < 2; opa++) {
+ uint32_t i;
+ for(i = 0; i < _LV_DEMO_RENDER_SCENE_NUM; i++) {
+ lv_demo_render(i, opa_values[opa]);
+
+ char buf[128];
+ lv_snprintf(buf, sizeof(buf), "draw/render/xrgb8888/demo_render_%s_opa_%d.png",
+ lv_demo_render_get_scene_name(i), opa_values[opa]);
+ TEST_ASSERT_EQUAL_SCREENSHOT(buf);
+ }
+ }
+}
+
+#endif
diff --git a/tests/unity/unity_support.c b/tests/unity/unity_support.c
index c1382fd47..7d269998e 100644
--- a/tests/unity/unity_support.c
+++ b/tests/unity/unity_support.c
@@ -51,6 +51,7 @@ static bool screenhot_compare(const char * fn_ref, const char * mode, uint8_t to
static int read_png_file(png_image_t * p, const char * file_name);
static int write_png_file(void * raw_img, uint32_t width, uint32_t height, char * file_name);
static void png_release(png_image_t * p);
+static void buf_to_xrgb8888(const uint8_t * buf_in, uint8_t * buf_out, lv_color_format_t cf_in);
/**********************
* STATIC VARIABLES
@@ -117,6 +118,7 @@ bool lv_test_assert_image_eq(const char * fn_ref)
* STATIC FUNCTIONS
**********************/
+static uint8_t screen_buf_xrgb8888[800 * 480 * 4];
/**
* Compare the content of the frame buffer with a reference image
* @param fn_ref reference image name
@@ -132,14 +134,17 @@ static bool screenhot_compare(const char * fn_ref, const char * mode, uint8_t to
lv_refr_now(NULL);
extern uint8_t * last_flushed_buf;
- uint8_t * screen_buf = lv_draw_buf_align(last_flushed_buf, LV_COLOR_FORMAT_XRGB8888);
+
+ lv_color_format_t cf = lv_display_get_color_format(NULL);
+ uint8_t * screen_buf = lv_draw_buf_align(last_flushed_buf, cf);
+ buf_to_xrgb8888(screen_buf, screen_buf_xrgb8888, cf);
png_image_t p;
int res = read_png_file(&p, fn_ref_full);
if(res == ERR_FILE_NOT_FOUND) {
TEST_PRINTF("%s%s", fn_ref_full, " was not found, creating is now from the rendered screen");
fflush(stderr);
- write_png_file(screen_buf, 800, 480, fn_ref_full);
+ write_png_file(screen_buf_xrgb8888, 800, 480, fn_ref_full);
return true;
}
else if(res == ERR_PNG) {
@@ -150,27 +155,27 @@ static bool screenhot_compare(const char * fn_ref, const char * mode, uint8_t to
const png_byte * ptr_ref = NULL;
bool err = false;
- uint32_t stride = lv_draw_buf_width_to_stride(800, LV_COLOR_FORMAT_ARGB8888);
int x, y;
for(y = 0; y < p.height; y++) {
- uint8_t * screen_buf_tmp = screen_buf + stride * y;
+ uint8_t * screen_buf_tmp = screen_buf_xrgb8888 + 800 * 4 * y;
png_byte * row = p.row_pointers[y];
for(x = 0; x < p.width; x++) {
ptr_ref = &(row[x * 3]);
ptr_act = screen_buf_tmp;
- uint32_t ref_px = 0;
- uint32_t act_px = 0;
- memcpy(&ref_px, ptr_ref, 3);
- memcpy(&act_px, ptr_act, 3);
-
- uint8_t act_swap[3] = {ptr_act[2], ptr_act[1], ptr_act[0]};
-
- if(LV_ABS((int32_t) act_swap[0] - ptr_ref[0]) > tolerance ||
- LV_ABS((int32_t) act_swap[1] - ptr_ref[1]) > tolerance ||
- LV_ABS((int32_t) act_swap[2] - ptr_ref[2]) > tolerance) {
- uint32_t act_swap_32 = (act_swap[2] << 16) + (act_swap[1] << 8) + (act_swap[0] << 0);
- TEST_PRINTF("Error %s on x:%d, y:%d.\nExpected: %X\nActual: %X", mode, x, y, ref_px, act_swap_32);
+ if(LV_ABS((int32_t) ptr_act[0] - ptr_ref[0]) > tolerance ||
+ LV_ABS((int32_t) ptr_act[1] - ptr_ref[1]) > tolerance ||
+ LV_ABS((int32_t) ptr_act[2] - ptr_ref[2]) > tolerance) {
+ uint32_t act_px = (ptr_act[2] << 16) + (ptr_act[1] << 8) + (ptr_act[0] << 0);
+ uint32_t ref_px = 0;
+ memcpy(&ref_px, ptr_ref, 3);
+ TEST_PRINTF("\nScreenshot compare error\n"
+ " - File: %s\n"
+ " - Mode: %s\n"
+ " - At x:%d, y:%d.\n"
+ " - Expected: %X\n"
+ " - Actual: %X",
+ fn_ref_full, mode, x, y, ref_px, act_px);
fflush(stderr);
err = true;
break;
@@ -181,14 +186,14 @@ static bool screenhot_compare(const char * fn_ref, const char * mode, uint8_t to
}
if(err) {
- char fn_ref_no_ext[64];
+ char fn_ref_no_ext[256];
strcpy(fn_ref_no_ext, fn_ref);
fn_ref_no_ext[strlen(fn_ref_no_ext) - 4] = '\0';
char fn_err_full[512];
sprintf(fn_err_full, "%s%s_err.png", REF_IMGS_PATH, fn_ref_no_ext);
- write_png_file(screen_buf, 800, 480, fn_err_full);
+ write_png_file(screen_buf_xrgb8888, 800, 480, fn_err_full);
}
png_release(&p);
@@ -322,9 +327,9 @@ static int write_png_file(void * raw_img, uint32_t width, uint32_t height, char
row_pointers[y] = malloc(3 * width);
uint8_t * line = raw_img8 + y * width * 4;
for(uint32_t x = 0; x < width; x++) {
- row_pointers[y][x * 3 + 0] = line[x * 4 + 2];
+ row_pointers[y][x * 3 + 0] = line[x * 4 + 0];
row_pointers[y][x * 3 + 1] = line[x * 4 + 1];
- row_pointers[y][x * 3 + 2] = line[x * 4 + 0];
+ row_pointers[y][x * 3 + 2] = line[x * 4 + 2];
}
}
png_write_image(png_ptr, row_pointers);
@@ -356,4 +361,57 @@ static void png_release(png_image_t * p)
png_destroy_read_struct(&p->png_ptr, &p->info_ptr, NULL);
}
+static void buf_to_xrgb8888(const uint8_t * buf_in, uint8_t * buf_out, lv_color_format_t cf_in)
+{
+ uint32_t stride = lv_draw_buf_width_to_stride(800, cf_in);
+ if(cf_in == LV_COLOR_FORMAT_RGB565) {
+ uint32_t y;
+ for(y = 0; y < 480; y++) {
+
+ uint32_t x;
+ for(x = 0; x < 800; x++) {
+ const lv_color16_t * c16 = (const lv_color16_t *)&buf_in[x * 2];
+
+ buf_out[x * 4 + 3] = 0xff;
+ buf_out[x * 4 + 2] = (c16->blue * 2106) >> 8; /*To make it rounded*/
+ buf_out[x * 4 + 1] = (c16->green * 1037) >> 8;
+ buf_out[x * 4 + 0] = (c16->red * 2106) >> 8;
+ }
+
+ buf_in += stride;
+ buf_out += 800 * 4;
+ }
+ }
+ else if(cf_in == LV_COLOR_FORMAT_ARGB8888 || cf_in == LV_COLOR_FORMAT_XRGB8888) {
+ uint32_t y;
+ for(y = 0; y < 480; y++) {
+ uint32_t x;
+ for(x = 0; x < 800; x++) {
+ buf_out[x * 4 + 3] = buf_in[x * 4 + 3];
+ buf_out[x * 4 + 2] = buf_in[x * 4 + 0];
+ buf_out[x * 4 + 1] = buf_in[x * 4 + 1];
+ buf_out[x * 4 + 0] = buf_in[x * 4 + 2];
+ }
+
+ buf_in += stride;
+ buf_out += 800 * 4;
+ }
+ }
+ else if(cf_in == LV_COLOR_FORMAT_RGB888) {
+ uint32_t y;
+ for(y = 0; y < 480; y++) {
+ uint32_t x;
+ for(x = 0; x < 800; x++) {
+ buf_out[x * 4 + 3] = 0xff;
+ buf_out[x * 4 + 2] = buf_in[x * 3 + 0];
+ buf_out[x * 4 + 1] = buf_in[x * 3 + 1];
+ buf_out[x * 4 + 0] = buf_in[x * 3 + 2];
+ }
+
+ buf_in += stride;
+ buf_out += 800 * 4;
+ }
+ }
+}
+
#endif