From bbe5f032e66776b97144e91b3f001d8dae8b65eb Mon Sep 17 00:00:00 2001 From: Zhang Ji Peng Date: Tue, 15 Oct 2024 21:33:27 +0800 Subject: [PATCH] feat(libs): add SVG rendering support (#6845) Signed-off-by: zhangjipeng Co-authored-by: zhangjipeng --- Kconfig | 8 + docs/libs/svg.rst | 49 + examples/libs/lv_example_libs.h | 1 + examples/libs/svg/index.rst | 6 + examples/libs/svg/lv_example_svg.h | 38 + examples/libs/svg/lv_example_svg_1.c | 36 + lv_conf_template.h | 5 + lvgl.h | 5 +- src/libs/svg/lv_svg.c | 125 + src/libs/svg/lv_svg.h | 334 +++ src/libs/svg/lv_svg_parser.c | 2309 +++++++++++++++++ src/libs/svg/lv_svg_parser.h | 84 + src/libs/svg/lv_svg_render.c | 2204 ++++++++++++++++ src/libs/svg/lv_svg_render.h | 98 + src/libs/svg/lv_svg_token.c | 483 ++++ src/libs/svg/lv_svg_token.h | 70 + src/lv_conf_internal.h | 23 + src/misc/lv_tree.c | 187 ++ src/misc/lv_tree.h | 105 + tests/CMakeLists.txt | 1 + .../ref_imgs/draw/svg_draw_svg_com_1.lp32.png | Bin 0 -> 5197 bytes .../ref_imgs/draw/svg_draw_svg_com_1.lp64.png | Bin 0 -> 5354 bytes .../ref_imgs/draw/svg_draw_svg_com_2.lp32.png | Bin 0 -> 6345 bytes .../ref_imgs/draw/svg_draw_svg_com_2.lp64.png | Bin 0 -> 6488 bytes .../ref_imgs/draw/svg_draw_svg_com_3.lp32.png | Bin 0 -> 9820 bytes .../ref_imgs/draw/svg_draw_svg_com_3.lp64.png | Bin 0 -> 9820 bytes .../ref_imgs/draw/svg_draw_svg_com_4.lp32.png | Bin 0 -> 10404 bytes .../ref_imgs/draw/svg_draw_svg_com_4.lp64.png | Bin 0 -> 10397 bytes .../ref_imgs/draw/svg_draw_svg_com_5.lp32.png | Bin 0 -> 10170 bytes .../ref_imgs/draw/svg_draw_svg_com_5.lp64.png | Bin 0 -> 10170 bytes .../ref_imgs/draw/svg_draw_svg_com_6.lp32.png | Bin 0 -> 3772 bytes .../ref_imgs/draw/svg_draw_svg_com_6.lp64.png | Bin 0 -> 3773 bytes .../ref_imgs/draw/svg_draw_svg_com_7.lp32.png | Bin 0 -> 2960 bytes .../ref_imgs/draw/svg_draw_svg_com_7.lp64.png | Bin 0 -> 2960 bytes .../ref_imgs/draw/svg_draw_svg_com_8.lp32.png | Bin 0 -> 2267 bytes .../draw/svg_draw_svg_group_1.lp32.png | Bin 0 -> 6592 bytes .../draw/svg_draw_svg_group_1.lp64.png | Bin 0 -> 6590 bytes .../draw/svg_draw_svg_group_2.lp32.png | Bin 0 -> 4809 bytes .../draw/svg_draw_svg_group_2.lp64.png | Bin 0 -> 4809 bytes .../draw/svg_draw_svg_group_3.lp32.png | Bin 0 -> 2314 bytes .../draw/svg_draw_svg_group_3.lp64.png | Bin 0 -> 2314 bytes .../draw/svg_draw_svg_group_4.lp32.png | Bin 0 -> 2405 bytes .../draw/svg_draw_svg_group_4.lp64.png | Bin 0 -> 2405 bytes .../draw/svg_draw_svg_image_0.lp32.png | Bin 0 -> 55934 bytes .../draw/svg_draw_svg_image_0.lp64.png | Bin 0 -> 55934 bytes .../draw/svg_draw_svg_image_1.lp32.png | Bin 0 -> 44273 bytes .../draw/svg_draw_svg_image_1.lp64.png | Bin 0 -> 44273 bytes .../draw/svg_draw_svg_image_10.lp32.png | Bin 0 -> 4472 bytes .../draw/svg_draw_svg_image_10.lp64.png | Bin 0 -> 4472 bytes .../draw/svg_draw_svg_image_11.lp32.png | Bin 0 -> 5641 bytes .../draw/svg_draw_svg_image_11.lp64.png | Bin 0 -> 5641 bytes .../draw/svg_draw_svg_image_12.lp32.png | Bin 0 -> 12267 bytes .../draw/svg_draw_svg_image_12.lp64.png | Bin 0 -> 12267 bytes .../draw/svg_draw_svg_image_2.lp32.png | Bin 0 -> 73305 bytes .../draw/svg_draw_svg_image_2.lp64.png | Bin 0 -> 73305 bytes .../draw/svg_draw_svg_image_3.lp32.png | Bin 0 -> 73559 bytes .../draw/svg_draw_svg_image_3.lp64.png | Bin 0 -> 73559 bytes .../draw/svg_draw_svg_image_4.lp32.png | Bin 0 -> 53507 bytes .../draw/svg_draw_svg_image_4.lp64.png | Bin 0 -> 53507 bytes .../draw/svg_draw_svg_image_5.lp32.png | Bin 0 -> 44273 bytes .../draw/svg_draw_svg_image_5.lp64.png | Bin 0 -> 44273 bytes .../draw/svg_draw_svg_image_6.lp32.png | Bin 0 -> 44273 bytes .../draw/svg_draw_svg_image_6.lp64.png | Bin 0 -> 44273 bytes .../draw/svg_draw_svg_image_7.lp32.png | Bin 0 -> 44262 bytes .../draw/svg_draw_svg_image_7.lp64.png | Bin 0 -> 44262 bytes .../draw/svg_draw_svg_image_8.lp32.png | Bin 0 -> 44262 bytes .../draw/svg_draw_svg_image_8.lp64.png | Bin 0 -> 44262 bytes .../draw/svg_draw_svg_image_9.lp32.png | Bin 0 -> 44262 bytes .../draw/svg_draw_svg_image_9.lp64.png | Bin 0 -> 44262 bytes .../draw/svg_draw_svg_shapes_1.lp32.png | Bin 0 -> 7866 bytes .../draw/svg_draw_svg_shapes_1.lp64.png | Bin 0 -> 7865 bytes .../draw/svg_draw_svg_shapes_10.lp32.png | Bin 0 -> 3437 bytes .../draw/svg_draw_svg_shapes_10.lp64.png | Bin 0 -> 3439 bytes .../draw/svg_draw_svg_shapes_11.lp32.png | Bin 0 -> 10356 bytes .../draw/svg_draw_svg_shapes_11.lp64.png | Bin 0 -> 10356 bytes .../draw/svg_draw_svg_shapes_2.lp32.png | Bin 0 -> 3037 bytes .../draw/svg_draw_svg_shapes_2.lp64.png | Bin 0 -> 3037 bytes .../draw/svg_draw_svg_shapes_3.lp32.png | Bin 0 -> 2669 bytes .../draw/svg_draw_svg_shapes_3.lp64.png | Bin 0 -> 2669 bytes .../draw/svg_draw_svg_shapes_4.lp32.png | Bin 0 -> 5585 bytes .../draw/svg_draw_svg_shapes_4.lp64.png | Bin 0 -> 5587 bytes .../draw/svg_draw_svg_shapes_5.lp32.png | Bin 0 -> 7123 bytes .../draw/svg_draw_svg_shapes_5.lp64.png | Bin 0 -> 7117 bytes .../draw/svg_draw_svg_shapes_6.lp32.png | Bin 0 -> 5595 bytes .../draw/svg_draw_svg_shapes_6.lp64.png | Bin 0 -> 5595 bytes .../draw/svg_draw_svg_shapes_7.lp32.png | Bin 0 -> 4980 bytes .../draw/svg_draw_svg_shapes_7.lp64.png | Bin 0 -> 4980 bytes .../draw/svg_draw_svg_shapes_8.lp32.png | Bin 0 -> 2416 bytes .../draw/svg_draw_svg_shapes_8.lp64.png | Bin 0 -> 2416 bytes .../draw/svg_draw_svg_shapes_9.lp32.png | Bin 0 -> 3048 bytes .../draw/svg_draw_svg_shapes_9.lp64.png | Bin 0 -> 3048 bytes .../draw/svg_draw_svg_text_1.lp32.png | Bin 0 -> 5461 bytes .../draw/svg_draw_svg_text_1.lp64.png | Bin 0 -> 5461 bytes .../draw/svg_draw_svg_text_2.lp32.png | Bin 0 -> 8846 bytes .../draw/svg_draw_svg_text_2.lp64.png | Bin 0 -> 8849 bytes .../draw/svg_draw_svg_viewport_1.lp32.png | Bin 0 -> 2275 bytes .../draw/svg_draw_svg_viewport_1.lp64.png | Bin 0 -> 2275 bytes .../draw/svg_draw_svg_viewport_2.lp32.png | Bin 0 -> 2276 bytes .../draw/svg_draw_svg_viewport_2.lp64.png | Bin 0 -> 2276 bytes .../draw/svg_draw_svg_viewport_3.lp32.png | Bin 0 -> 7921 bytes .../draw/svg_draw_svg_viewport_3.lp64.png | Bin 0 -> 7921 bytes tests/src/lv_test_conf_full.h | 3 + tests/src/test_cases/draw/test_draw_svg.c | 706 +++++ tests/src/test_cases/test_svg.c | 853 ++++++ tests/src/test_cases/test_svg_anim.c | 267 ++ tests/src/test_cases/test_tree.c | 213 ++ 106 files changed, 8212 insertions(+), 1 deletion(-) create mode 100644 docs/libs/svg.rst create mode 100644 examples/libs/svg/index.rst create mode 100644 examples/libs/svg/lv_example_svg.h create mode 100644 examples/libs/svg/lv_example_svg_1.c create mode 100644 src/libs/svg/lv_svg.c create mode 100644 src/libs/svg/lv_svg.h create mode 100644 src/libs/svg/lv_svg_parser.c create mode 100644 src/libs/svg/lv_svg_parser.h create mode 100644 src/libs/svg/lv_svg_render.c create mode 100644 src/libs/svg/lv_svg_render.h create mode 100644 src/libs/svg/lv_svg_token.c create mode 100644 src/libs/svg/lv_svg_token.h create mode 100644 src/misc/lv_tree.c create mode 100644 src/misc/lv_tree.h create mode 100644 tests/ref_imgs/draw/svg_draw_svg_com_1.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_com_1.lp64.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_com_2.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_com_2.lp64.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_com_3.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_com_3.lp64.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_com_4.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_com_4.lp64.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_com_5.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_com_5.lp64.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_com_6.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_com_6.lp64.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_com_7.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_com_7.lp64.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_com_8.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_group_1.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_group_1.lp64.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_group_2.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_group_2.lp64.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_group_3.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_group_3.lp64.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_group_4.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_group_4.lp64.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_image_0.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_image_0.lp64.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_image_1.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_image_1.lp64.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_image_10.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_image_10.lp64.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_image_11.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_image_11.lp64.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_image_12.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_image_12.lp64.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_image_2.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_image_2.lp64.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_image_3.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_image_3.lp64.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_image_4.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_image_4.lp64.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_image_5.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_image_5.lp64.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_image_6.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_image_6.lp64.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_image_7.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_image_7.lp64.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_image_8.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_image_8.lp64.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_image_9.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_image_9.lp64.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_shapes_1.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_shapes_1.lp64.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_shapes_10.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_shapes_10.lp64.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_shapes_11.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_shapes_11.lp64.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_shapes_2.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_shapes_2.lp64.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_shapes_3.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_shapes_3.lp64.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_shapes_4.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_shapes_4.lp64.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_shapes_5.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_shapes_5.lp64.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_shapes_6.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_shapes_6.lp64.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_shapes_7.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_shapes_7.lp64.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_shapes_8.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_shapes_8.lp64.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_shapes_9.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_shapes_9.lp64.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_text_1.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_text_1.lp64.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_text_2.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_text_2.lp64.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_viewport_1.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_viewport_1.lp64.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_viewport_2.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_viewport_2.lp64.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_viewport_3.lp32.png create mode 100644 tests/ref_imgs/draw/svg_draw_svg_viewport_3.lp64.png create mode 100644 tests/src/test_cases/draw/test_draw_svg.c create mode 100644 tests/src/test_cases/test_svg.c create mode 100644 tests/src/test_cases/test_svg_anim.c create mode 100644 tests/src/test_cases/test_tree.c diff --git a/Kconfig b/Kconfig index 20fd5a53e..020b94a45 100644 --- a/Kconfig +++ b/Kconfig @@ -1299,6 +1299,14 @@ menu "LVGL configuration" bool "Decode whole image to RAM for bin decoder" default n + config LV_USE_SVG + bool "SVG library" + depends on LV_USE_VECTOR_GRAPHIC + + config LV_USE_SVG_ANIMATION + bool "SVG animation" + depends on LV_USE_SVG + config LV_USE_RLE bool "LVGL's version of RLE compression method" diff --git a/docs/libs/svg.rst b/docs/libs/svg.rst new file mode 100644 index 000000000..6bebe6af0 --- /dev/null +++ b/docs/libs/svg.rst @@ -0,0 +1,49 @@ +.. _svg: + +============== +SVG support +============== + +Scalable Vector Graphics (SVG) Tiny 1.2 support in LVGL. + +Detailed introduction: https://www.w3.org/TR/SVGTiny12/ + +Usage +----- + +Enable :c:macro:`LV_USE_SVG` in ``lv_conf.h``. + +See the examples below. + +If you need support SVG animation attribute parsing, +you can enable :c:macro:`LV_USE_SVG_ANIMATION` in ``lv_conf.h``. + +.. _svg_example: + +Example +------- + +.. include:: ../examples/libs/svg/index.rst + +.. code:: c + + lv_svg_node_t * svg_doc; + const char* svg_data = ""; + + /* Create an SVG DOM tree*/ + svg_doc = lv_svg_load_data(svg_data, svg_len); + ... + + /* Draw SVG image*/ + lv_draw_svg(layer, svg_doc); + ... + + /* Release the DOM tree*/ + lv_svg_node_delete(svg_doc); + +.. _svg_api: + +API +--- + + diff --git a/examples/libs/lv_example_libs.h b/examples/libs/lv_example_libs.h index ae8dcb921..8eae76e8c 100644 --- a/examples/libs/lv_example_libs.h +++ b/examples/libs/lv_example_libs.h @@ -25,6 +25,7 @@ extern "C" { #include "tjpgd/lv_example_tjpgd.h" #include "libjpeg_turbo/lv_example_libjpeg_turbo.h" #include "tiny_ttf/lv_example_tiny_ttf.h" +#include "svg/lv_example_svg.h" /********************* * DEFINES diff --git a/examples/libs/svg/index.rst b/examples/libs/svg/index.rst new file mode 100644 index 000000000..8b361cb92 --- /dev/null +++ b/examples/libs/svg/index.rst @@ -0,0 +1,6 @@ +Load and render SVG data +--------------------------------------- + +.. lv_example:: libs/svg/lv_example_svg_1 + :language: c + diff --git a/examples/libs/svg/lv_example_svg.h b/examples/libs/svg/lv_example_svg.h new file mode 100644 index 000000000..1af7d0552 --- /dev/null +++ b/examples/libs/svg/lv_example_svg.h @@ -0,0 +1,38 @@ +/** + * @file lv_example_svg.h + * + */ + +#ifndef LV_EXAMPLE_SVG_H +#define LV_EXAMPLE_SVG_H + +#ifdef __cplusplus +extern "C" { +#endif + +/********************* + * INCLUDES + *********************/ + +/********************* + * DEFINES + *********************/ + +/********************** + * TYPEDEFS + **********************/ + +/********************** + * GLOBAL PROTOTYPES + **********************/ +void lv_example_svg_1(void); + +/********************** + * MACROS + **********************/ + +#ifdef __cplusplus +} /*extern "C"*/ +#endif + +#endif /*LV_EXAMPLE_SVG_H*/ diff --git a/examples/libs/svg/lv_example_svg_1.c b/examples/libs/svg/lv_example_svg_1.c new file mode 100644 index 000000000..c9dcf2e9a --- /dev/null +++ b/examples/libs/svg/lv_example_svg_1.c @@ -0,0 +1,36 @@ +#include "../../lv_examples.h" +#if LV_BUILD_EXAMPLES +#if LV_USE_SVG && LV_USE_VECTOR_GRAPHIC + +/** + * Load an SVG data + */ +static void event_cb(lv_event_t * e) +{ + static char svg_data[] = "" + ""; + + lv_layer_t * layer = lv_event_get_layer(e); + lv_svg_node_t * svg = lv_svg_load_data(svg_data, sizeof(svg_data) / sizeof(char)); + lv_draw_svg(layer, svg); + lv_svg_node_delete(svg); +} + +void lv_example_svg_1(void) +{ + lv_obj_add_event_cb(lv_screen_active(), event_cb, LV_EVENT_DRAW_MAIN, NULL); +} +#else + +void lv_example_svg_1(void) +{ + /*TODO + *fallback for online examples*/ + + lv_obj_t * label = lv_label_create(lv_screen_active()); + lv_label_set_text(label, "SVG is not enabled"); + lv_obj_center(label); +} + +#endif +#endif diff --git a/lv_conf_template.h b/lv_conf_template.h index ae3c533d5..d647c37ec 100644 --- a/lv_conf_template.h +++ b/lv_conf_template.h @@ -907,6 +907,11 @@ /** Use external LZ4 library */ #define LV_USE_LZ4_EXTERNAL 0 +/*SVG library*/ +#define LV_USE_SVG 0 +#define LV_USE_SVG_ANIMATION 0 +#define LV_USE_SVG_DEBUG 0 + /** FFmpeg library for image decoding and playing videos. * Supports all major image formats so do not enable other image decoder with it. */ #define LV_USE_FFMPEG 0 diff --git a/lvgl.h b/lvgl.h index dbc757046..5b62c3f52 100644 --- a/lvgl.h +++ b/lvgl.h @@ -35,7 +35,8 @@ extern "C" { #include "src/misc/lv_utils.h" #include "src/misc/lv_iter.h" #include "src/misc/lv_circle_buf.h" - +#include "src/misc/lv_tree.h" + #include "src/tick/lv_tick.h" #include "src/core/lv_obj.h" @@ -106,6 +107,8 @@ extern "C" { #include "src/libs/rlottie/lv_rlottie.h" #include "src/libs/ffmpeg/lv_ffmpeg.h" #include "src/libs/tiny_ttf/lv_tiny_ttf.h" +#include "src/libs/svg/lv_svg.h" +#include "src/libs/svg/lv_svg_render.h" #include "src/layouts/lv_layout.h" diff --git a/src/libs/svg/lv_svg.c b/src/libs/svg/lv_svg.c new file mode 100644 index 000000000..726fadfea --- /dev/null +++ b/src/libs/svg/lv_svg.c @@ -0,0 +1,125 @@ +/** + * @file lv_svg.c + * + */ + +/********************* + * INCLUDES + *********************/ +#include "lv_svg.h" +#if LV_USE_SVG + +#include "../../misc/lv_assert.h" +#include "../../misc/lv_log.h" +#include "../../stdlib/lv_mem.h" + +#include "lv_svg_token.h" +#include "lv_svg_parser.h" + +/********************* +* DEFINES +*********************/ + +/********************** +* TYPEDEFS +**********************/ + +/********************** + * STATIC PROTOTYPES + **********************/ +static void lv_svg_node_constructor(const lv_tree_class_t * class_p, lv_tree_node_t * node) +{ + LV_UNUSED(class_p); + lv_svg_node_t * t = (lv_svg_node_t *)node; + t->xml_id = NULL; + t->type = LV_SVG_TAG_INVALID; + lv_array_init(&t->attrs, 4, sizeof(lv_svg_attr_t)); + t->render_obj = NULL; +} + +static void lv_svg_node_destructor(const lv_tree_class_t * class_p, lv_tree_node_t * node) +{ + LV_UNUSED(class_p); + lv_svg_node_t * t = (lv_svg_node_t *)node; + if(t->xml_id) { + lv_free(t->xml_id); + } + for(uint32_t i = 0; i < lv_array_size(&t->attrs); i++) { + lv_svg_attr_t * attr = lv_array_at(&t->attrs, i); + if(attr->val_type == LV_SVG_ATTR_VALUE_PTR) { + lv_free(attr->value.val); + } + } + lv_array_deinit(&t->attrs); +} + +static bool svg_token_process_cb(_lv_svg_token_t * token, void * data) +{ + _lv_svg_parser_t * parser = (_lv_svg_parser_t *)data; + return _lv_svg_parser_token(parser, token); +} + +/********************** + * STATIC VARIABLES + **********************/ +const lv_tree_class_t lv_svg_node_class = { + .base_class = &lv_tree_node_class, + .instance_size = sizeof(lv_svg_node_t), + .constructor_cb = lv_svg_node_constructor, + .destructor_cb = lv_svg_node_destructor, +}; + +/********************** + * MACROS + **********************/ + +/********************** + * GLOBAL FUNCTIONS + **********************/ +lv_svg_node_t * lv_svg_load_data(const char * svg_data, uint32_t data_len) +{ + LV_ASSERT_NULL(svg_data); + LV_ASSERT(data_len > 0); + + _lv_svg_parser_t parser; + _lv_svg_parser_init(&parser); + + if(_lv_svg_tokenizer(svg_data, data_len, svg_token_process_cb, &parser)) { + if(_lv_svg_parser_is_finish(&parser)) { + lv_svg_node_t * doc = parser.doc_root; + parser.doc_root = NULL; + _lv_svg_parser_deinit(&parser); +#if LV_USE_SVG_DEBUG + _lv_svg_dump_tree(doc, 0); +#endif + return doc; + } + else { + _lv_svg_parser_deinit(&parser); + LV_LOG_ERROR("svg document parser raise errors!"); + return NULL; + } + } + else { + _lv_svg_parser_deinit(&parser); + LV_LOG_ERROR("svg document tokenizer raise errors!"); + return NULL; + } +} + +lv_svg_node_t * lv_svg_node_create(lv_svg_node_t * parent) +{ + lv_tree_node_t * node = lv_tree_node_create(&lv_svg_node_class, (lv_tree_node_t *)parent); + return (lv_svg_node_t *)node; +} + +void lv_svg_node_delete(lv_svg_node_t * node) +{ + LV_ASSERT_NULL(node); + lv_tree_node_delete((lv_tree_node_t *)node); +} + +/********************** + * STATIC FUNCTIONS + **********************/ +#endif /*LV_USE_SVG*/ diff --git a/src/libs/svg/lv_svg.h b/src/libs/svg/lv_svg.h new file mode 100644 index 000000000..b5a8965cb --- /dev/null +++ b/src/libs/svg/lv_svg.h @@ -0,0 +1,334 @@ +/** + * @file lv_svg.h + * + */ + +#ifndef LV_SVG_H +#define LV_SVG_H + +/********************* + * INCLUDES + *********************/ +#include "../../lv_conf_internal.h" +#if LV_USE_SVG + +#include "../../misc/lv_array.h" +#include "../../misc/lv_tree.h" +/********************* + * DEFINES + *********************/ + +/********************** + * TYPEDEFS + **********************/ +enum { + LV_SVG_TAG_INVALID = -1, + LV_SVG_TAG_CONTENT, + LV_SVG_TAG_SVG, + LV_SVG_TAG_USE, + LV_SVG_TAG_G, + LV_SVG_TAG_PATH, + LV_SVG_TAG_RECT, + LV_SVG_TAG_CIRCLE, + LV_SVG_TAG_ELLIPSE, + LV_SVG_TAG_LINE, + LV_SVG_TAG_POLYLINE, + LV_SVG_TAG_POLYGON, + LV_SVG_TAG_SOLID_COLOR, + LV_SVG_TAG_LINEAR_GRADIENT, + LV_SVG_TAG_RADIAL_GRADIENT, + LV_SVG_TAG_STOP, + LV_SVG_TAG_DEFS, + LV_SVG_TAG_IMAGE, +#if LV_USE_SVG_ANIMATION + LV_SVG_TAG_MPATH, + LV_SVG_TAG_SET, + LV_SVG_TAG_ANIMATE, + LV_SVG_TAG_ANIMATE_COLOR, + LV_SVG_TAG_ANIMATE_TRANSFORM, + LV_SVG_TAG_ANIMATE_MOTION, +#endif + LV_SVG_TAG_TEXT, + LV_SVG_TAG_TSPAN, + LV_SVG_TAG_TEXT_AREA, +}; +typedef int8_t lv_svg_tag_t; + +enum { + LV_SVG_ATTR_INVALID = 0, + LV_SVG_ATTR_ID, + LV_SVG_ATTR_XML_ID, + LV_SVG_ATTR_VERSION, + LV_SVG_ATTR_BASE_PROFILE, + LV_SVG_ATTR_VIEWBOX, + LV_SVG_ATTR_PRESERVE_ASPECT_RATIO, + LV_SVG_ATTR_VIEWPORT_FILL, + LV_SVG_ATTR_VIEWPORT_FILL_OPACITY, + LV_SVG_ATTR_DISPLAY, + LV_SVG_ATTR_VISIBILITY, + LV_SVG_ATTR_X, + LV_SVG_ATTR_Y, + LV_SVG_ATTR_WIDTH, + LV_SVG_ATTR_HEIGHT, + LV_SVG_ATTR_RX, + LV_SVG_ATTR_RY, + LV_SVG_ATTR_CX, + LV_SVG_ATTR_CY, + LV_SVG_ATTR_R, + LV_SVG_ATTR_X1, + LV_SVG_ATTR_Y1, + LV_SVG_ATTR_X2, + LV_SVG_ATTR_Y2, + LV_SVG_ATTR_POINTS, + LV_SVG_ATTR_D, + LV_SVG_ATTR_PATH_LENGTH, + LV_SVG_ATTR_XLINK_HREF, + LV_SVG_ATTR_FILL, + LV_SVG_ATTR_FILL_RULE, + LV_SVG_ATTR_FILL_OPACITY, + LV_SVG_ATTR_STROKE, + LV_SVG_ATTR_STROKE_WIDTH, + LV_SVG_ATTR_STROKE_LINECAP, + LV_SVG_ATTR_STROKE_LINEJOIN, + LV_SVG_ATTR_STROKE_MITER_LIMIT, + LV_SVG_ATTR_STROKE_DASH_ARRAY, + LV_SVG_ATTR_STROKE_DASH_OFFSET, + LV_SVG_ATTR_STROKE_OPACITY, + LV_SVG_ATTR_OPACITY, + LV_SVG_ATTR_SOLID_COLOR, + LV_SVG_ATTR_SOLID_OPACITY, + LV_SVG_ATTR_GRADIENT_UNITS, + LV_SVG_ATTR_GRADIENT_STOP_OFFSET, + LV_SVG_ATTR_GRADIENT_STOP_COLOR, + LV_SVG_ATTR_GRADIENT_STOP_OPACITY, + LV_SVG_ATTR_FONT_FAMILY, + LV_SVG_ATTR_FONT_STYLE, + LV_SVG_ATTR_FONT_VARIANT, + LV_SVG_ATTR_FONT_WEIGHT, + LV_SVG_ATTR_FONT_SIZE, + LV_SVG_ATTR_TRANSFORM, + LV_SVG_ATTR_TEXT_ANCHOR, +#if LV_USE_SVG_ANIMATION + LV_SVG_ATTR_ATTRIBUTE_NAME, + LV_SVG_ATTR_ATTRIBUTE_TYPE, + LV_SVG_ATTR_BEGIN, + LV_SVG_ATTR_END, + LV_SVG_ATTR_DUR, + LV_SVG_ATTR_MIN, + LV_SVG_ATTR_MAX, + LV_SVG_ATTR_RESTART, + LV_SVG_ATTR_REPEAT_COUNT, + LV_SVG_ATTR_REPEAT_DUR, + LV_SVG_ATTR_CALC_MODE, + LV_SVG_ATTR_VALUES, + LV_SVG_ATTR_KEY_TIMES, + LV_SVG_ATTR_KEY_SPLINES, + LV_SVG_ATTR_KEY_POINTS, + LV_SVG_ATTR_FROM, + LV_SVG_ATTR_TO, + LV_SVG_ATTR_BY, + LV_SVG_ATTR_ADDITIVE, + LV_SVG_ATTR_ACCUMULATE, + LV_SVG_ATTR_PATH, + LV_SVG_ATTR_ROTATE, + LV_SVG_ATTR_TRANSFORM_TYPE, +#endif +}; +typedef uint8_t lv_svg_attr_type_t; + +enum { + LV_SVG_TRANSFORM_TYPE_MATRIX = 1, + LV_SVG_TRANSFORM_TYPE_TRANSLATE, + LV_SVG_TRANSFORM_TYPE_ROTATE, + LV_SVG_TRANSFORM_TYPE_SCALE, + LV_SVG_TRANSFORM_TYPE_SKEW_X, + LV_SVG_TRANSFORM_TYPE_SKEW_Y, +}; +typedef uint8_t lv_svg_transform_type_t; + +#if LV_USE_SVG_ANIMATION +enum { + LV_SVG_ANIM_REMOVE = 0, + LV_SVG_ANIM_FREEZE, +}; + +enum { + LV_SVG_ANIM_RESTART_ALWAYS = 0, + LV_SVG_ANIM_RESTART_WHEN_NOT_ACTIVE, + LV_SVG_ANIM_RESTART_NEVER, +}; + +enum { + LV_SVG_ANIM_CALC_MODE_LINEAR = 0, + LV_SVG_ANIM_CALC_MODE_PACED, + LV_SVG_ANIM_CALC_MODE_SPLINE, + LV_SVG_ANIM_CALC_MODE_DISCRETE, +}; + +enum { + LV_SVG_ANIM_ADDITIVE_REPLACE = 0, + LV_SVG_ANIM_ADDITIVE_SUM, +}; + +enum { + LV_SVG_ANIM_ACCUMULATE_NONE = 0, + LV_SVG_ANIM_ACCUMULATE_SUM, +}; +#endif + +enum { + LV_SVG_ASPECT_RATIO_NONE = 0, + LV_SVG_ASPECT_RATIO_XMIN_YMIN = (1 << 1), + LV_SVG_ASPECT_RATIO_XMID_YMIN = (2 << 1), + LV_SVG_ASPECT_RATIO_XMAX_YMIN = (3 << 1), + LV_SVG_ASPECT_RATIO_XMIN_YMID = (4 << 1), + LV_SVG_ASPECT_RATIO_XMID_YMID = (5 << 1), + LV_SVG_ASPECT_RATIO_XMAX_YMID = (6 << 1), + LV_SVG_ASPECT_RATIO_XMIN_YMAX = (7 << 1), + LV_SVG_ASPECT_RATIO_XMID_YMAX = (8 << 1), + LV_SVG_ASPECT_RATIO_XMAX_YMAX = (9 << 1), +}; + +enum { + LV_SVG_ASPECT_RATIO_OPT_MEET = 0, + LV_SVG_ASPECT_RATIO_OPT_SLICE, +}; +typedef uint32_t lv_svg_aspect_ratio_t; + +typedef struct { + float x; + float y; +} lv_svg_point_t; + +typedef struct { + float m[3][3]; +} lv_svg_matrix_t; + +typedef uint32_t lv_svg_color_t; + +enum { + LV_SVG_FILL_NONZERO = 0, + LV_SVG_FILL_EVENODD, +}; +typedef uint8_t lv_svg_fill_rule_t; + +enum { + LV_SVG_LINE_CAP_BUTT = 0, + LV_SVG_LINE_CAP_SQUARE, + LV_SVG_LINE_CAP_ROUND, +}; +typedef uint8_t lv_svg_line_cap_t; + +enum { + LV_SVG_LINE_JOIN_MITER = 0, + LV_SVG_LINE_JOIN_BEVEL, + LV_SVG_LINE_JOIN_ROUND, +}; +typedef uint8_t lv_svg_line_join_t; + +enum { + LV_SVG_GRADIENT_UNITS_OBJECT = 0, + LV_SVG_GRADIENT_UNITS_USER_SPACE, +}; +typedef uint8_t lv_svg_gradient_units_t; + +typedef union { + int32_t ival; + uint32_t uval; + float fval; + char * sval; + void * val; +} lv_svg_attr_value_t; + +/* + * to simplify list buffer management, allocate enough memory for all data and length. + * | size | data[0] | data[1] | data[2] | ... | + */ +typedef struct { + uint32_t length; + uint8_t data[1]; +} lv_svg_attr_values_list_t; + +/* https://www.w3.org/TR/SVGTiny12/svgudomidl.html */ +enum { + LV_SVG_PATH_CMD_MOVE_TO = 77, + LV_SVG_PATH_CMD_LINE_TO = 76, + LV_SVG_PATH_CMD_CURVE_TO = 67, + LV_SVG_PATH_CMD_QUAD_TO = 81, + LV_SVG_PATH_CMD_CLOSE = 90, +}; + +/* + * to simplify list buffer management, allocate enough memory for all path data and cmd. + * | cmd | data[0] | data[1] | data[2] | ... | + */ +typedef struct { + uint32_t cmd; + uint8_t data[1]; +} lv_svg_attr_path_value_t; + +enum { + LV_SVG_ATTR_VALUE_DATA = 0, + LV_SVG_ATTR_VALUE_PTR, +}; +typedef uint8_t lv_svg_attr_value_type_t; + +enum { + LV_SVG_ATTR_VALUE_NONE = 0, + LV_SVG_ATTR_VALUE_INITIAL, + LV_SVG_ATTR_VALUE_INHERIT, +}; +typedef uint8_t lv_svg_attr_value_class_t; + +typedef struct { + lv_svg_attr_type_t id; + lv_svg_attr_value_type_t val_type; + lv_svg_attr_value_class_t class_type; + lv_svg_attr_value_t value; +} lv_svg_attr_t; + +struct _lv_svg_render_obj; + +typedef struct { + lv_tree_node_t base; + char * xml_id; /* xml_id or content */ + lv_svg_tag_t type; + lv_array_t attrs; + struct _lv_svg_render_obj * render_obj; +} lv_svg_node_t; + +/********************** + * GLOBAL PROTOTYPES + **********************/ + +/** + * @brief Loading SVG data and creating the DOM tree + * @param svg_data pointer to the SVG data + * @param data_len the SVG data length + */ +lv_svg_node_t * lv_svg_load_data(const char * svg_data, uint32_t data_len); + +/** + * @brief Create an SVG DOM node + * @param parent pointer to the parent node + * @return true: an new SVG DOM node, false: NULL + */ +lv_svg_node_t * lv_svg_node_create(lv_svg_node_t * parent); + +/** + * @brief Delete an SVG DOM subtree + * @param node pointer to an SVG DOM subtree + */ +void lv_svg_node_delete(lv_svg_node_t * node); + +/********************** + * MACROS + **********************/ +#define LV_SVG_NODE_CHILD(n, i) \ + ((lv_svg_node_t *)(LV_TREE_NODE((n))->children[i])) + +#define LV_SVG_NODE(n) ((lv_svg_node_t*)(n)) + +#endif /*LV_USE_SVG*/ + +#endif /*LV_SVG_H*/ diff --git a/src/libs/svg/lv_svg_parser.c b/src/libs/svg/lv_svg_parser.c new file mode 100644 index 000000000..107d59938 --- /dev/null +++ b/src/libs/svg/lv_svg_parser.c @@ -0,0 +1,2309 @@ +/** + * @file lv_svg_parser.c + * + */ + +/********************* + * INCLUDES + *********************/ +#include "lv_svg_parser.h" +#if LV_USE_SVG + +#include "../../../lvgl.h" +#include +#include +#include +#include + +/********************* +* DEFINES +*********************/ +#ifndef M_PI + #define M_PI 3.1415926f +#endif + +#define MAP_LEN(m) sizeof((m)) / sizeof((m[0])) + +#define CHECK_AND_RESIZE_ATTRS(a) \ + do { \ + if((lv_array_size(&(a)) + 1) > lv_array_capacity(&(a))) { \ + lv_array_resize(&(a), (a).capacity << 1); \ + } \ + } while(0) + +/********************** +* TYPEDEFS +**********************/ +static const struct _lv_svg_tag_map { + const char * name; + uint32_t name_len; + lv_svg_tag_t tag; +} _svg_tag_map[] = { + {"svg", 3, LV_SVG_TAG_SVG}, + {"use", 3, LV_SVG_TAG_USE}, + {"g", 1, LV_SVG_TAG_G}, + {"path", 4, LV_SVG_TAG_PATH}, + {"rect", 4, LV_SVG_TAG_RECT}, + {"circle", 6, LV_SVG_TAG_CIRCLE}, + {"ellipse", 7, LV_SVG_TAG_ELLIPSE}, + {"line", 4, LV_SVG_TAG_LINE}, + {"polyline", 8, LV_SVG_TAG_POLYLINE}, + {"polygon", 7, LV_SVG_TAG_POLYGON}, + {"solidColor", 10, LV_SVG_TAG_SOLID_COLOR}, + {"linearGradient", 14, LV_SVG_TAG_LINEAR_GRADIENT}, + {"radialGradient", 14, LV_SVG_TAG_RADIAL_GRADIENT}, + {"stop", 4, LV_SVG_TAG_STOP}, + {"defs", 4, LV_SVG_TAG_DEFS}, + {"image", 5, LV_SVG_TAG_IMAGE}, +#if LV_USE_SVG_ANIMATION + {"mpath", 5, LV_SVG_TAG_MPATH}, + {"set", 3, LV_SVG_TAG_SET}, + {"animate", 7, LV_SVG_TAG_ANIMATE}, + {"animateColor", 12, LV_SVG_TAG_ANIMATE_COLOR}, + {"animateTransform", 16, LV_SVG_TAG_ANIMATE_TRANSFORM}, + {"animateMotion", 13, LV_SVG_TAG_ANIMATE_MOTION}, +#endif + {"text", 4, LV_SVG_TAG_TEXT}, + {"tspan", 5, LV_SVG_TAG_TSPAN}, + {"textArea", 8, LV_SVG_TAG_TEXT_AREA}, +}; + +static const struct _lv_svg_attr_map { + const char * name; + uint32_t name_len; + lv_svg_attr_type_t attr; +} _svg_attr_map[] = { + {"id", 2, LV_SVG_ATTR_ID}, + {"xml:id", 6, LV_SVG_ATTR_XML_ID}, + {"version", 7, LV_SVG_ATTR_VERSION}, + {"baseProfile", 11, LV_SVG_ATTR_BASE_PROFILE}, + {"viewBox", 7, LV_SVG_ATTR_VIEWBOX}, + {"preserveAspectRatio", 19, LV_SVG_ATTR_PRESERVE_ASPECT_RATIO}, + {"viewport-fill", 13, LV_SVG_ATTR_VIEWPORT_FILL}, + {"viewport-fill-opacity", 21, LV_SVG_ATTR_VIEWPORT_FILL_OPACITY}, + {"display", 7, LV_SVG_ATTR_DISPLAY}, + {"visibility", 10, LV_SVG_ATTR_VISIBILITY}, + {"x", 1, LV_SVG_ATTR_X}, + {"y", 1, LV_SVG_ATTR_Y}, + {"width", 5, LV_SVG_ATTR_WIDTH}, + {"height", 6, LV_SVG_ATTR_HEIGHT}, + {"rx", 2, LV_SVG_ATTR_RX}, + {"ry", 2, LV_SVG_ATTR_RY}, + {"cx", 2, LV_SVG_ATTR_CX}, + {"cy", 2, LV_SVG_ATTR_CY}, + {"r", 1, LV_SVG_ATTR_R}, + {"x1", 2, LV_SVG_ATTR_X1}, + {"y1", 2, LV_SVG_ATTR_Y1}, + {"x2", 2, LV_SVG_ATTR_X2}, + {"y2", 2, LV_SVG_ATTR_Y2}, + {"points", 6, LV_SVG_ATTR_POINTS}, + {"d", 1, LV_SVG_ATTR_D}, + {"pathLength", 10, LV_SVG_ATTR_PATH_LENGTH}, + {"xlink:href", 10, LV_SVG_ATTR_XLINK_HREF}, + {"fill", 4, LV_SVG_ATTR_FILL}, + {"fill-rule", 9, LV_SVG_ATTR_FILL_RULE}, + {"fill-opacity", 12, LV_SVG_ATTR_FILL_OPACITY}, + {"stroke", 6, LV_SVG_ATTR_STROKE}, + {"stroke-width", 12, LV_SVG_ATTR_STROKE_WIDTH}, + {"stroke-linecap", 14, LV_SVG_ATTR_STROKE_LINECAP}, + {"stroke-linejoin", 15, LV_SVG_ATTR_STROKE_LINEJOIN}, + {"stroke-miterlimit", 17, LV_SVG_ATTR_STROKE_MITER_LIMIT}, + {"stroke-dasharray", 16, LV_SVG_ATTR_STROKE_DASH_ARRAY}, + {"stroke-dashoffset", 17, LV_SVG_ATTR_STROKE_DASH_OFFSET}, + {"stroke-opacity", 14, LV_SVG_ATTR_STROKE_OPACITY}, + {"opacity", 7, LV_SVG_ATTR_OPACITY}, + {"solid-color", 11, LV_SVG_ATTR_SOLID_COLOR}, + {"solid-opacity", 13, LV_SVG_ATTR_SOLID_OPACITY}, + {"gradientUnits", 13, LV_SVG_ATTR_GRADIENT_UNITS}, + {"offset", 6, LV_SVG_ATTR_GRADIENT_STOP_OFFSET}, + {"stop-color", 10, LV_SVG_ATTR_GRADIENT_STOP_COLOR}, + {"stop-opacity", 12, LV_SVG_ATTR_GRADIENT_STOP_OPACITY}, + {"font-family", 11, LV_SVG_ATTR_FONT_FAMILY}, + {"font-style", 10, LV_SVG_ATTR_FONT_STYLE}, + {"font-variant", 12, LV_SVG_ATTR_FONT_VARIANT}, + {"font-weight", 11, LV_SVG_ATTR_FONT_WEIGHT}, + {"font-size", 9, LV_SVG_ATTR_FONT_SIZE}, + {"transform", 9, LV_SVG_ATTR_TRANSFORM}, + {"text-anchor", 11, LV_SVG_ATTR_TEXT_ANCHOR}, +#if LV_USE_SVG_ANIMATION + {"attributeName", 13, LV_SVG_ATTR_ATTRIBUTE_NAME}, + {"attributeType", 13, LV_SVG_ATTR_ATTRIBUTE_TYPE}, + {"begin", 5, LV_SVG_ATTR_BEGIN}, + {"end", 3, LV_SVG_ATTR_END}, + {"dur", 3, LV_SVG_ATTR_DUR}, + {"min", 3, LV_SVG_ATTR_MIN}, + {"max", 3, LV_SVG_ATTR_MAX}, + {"restart", 7, LV_SVG_ATTR_RESTART}, + {"repeatCount", 11, LV_SVG_ATTR_REPEAT_COUNT}, + {"repeatDur", 9, LV_SVG_ATTR_REPEAT_DUR}, + {"calcMode", 8, LV_SVG_ATTR_CALC_MODE}, + {"values", 6, LV_SVG_ATTR_VALUES}, + {"keyTimes", 8, LV_SVG_ATTR_KEY_TIMES}, + {"keySplines", 10, LV_SVG_ATTR_KEY_SPLINES}, + {"keyPoints", 9, LV_SVG_ATTR_KEY_POINTS}, + {"from", 4, LV_SVG_ATTR_FROM}, + {"to", 2, LV_SVG_ATTR_TO}, + {"by", 2, LV_SVG_ATTR_BY}, + {"additive", 8, LV_SVG_ATTR_ADDITIVE}, + {"accumulate", 10, LV_SVG_ATTR_ACCUMULATE}, + {"path", 4, LV_SVG_ATTR_PATH}, + {"rotate", 6, LV_SVG_ATTR_ROTATE}, + {"type", 4, LV_SVG_ATTR_TRANSFORM_TYPE}, +#endif +}; + +static const struct _lv_svg_attr_aspect_ratio_map { + const char * name; + uint32_t align; +} _svg_attr_aspect_ratio_map[] = { + {"xMinYMin", LV_SVG_ASPECT_RATIO_XMIN_YMIN}, + {"xMidYMin", LV_SVG_ASPECT_RATIO_XMID_YMIN}, + {"xMaxYMin", LV_SVG_ASPECT_RATIO_XMAX_YMIN}, + {"xMinYMid", LV_SVG_ASPECT_RATIO_XMIN_YMID}, + {"xMidYMid", LV_SVG_ASPECT_RATIO_XMID_YMID}, + {"xMaxYMid", LV_SVG_ASPECT_RATIO_XMAX_YMID}, + {"xMinYMax", LV_SVG_ASPECT_RATIO_XMIN_YMAX}, + {"xMidYMax", LV_SVG_ASPECT_RATIO_XMID_YMAX}, + {"xMaxYMax", LV_SVG_ASPECT_RATIO_XMAX_YMAX}, +}; + +static const struct _lv_svg_color_map { + const char * name; + uint32_t name_len; + uint32_t color; +} _svg_color_map[] = { + {"aliceblue", 9, 0xf0f8ff}, + {"antiquewhite", 12, 0xfaebd7}, + {"aqua", 4, 0x00ffff}, + {"aquamarine", 10, 0x7fffd4}, + {"azure", 5, 0xf0ffff}, + {"beige", 5, 0xf5f5dc}, + {"bisque", 6, 0xffe4c4}, + {"black", 5, 0x000000}, + {"blanchedalmond", 14, 0xffebcd}, + {"blue", 4, 0x0000ff}, + {"blueviolet", 10, 0x8a2be2}, + {"brown", 5, 0xa52a2a}, + {"burlywood", 9, 0xdeb887}, + {"cadetblue", 9, 0x5f9ea0}, + {"chartreuse", 10, 0x7fff00}, + {"chocolate", 9, 0xd2691e}, + {"coral", 5, 0xff7f50}, + {"cornflowerblue", 14, 0x6495ed}, + {"cornsilk", 8, 0xfff8dc}, + {"crimson", 7, 0xdc143c}, + {"cyan", 4, 0x00ffff}, + {"darkblue", 8, 0x00008b}, + {"darkcyan", 8, 0x008b8b}, + {"darkgoldenrod", 13, 0xb8860b}, + {"darkgray", 8, 0xa9a9a9}, + {"darkgrey", 8, 0xa9a9a9}, + {"darkgreen", 9, 0x006400}, + {"darkkhaki", 9, 0xbdb76b}, + {"darkmagenta", 11, 0x8b008b}, + {"darkolivegreen", 14, 0x556b2f}, + {"darkorange", 10, 0xff8c00}, + {"darkorchid", 10, 0x9932cc}, + {"darkred", 7, 0x8b0000}, + {"darksalmon", 10, 0xe9967a}, + {"darkseagreen", 12, 0x8fbc8f}, + {"darkslateblue", 13, 0x483d8b}, + {"darkslategray", 13, 0x2f4f4f}, + {"darkslategrey", 13, 0x2f4f4f}, + {"darkturquoise", 13, 0x00ced1}, + {"darkviolet", 10, 0x9400d3}, + {"deeppink", 8, 0xff1493}, + {"deepskyblue", 11, 0x00bfff}, + {"dimgray", 7, 0x696969}, + {"dimgrey", 7, 0x696969}, + {"dodgerblue", 10, 0x1e90ff}, + {"firebrick", 9, 0xb22222}, + {"floralwhite", 11, 0xfffaf0}, + {"forestgreen", 11, 0x228b22}, + {"fuchsia", 7, 0xff00ff}, + {"gainsboro", 9, 0xdcdcdc}, + {"ghostwhite", 10, 0xf8f8ff}, + {"gold", 4, 0xffd700}, + {"goldenrod", 9, 0xdaa520}, + {"gray", 4, 0x808080}, + {"grey", 4, 0x808080}, + {"green", 5, 0x008000}, + {"greenyellow", 11, 0xadff2f}, + {"honeydew", 8, 0xf0fff0}, + {"hotpink", 7, 0xff69b4}, + {"indianred", 9, 0xcd5c5c}, + {"indigo", 6, 0x4b0082}, + {"ivory", 5, 0xfffff0}, + {"khaki", 5, 0xf0e68c}, + {"lavender", 8, 0xe6e6fa}, + {"lavenderblush", 13, 0xfff0f5}, + {"lawngreen", 9, 0x7cfc00}, + {"lemonchiffon", 12, 0xfffacd}, + {"lightblue", 9, 0xadd8e6}, + {"lightcoral", 10, 0xf08080}, + {"lightcyan", 9, 0xe0ffff}, + {"lightgoldenrodyellow", 20, 0xfafad2}, + {"lightgray", 9, 0xd3d3d3}, + {"lightgrey", 9, 0xd3d3d3}, + {"lightgreen", 10, 0x90ee90}, + {"lightpink", 9, 0xffb6c1}, + {"lightsalmon", 11, 0xffa07a}, + {"lightseagreen", 13, 0x20b2aa}, + {"lightskyblue", 12, 0x87cefa}, + {"lightslategray", 14, 0x778899}, + {"lightslategrey", 14, 0x778899}, + {"lightsteelblue", 14, 0xb0c4de}, + {"lightyellow", 11, 0xffffe0}, + {"lime", 4, 0x00ff00}, + {"limegreen", 9, 0x32cd32}, + {"linen", 5, 0xfaf0e6}, + {"magenta", 7, 0xff00ff}, + {"maroon", 6, 0x800000}, + {"mediumaquamarine", 16, 0x66cdaa}, + {"mediumblue", 10, 0x0000cd}, + {"mediumorchid", 12, 0xba55d3}, + {"mediumpurple", 12, 0x9370d8}, + {"mediumseagreen", 14, 0x3cb371}, + {"mediumslateblue", 15, 0x7b68ee}, + {"mediumspringgreen", 17, 0x00fa9a}, + {"mediumturquoise", 15, 0x48d1cc}, + {"mediumvioletred", 15, 0xc71585}, + {"midnightblue", 12, 0x191970}, + {"mintcream", 9, 0xf5fffa}, + {"mistyrose", 9, 0xffe4e1}, + {"moccasin", 8, 0xffe4b5}, + {"navajowhite", 11, 0xffdead}, + {"navy", 4, 0x000080}, + {"oldlace", 7, 0xfdf5e6}, + {"olive", 5, 0x808000}, + {"olivedrab", 9, 0x6b8e23}, + {"orange", 6, 0xffa500}, + {"orangered", 9, 0xff4500}, + {"orchid", 6, 0xda70d6}, + {"palegoldenrod", 13, 0xeee8aa}, + {"palegreen", 9, 0x98fb98}, + {"paleturquoise", 13, 0xafeeee}, + {"palevioletred", 13, 0xd87093}, + {"papayawhip", 10, 0xffefd5}, + {"peachpuff", 9, 0xffdab9}, + {"peru", 4, 0xcd853f}, + {"pink", 4, 0xffc0cb}, + {"plum", 4, 0xdda0dd}, + {"powderblue", 10, 0xb0e0e6}, + {"purple", 6, 0x800080}, + {"red", 3, 0xff0000}, + {"rosybrown", 9, 0xbc8f8f}, + {"royalblue", 9, 0x4169e1}, + {"saddlebrown", 11, 0x8b4513}, + {"salmon", 6, 0xfa8072}, + {"sandybrown", 10, 0xf4a460}, + {"seagreen", 8, 0x2e8b57}, + {"seashell", 8, 0xfff5ee}, + {"sienna", 6, 0xa0522d}, + {"silver", 6, 0xc0c0c0}, + {"skyblue", 7, 0x87ceeb}, + {"slateblue", 9, 0x6a5acd}, + {"slategray", 9, 0x708090}, + {"slategrey", 9, 0x708090}, + {"snow", 4, 0xfffafa}, + {"springgreen", 11, 0x00ff7f}, + {"steelblue", 9, 0x4682b4}, + {"tan", 3, 0xd2b48c}, + {"teal", 4, 0x008080}, + {"thistle", 7, 0xd8bfd8}, + {"tomato", 6, 0xff6347}, + {"turquoise", 9, 0x40e0d0}, + {"violet", 6, 0xee82ee}, + {"wheat", 5, 0xf5deb3}, + {"white", 5, 0xffffff}, + {"whitesmoke", 10, 0xf5f5f5}, + {"yellow", 6, 0xffff00}, + {"yellowgreen", 11, 0x9acd32}, +}; + +/********************** + * STATIC PROTOTYPES + **********************/ + +static lv_svg_tag_t _get_svg_tag_type(const _lv_svg_token_t * token) +{ + uint32_t len = MAP_LEN(_svg_tag_map); + uint32_t token_len = SVG_TOKEN_LEN(token); + + for(uint32_t i = 0; i < len; i++) { + if(token_len == _svg_tag_map[i].name_len && strncmp(_svg_tag_map[i].name, token->start, token_len) == 0) { + return _svg_tag_map[i].tag; + } + } + return LV_SVG_TAG_INVALID; +} + +static bool _process_end_tag(_lv_svg_parser_t * parser, lv_svg_tag_t tag, const _lv_svg_token_t * token) +{ + if(parser->state == LV_SVG_PARSER_IGNORE) { + uint32_t len = SVG_TOKEN_LEN(token); + if((parser->ignore_len == len) && strncmp(parser->ignore_name, token->start, len) == 0) { + parser->state = LV_SVG_PARSER_PROCESS; + lv_free(parser->ignore_name); + parser->ignore_name = NULL; + parser->ignore_len = 0; + } + return true; + } + + if(parser->cur_node->type != tag) { + LV_LOG_ERROR("svg tag does not match in pairs!"); + return false; + } + + if(parser->cur_node != parser->doc_root) { + parser->cur_node = (lv_svg_node_t *)LV_TREE_NODE(parser->cur_node)->parent; + } + return true; +} + +static lv_svg_attr_type_t _get_svg_attr_type(const char * attr_start, const char * attr_end) +{ + uint32_t len = MAP_LEN(_svg_attr_map); + uint32_t attr_len = attr_end - attr_start; + + for(uint32_t i = 0; i < len; i++) { + if(attr_len == _svg_attr_map[i].name_len && strncmp(_svg_attr_map[i].name, attr_start, attr_len) == 0) { + return _svg_attr_map[i].attr; + } + } + return LV_SVG_ATTR_INVALID; +} + +static void _process_string(lv_svg_node_t * node, lv_svg_attr_type_t type, const char * val_start, const char * val_end) +{ + CHECK_AND_RESIZE_ATTRS(node->attrs); + + node->attrs.size++; + lv_svg_attr_t * attr = lv_array_at(&node->attrs, node->attrs.size - 1); + attr->id = type; + attr->val_type = LV_SVG_ATTR_VALUE_PTR; + attr->class_type = LV_SVG_ATTR_VALUE_INITIAL; + + uint32_t len = val_end - val_start; + char * str = lv_malloc(len + 1); + LV_ASSERT_MALLOC(str); + lv_memcpy(str, val_start, len); + str[len] = '\0'; + attr->value.sval = str; +} + +static void _process_xlink(lv_svg_node_t * node, lv_svg_attr_type_t type, const char * val_start, const char * val_end) +{ + CHECK_AND_RESIZE_ATTRS(node->attrs); + + node->attrs.size++; + lv_svg_attr_t * attr = lv_array_at(&node->attrs, node->attrs.size - 1); + attr->id = type; + attr->val_type = LV_SVG_ATTR_VALUE_PTR; + attr->class_type = LV_SVG_ATTR_VALUE_INITIAL; + + if(*val_start == '#') { + val_start++; + } + + uint32_t len = val_end - val_start; + char * str = lv_malloc(len + 1); + LV_ASSERT_MALLOC(str); + lv_memcpy(str, val_start, len); + str[len] = '\0'; + attr->value.sval = str; +} + +static bool _is_number_begin(char ch) +{ + return ch != 0 && strchr("0123456789+-.", ch) != NULL; +} + +static const char * _skip_space(const char * str, const char * str_end) +{ + while((str < str_end) && isspace(*str)) { + ++str; + } + return str; +} + +static bool _is_separators(char c) +{ + return c == ',' || c == '\t' || c == '\n' || c == '\r'; +} + +static const char * _skip_space_and_separators(const char * str, const char * str_end) +{ + while((str < str_end) && (isspace(*str) || _is_separators(*str))) { + ++str; + } + return str; +} + +static const char * _parse_number(const char * str, const char * str_end, float * val) +{ + if(!str) { + return NULL; + } + // skip loading + while((str < str_end) && !_is_number_begin(*str)) { + ++str; + } + + if(str == str_end) { // parse fail + return NULL; + } + + char * end = NULL; + *val = strtof(str, &end); + return end; +} + +static const char * _parse_length(const char * str, const char * str_end, int32_t dpi, float * val) +{ + str = _parse_number(str, str_end, val); + if(str) { + uint32_t len = str_end - str; + if(len > 0) { + if(len == 1 && (*str == '%')) { + // percentage + *val *= 0.01f; + } + else if(len == 2) { + if(str[0] == 'p' && str[1] == 't') { // pt + *val = *val / 72.0f * (float)dpi; + } + else if(str[0] == 'p' && str[1] == 'c') { // pc + *val = *val / 6.0f * (float)dpi; + } + else if(str[0] == 'i' && str[1] == 'n') { // in + *val = *val * (float)dpi; + } + else if(str[0] == 'm' && str[1] == 'm') { // mm + *val = *val / 25.4f * (float)dpi; + } + else if(str[0] == 'c' && str[1] == 'm') { // cm + *val = *val / 2.54f * (float)dpi; + } + else if(str[0] == 'e' && str[1] == 'm') { // em + *val = *val * 16.0f; // FIXME: browser default font size + } + else if(str[0] == 'e' && str[1] == 'x') { // ex + *val = *val * 16.0f * 0.52f; + } + } + } + str += len; + } + return str; +} + +static const char * _parse_color(const char * str, const char * str_end, uint32_t * val) +{ + if(!str) { + return NULL; + } + + const char * ptr = str; + while((ptr < str_end) && (*ptr != ')')) { // calc letters end + ++ptr; + } + + uint32_t len = ptr - str; + uint8_t r = 0, g = 0, b = 0; + + if(*str == '#') { + if(len == 4) { // three digit hex format '#rgb' + if(isxdigit(str[1]) && isxdigit(str[2]) && isxdigit(str[3])) { + char st[3] = {0}; + st[0] = st[1] = str[1]; + r = (uint8_t)strtol(st, NULL, 16); + st[0] = st[1] = str[2]; + g = (uint8_t)strtol(st, NULL, 16); + st[0] = st[1] = str[3]; + b = (uint8_t)strtol(st, NULL, 16); + } + } + else if(len == 7) { // six digit hex format '#rrggbb' + if(isxdigit(str[1]) && isxdigit(str[2]) && isxdigit(str[3]) + && isxdigit(str[4]) && isxdigit(str[5]) && isxdigit(str[6])) { + char st[3] = {0}; + st[0] = str[1]; + st[1] = str[2]; + r = (uint8_t)strtol(st, NULL, 16); + st[0] = str[3]; + st[1] = str[4]; + g = (uint8_t)strtol(st, NULL, 16); + st[0] = str[5]; + st[1] = str[6]; + b = (uint8_t)strtol(st, NULL, 16); + } + } + // make color + *val = (r << 16) + (g << 8) + b; + } + else if(len > 4 && strncmp(str, "rgb(", 4) == 0) { + str += 4; + bool valid_color = true; + float vals[3] = {0}; + + for(int i = 0; i < 3; i++) { + str = _parse_number(str, ptr, &vals[i]); + if(!str) valid_color = false; + + if(*str == '%') { + vals[i] *= 2.56f; + } + } + + if(valid_color) { + r = (uint8_t)vals[0]; + g = (uint8_t)vals[1]; + b = (uint8_t)vals[2]; + } + // make color + *val = (r << 16) + (g << 8) + b; + } + else { // color keyword + uint32_t map_len = MAP_LEN(_svg_color_map); + for(uint32_t i = 0; i < map_len; i++) { + if(len == _svg_color_map[i].name_len && strncmp(_svg_color_map[i].name, str, len) == 0) { + *val = _svg_color_map[i].color; + } + } + } + return ++ptr; +} + +static void _multiply_matrix(lv_svg_matrix_t * matrix, const lv_svg_matrix_t * mul) +{ + // TODO: use NEON to optimize this function on ARM architecture. + lv_svg_matrix_t tmp; + + for(int y = 0; y < 3; y++) { + for(int x = 0; x < 3; x++) { + tmp.m[y][x] = (matrix->m[y][0] * mul->m[0][x]) + + (matrix->m[y][1] * mul->m[1][x]) + + (matrix->m[y][2] * mul->m[2][x]); + } + } + + lv_memcpy(matrix, &tmp, sizeof(lv_svg_matrix_t)); +} + +static const char * _parse_matrix(const char * str, const char * str_end, lv_svg_transform_type_t type, + lv_svg_matrix_t * matrix) +{ + // skip loading + while((str < str_end) && *str != '(') { + ++str; + } + + if(str == str_end) { // parse fail + return str; + } + + const char * ptr = str; + switch(type) { + case LV_SVG_TRANSFORM_TYPE_MATRIX: { + float vals[6] = {0}; + for(int i = 0; i < 6; i++) { + ptr = _parse_number(ptr, str_end, &vals[i]); + if(!ptr) return str; + str = ptr; + } + + lv_svg_matrix_t mt = {{ + {vals[0], vals[2], vals[4]}, + {vals[1], vals[3], vals[5]}, + {0.0f, 0.0f, 1.0f}, + } + }; + + _multiply_matrix(matrix, &mt); + } + break; + case LV_SVG_TRANSFORM_TYPE_TRANSLATE: { + float tx = 0.0f, ty = 0.0f; + ptr = _parse_number(ptr, str_end, &tx); + if(!ptr) return str; + str = ptr; + + ptr = _skip_space(ptr, str_end); + if(*ptr != ')') { + ptr = _parse_number(ptr, str_end, &ty); + if(ptr) str = ptr; + } + + lv_svg_matrix_t tlm = {{ + {1.0f, 0.0f, tx}, + {0.0f, 1.0f, ty}, + {0.0f, 0.0f, 1.0f}, + } + }; + + _multiply_matrix(matrix, &tlm); + } + break; + case LV_SVG_TRANSFORM_TYPE_ROTATE: { + float degree = 0.0f, cx = 0.0f, cy = 0.0f; + bool trans = false; + + ptr = _parse_number(ptr, str_end, °ree); + if(!ptr) return str; + str = ptr; + + ptr = _skip_space(ptr, str_end); + if(*ptr != ')') { + ptr = _parse_number(ptr, str_end, &cx); + ptr = _parse_number(ptr, str_end, &cy); + if(ptr) { + trans = true; + str = ptr; + } + } + + float radian = degree / 180.0f * (float)M_PI; + float cos_r = cosf(radian); + float sin_r = sinf(radian); + + lv_svg_matrix_t rtm = {{ + {cos_r, -sin_r, 0.0f}, + {sin_r, cos_r, 0.0f}, + {0.0f, 0.0f, 1.0f}, + } + }; + + if(!trans) { + _multiply_matrix(matrix, &rtm); + } + else { + lv_svg_matrix_t tlm = {{ + {1.0f, 0.0f, cx}, + {0.0f, 1.0f, cy}, + {0.0f, 0.0f, 1.0f}, + } + }; + + _multiply_matrix(matrix, &tlm); + _multiply_matrix(matrix, &rtm); + + tlm.m[0][2] = -cx; + tlm.m[1][2] = -cy; + _multiply_matrix(matrix, &tlm); + } + } + break; + case LV_SVG_TRANSFORM_TYPE_SCALE: { + float sx = 0.0f, sy = 0.0f; + ptr = _parse_number(ptr, str_end, &sx); + if(!ptr) return str; + str = ptr; + + sy = sx; + + ptr = _skip_space(ptr, str_end); + if(*ptr != ')') { + ptr = _parse_number(ptr, str_end, &sy); + if(ptr) str = ptr; + } + + lv_svg_matrix_t scm = {{ + {sx, 0.0f, 0.0f}, + {0.0f, sy, 0.0f}, + {0.0f, 0.0f, 1.0f}, + } + }; + + _multiply_matrix(matrix, &scm); + } + break; + case LV_SVG_TRANSFORM_TYPE_SKEW_X: { + float degree = 0.0f; + ptr = _parse_number(ptr, str_end, °ree); + if(!ptr) return str; + str = ptr; + + float radian = degree / 180.0f * (float)M_PI; + float tan = tanf(radian); + + lv_svg_matrix_t skm = {{ + {1.0f, tan, 0.0f}, + {0.0f, 1.0f, 0.0f}, + {0.0f, 0.0f, 1.0f}, + } + }; + + _multiply_matrix(matrix, &skm); + } + break; + case LV_SVG_TRANSFORM_TYPE_SKEW_Y: { + float degree = 0.0f; + ptr = _parse_number(ptr, str_end, °ree); + if(!ptr) return str; + str = ptr; + + float radian = degree / 180.0f * (float)M_PI; + float tan = tanf(radian); + + lv_svg_matrix_t skm = {{ + {1.0f, 0.0f, 0.0f}, + {tan, 1.0f, 0.0f}, + {0.0f, 0.0f, 1.0f}, + } + }; + + _multiply_matrix(matrix, &skm); + } + break; + } + return str; +} + +static void _process_view_box(lv_svg_node_t * node, lv_svg_attr_type_t type, const char * val_start, + const char * val_end) +{ + CHECK_AND_RESIZE_ATTRS(node->attrs); + + node->attrs.size++; + lv_svg_attr_t * attr = lv_array_at(&node->attrs, node->attrs.size - 1); + attr->id = type; + attr->val_type = LV_SVG_ATTR_VALUE_PTR; + attr->class_type = LV_SVG_ATTR_VALUE_INITIAL; + + uint32_t len = val_end - val_start; + if(len >= 4 && strncmp(val_start, "none", 4) == 0) { + attr->val_type = LV_SVG_ATTR_VALUE_DATA; + attr->class_type = LV_SVG_ATTR_VALUE_NONE; + return; + } + + float * vals = lv_malloc_zeroed(sizeof(float) * 4); + LV_ASSERT_MALLOC(vals); + const char * ptr = val_start; + for(int i = 0; i < 4; i++) { + ptr = _parse_number(ptr, val_end, &vals[i]); + if(!ptr) { + attr->val_type = LV_SVG_ATTR_VALUE_DATA; + attr->class_type = LV_SVG_ATTR_VALUE_NONE; + lv_free(vals); + return; + } + } + attr->value.val = vals; +} + +static void _process_points_value(lv_svg_node_t * node, lv_svg_attr_type_t type, const char * val_start, + const char * val_end) +{ + CHECK_AND_RESIZE_ATTRS(node->attrs); + + node->attrs.size++; + lv_svg_attr_t * attr = lv_array_at(&node->attrs, node->attrs.size - 1); + attr->id = type; + attr->val_type = LV_SVG_ATTR_VALUE_PTR; + attr->class_type = LV_SVG_ATTR_VALUE_INITIAL; + + uint32_t list_cap = 4; + lv_svg_attr_values_list_t * list = lv_malloc(sizeof(lv_svg_point_t) * list_cap + sizeof(uint32_t)); + LV_ASSERT_MALLOC(list); + + float val_number = 0.0f; + const char * ptr = val_start; + uint32_t point_cnt = 0; + + while(ptr < val_end) { + if(point_cnt == list_cap) { + list_cap = list_cap << 1; + list = (lv_svg_attr_values_list_t *)lv_realloc(list, sizeof(lv_svg_point_t) * list_cap + sizeof(uint32_t)); + LV_ASSERT_MALLOC(list); + } + lv_svg_point_t * pt = (lv_svg_point_t *)(&list->data) + point_cnt; + val_number = 0.0f; + ptr = _parse_number(ptr, val_end, &val_number); + pt->x = val_number; + val_number = 0.0f; + ptr = _parse_number(ptr, val_end, &val_number); + pt->y = val_number; + if(!ptr) break; + ++point_cnt; + } + + list->length = point_cnt; + attr->value.val = list; +} + +static int _get_path_point_count(char cmd) +{ + switch(cmd) { + case 'M': + case 'm': + case 'L': + case 'l': + case 'H': + case 'h': + case 'V': + case 'v': + case 'Z': + case 'z': + return 1; + case 'C': + case 'c': + case 'S': + case 's': + return 3; + case 'Q': + case 'q': + case 'T': + case 't': + return 2; + default: + return 0; + } +} + +static bool _is_relative_cmd(char cmd) +{ + switch(cmd) { + case 'm': + case 'l': + case 'h': + case 'v': + case 'c': + case 's': + case 'q': + case 't': + case 'z': + return true; + case 'M': + case 'L': + case 'H': + case 'V': + case 'C': + case 'S': + case 'Q': + case 'T': + case 'Z': + default: + return false; + } +} + +static bool _is_path_cmd(char ch) +{ + return ch != 0 && strchr("MLHVCSQTZmlhvcsqtz", ch) != NULL; +} + +static void _process_path_value(lv_svg_node_t * node, lv_svg_attr_type_t type, const char * val_start, + const char * val_end) +{ + CHECK_AND_RESIZE_ATTRS(node->attrs); + + node->attrs.size++; + lv_svg_attr_t * attr = lv_array_at(&node->attrs, node->attrs.size - 1); + attr->id = type; + attr->val_type = LV_SVG_ATTR_VALUE_PTR; + attr->class_type = LV_SVG_ATTR_VALUE_INITIAL; + + uint32_t list_cap = 4; + uint32_t list_size = sizeof(lv_svg_point_t) * list_cap + sizeof(uint32_t) * list_cap + sizeof(uint32_t); + lv_svg_attr_values_list_t * list = lv_malloc(list_size); + LV_ASSERT_MALLOC(list); + + uint32_t cmd_cnt = 0; + uint32_t cur_size = 0; + char cur_cmd = 0; + lv_svg_point_t cur_point = {0, 0}; + lv_svg_point_t cur_ctrlPoint = {0, 0}; + lv_svg_point_t first_point = {0, 0}; + + const char * ptr = val_start; + uint8_t * data_ptr = (uint8_t *)(&list->data); + + while(ptr < val_end) { + ptr = _skip_space_and_separators(ptr, val_end); + if(ptr == val_end) break; + + char ch = *ptr; + if(_is_number_begin(ch)) { + if(cur_cmd != 0) { + if(cur_cmd == 'M') { + ch = 'L'; + } + else if(cur_cmd == 'm') { + ch = 'l'; + } + else { + ch = cur_cmd; + } + } + else { + break; + } + } + else if(_is_path_cmd(ch)) { + ++ptr; + } + else { + break; + } + + int point_count = _get_path_point_count(ch); + uint32_t mem_inc = sizeof(lv_svg_point_t) * point_count + sizeof(uint32_t); + + if((cur_size + mem_inc) > (list_size - sizeof(uint32_t))) { + list_cap = list_cap << 1; + list_size = sizeof(lv_svg_point_t) * list_cap + sizeof(uint32_t) * list_cap + sizeof(uint32_t); + list = (lv_svg_attr_values_list_t *)lv_realloc(list, list_size); + LV_ASSERT_MALLOC(list); + } + + data_ptr = (uint8_t *)(&list->data) + cur_size; + lv_svg_attr_path_value_t * path_seg = (lv_svg_attr_path_value_t *)data_ptr; + + bool relative = _is_relative_cmd(ch); + + switch(ch) { + case 'm': + case 'M': { + lv_svg_point_t * point = (lv_svg_point_t *)(&path_seg->data); + float xval = 0.0f; + ptr = _parse_number(ptr, val_end, &xval); + float yval = 0.0f; + ptr = _parse_number(ptr, val_end, &yval); + if(relative) { + xval += cur_point.x; + yval += cur_point.y; + } + path_seg->cmd = LV_SVG_PATH_CMD_MOVE_TO; + point->x = xval; + point->y = yval; + cur_point.x = xval; + cur_point.y = yval; + first_point.x = xval; + first_point.y = yval; + } + break; + case 'L': + case 'l': { + lv_svg_point_t * point = (lv_svg_point_t *)(&path_seg->data); + float xval = 0.0f; + ptr = _parse_number(ptr, val_end, &xval); + float yval = 0.0f; + ptr = _parse_number(ptr, val_end, &yval); + if(relative) { + xval += cur_point.x; + yval += cur_point.y; + } + path_seg->cmd = LV_SVG_PATH_CMD_LINE_TO; + point->x = xval; + point->y = yval; + cur_point.x = xval; + cur_point.y = yval; + } + break; + case 'H': + case 'h': { + lv_svg_point_t * point = (lv_svg_point_t *)(&path_seg->data); + float xval = 0.0f; + ptr = _parse_number(ptr, val_end, &xval); + if(relative) { + xval += cur_point.x; + } + path_seg->cmd = LV_SVG_PATH_CMD_LINE_TO; + point->x = xval; + point->y = cur_point.y; + cur_point.x = xval; + } + break; + case 'V': + case 'v': { + lv_svg_point_t * point = (lv_svg_point_t *)(&path_seg->data); + float yval = 0.0f; + ptr = _parse_number(ptr, val_end, &yval); + if(relative) { + yval += cur_point.y; + } + path_seg->cmd = LV_SVG_PATH_CMD_LINE_TO; + point->x = cur_point.x; + point->y = yval; + cur_point.y = yval; + } + break; + case 'C': + case 'c': { + lv_svg_point_t * point = (lv_svg_point_t *)(&path_seg->data); + for(int i = 0; i < 3; i++) { + float xval = 0.0f; + ptr = _parse_number(ptr, val_end, &xval); + float yval = 0.0f; + ptr = _parse_number(ptr, val_end, &yval); + if(relative) { + xval += cur_point.x; + yval += cur_point.y; + } + path_seg->cmd = LV_SVG_PATH_CMD_CURVE_TO; + point[i].x = xval; + point[i].y = yval; + } + + cur_ctrlPoint.x = point[1].x; + cur_ctrlPoint.y = point[1].y; + cur_point.x = point[2].x; + cur_point.y = point[2].y; + } + break; + case 'S': + case 's': { + lv_svg_point_t * point = (lv_svg_point_t *)(&path_seg->data); + + if(cur_cmd == 'C' || cur_cmd == 'c' || cur_cmd == 'S' || cur_cmd == 's') { + point[0].x = cur_point.x * 2 - cur_ctrlPoint.x; + point[0].y = cur_point.y * 2 - cur_ctrlPoint.y; + } + else { + point[0].x = cur_point.x; + point[0].y = cur_point.y; + } + + for(int i = 1; i < 3; i++) { + float xval = 0.0f; + ptr = _parse_number(ptr, val_end, &xval); + float yval = 0.0f; + ptr = _parse_number(ptr, val_end, &yval); + if(relative) { + xval += cur_point.x; + yval += cur_point.y; + } + path_seg->cmd = LV_SVG_PATH_CMD_CURVE_TO; + point[i].x = xval; + point[i].y = yval; + } + + cur_ctrlPoint.x = point[1].x; + cur_ctrlPoint.y = point[1].y; + cur_point.x = point[2].x; + cur_point.y = point[2].y; + } + break; + case 'Q': + case 'q': { + lv_svg_point_t * point = (lv_svg_point_t *)(&path_seg->data); + for(int i = 0; i < 2; i++) { + float xval = 0.0f; + ptr = _parse_number(ptr, val_end, &xval); + float yval = 0.0f; + ptr = _parse_number(ptr, val_end, &yval); + if(relative) { + xval += cur_point.x; + yval += cur_point.y; + } + path_seg->cmd = LV_SVG_PATH_CMD_QUAD_TO; + point[i].x = xval; + point[i].y = yval; + } + + cur_ctrlPoint.x = point[0].x; + cur_ctrlPoint.y = point[0].y; + cur_point.x = point[1].x; + cur_point.y = point[1].y; + } + break; + case 'T': + case 't': { + lv_svg_point_t * point = (lv_svg_point_t *)(&path_seg->data); + if(cur_cmd == 'Q' || cur_cmd == 'q' || cur_cmd == 'T' || cur_cmd == 't') { + point[0].x = cur_point.x * 2 - cur_ctrlPoint.x; + point[0].y = cur_point.y * 2 - cur_ctrlPoint.y; + } + else { + point[0].x = cur_point.x; + point[0].y = cur_point.y; + } + + for(int i = 1; i < 2; i++) { + float xval = 0.0f; + ptr = _parse_number(ptr, val_end, &xval); + float yval = 0.0f; + ptr = _parse_number(ptr, val_end, &yval); + if(relative) { + xval += cur_point.x; + yval += cur_point.y; + } + path_seg->cmd = LV_SVG_PATH_CMD_QUAD_TO; + point[i].x = xval; + point[i].y = yval; + } + + cur_ctrlPoint.x = point[0].x; + cur_ctrlPoint.y = point[0].y; + cur_point.x = point[1].x; + cur_point.y = point[1].y; + } + break; + case 'Z': + case 'z': { + path_seg->cmd = LV_SVG_PATH_CMD_CLOSE; + cur_point.x = first_point.x; + cur_point.y = first_point.y; + } + break; + } + + if(!ptr) break; + cur_size += mem_inc; + cur_cmd = ch; + ++cmd_cnt; + } + + list->length = cmd_cnt; + attr->value.val = list; +} + +static void _process_gradient_units(lv_svg_node_t * node, lv_svg_attr_type_t type, const char * val_start, + const char * val_end) +{ + CHECK_AND_RESIZE_ATTRS(node->attrs); + + node->attrs.size++; + lv_svg_attr_t * attr = lv_array_at(&node->attrs, node->attrs.size - 1); + attr->id = type; + attr->val_type = LV_SVG_ATTR_VALUE_DATA; + attr->class_type = LV_SVG_ATTR_VALUE_INITIAL; + + uint32_t len = val_end - val_start; + int32_t val = 0; + + if(len == 14 && strncmp(val_start, "userSpaceOnUse", 14) == 0) { + val = LV_SVG_GRADIENT_UNITS_USER_SPACE; + } + else { + val = LV_SVG_GRADIENT_UNITS_OBJECT; + } + attr->value.ival = val; +} + +static void _process_paint_dasharray(lv_svg_node_t * node, lv_svg_attr_type_t type, const char * val_start, + const char * val_end) +{ + CHECK_AND_RESIZE_ATTRS(node->attrs); + + node->attrs.size++; + lv_svg_attr_t * attr = lv_array_at(&node->attrs, node->attrs.size - 1); + attr->id = type; + attr->val_type = LV_SVG_ATTR_VALUE_DATA; + attr->class_type = LV_SVG_ATTR_VALUE_INITIAL; + + uint32_t len = val_end - val_start; + + if(len >= 4 && strncmp(val_start, "none", 4) == 0) { + attr->class_type = LV_SVG_ATTR_VALUE_NONE; + return; + } + else if(len >= 7 && strncmp(val_start, "inherit", 7) == 0) { + attr->class_type = LV_SVG_ATTR_VALUE_INHERIT; + return; + } + else { + attr->val_type = LV_SVG_ATTR_VALUE_PTR; + + uint32_t list_cap = 4; + lv_svg_attr_values_list_t * list = lv_malloc(sizeof(float) * list_cap + sizeof(uint32_t)); + LV_ASSERT_MALLOC(list); + + uint32_t count = 0; + const char * ptr = val_start; + + while(ptr < val_end) { + if(count == list_cap) { + list_cap = list_cap << 1; + list = lv_realloc(list, sizeof(float) * list_cap + sizeof(uint32_t)); + LV_ASSERT_MALLOC(list); + } + float * val = (float *)(&list->data) + count; + ptr = _parse_number(ptr, val_end, val); + if(!ptr) break; + ++count; + } + + list->length = count; + attr->value.val = list; + } +} + +static void _process_font_attrs(lv_svg_node_t * node, lv_svg_attr_type_t type, const char * val_start, + const char * val_end, int32_t dpi) +{ + CHECK_AND_RESIZE_ATTRS(node->attrs); + + node->attrs.size++; + lv_svg_attr_t * attr = lv_array_at(&node->attrs, node->attrs.size - 1); + attr->id = type; + attr->val_type = LV_SVG_ATTR_VALUE_DATA; + attr->class_type = LV_SVG_ATTR_VALUE_INITIAL; + + uint32_t len = val_end - val_start; + + if(len >= 7 && strncmp(val_start, "inherit", 7) == 0) { + attr->class_type = LV_SVG_ATTR_VALUE_INHERIT; + return; + } + + if(type == LV_SVG_ATTR_FONT_SIZE && _is_number_begin(*val_start)) { + float val_number = 0.0f; + val_start = _parse_length(val_start, val_end, dpi, &val_number); + attr->value.fval = val_number; + } + else { + attr->val_type = LV_SVG_ATTR_VALUE_PTR; + + char * str = lv_malloc(len + 1); + LV_ASSERT_MALLOC(str); + lv_memcpy(str, val_start, len); + str[len] = '\0'; + attr->value.sval = str; + } +} + +static void _process_paint_attrs(lv_svg_node_t * node, lv_svg_attr_type_t type, const char * val_start, + const char * val_end) +{ + CHECK_AND_RESIZE_ATTRS(node->attrs); + + node->attrs.size++; + lv_svg_attr_t * attr = lv_array_at(&node->attrs, node->attrs.size - 1); + attr->id = type; + attr->val_type = LV_SVG_ATTR_VALUE_DATA; + attr->class_type = LV_SVG_ATTR_VALUE_INITIAL; + + uint32_t len = val_end - val_start; + + if(len >= 7 && strncmp(val_start, "inherit", 7) == 0) { + attr->class_type = LV_SVG_ATTR_VALUE_INHERIT; + return; + } + + if(type == LV_SVG_ATTR_FILL_RULE) { + int32_t val = 0; + if(strncmp(val_start, "evenodd", 7) == 0) { + val = LV_SVG_FILL_EVENODD; + } + else { + val = LV_SVG_FILL_NONZERO; + } + attr->value.ival = val; + } + else if(type == LV_SVG_ATTR_STROKE_LINECAP) { + int32_t val = 0; + if(strncmp(val_start, "round", 5) == 0) { + val = LV_SVG_LINE_CAP_ROUND; + } + else if(strncmp(val_start, "square", 6) == 0) { + val = LV_SVG_LINE_CAP_SQUARE; + } + else { + val = LV_SVG_LINE_CAP_BUTT; + } + attr->value.ival = val; + } + else if(type == LV_SVG_ATTR_STROKE_LINEJOIN) { + int32_t val = 0; + if(strncmp(val_start, "round", 5) == 0) { + val = LV_SVG_LINE_JOIN_ROUND; + } + else if(strncmp(val_start, "bevel", 5) == 0) { + val = LV_SVG_LINE_JOIN_BEVEL; + } + else { + val = LV_SVG_LINE_JOIN_MITER; + } + attr->value.ival = val; + } + else if(type == LV_SVG_ATTR_STROKE_WIDTH) { + float val = 1.0f; + val_start = _parse_number(val_start, val_end, &val); + if(val < 0.0f) { + val = 0.0f; + } + attr->value.fval = val; + } + else if(type == LV_SVG_ATTR_STROKE_MITER_LIMIT) { + float val = 4.0f; + val_start = _parse_number(val_start, val_end, &val); + if(val < 1.0f) { + val = 1.0f; + } + attr->value.ival = (int32_t)val; + } + else if(type == LV_SVG_ATTR_STROKE_DASH_OFFSET) { + float val = 0.0f; + val_start = _parse_number(val_start, val_end, &val); + attr->value.fval = val; + } + else if(type == LV_SVG_ATTR_GRADIENT_STOP_OFFSET) { + float val = 0.0f; + val_start = _parse_number(val_start, val_end, &val); + attr->value.fval = val; + } +} + +static void _process_paint(lv_svg_node_t * node, lv_svg_attr_type_t type, const char * val_start, + const char * val_end) +{ + CHECK_AND_RESIZE_ATTRS(node->attrs); + + node->attrs.size++; + lv_svg_attr_t * attr = lv_array_at(&node->attrs, node->attrs.size - 1); + attr->id = type; + attr->val_type = LV_SVG_ATTR_VALUE_DATA; + attr->class_type = LV_SVG_ATTR_VALUE_INITIAL; + + uint32_t len = val_end - val_start; + if(len >= 4 && strncmp(val_start, "none", 4) == 0) { + attr->class_type = LV_SVG_ATTR_VALUE_NONE; + return; + } + else if(len >= 7 && strncmp(val_start, "inherit", 7) == 0) { + attr->class_type = LV_SVG_ATTR_VALUE_INHERIT; + return; + } + else if(len > 4 && strncmp(val_start, "url(", 4) == 0) { + // parse url + const char * ptr = val_start + 4; + const char * url_start = NULL; + const char * url_end = NULL; + + ptr = _skip_space(ptr, val_end); + if(ptr == val_end) { + attr->class_type = LV_SVG_ATTR_VALUE_NONE; + return; + } + + if(*ptr == '#') { + url_start = ptr + 1; + } + + while((ptr < val_end) && !isspace(*ptr) && *ptr != ')') { + ++ptr; + } + + url_end = ptr; + if(url_start && url_end) { + attr->val_type = LV_SVG_ATTR_VALUE_PTR; + len = url_end - url_start; + char * node_id = lv_malloc(len + 1); + LV_ASSERT_MALLOC(node_id); + lv_memcpy(node_id, url_start, len); + node_id[len] = '\0'; + attr->value.sval = node_id; + } + return; + } + else { +#if LV_USE_SVG_ANIMATION + if(len == 6) { + if(strncmp(val_start, "freeze", 6) == 0) { + attr->value.ival = LV_SVG_ANIM_FREEZE; + return; + } + else if(strncmp(val_start, "remove", 6) == 0) { + attr->value.ival = LV_SVG_ANIM_REMOVE; + return; + } + } +#endif + // parse color + uint32_t color = 0; + _parse_color(val_start, val_end, &color); + attr->value.uval = color; + return; + } +} + +static void _process_opacity_value(lv_svg_node_t * node, lv_svg_attr_type_t type, const char * val_start, + const char * val_end) +{ + CHECK_AND_RESIZE_ATTRS(node->attrs); + + node->attrs.size++; + lv_svg_attr_t * attr = lv_array_at(&node->attrs, node->attrs.size - 1); + attr->id = type; + attr->val_type = LV_SVG_ATTR_VALUE_DATA; + attr->class_type = LV_SVG_ATTR_VALUE_INITIAL; + + uint32_t len = val_end - val_start; + + if(len >= 7 && strncmp(val_start, "inherit", 7) == 0) { + attr->class_type = LV_SVG_ATTR_VALUE_INHERIT; + return; + } + + float val_number = 1.0f; + val_start = _parse_number(val_start, val_end, &val_number); + + if(val_number < 0.0f) val_number = 0.0f; + else if(val_number > 1.0f) val_number = 1.0f; + + attr->value.fval = val_number; +} + +static void _process_length_value(lv_svg_node_t * node, lv_svg_attr_type_t type, const char * val_start, + const char * val_end, int32_t dpi) +{ + CHECK_AND_RESIZE_ATTRS(node->attrs); + + node->attrs.size++; + lv_svg_attr_t * attr = lv_array_at(&node->attrs, node->attrs.size - 1); + attr->id = type; + attr->val_type = LV_SVG_ATTR_VALUE_DATA; + attr->class_type = LV_SVG_ATTR_VALUE_INITIAL; + + float val_number = 0.0f; + val_start = _parse_length(val_start, val_end, dpi, &val_number); + attr->value.fval = val_number; +} + +static void _process_transform(lv_svg_node_t * node, lv_svg_attr_type_t type, const char * val_start, + const char * val_end) +{ + CHECK_AND_RESIZE_ATTRS(node->attrs); + + node->attrs.size++; + lv_svg_attr_t * attr = lv_array_at(&node->attrs, node->attrs.size - 1); + attr->id = type; + attr->val_type = LV_SVG_ATTR_VALUE_PTR; + attr->class_type = LV_SVG_ATTR_VALUE_INITIAL; + + uint32_t len = val_end - val_start; + if(len >= 4 && strncmp(val_start, "none", 4) == 0) { + attr->val_type = LV_SVG_ATTR_VALUE_DATA; + attr->class_type = LV_SVG_ATTR_VALUE_NONE; + return; + } + + lv_svg_matrix_t * matrix = lv_malloc_zeroed(sizeof(lv_svg_matrix_t)); + LV_ASSERT_MALLOC(matrix); + matrix->m[0][0] = matrix->m[1][1] = matrix->m[2][2] = 1.0f; // identity + + const char * ptr = val_start; + while(ptr < val_end) { + ptr = _skip_space(ptr, val_end); + if(ptr == val_end) break; + + len = val_end - ptr; + + if(len >= 9 && strncmp(ptr, "translate", 9) == 0) { + ptr = _parse_matrix(ptr, val_end, LV_SVG_TRANSFORM_TYPE_TRANSLATE, matrix); + } + else if(len >= 6 && strncmp(ptr, "matrix", 6) == 0) { + ptr = _parse_matrix(ptr, val_end, LV_SVG_TRANSFORM_TYPE_MATRIX, matrix); + } + else if(len >= 6 && strncmp(ptr, "rotate", 6) == 0) { + ptr = _parse_matrix(ptr, val_end, LV_SVG_TRANSFORM_TYPE_ROTATE, matrix); + } + else if(len >= 5 && strncmp(ptr, "scale", 5) == 0) { + ptr = _parse_matrix(ptr, val_end, LV_SVG_TRANSFORM_TYPE_SCALE, matrix); + } + else if(len >= 5 && strncmp(ptr, "skewX", 5) == 0) { + ptr = _parse_matrix(ptr, val_end, LV_SVG_TRANSFORM_TYPE_SKEW_X, matrix); + } + else if(len >= 5 && strncmp(ptr, "skewY", 5) == 0) { + ptr = _parse_matrix(ptr, val_end, LV_SVG_TRANSFORM_TYPE_SKEW_Y, matrix); + } + + ++ptr; + } + attr->value.val = matrix; +} + +static void _process_preserve_aspect_ratio(lv_svg_node_t * node, lv_svg_attr_type_t type, const char * val_start, + const char * val_end) +{ + CHECK_AND_RESIZE_ATTRS(node->attrs); + + node->attrs.size++; + lv_svg_attr_t * attr = lv_array_at(&node->attrs, node->attrs.size - 1); + attr->id = type; + attr->val_type = LV_SVG_ATTR_VALUE_DATA; + attr->class_type = LV_SVG_ATTR_VALUE_INITIAL; + + lv_svg_aspect_ratio_t ratio = LV_SVG_ASPECT_RATIO_XMID_YMID; + uint32_t len = MAP_LEN(_svg_attr_aspect_ratio_map); + + for(uint32_t i = 0; i < len; i++) { + if(strncmp(_svg_attr_aspect_ratio_map[i].name, val_start, 8) == 0) { + ratio = _svg_attr_aspect_ratio_map[i].align; + val_start += 8; + break; + } + else if(strncmp("none", val_start, 4) == 0) { + ratio = LV_SVG_ASPECT_RATIO_NONE; + val_start += 4; + break; + } + } + + if(ratio != LV_SVG_ASPECT_RATIO_NONE) { + len = val_end - val_start; + if(len > 4) { + val_start = _skip_space(val_start, val_end); + if(strncmp(val_start, "meet", 4) == 0) { + ratio |= LV_SVG_ASPECT_RATIO_OPT_MEET; + } + else if(strncmp(val_start, "slice", 5) == 0) { + ratio |= LV_SVG_ASPECT_RATIO_OPT_SLICE; + } + } + } + attr->value.uval = ratio; +} + +#if LV_USE_SVG_ANIMATION +typedef void(*_parse_list_cb)(lv_svg_node_t * node, lv_svg_attr_t * attr, const char * val_start, const char * val_end, + int32_t dpi, void * data); + +static uint32_t _parse_anim_value_list(lv_svg_node_t * node, lv_svg_attr_t * attr, const char * val_start, + const char * val_end, int32_t dpi, _parse_list_cb cb, void * data) +{ + uint32_t count = 0; + val_start = _skip_space(val_start, val_end); + const char * ptr = val_start; + + while(ptr != val_end) { + if(*ptr == ';') { + cb(node, attr, val_start, ptr, dpi, data); + val_start = ++ptr; + val_start = _skip_space(val_start, val_end); + count++; + } + else { + ++ptr; + } + } + if(val_start < val_end) { + cb(node, attr, val_start, ptr, dpi, data); + count++; + } + return count; +} + +static const char * _parse_clock_time(const char * str, const char * str_end, float * val) +{ + str = _parse_number(str, str_end, val); + if(str) { + uint32_t len = str_end - str; + if(len > 0) { + if(len >= 2 && str[0] == 'm' && str[1] == 's') { + *val = roundf(*val); + } + else { + *val = roundf(*val * 1000.0f); + } + } + else { + *val = roundf(*val * 1000.0f); + } + str += len; + return str; + } + *val = roundf(*val * 1000.0f); + return str; +} + +static void _process_clock_time(lv_svg_node_t * node, lv_svg_attr_type_t type, const char * val_start, + const char * val_end) +{ + CHECK_AND_RESIZE_ATTRS(node->attrs); + + node->attrs.size++; + lv_svg_attr_t * attr = lv_array_at(&node->attrs, node->attrs.size - 1); + attr->id = type; + attr->val_type = LV_SVG_ATTR_VALUE_DATA; + attr->class_type = LV_SVG_ATTR_VALUE_INITIAL; + + uint32_t len = val_end - val_start; + if(len == 10 && strncmp(val_start, "indefinite", 10) == 0) { + attr->value.fval = 0.0f; + return; + } + + float val_number = 0.0f; + val_start = _parse_clock_time(val_start, val_end, &val_number); + attr->value.fval = val_number; // ms +} + +static void _process_anim_attr_number(lv_svg_node_t * node, lv_svg_attr_type_t type, const char * val_start, + const char * val_end) +{ + CHECK_AND_RESIZE_ATTRS(node->attrs); + + node->attrs.size++; + lv_svg_attr_t * attr = lv_array_at(&node->attrs, node->attrs.size - 1); + attr->id = type; + attr->val_type = LV_SVG_ATTR_VALUE_DATA; + attr->class_type = LV_SVG_ATTR_VALUE_INITIAL; + + if(type == LV_SVG_ATTR_REPEAT_COUNT) { + uint32_t len = val_end - val_start; + if(len == 10 && strncmp(val_start, "indefinite", 10) == 0) { + attr->value.uval = 0; + return; + } + + float val_number = 0.0f; + val_start = _parse_number(val_start, val_end, &val_number); + attr->value.uval = (uint32_t)val_number; + } + else { // LV_SVG_ATTR_ROTATE + uint32_t len = val_end - val_start; + if(len == 4 && strncmp(val_start, "auto", 4) == 0) { + attr->class_type = + LV_SVG_ATTR_VALUE_INHERIT; // rotated over time by the angle of the direction (i.e., directional tangent vector) of the motion path + attr->value.fval = 0.0f; + return; + } + else if(len == 12 && strncmp(val_start, "auto-reverse", 12) == 0) { + attr->class_type = + LV_SVG_ATTR_VALUE_INHERIT; // rotated over time by the angle of the direction (i.e., directional tangent vector) of the motion path plus 180 degrees. + attr->value.fval = 180.0f; + return; + } + + float val_number = 0.0f; + val_start = _parse_number(val_start, val_end, &val_number); + attr->value.fval = val_number; + } +} + +static void _process_anim_attr_names(lv_svg_node_t * node, lv_svg_attr_type_t type, const char * val_start, + const char * val_end) +{ + CHECK_AND_RESIZE_ATTRS(node->attrs); + + node->attrs.size++; + lv_svg_attr_t * attr = lv_array_at(&node->attrs, node->attrs.size - 1); + attr->id = type; + attr->val_type = LV_SVG_ATTR_VALUE_DATA; + attr->class_type = LV_SVG_ATTR_VALUE_INITIAL; + attr->value.ival = _get_svg_attr_type(val_start, val_end); +} + +static void _process_anim_attr_options(lv_svg_node_t * node, lv_svg_attr_type_t type, const char * val_start, + const char * val_end) +{ + CHECK_AND_RESIZE_ATTRS(node->attrs); + + node->attrs.size++; + lv_svg_attr_t * attr = lv_array_at(&node->attrs, node->attrs.size - 1); + attr->id = type; + attr->val_type = LV_SVG_ATTR_VALUE_DATA; + attr->class_type = LV_SVG_ATTR_VALUE_INITIAL; + + uint32_t len = val_end - val_start; + switch(type) { + case LV_SVG_ATTR_RESTART: { + if(len == 6 && strncmp(val_start, "always", 6) == 0) { + attr->value.ival = LV_SVG_ANIM_RESTART_ALWAYS; + return; + } + else if(len == 13 && strncmp(val_start, "whenNotActive", 13) == 0) { + attr->value.ival = LV_SVG_ANIM_RESTART_WHEN_NOT_ACTIVE; + return; + } + else if(len == 5 && strncmp(val_start, "never", 5) == 0) { + attr->value.ival = LV_SVG_ANIM_RESTART_NEVER; + return; + } + } + break; + case LV_SVG_ATTR_CALC_MODE: { + if(len == 6 && strncmp(val_start, "linear", 6) == 0) { + attr->value.ival = LV_SVG_ANIM_CALC_MODE_LINEAR; + return; + } + else if(len == 5 && strncmp(val_start, "paced", 5) == 0) { + attr->value.ival = LV_SVG_ANIM_CALC_MODE_PACED; + return; + } + else if(len == 6 && strncmp(val_start, "spline", 6) == 0) { + attr->value.ival = LV_SVG_ANIM_CALC_MODE_SPLINE; + return; + } + else if(len == 8 && strncmp(val_start, "discrete", 8) == 0) { + attr->value.ival = LV_SVG_ANIM_CALC_MODE_DISCRETE; + return; + } + } + break; + case LV_SVG_ATTR_ADDITIVE: { + if(len == 7 && strncmp(val_start, "replace", 7) == 0) { + attr->value.ival = LV_SVG_ANIM_ADDITIVE_REPLACE; + return; + } + else if(len == 3 && strncmp(val_start, "sum", 3) == 0) { + attr->value.ival = LV_SVG_ANIM_ADDITIVE_SUM; + return; + } + } + break; + case LV_SVG_ATTR_ACCUMULATE: { + if(len == 4 && strncmp(val_start, "none", 4) == 0) { + attr->value.ival = LV_SVG_ANIM_ACCUMULATE_NONE; + return; + } + else if(len == 3 && strncmp(val_start, "sum", 3) == 0) { + attr->value.ival = LV_SVG_ANIM_ACCUMULATE_SUM; + return; + } + } + break; + case LV_SVG_ATTR_TRANSFORM_TYPE: { + if(len == 9 && strncmp(val_start, "translate", 9) == 0) { + attr->value.ival = LV_SVG_TRANSFORM_TYPE_TRANSLATE; + return; + } + else if(len == 5 && strncmp(val_start, "scale", 5) == 0) { + attr->value.ival = LV_SVG_TRANSFORM_TYPE_SCALE; + return; + } + else if(len == 6 && strncmp(val_start, "rotate", 6) == 0) { + attr->value.ival = LV_SVG_TRANSFORM_TYPE_ROTATE; + return; + } + else if(len == 5 && strncmp(val_start, "skewX", 5) == 0) { + attr->value.ival = LV_SVG_TRANSFORM_TYPE_SKEW_X; + return; + } + else if(len == 5 && strncmp(val_start, "skewY", 5) == 0) { + attr->value.ival = LV_SVG_TRANSFORM_TYPE_SKEW_Y; + return; + } + } + break; + } + attr->value.ival = 0; +} + +static void _parse_anim_value(lv_svg_node_t * node, lv_svg_attr_t * attr, const char * val_start, const char * val_end, + int32_t dpi) +{ + if(node->type == LV_SVG_TAG_ANIMATE || node->type == LV_SVG_TAG_SET) { + float val_number = 0.0f; + val_start = _parse_length(val_start, val_end, dpi, &val_number); + attr->value.fval = val_number; + } + else if(node->type == LV_SVG_TAG_ANIMATE_COLOR) { + uint32_t color = 0; + val_start = _parse_color(val_start, val_end, &color); + attr->value.uval = color; + } + else if(node->type == LV_SVG_TAG_ANIMATE_TRANSFORM) { + attr->val_type = LV_SVG_ATTR_VALUE_PTR; + lv_svg_attr_values_list_t * list = lv_malloc(sizeof(float) * 4 + sizeof(uint32_t)); + LV_ASSERT_MALLOC(list); + + float val_number = 0.0f; + uint32_t cnt = 0; + const char * ptr = val_start; + + while((ptr < val_end) && (cnt < 3)) { + float * val = (float *)(&list->data) + cnt; + + val_number = 0.0f; + ptr = _parse_number(ptr, val_end, &val_number); + *val = val_number; + + if(!ptr) break; + ++cnt; + } + + list->length = cnt; + attr->value.val = list; + } + else if(node->type == LV_SVG_TAG_ANIMATE_MOTION) { + attr->val_type = LV_SVG_ATTR_VALUE_PTR; + lv_svg_attr_values_list_t * list = lv_malloc(sizeof(lv_svg_point_t) + sizeof(uint32_t)); + LV_ASSERT_MALLOC(list); + + lv_svg_point_t * pt = (lv_svg_point_t *)(&list->data); + + float val_number = 0.0f; + val_start = _parse_number(val_start, val_end, &val_number); + pt->x = val_number; + val_number = 0.0f; + val_start = _parse_number(val_start, val_end, &val_number); + pt->y = val_number; + + list->length = 1; + attr->value.val = list; + } +} + +struct _parse_value_list_context { + uint32_t mem_size; + uint32_t list_count; + lv_svg_attr_values_list_t * list; +}; + +struct _transform_values_list { + uint32_t length; + float data[4]; +}; + +#define GET_NEXT_VALUE_PTR(ptr, ctx, type) \ + do { \ + lv_svg_attr_values_list_t * list = ctx->list; \ + if(!list) { \ + ctx->mem_size = sizeof(type) * 4 + sizeof(uint32_t);\ + ctx->list = lv_malloc_zeroed(ctx->mem_size); \ + LV_ASSERT_MALLOC(ctx->list); \ + ptr = (type *)(&(ctx->list->data)); \ + ctx->list_count = 1; \ + } else { \ + uint32_t mem = sizeof(type) * (ctx->list_count + 1) + sizeof(uint32_t); \ + if(ctx->mem_size < mem) { \ + ctx->mem_size = (ctx->list_count << 1) * sizeof(type) + sizeof(uint32_t); \ + ctx->list = (lv_svg_attr_values_list_t *)lv_realloc(ctx->list, ctx->mem_size); \ + LV_ASSERT_MALLOC(ctx->list); \ + } \ + ptr = (type *)(&(ctx->list->data)) + ctx->list_count; \ + ctx->list_count++; \ + } \ + } while(0) + +static void _anim_values_cb(lv_svg_node_t * node, lv_svg_attr_t * attr, const char * val_start, const char * val_end, + int32_t dpi, void * data) +{ + LV_UNUSED(attr); + struct _parse_value_list_context * ctx = (struct _parse_value_list_context *)data; + + if(node->type == LV_SVG_TAG_ANIMATE || node->type == LV_SVG_TAG_SET) { + float * val_number = NULL; + GET_NEXT_VALUE_PTR(val_number, ctx, float); + val_start = _parse_length(val_start, val_end, dpi, val_number); + } + else if(node->type == LV_SVG_TAG_ANIMATE_COLOR) { + uint32_t * color = NULL; + GET_NEXT_VALUE_PTR(color, ctx, uint32_t); + val_start = _parse_color(val_start, val_end, color); + } + else if(node->type == LV_SVG_TAG_ANIMATE_TRANSFORM) { + struct _transform_values_list * trans_vals = NULL; + GET_NEXT_VALUE_PTR(trans_vals, ctx, struct _transform_values_list); + + uint32_t cnt = 0; + const char * ptr = val_start; + + while((ptr < val_end) && (cnt < 3)) { + float * val = &(trans_vals->data[cnt]); + ptr = _parse_number(ptr, val_end, val); + if(!ptr) break; + ++cnt; + } + + trans_vals->length = cnt; + } + else if(node->type == LV_SVG_TAG_ANIMATE_MOTION) { + lv_svg_point_t * point = NULL; + GET_NEXT_VALUE_PTR(point, ctx, lv_svg_point_t); + val_start = _parse_number(val_start, val_end, &point->x); + val_start = _parse_number(val_start, val_end, &point->y); + } + ctx->list->length = ctx->list_count; +} + +static void _anim_keys_cb(lv_svg_node_t * node, lv_svg_attr_t * attr, const char * val_start, const char * val_end, + int32_t dpi, void * data) +{ + LV_UNUSED(node); + LV_UNUSED(attr); + LV_UNUSED(dpi); + struct _parse_value_list_context * ctx = (struct _parse_value_list_context *)data; + + float * val_number = NULL; + GET_NEXT_VALUE_PTR(val_number, ctx, float); + val_start = _parse_number(val_start, val_end, val_number); + + ctx->list->length = ctx->list_count; +} + +static void _anim_key_splines_cb(lv_svg_node_t * node, lv_svg_attr_t * attr, const char * val_start, + const char * val_end, int32_t dpi, void * data) +{ + LV_UNUSED(node); + LV_UNUSED(attr); + LV_UNUSED(dpi); + struct _parse_value_list_context * ctx = (struct _parse_value_list_context *)data; + + lv_svg_point_t * point = NULL; + GET_NEXT_VALUE_PTR(point, ctx, lv_svg_point_t); + val_start = _parse_number(val_start, val_end, &point->x); + val_start = _parse_number(val_start, val_end, &point->y); + + GET_NEXT_VALUE_PTR(point, ctx, lv_svg_point_t); + val_start = _parse_number(val_start, val_end, &point->x); + val_start = _parse_number(val_start, val_end, &point->y); + + ctx->list->length = ctx->list_count; +} + +static void _anim_begin_end_cb(lv_svg_node_t * node, lv_svg_attr_t * attr, const char * val_start, + const char * val_end, int32_t dpi, void * data) +{ + LV_UNUSED(node); + LV_UNUSED(attr); + LV_UNUSED(dpi); + struct _parse_value_list_context * ctx = (struct _parse_value_list_context *)data; + + // offset-value + float * val_number = NULL; + GET_NEXT_VALUE_PTR(val_number, ctx, float); + val_start = _parse_clock_time(val_start, val_end, val_number); + + //FIXME: not support begin-end type + // syncbase-value + // event-value + // repeat-value + // accessKey-value + // indefinite + + ctx->list->length = ctx->list_count; +} + +static void _process_anim_attr_values(lv_svg_node_t * node, lv_svg_attr_type_t type, const char * val_start, + const char * val_end, int32_t dpi) +{ + CHECK_AND_RESIZE_ATTRS(node->attrs); + + node->attrs.size++; + lv_svg_attr_t * attr = lv_array_at(&node->attrs, node->attrs.size - 1); + attr->id = type; + attr->val_type = LV_SVG_ATTR_VALUE_DATA; + attr->class_type = LV_SVG_ATTR_VALUE_INITIAL; + + if(type == LV_SVG_ATTR_VALUES) { + attr->val_type = LV_SVG_ATTR_VALUE_PTR; + struct _parse_value_list_context ctx = {.mem_size = 0, .list_count = 0, .list = NULL}; + _parse_anim_value_list(node, attr, val_start, val_end, dpi, _anim_values_cb, &ctx); + attr->value.val = ctx.list; + } + else if(type == LV_SVG_ATTR_KEY_TIMES || type == LV_SVG_ATTR_KEY_POINTS) { + attr->val_type = LV_SVG_ATTR_VALUE_PTR; + struct _parse_value_list_context ctx = {.mem_size = 0, .list_count = 0, .list = NULL}; + _parse_anim_value_list(node, attr, val_start, val_end, dpi, _anim_keys_cb, &ctx); + attr->value.val = ctx.list; + } + else if(type == LV_SVG_ATTR_KEY_SPLINES) { + attr->val_type = LV_SVG_ATTR_VALUE_PTR; + struct _parse_value_list_context ctx = {.mem_size = 0, .list_count = 0, .list = NULL}; + _parse_anim_value_list(node, attr, val_start, val_end, dpi, _anim_key_splines_cb, &ctx); + attr->value.val = ctx.list; + } + else if(type == LV_SVG_ATTR_BEGIN || type == LV_SVG_ATTR_END) { + attr->val_type = LV_SVG_ATTR_VALUE_PTR; + struct _parse_value_list_context ctx = {.mem_size = 0, .list_count = 0, .list = NULL}; + _parse_anim_value_list(node, attr, val_start, val_end, dpi, _anim_begin_end_cb, &ctx); + attr->value.val = ctx.list; + } + else { + _parse_anim_value(node, attr, val_start, val_end, dpi); + } +} + +#endif + +static void _process_attrs_tag(_lv_svg_parser_t * parser, lv_svg_node_t * node, const _lv_svg_token_t * token) +{ + uint32_t len = lv_array_size(&token->attrs); + for(uint32_t i = 0; i < len; i++) { + _lv_svg_token_attr_t * tok_attr = lv_array_at(&token->attrs, i); + lv_svg_attr_type_t type = _get_svg_attr_type(tok_attr->name_start, tok_attr->name_end); + + tok_attr->value_start = _skip_space(tok_attr->value_start, tok_attr->value_end); + uint32_t value_len = tok_attr->value_end - tok_attr->value_start; + if(value_len == 0) { + continue; // skip empty value attribute + } + + if(type == LV_SVG_ATTR_XML_ID || type == LV_SVG_ATTR_ID) { // get xml:id + char * str = lv_malloc(value_len + 1); + LV_ASSERT_MALLOC(str); + lv_memcpy(str, tok_attr->value_start, value_len); + str[value_len] = '\0'; + node->xml_id = str; + continue; + } + + switch(type) { + case LV_SVG_ATTR_VERSION: + case LV_SVG_ATTR_BASE_PROFILE: + _process_string(node, type, tok_attr->value_start, tok_attr->value_end); + break; + case LV_SVG_ATTR_VIEWBOX: + _process_view_box(node, type, tok_attr->value_start, tok_attr->value_end); + break; + case LV_SVG_ATTR_PRESERVE_ASPECT_RATIO: + _process_preserve_aspect_ratio(node, type, tok_attr->value_start, tok_attr->value_end); + break; + case LV_SVG_ATTR_X: + case LV_SVG_ATTR_Y: + case LV_SVG_ATTR_WIDTH: + case LV_SVG_ATTR_HEIGHT: + case LV_SVG_ATTR_RX: + case LV_SVG_ATTR_RY: + case LV_SVG_ATTR_CX: + case LV_SVG_ATTR_CY: + case LV_SVG_ATTR_R: + case LV_SVG_ATTR_X1: + case LV_SVG_ATTR_Y1: + case LV_SVG_ATTR_X2: + case LV_SVG_ATTR_Y2: + case LV_SVG_ATTR_PATH_LENGTH: + _process_length_value(node, type, tok_attr->value_start, tok_attr->value_end, parser->dpi); + break; + case LV_SVG_ATTR_OPACITY: + case LV_SVG_ATTR_FILL_OPACITY: + case LV_SVG_ATTR_STROKE_OPACITY: + case LV_SVG_ATTR_SOLID_OPACITY: + case LV_SVG_ATTR_VIEWPORT_FILL_OPACITY: + case LV_SVG_ATTR_GRADIENT_STOP_OPACITY: + _process_opacity_value(node, type, tok_attr->value_start, tok_attr->value_end); + break; + case LV_SVG_ATTR_POINTS: + _process_points_value(node, type, tok_attr->value_start, tok_attr->value_end); + break; + case LV_SVG_ATTR_D: +#if LV_USE_SVG_ANIMATION + case LV_SVG_ATTR_PATH: +#endif + _process_path_value(node, type, tok_attr->value_start, tok_attr->value_end); + break; + case LV_SVG_ATTR_TRANSFORM: + _process_transform(node, type, tok_attr->value_start, tok_attr->value_end); + break; + case LV_SVG_ATTR_FILL: + case LV_SVG_ATTR_STROKE: + case LV_SVG_ATTR_VIEWPORT_FILL: + case LV_SVG_ATTR_SOLID_COLOR: + case LV_SVG_ATTR_GRADIENT_STOP_COLOR: + _process_paint(node, type, tok_attr->value_start, tok_attr->value_end); + break; + case LV_SVG_ATTR_FILL_RULE: + case LV_SVG_ATTR_STROKE_LINECAP: + case LV_SVG_ATTR_STROKE_LINEJOIN: + case LV_SVG_ATTR_STROKE_WIDTH: + case LV_SVG_ATTR_STROKE_MITER_LIMIT: + case LV_SVG_ATTR_STROKE_DASH_OFFSET: + case LV_SVG_ATTR_GRADIENT_STOP_OFFSET: + _process_paint_attrs(node, type, tok_attr->value_start, tok_attr->value_end); + break; + case LV_SVG_ATTR_STROKE_DASH_ARRAY: + _process_paint_dasharray(node, type, tok_attr->value_start, tok_attr->value_end); + break; + case LV_SVG_ATTR_GRADIENT_UNITS: + _process_gradient_units(node, type, tok_attr->value_start, tok_attr->value_end); + break; + case LV_SVG_ATTR_FONT_FAMILY: + case LV_SVG_ATTR_FONT_STYLE: + case LV_SVG_ATTR_FONT_VARIANT: + case LV_SVG_ATTR_FONT_WEIGHT: + case LV_SVG_ATTR_FONT_SIZE: + _process_font_attrs(node, type, tok_attr->value_start, tok_attr->value_end, parser->dpi); + break; + case LV_SVG_ATTR_XLINK_HREF: + _process_xlink(node, type, tok_attr->value_start, tok_attr->value_end); + break; +#if LV_USE_SVG_ANIMATION + case LV_SVG_ATTR_DUR: + case LV_SVG_ATTR_MIN: + case LV_SVG_ATTR_MAX: + case LV_SVG_ATTR_REPEAT_DUR: + _process_clock_time(node, type, tok_attr->value_start, tok_attr->value_end); + break; + case LV_SVG_ATTR_ATTRIBUTE_NAME: + _process_anim_attr_names(node, type, tok_attr->value_start, tok_attr->value_end); + break; + case LV_SVG_ATTR_FROM: + case LV_SVG_ATTR_TO: + case LV_SVG_ATTR_BY: + case LV_SVG_ATTR_VALUES: + case LV_SVG_ATTR_KEY_TIMES: + case LV_SVG_ATTR_KEY_POINTS: + case LV_SVG_ATTR_KEY_SPLINES: + case LV_SVG_ATTR_BEGIN: + case LV_SVG_ATTR_END: + _process_anim_attr_values(node, type, tok_attr->value_start, tok_attr->value_end, parser->dpi); + break; + case LV_SVG_ATTR_ROTATE: + case LV_SVG_ATTR_REPEAT_COUNT: + _process_anim_attr_number(node, type, tok_attr->value_start, tok_attr->value_end); + break; + case LV_SVG_ATTR_RESTART: + case LV_SVG_ATTR_CALC_MODE: + case LV_SVG_ATTR_ADDITIVE: + case LV_SVG_ATTR_ACCUMULATE: + case LV_SVG_ATTR_TRANSFORM_TYPE: + _process_anim_attr_options(node, type, tok_attr->value_start, tok_attr->value_end); + break; + case LV_SVG_ATTR_ATTRIBUTE_TYPE: +#endif + case LV_SVG_ATTR_DISPLAY: + case LV_SVG_ATTR_VISIBILITY: + case LV_SVG_ATTR_TEXT_ANCHOR: + // not support yet + break; + } + } +} + +static bool _process_begin_tag(_lv_svg_parser_t * parser, lv_svg_tag_t tag, const _lv_svg_token_t * token) +{ + if(parser->state == LV_SVG_PARSER_IGNORE) { + // ignore ignored tokens + return true; + } + + if(token->type == LV_SVG_TOKEN_CONTENT) { + uint32_t len = SVG_TOKEN_LEN(token); + char * content = lv_malloc(len + 1); + LV_ASSERT_MALLOC(content); + lv_memcpy(content, token->start, len); + content[len] = '\0'; + lv_svg_node_t * node = lv_svg_node_create(parser->cur_node); + node->xml_id = content; + node->type = LV_SVG_TAG_CONTENT; + return true; + } + + // begin invalid tag + if(tag == LV_SVG_TAG_INVALID) { + if(!token->flat) { + parser->state = LV_SVG_PARSER_IGNORE; + uint32_t len = SVG_TOKEN_LEN(token); + parser->ignore_name = lv_malloc(len + 1); + LV_ASSERT_MALLOC(parser->ignore_name); + parser->ignore_len = len; + lv_memcpy(parser->ignore_name, token->start, len); + parser->ignore_name[len] = '\0'; + } + return true; + } + + // create new node + lv_svg_node_t * node = lv_svg_node_create(parser->cur_node); + node->type = tag; + _process_attrs_tag(parser, node, token); + + if(!parser->doc_root) { // root node + parser->doc_root = node; + } + if(!token->flat) { // FIXME: not leaf node + parser->cur_node = node; + } + return true; +} + +/********************** + * GLOBAL FUNCTIONS + **********************/ +void _lv_svg_parser_init(_lv_svg_parser_t * parser) +{ + LV_ASSERT_NULL(parser); + lv_memzero(parser, sizeof(_lv_svg_parser_t)); + parser->state = LV_SVG_PARSER_PROCESS; + parser->ignore_name = NULL; + parser->ignore_len = 0; + parser->dpi = 96; // FIXME: Is it right ? + parser->doc_root = NULL; + parser->cur_node = NULL; +} + +void _lv_svg_parser_deinit(_lv_svg_parser_t * parser) +{ + LV_ASSERT_NULL(parser); + if(parser->ignore_name) { + lv_free(parser->ignore_name); + parser->ignore_name = NULL; + parser->ignore_len = 0; + } + + if(parser->doc_root) { + lv_svg_node_delete(parser->doc_root); + } + parser->doc_root = parser->cur_node = NULL; +} + +bool _lv_svg_parser_is_finish(_lv_svg_parser_t * parser) +{ + LV_ASSERT_NULL(parser); + return (parser->doc_root != NULL) + && (parser->cur_node == parser->doc_root) + && (parser->state != LV_SVG_PARSER_IGNORE); +} + +bool _lv_svg_parser_token(_lv_svg_parser_t * parser, const _lv_svg_token_t * token) +{ + LV_ASSERT_NULL(parser); + LV_ASSERT_NULL(token); + lv_svg_tag_t tag = _get_svg_tag_type(token); + + if(parser->doc_root == NULL) { + if(!(tag == LV_SVG_TAG_SVG && token->type == LV_SVG_TOKEN_BEGIN)) { + LV_LOG_ERROR("root element in svg document must be !"); + return false; + } + } + + if(token->type == LV_SVG_TOKEN_END) { + return _process_end_tag(parser, tag, token); + } + + return _process_begin_tag(parser, tag, token); +} + +#if LV_USE_SVG_DEBUG +#include +void _lv_svg_dump_tree(lv_svg_node_t * root, int depth) +{ + if(!root) { + return; + } + + for(int i = 0; i < depth; i++) { + printf(" "); + } + if(root->type == LV_SVG_TAG_CONTENT) { + printf("content: [%s]\n", root->xml_id); + } + else { + printf("tag <%s>", _svg_tag_map[root->type - 1].name); + if(root->xml_id) { + printf(" - id [%s]", root->xml_id); + } + printf("\n"); + } + + uint32_t len = lv_array_size(&root->attrs); + for(uint32_t i = 0; i < len; i++) { + for(int j = 0; j < depth; j++) { + printf(" "); + } + lv_svg_attr_t * attr = lv_array_at(&root->attrs, i); + printf(" attr <%s>\n", _svg_attr_map[attr->id - 1].name); + } + + lv_tree_node_t * tree_root = (lv_tree_node_t *)root; + + for(uint32_t i = 0; i < tree_root->child_cnt; i++) { + ++depth; + _lv_svg_dump_tree((lv_svg_node_t *)tree_root->children[i], depth); + --depth; + } +} +#endif /*LV_USE_SVG_DEBUG*/ + +/********************** + * STATIC FUNCTIONS + **********************/ +#endif /*LV_USE_SVG*/ diff --git a/src/libs/svg/lv_svg_parser.h b/src/libs/svg/lv_svg_parser.h new file mode 100644 index 000000000..fc99fe8bd --- /dev/null +++ b/src/libs/svg/lv_svg_parser.h @@ -0,0 +1,84 @@ +/** + * @file lv_svg_parser.h + * + */ + +#ifndef LV_SVG_PARSER_H +#define LV_SVG_PARSER_H + +/********************* + * INCLUDES + *********************/ +#include "../../lv_conf_internal.h" +#if LV_USE_SVG + +#include "lv_svg.h" +#include "lv_svg_token.h" + +/********************* + * DEFINES + *********************/ + +/********************** + * TYPEDEFS + **********************/ + +typedef enum { + LV_SVG_PARSER_PROCESS = 0, + LV_SVG_PARSER_IGNORE, +} _lv_svg_parser_state_t; + +typedef struct { + uint16_t state; + char * ignore_name; + uint32_t ignore_len; + int32_t dpi; + lv_svg_node_t * doc_root; + lv_svg_node_t * cur_node; +} _lv_svg_parser_t; + +/********************** + * GLOBAL PROTOTYPES + **********************/ + +/** + * @brief Initialize the SVG parser + * @param parser pointer to a parser object + */ +void _lv_svg_parser_init(_lv_svg_parser_t * parser); + +/** + * @brief Deinitialize the SVG parser + * @param parser pointer to a parser object + */ +void _lv_svg_parser_deinit(_lv_svg_parser_t * parser); + +/** + * @brief Parse an SVG document + * @param parser pointer to a parser object + * @param token pointer to a token object + * @return true: the parsing is finished, false: the parsing is not finished yet. + */ +bool _lv_svg_parser_token(_lv_svg_parser_t * parser, const _lv_svg_token_t * token); + +/** + * @brief Check if the parsing is finished + * @param parser pointer to a parser object + * @return true: the parsing is finished, false: the parsing is not finished yet. + */ +bool _lv_svg_parser_is_finish(_lv_svg_parser_t * parser); + +/** + * @brief Dump the SVG tree + * @param root pointer to the root of the SVG tree + * @param depth the depth of the current node in the tree + */ +void _lv_svg_dump_tree(lv_svg_node_t * root, int depth); + +/********************** + * MACROS + **********************/ + +#endif /*LV_USE_SVG*/ + +#endif /*LV_SVG_PARSER_H*/ diff --git a/src/libs/svg/lv_svg_render.c b/src/libs/svg/lv_svg_render.c new file mode 100644 index 000000000..9980a89d7 --- /dev/null +++ b/src/libs/svg/lv_svg_render.c @@ -0,0 +1,2204 @@ +/** + * @file lv_svg_render.c + * + */ + +/********************* + * INCLUDES + *********************/ + +#include "../../../lvgl.h" +#include "lv_svg_render.h" +#if LV_USE_SVG + +#include "../../misc/lv_text_private.h" +#include +#include + +#if LV_USE_FREETYPE + #include "../../libs/freetype/lv_freetype_private.h" +#endif + +/********************* +* DEFINES +*********************/ +#ifndef M_PI + #define M_PI 3.1415926f +#endif + +#define MIN(a,b) (((a)<(b))?(a):(b)) +#define MAX(a,b) (((a)>(b))?(a):(b)) +#define ABS(a) fabsf(a) + +#define CALC_BOUNDS(p, bounds) \ + do { \ + if((p).x < (bounds).x1) (bounds).x1 = (int32_t)(p).x; \ + if((p).y < (bounds).y1) (bounds).y1 = (int32_t)(p).y; \ + if((p).x > (bounds).x2) (bounds).x2 = (int32_t)(p).x; \ + if((p).y > (bounds).y2) (bounds).y2 = (int32_t)(p).y; \ + } while(0) + +#define PCT_TO_PX(v, base) ((v) > 1 ? (v) : ((v) * (base))) + +enum { + _RENDER_NORMAL = 0, + _RENDER_IN_DEFS = 1, + _RENDER_IN_GROUP = 2, +}; + +enum { + _RENDER_ATTR_FILL = (4 << 1), + _RENDER_ATTR_FILL_RULE = (4 << 2), + _RENDER_ATTR_FILL_OPACITY = (4 << 3), + _RENDER_ATTR_STROKE = (4 << 4), + _RENDER_ATTR_STROKE_OPACITY = (4 << 5), + _RENDER_ATTR_STROKE_WIDTH = (4 << 6), + _RENDER_ATTR_STROKE_LINECAP = (4 << 7), + _RENDER_ATTR_STROKE_LINEJOIN = (4 << 8), + _RENDER_ATTR_STROKE_MITER_LIMIT = (4 << 9), + _RENDER_ATTR_STROKE_DASH_ARRAY = (4 << 10), +}; + +/********************** +* TYPEDEFS +**********************/ +static void _set_attr(lv_svg_render_obj_t * obj, lv_vector_draw_dsc_t * dsc, const lv_svg_attr_t * attr); +static void _init_draw_dsc(lv_vector_draw_dsc_t * dsc); +static void _deinit_draw_dsc(lv_vector_draw_dsc_t * dsc); +static void _copy_draw_dsc(lv_vector_draw_dsc_t * dst, const lv_vector_draw_dsc_t * src); +static void _prepare_render(const lv_svg_render_obj_t * obj, lv_vector_dsc_t * dsc); +static void _special_render(const lv_svg_render_obj_t * obj, lv_vector_dsc_t * dsc); +#if LV_USE_FREETYPE + static void _freetype_outline_cb(lv_event_t * e); +#endif + +typedef struct { + lv_svg_render_obj_t base; + float width; + float height; + bool viewport_fill; +} lv_svg_render_viewport_t; + +typedef struct { + lv_svg_render_obj_t base; + lv_array_t items; +} lv_svg_render_group_t; + +typedef struct { + lv_svg_render_obj_t base; + float x; + float y; + char * xlink; +} lv_svg_render_use_t; + +typedef struct { + lv_svg_render_obj_t base; + lv_color_t color; + float opacity; +} lv_svg_render_solid_t; + +typedef struct { + lv_svg_render_obj_t base; + lv_vector_gradient_t dsc; + lv_svg_gradient_units_t units; +} lv_svg_render_gradient_t; + +typedef struct { + lv_svg_render_obj_t base; + float x; + float y; + float width; + float height; + float rx; + float ry; +} lv_svg_render_rect_t; + +typedef struct { + lv_svg_render_obj_t base; + float cx; + float cy; + float r; +} lv_svg_render_circle_t; + +typedef struct { + lv_svg_render_obj_t base; + float cx; + float cy; + float rx; + float ry; +} lv_svg_render_ellipse_t; + +typedef struct { + lv_svg_render_obj_t base; + float x1; + float y1; + float x2; + float y2; +} lv_svg_render_line_t; + +typedef struct { + lv_svg_render_obj_t base; + lv_vector_path_t * path; + lv_area_t bounds; +} lv_svg_render_poly_t; + +typedef struct { + lv_svg_render_obj_t base; + float x; + float y; + float width; + float height; + lv_draw_image_dsc_t img_dsc; + lv_svg_aspect_ratio_t ratio; +} lv_svg_render_image_t; + +#if LV_USE_FREETYPE +typedef struct { + lv_svg_render_obj_t base; + lv_array_t contents; + char * family; + float size; + lv_freetype_font_style_t style; + lv_font_t * font; + float x; + float y; + lv_vector_path_t * path; + lv_area_t bounds; +} lv_svg_render_text_t; + +typedef struct _lv_svg_render_content { + lv_svg_render_obj_t base; + void (*render_content)(const struct _lv_svg_render_content * content, + lv_vector_dsc_t * dsc, lv_matrix_t * matrix); + uint32_t * letters; + uint32_t count; +} lv_svg_render_content_t; + +typedef struct { + lv_svg_render_content_t base; + char * family; + float size; + lv_freetype_font_style_t style; + lv_font_t * font; + lv_vector_path_t * path; + lv_area_t bounds; +} lv_svg_render_tspan_t; +#endif + +struct _lv_svg_draw_dsc { + struct _lv_svg_draw_dsc * next; + lv_vector_draw_dsc_t dsc; + const char * fill_ref; + const char * stroke_ref; +}; + +struct _lv_svg_drawing_builder_state { + const lv_svg_node_t * doc; + struct _lv_svg_draw_dsc * draw_dsc; + int in_group_deps; + bool in_defs; +#if LV_USE_FREETYPE + bool in_text; + lv_svg_node_t * cur_text; +#endif + lv_svg_render_obj_t * list; + lv_svg_render_obj_t * tail; +}; + +/********************** + * STATIC VARIABLES + **********************/ +static lv_svg_render_hal_t hal_funcs = {NULL}; + +/********************** + * STATIC PROTOTYPES + **********************/ +void lv_svg_render_init(const lv_svg_render_hal_t * hal) +{ + if(hal) { + hal_funcs = *hal; +#if LV_USE_FREETYPE + lv_freetype_outline_add_event(_freetype_outline_cb, LV_EVENT_ALL, NULL); +#endif + } +} + +static struct _lv_svg_draw_dsc * _lv_svg_draw_dsc_create(void) +{ + struct _lv_svg_draw_dsc * dsc = lv_malloc_zeroed(sizeof(struct _lv_svg_draw_dsc)); + LV_ASSERT_MALLOC(dsc); + _init_draw_dsc(&(dsc->dsc)); + return dsc; +} + +static void _lv_svg_draw_dsc_delete(struct _lv_svg_draw_dsc * dsc) +{ + while(dsc) { + struct _lv_svg_draw_dsc * cur = dsc; + dsc = dsc->next; + _deinit_draw_dsc(&(cur->dsc)); + lv_free(cur); + } +} + +static struct _lv_svg_draw_dsc * _lv_svg_draw_dsc_push(struct _lv_svg_draw_dsc * dsc) +{ + if(!dsc) return NULL; + struct _lv_svg_draw_dsc * cur = lv_malloc_zeroed(sizeof(struct _lv_svg_draw_dsc)); + LV_ASSERT_MALLOC(cur); + _copy_draw_dsc(&(cur->dsc), &(dsc->dsc)); + cur->fill_ref = dsc->fill_ref; + cur->stroke_ref = dsc->stroke_ref; + cur->next = dsc; + return cur; +} + +static struct _lv_svg_draw_dsc * _lv_svg_draw_dsc_pop(struct _lv_svg_draw_dsc * dsc) +{ + if(!dsc) return NULL; + struct _lv_svg_draw_dsc * cur = dsc->next; + lv_free(dsc); + return cur; +} + +static void _set_viewport_attr(lv_svg_render_obj_t * obj, lv_vector_draw_dsc_t * dsc, const lv_svg_attr_t * attr) +{ + lv_svg_render_viewport_t * view = (lv_svg_render_viewport_t *)obj; + switch(attr->id) { + case LV_SVG_ATTR_WIDTH: + view->width = attr->value.fval; + break; + case LV_SVG_ATTR_HEIGHT: + view->height = attr->value.fval; + break; + case LV_SVG_ATTR_VIEWBOX: { + if(attr->class_type == LV_SVG_ATTR_VALUE_INITIAL) { + float * vals = attr->value.val; + float scale_x = 1.0f; + float scale_y = 1.0f; + float trans_x = vals[0]; + float trans_y = vals[1]; + + if(view->width > 0 && vals[2] > 0) { + scale_x = view->width / vals[2]; + } + if(view->height > 0 && vals[3] > 0) { + scale_y = view->height / vals[3]; + } + + lv_matrix_scale(&obj->matrix, scale_x, scale_y); + lv_matrix_translate(&obj->matrix, -trans_x, -trans_y); + } + } + break; + case LV_SVG_ATTR_VIEWPORT_FILL: { + if(attr->class_type == LV_SVG_ATTR_VALUE_INITIAL + && attr->val_type == LV_SVG_ATTR_VALUE_DATA) { + dsc->fill_dsc.color = lv_color_to_32(lv_color_hex(attr->value.uval), 0xFF); + view->viewport_fill = true; + } + else if(attr->class_type == LV_SVG_ATTR_VALUE_NONE) { + view->viewport_fill = false; + } + } + break; + case LV_SVG_ATTR_VIEWPORT_FILL_OPACITY: { + if(attr->class_type == LV_SVG_ATTR_VALUE_INITIAL) { + dsc->fill_dsc.opa = (lv_opa_t)(attr->value.fval * 255.0f); + } + } + break; + } +} + +static void _set_use_attr(lv_svg_render_obj_t * obj, lv_vector_draw_dsc_t * dsc, const lv_svg_attr_t * attr) +{ + _set_attr(obj, dsc, attr); + lv_svg_render_use_t * use = (lv_svg_render_use_t *)obj; + switch(attr->id) { + case LV_SVG_ATTR_X: + use->x = attr->value.fval; + break; + case LV_SVG_ATTR_Y: + use->y = attr->value.fval; + break; + case LV_SVG_ATTR_XLINK_HREF: { + if(use->xlink) lv_free(use->xlink); + use->xlink = lv_strdup(attr->value.sval); + } + break; + } +} + +static void _set_solid_attr(lv_svg_render_obj_t * obj, lv_vector_draw_dsc_t * dsc, const lv_svg_attr_t * attr) +{ + LV_UNUSED(dsc); + lv_svg_render_solid_t * solid = (lv_svg_render_solid_t *)obj; + switch(attr->id) { + case LV_SVG_ATTR_SOLID_COLOR: + solid->color = lv_color_hex(attr->value.uval); + break; + case LV_SVG_ATTR_SOLID_OPACITY: + solid->opacity = attr->value.fval; + break; + } +} + +static void _set_gradient_attr(lv_svg_render_obj_t * obj, lv_vector_draw_dsc_t * dsc, const lv_svg_attr_t * attr) +{ + LV_UNUSED(dsc); + lv_svg_render_gradient_t * grad = (lv_svg_render_gradient_t *)obj; + switch(attr->id) { + case LV_SVG_ATTR_CX: + grad->dsc.cx = attr->value.fval; + break; + case LV_SVG_ATTR_CY: + grad->dsc.cy = attr->value.fval; + break; + case LV_SVG_ATTR_R: + grad->dsc.cr = attr->value.fval; + break; + case LV_SVG_ATTR_X1: + grad->dsc.x1 = attr->value.fval; + break; + case LV_SVG_ATTR_Y1: + grad->dsc.y1 = attr->value.fval; + break; + case LV_SVG_ATTR_X2: + grad->dsc.x2 = attr->value.fval; + break; + case LV_SVG_ATTR_Y2: + grad->dsc.y2 = attr->value.fval; + break; + case LV_SVG_ATTR_GRADIENT_UNITS: + grad->units = attr->value.ival; + break; + } +} + +static void _set_rect_attr(lv_svg_render_obj_t * obj, lv_vector_draw_dsc_t * dsc, const lv_svg_attr_t * attr) +{ + _set_attr(obj, dsc, attr); + lv_svg_render_rect_t * rect = (lv_svg_render_rect_t *)obj; + switch(attr->id) { + case LV_SVG_ATTR_X: + rect->x = attr->value.fval; + break; + case LV_SVG_ATTR_Y: + rect->y = attr->value.fval; + break; + case LV_SVG_ATTR_WIDTH: + rect->width = attr->value.fval; + break; + case LV_SVG_ATTR_HEIGHT: + rect->height = attr->value.fval; + break; + case LV_SVG_ATTR_RX: + rect->rx = attr->value.fval; + break; + case LV_SVG_ATTR_RY: + rect->ry = attr->value.fval; + break; + } +} + +static void _set_circle_attr(lv_svg_render_obj_t * obj, lv_vector_draw_dsc_t * dsc, const lv_svg_attr_t * attr) +{ + _set_attr(obj, dsc, attr); + lv_svg_render_circle_t * circle = (lv_svg_render_circle_t *)obj; + switch(attr->id) { + case LV_SVG_ATTR_CX: + circle->cx = attr->value.fval; + break; + case LV_SVG_ATTR_CY: + circle->cy = attr->value.fval; + break; + case LV_SVG_ATTR_R: + circle->r = attr->value.fval; + break; + } +} + +static void _set_ellipse_attr(lv_svg_render_obj_t * obj, lv_vector_draw_dsc_t * dsc, const lv_svg_attr_t * attr) +{ + _set_attr(obj, dsc, attr); + lv_svg_render_ellipse_t * ellipse = (lv_svg_render_ellipse_t *)obj; + switch(attr->id) { + case LV_SVG_ATTR_CX: + ellipse->cx = attr->value.fval; + break; + case LV_SVG_ATTR_CY: + ellipse->cy = attr->value.fval; + break; + case LV_SVG_ATTR_RX: + ellipse->rx = attr->value.fval; + break; + case LV_SVG_ATTR_RY: + ellipse->ry = attr->value.fval; + break; + } +} + +static void _set_line_attr(lv_svg_render_obj_t * obj, lv_vector_draw_dsc_t * dsc, const lv_svg_attr_t * attr) +{ + _set_attr(obj, dsc, attr); + lv_svg_render_line_t * line = (lv_svg_render_line_t *)obj; + switch(attr->id) { + case LV_SVG_ATTR_X1: + line->x1 = attr->value.fval; + break; + case LV_SVG_ATTR_Y1: + line->y1 = attr->value.fval; + break; + case LV_SVG_ATTR_X2: + line->x2 = attr->value.fval; + break; + case LV_SVG_ATTR_Y2: + line->y2 = attr->value.fval; + break; + } +} + +static void _set_polyline_attr(lv_svg_render_obj_t * obj, lv_vector_draw_dsc_t * dsc, const lv_svg_attr_t * attr) +{ + _set_attr(obj, dsc, attr); + lv_svg_render_poly_t * poly = (lv_svg_render_poly_t *)obj; + if(attr->id == LV_SVG_ATTR_POINTS) { + lv_vector_path_clear(poly->path); + lv_svg_attr_values_list_t * vals = (lv_svg_attr_values_list_t *)(attr->value.val); + uint32_t len = vals->length; + lv_svg_point_t * points = (lv_svg_point_t *)(&vals->data); + + CALC_BOUNDS(points[0], poly->bounds); + lv_fpoint_t pt = {points[0].x, points[0].y}; + lv_vector_path_move_to(poly->path, &pt); + for(uint32_t i = 1; i < len; i++) { + pt.x = points[i].x; + pt.y = points[i].y; + lv_vector_path_line_to(poly->path, &pt); + CALC_BOUNDS(pt, poly->bounds); + } + } +} + +static void _set_polygen_attr(lv_svg_render_obj_t * obj, lv_vector_draw_dsc_t * dsc, const lv_svg_attr_t * attr) +{ + _set_polyline_attr(obj, dsc, attr); + lv_svg_render_poly_t * poly = (lv_svg_render_poly_t *)obj; + if(attr->id == LV_SVG_ATTR_POINTS) { + lv_vector_path_close(poly->path); + } +} + +static size_t _get_path_seg_size(uint32_t cmd) +{ + switch(cmd) { + case LV_SVG_PATH_CMD_MOVE_TO: + case LV_SVG_PATH_CMD_LINE_TO: + case LV_SVG_PATH_CMD_CLOSE: + return sizeof(lv_svg_point_t) + sizeof(uint32_t); + case LV_SVG_PATH_CMD_QUAD_TO: + return sizeof(lv_svg_point_t) * 2 + sizeof(uint32_t); + case LV_SVG_PATH_CMD_CURVE_TO: + return sizeof(lv_svg_point_t) * 3 + sizeof(uint32_t); + default: + return 0; + } +} + +static void _set_path_attr(lv_svg_render_obj_t * obj, lv_vector_draw_dsc_t * dsc, const lv_svg_attr_t * attr) +{ + _set_attr(obj, dsc, attr); + lv_svg_render_poly_t * poly = (lv_svg_render_poly_t *)obj; + if(attr->id == LV_SVG_ATTR_D) { + lv_vector_path_clear(poly->path); + lv_svg_attr_values_list_t * vals = (lv_svg_attr_values_list_t *)(attr->value.val); + uint32_t len = vals->length; + uint8_t * data_ptr = (uint8_t *)(&vals->data); + + for(uint32_t i = 0; i < len; i++) { + lv_svg_attr_path_value_t * path_seg = (lv_svg_attr_path_value_t *)data_ptr; + uint32_t cmd = path_seg->cmd; + lv_svg_point_t * points = (lv_svg_point_t *)(&path_seg->data); + switch(cmd) { + case LV_SVG_PATH_CMD_MOVE_TO: { + lv_fpoint_t pt = {points[0].x, points[0].y}; + lv_vector_path_move_to(poly->path, &pt); + CALC_BOUNDS(pt, poly->bounds); + } + break; + case LV_SVG_PATH_CMD_LINE_TO: { + lv_fpoint_t pt = {points[0].x, points[0].y}; + lv_vector_path_line_to(poly->path, &pt); + CALC_BOUNDS(pt, poly->bounds); + } + break; + case LV_SVG_PATH_CMD_QUAD_TO: { + lv_fpoint_t pt[2] = { + {points[0].x, points[0].y}, + {points[1].x, points[1].y} + }; + lv_vector_path_quad_to(poly->path, &pt[0], &pt[1]); + CALC_BOUNDS(pt[0], poly->bounds); + CALC_BOUNDS(pt[1], poly->bounds); + } + break; + case LV_SVG_PATH_CMD_CURVE_TO: { + lv_fpoint_t pt[3] = { + {points[0].x, points[0].y}, + {points[1].x, points[1].y}, + {points[2].x, points[2].y} + }; + lv_vector_path_cubic_to(poly->path, &pt[0], &pt[1], &pt[2]); + CALC_BOUNDS(pt[0], poly->bounds); + CALC_BOUNDS(pt[1], poly->bounds); + CALC_BOUNDS(pt[2], poly->bounds); + } + break; + case LV_SVG_PATH_CMD_CLOSE: { + lv_vector_path_close(poly->path); + } + break; + } + size_t mem_inc = _get_path_seg_size(cmd); + data_ptr += mem_inc; + } + } +} + +#if LV_USE_FREETYPE +#define SET_FONT_ATTRS(obj, attr) \ + do { \ + switch(attr->id) { \ + case LV_SVG_ATTR_FONT_FAMILY: { \ + if(attr->val_type == LV_SVG_ATTR_VALUE_PTR) { \ + if((obj)->font) { \ + lv_freetype_font_delete((obj)->font); \ + (obj)->font = NULL; \ + } \ + lv_vector_path_clear((obj)->path); \ + if((obj)->family) lv_free((obj)->family); \ + (obj)->family = lv_strdup(attr->value.sval); \ + } \ + } \ + break; \ + case LV_SVG_ATTR_FONT_SIZE: \ + if(attr->class_type == LV_SVG_ATTR_VALUE_INITIAL) { \ + if(attr->val_type == LV_SVG_ATTR_VALUE_DATA) { \ + if((obj)->font) { \ + lv_freetype_font_delete((obj)->font); \ + (obj)->font = NULL; \ + } \ + (obj)->size = attr->value.fval; \ + lv_vector_path_clear((obj)->path); \ + } \ + } \ + break; \ + case LV_SVG_ATTR_FONT_STYLE: \ + if(attr->class_type == LV_SVG_ATTR_VALUE_INITIAL) { \ + if(attr->val_type == LV_SVG_ATTR_VALUE_PTR) { \ + if((obj)->font) { \ + lv_freetype_font_delete((obj)->font); \ + (obj)->font = NULL; \ + } \ + lv_vector_path_clear((obj)->path); \ + if(strncmp(attr->value.sval, "italic", 6) == 0) { \ + (obj)->style = LV_FREETYPE_FONT_STYLE_ITALIC; \ + } \ + } \ + } \ + break; \ + case LV_SVG_ATTR_FONT_WEIGHT: \ + if(attr->class_type == LV_SVG_ATTR_VALUE_INITIAL) { \ + if(attr->val_type == LV_SVG_ATTR_VALUE_PTR) { \ + if((obj)->font) { \ + lv_freetype_font_delete((obj)->font); \ + (obj)->font = NULL; \ + } \ + lv_vector_path_clear((obj)->path); \ + if(strncmp(attr->value.sval, "bold", 4) == 0) { \ + (obj)->style = LV_FREETYPE_FONT_STYLE_BOLD; \ + } \ + } \ + } \ + break; \ + case LV_SVG_ATTR_FONT_VARIANT: \ + if(attr->class_type == LV_SVG_ATTR_VALUE_INITIAL) { \ + if(attr->val_type == LV_SVG_ATTR_VALUE_PTR) { \ + if((obj)->font) { \ + lv_freetype_font_delete((obj)->font); \ + (obj)->font = NULL; \ + } \ + lv_vector_path_clear((obj)->path); \ + if(strncmp(attr->value.sval, "small-caps", 10) == 0) { \ + (obj)->size /= 2; \ + } \ + } \ + } \ + break; \ + } \ + } while(0) + +static void _set_tspan_attr(lv_svg_render_obj_t * obj, lv_vector_draw_dsc_t * dsc, const lv_svg_attr_t * attr) +{ + _set_attr(obj, dsc, attr); + lv_svg_render_tspan_t * tspan = (lv_svg_render_tspan_t *)obj; + + SET_FONT_ATTRS(tspan, attr); +} + +static void _set_text_attr(lv_svg_render_obj_t * obj, lv_vector_draw_dsc_t * dsc, const lv_svg_attr_t * attr) +{ + _set_attr(obj, dsc, attr); + lv_svg_render_text_t * text = (lv_svg_render_text_t *)obj; + + SET_FONT_ATTRS(text, attr); + + switch(attr->id) { + case LV_SVG_ATTR_X: + text->x = attr->value.fval; + break; + case LV_SVG_ATTR_Y: + text->y = attr->value.fval; + break; + } +} +#endif + +static void _set_image_attr(lv_svg_render_obj_t * obj, lv_vector_draw_dsc_t * dsc, const lv_svg_attr_t * attr) +{ + _set_attr(obj, dsc, attr); + lv_svg_render_image_t * image = (lv_svg_render_image_t *)obj; + switch(attr->id) { + case LV_SVG_ATTR_X: + image->x = attr->value.fval; + break; + case LV_SVG_ATTR_Y: + image->y = attr->value.fval; + break; + case LV_SVG_ATTR_HEIGHT: + image->height = attr->value.fval; + break; + case LV_SVG_ATTR_WIDTH: + image->width = attr->value.fval; + break; + case LV_SVG_ATTR_OPACITY: + image->img_dsc.opa = (lv_opa_t)(attr->value.fval * 255.0f); + break; + case LV_SVG_ATTR_XLINK_HREF: { + const char * xlink = attr->value.sval; + if(hal_funcs.load_image) { + hal_funcs.load_image(xlink, &image->img_dsc); + } + } + break; + case LV_SVG_ATTR_PRESERVE_ASPECT_RATIO: { + if(attr->class_type == LV_SVG_ATTR_VALUE_INITIAL) { + image->ratio = attr->value.uval; + } + } + break; + } +} + +static void _set_attr(lv_svg_render_obj_t * obj, lv_vector_draw_dsc_t * dsc, const lv_svg_attr_t * attr) +{ + LV_UNUSED(obj); + switch(attr->id) { + case LV_SVG_ATTR_FILL: { + if(attr->class_type == LV_SVG_ATTR_VALUE_NONE) { + dsc->fill_dsc.opa = LV_OPA_0; + obj->flags |= _RENDER_ATTR_FILL_OPACITY; + obj->flags |= _RENDER_ATTR_FILL; + return; + } + else if(attr->class_type == LV_SVG_ATTR_VALUE_INHERIT) { + obj->flags &= ~_RENDER_ATTR_FILL; + return; + } + else { + if(obj->fill_ref) { + lv_free(obj->fill_ref); + obj->fill_ref = NULL; + } + if(attr->val_type == LV_SVG_ATTR_VALUE_PTR) { + obj->fill_ref = lv_strdup(attr->value.sval); + } + else { // color + dsc->fill_dsc.style = LV_VECTOR_DRAW_STYLE_SOLID; + dsc->fill_dsc.color = lv_color_to_32(lv_color_hex(attr->value.uval), 0xFF); + } + obj->flags |= _RENDER_ATTR_FILL; + if(obj->dsc.fill_dsc.opa == LV_OPA_0) { + dsc->fill_dsc.opa = LV_OPA_COVER; + obj->flags |= _RENDER_ATTR_FILL_OPACITY; + } + } + } + break; + case LV_SVG_ATTR_STROKE: { + if(attr->class_type == LV_SVG_ATTR_VALUE_NONE) { + dsc->stroke_dsc.opa = LV_OPA_0; + obj->flags |= _RENDER_ATTR_STROKE_OPACITY; + obj->flags |= _RENDER_ATTR_STROKE; + return; + } + else if(attr->class_type == LV_SVG_ATTR_VALUE_INHERIT) { + obj->flags &= ~_RENDER_ATTR_STROKE; + return; + } + else { + if(obj->stroke_ref) { + lv_free(obj->stroke_ref); + obj->stroke_ref = NULL; + } + if(attr->val_type == LV_SVG_ATTR_VALUE_PTR) { + obj->stroke_ref = lv_strdup(attr->value.sval); + } + else { // color + dsc->stroke_dsc.style = LV_VECTOR_DRAW_STYLE_SOLID; + dsc->stroke_dsc.color = lv_color_to_32(lv_color_hex(attr->value.uval), 0xFF); + } + } + + obj->flags |= _RENDER_ATTR_STROKE; + if(obj->dsc.stroke_dsc.opa == LV_OPA_0) { + dsc->stroke_dsc.opa = LV_OPA_COVER; + obj->flags |= _RENDER_ATTR_STROKE_OPACITY; + } + } + break; + case LV_SVG_ATTR_FILL_OPACITY: { + if(attr->class_type == LV_SVG_ATTR_VALUE_INHERIT) { + obj->flags &= ~_RENDER_ATTR_FILL_OPACITY; + return; + } + dsc->fill_dsc.opa = (lv_opa_t)(attr->value.fval * 255.0f); + obj->flags |= _RENDER_ATTR_FILL_OPACITY; + } + break; + case LV_SVG_ATTR_STROKE_OPACITY: { + if(attr->class_type == LV_SVG_ATTR_VALUE_INHERIT) { + obj->flags &= ~_RENDER_ATTR_STROKE_OPACITY; + return; + } + dsc->stroke_dsc.opa = (lv_opa_t)(attr->value.fval * 255.0f); + obj->flags |= _RENDER_ATTR_STROKE_OPACITY; + } + break; + case LV_SVG_ATTR_FILL_RULE: { + if(attr->class_type == LV_SVG_ATTR_VALUE_INHERIT) { + obj->flags &= ~_RENDER_ATTR_FILL_RULE; + return; + } + dsc->fill_dsc.fill_rule = attr->value.ival; + obj->flags |= _RENDER_ATTR_FILL_RULE; + } + break; + case LV_SVG_ATTR_STROKE_WIDTH: { + if(attr->class_type == LV_SVG_ATTR_VALUE_INHERIT) { + obj->flags &= ~_RENDER_ATTR_STROKE_WIDTH; + return; + } + dsc->stroke_dsc.width = attr->value.fval; + obj->flags |= _RENDER_ATTR_STROKE_WIDTH; + } + break; + case LV_SVG_ATTR_STROKE_LINECAP: { + if(attr->class_type == LV_SVG_ATTR_VALUE_INHERIT) { + obj->flags &= ~_RENDER_ATTR_STROKE_LINECAP; + return; + } + dsc->stroke_dsc.cap = attr->value.ival; + obj->flags |= _RENDER_ATTR_STROKE_LINECAP; + } + break; + case LV_SVG_ATTR_STROKE_LINEJOIN: { + if(attr->class_type == LV_SVG_ATTR_VALUE_INHERIT) { + obj->flags &= ~_RENDER_ATTR_STROKE_LINEJOIN; + return; + } + dsc->stroke_dsc.join = attr->value.ival; + obj->flags |= _RENDER_ATTR_STROKE_LINEJOIN; + } + break; + case LV_SVG_ATTR_STROKE_MITER_LIMIT: { + if(attr->class_type == LV_SVG_ATTR_VALUE_INHERIT) { + obj->flags &= ~_RENDER_ATTR_STROKE_MITER_LIMIT; + return; + } + dsc->stroke_dsc.miter_limit = attr->value.ival; + obj->flags |= _RENDER_ATTR_STROKE_MITER_LIMIT; + } + break; + case LV_SVG_ATTR_STROKE_DASH_ARRAY: { + if(attr->class_type == LV_SVG_ATTR_VALUE_NONE) { + lv_array_clear(&(dsc->stroke_dsc.dash_pattern)); + obj->flags |= _RENDER_ATTR_STROKE_DASH_ARRAY; + return; + } + else if(attr->class_type == LV_SVG_ATTR_VALUE_INHERIT) { + obj->flags &= ~_RENDER_ATTR_STROKE_DASH_ARRAY; + return; + } + else { + lv_array_t * dash_array = &(dsc->stroke_dsc.dash_pattern); + + lv_svg_attr_values_list_t * vals = (lv_svg_attr_values_list_t *)(attr->value.val); + uint32_t len = vals->length; + float * dashs = (float *)(&vals->data); + lv_array_clear(dash_array); + + obj->flags |= _RENDER_ATTR_STROKE_DASH_ARRAY; + if(len) { + if(lv_array_capacity(dash_array) == 0) { + lv_array_init(dash_array, len, sizeof(float)); + } + else { + lv_array_resize(dash_array, len); + } + for(uint32_t i = 0; i < len; i++) { + lv_array_push_back(dash_array, (uint8_t *)(&dashs[i])); + } + } + } + } + break; + case LV_SVG_ATTR_TRANSFORM: { + if(attr->class_type == LV_SVG_ATTR_VALUE_NONE) { + return; + } + lv_memcpy(&(obj->matrix), attr->value.val, sizeof(lv_matrix_t)); + } + break; + case LV_SVG_ATTR_STROKE_DASH_OFFSET: + // not support yet + break; + } +} + +static void _set_solid_ref(lv_svg_render_obj_t * obj, lv_vector_draw_dsc_t * dsc, + const lv_svg_render_obj_t * target_obj, bool fill) +{ + LV_UNUSED(target_obj); + lv_svg_render_solid_t * solid = (lv_svg_render_solid_t *)obj; + if(fill) { + dsc->fill_dsc.style = LV_VECTOR_DRAW_STYLE_SOLID; + dsc->fill_dsc.color = lv_color_to_32(solid->color, 0xFF); + dsc->fill_dsc.opa = (lv_opa_t)(solid->opacity * 255.0f); + } + else { + dsc->stroke_dsc.style = LV_VECTOR_DRAW_STYLE_SOLID; + dsc->stroke_dsc.color = lv_color_to_32(solid->color, 0xFF); + dsc->stroke_dsc.opa = (lv_opa_t)(solid->opacity * 255.0f); + } +} + +static void _set_gradient_ref(lv_svg_render_obj_t * obj, lv_vector_draw_dsc_t * dsc, + const lv_svg_render_obj_t * target_obj, bool fill) +{ + if(!target_obj->get_bounds) { + return; + } + + lv_svg_render_gradient_t * grad = (lv_svg_render_gradient_t *)obj; + lv_vector_gradient_t * grad_dsc = NULL; + lv_matrix_t * mtx = NULL; + + if(fill) { + dsc->fill_dsc.style = LV_VECTOR_DRAW_STYLE_GRADIENT; + grad_dsc = &dsc->fill_dsc.gradient; + mtx = &dsc->fill_dsc.matrix; + } + else { + dsc->stroke_dsc.style = LV_VECTOR_DRAW_STYLE_GRADIENT; + grad_dsc = &dsc->stroke_dsc.gradient; + mtx = &dsc->stroke_dsc.matrix; + } + + lv_memcpy(grad_dsc, &grad->dsc, sizeof(lv_vector_gradient_t)); + + lv_area_t bounds = {0, 0, 0, 0}; + target_obj->get_bounds(target_obj, &bounds); + + int32_t w = bounds.x2 - bounds.x1; + int32_t h = bounds.y2 - bounds.y1; + if(grad->dsc.style == LV_VECTOR_GRADIENT_STYLE_RADIAL) { + if(grad->units == LV_SVG_GRADIENT_UNITS_OBJECT) { + grad_dsc->cx = PCT_TO_PX(grad_dsc->cx, w); + grad_dsc->cy = PCT_TO_PX(grad_dsc->cy, h); + grad_dsc->cr = PCT_TO_PX(grad_dsc->cr, MAX(w, h)); + lv_matrix_translate(mtx, bounds.x1, bounds.y1); + } + } + else { // LV_VECTOR_GRADIENT_STYLE_LINEAR + if(grad->units == LV_SVG_GRADIENT_UNITS_OBJECT) { + grad_dsc->x1 = PCT_TO_PX(grad_dsc->x1, w); + grad_dsc->y1 = PCT_TO_PX(grad_dsc->y1, h); + grad_dsc->x2 = PCT_TO_PX(grad_dsc->x2, w); + grad_dsc->y2 = PCT_TO_PX(grad_dsc->y2, h); + lv_matrix_translate(mtx, bounds.x1, bounds.y1); + } + } +} + +static void _init_draw_dsc(lv_vector_draw_dsc_t * dsc) +{ + lv_vector_fill_dsc_t * fill_dsc = &(dsc->fill_dsc); + fill_dsc->style = LV_VECTOR_DRAW_STYLE_SOLID; + fill_dsc->color = lv_color_to_32(lv_color_black(), 0xFF); + fill_dsc->opa = LV_OPA_COVER; + fill_dsc->fill_rule = LV_VECTOR_FILL_NONZERO; + lv_matrix_identity(&(fill_dsc->matrix)); // identity matrix + + lv_vector_stroke_dsc_t * stroke_dsc = &(dsc->stroke_dsc); + stroke_dsc->style = LV_VECTOR_DRAW_STYLE_SOLID; + stroke_dsc->color = lv_color_to_32(lv_color_black(), 0xFF); + stroke_dsc->opa = LV_OPA_0; // default no stroke + stroke_dsc->width = 1.0f; + stroke_dsc->cap = LV_VECTOR_STROKE_CAP_BUTT; + stroke_dsc->join = LV_VECTOR_STROKE_JOIN_MITER; + stroke_dsc->miter_limit = 4.0f; + lv_matrix_identity(&(stroke_dsc->matrix)); // identity matrix + + dsc->blend_mode = LV_VECTOR_BLEND_SRC_OVER; + lv_matrix_identity(&(dsc->matrix)); // identity matrix +} + +static void _deinit_draw_dsc(lv_vector_draw_dsc_t * dsc) +{ + lv_array_deinit(&(dsc->stroke_dsc.dash_pattern)); +} + +static void _copy_draw_dsc(lv_vector_draw_dsc_t * dst, const lv_vector_draw_dsc_t * src) +{ + lv_memcpy(&dst->fill_dsc, &src->fill_dsc, sizeof(lv_vector_fill_dsc_t)); + + dst->stroke_dsc.style = src->stroke_dsc.style; + dst->stroke_dsc.color = src->stroke_dsc.color; + dst->stroke_dsc.opa = src->stroke_dsc.opa; + dst->stroke_dsc.width = src->stroke_dsc.width; + dst->stroke_dsc.cap = src->stroke_dsc.cap; + dst->stroke_dsc.join = src->stroke_dsc.join; + dst->stroke_dsc.miter_limit = src->stroke_dsc.miter_limit; + lv_array_copy(&(dst->stroke_dsc.dash_pattern), &(src->stroke_dsc.dash_pattern)); + lv_memcpy(&(dst->stroke_dsc.gradient), &(src->stroke_dsc.gradient), sizeof(lv_vector_gradient_t)); + lv_memcpy(&(dst->stroke_dsc.matrix), &(src->stroke_dsc.matrix), sizeof(lv_matrix_t)); + + dst->blend_mode = src->blend_mode; +} + +static void _copy_draw_dsc_from_ref(lv_vector_dsc_t * dsc, const lv_svg_render_obj_t * obj) +{ + lv_vector_draw_dsc_t * dst = &(dsc->current_dsc); + if(obj->fill_ref) { + lv_svg_render_obj_t * list = obj->head; + while(list) { + if(list->id) { + if(strcmp(obj->fill_ref, list->id) == 0) { + list->set_paint_ref(list, dst, obj, true); + break; + } + } + list = list->next; + } + } + + if(obj->stroke_ref) { + lv_svg_render_obj_t * list = obj->head; + while(list) { + if(list->id) { + if(strcmp(obj->stroke_ref, list->id) == 0) { + list->set_paint_ref(list, dst, obj, false); + break; + } + } + list = list->next; + } + } +} + +static void _set_render_attrs(lv_svg_render_obj_t * obj, const lv_svg_node_t * node, + struct _lv_svg_drawing_builder_state * state) +{ + if((node->type != LV_SVG_TAG_CONTENT) && node->xml_id) { + obj->id = lv_strdup(node->xml_id); + } + if(obj->init) { + obj->init(obj, node); + } + if(state->draw_dsc->fill_ref) { + obj->fill_ref = lv_strdup(state->draw_dsc->fill_ref); + } + if(state->draw_dsc->stroke_ref) { + obj->stroke_ref = lv_strdup(state->draw_dsc->stroke_ref); + } + + uint32_t len = lv_array_size(&node->attrs); + for(uint32_t i = 0; i < len; i++) { + lv_svg_attr_t * attr = lv_array_at(&node->attrs, i); + obj->set_attr(obj, &(state->draw_dsc->dsc), attr); + } + if(node->type == LV_SVG_TAG_G) { // only need store it + state->draw_dsc->fill_ref = obj->fill_ref; + state->draw_dsc->stroke_ref = obj->stroke_ref; + } + obj->head = state->list; +} + +// init functions + +static void _init_obj(lv_svg_render_obj_t * obj, const lv_svg_node_t * node) +{ + LV_UNUSED(node); + lv_matrix_identity(&obj->matrix); +} + +static void _init_viewport(lv_svg_render_obj_t * obj, const lv_svg_node_t * node) +{ + _init_obj(obj, node); + lv_svg_render_viewport_t * view = (lv_svg_render_viewport_t *)obj; + view->viewport_fill = false; +} + +static void _init_group(lv_svg_render_obj_t * obj, const lv_svg_node_t * node) +{ + _init_obj(obj, node); + lv_svg_render_group_t * group = (lv_svg_render_group_t *)obj; + lv_array_init(&group->items, LV_TREE_NODE(node)->child_cnt, sizeof(lv_svg_render_obj_t *)); +} + +static void _init_image(lv_svg_render_obj_t * obj, const lv_svg_node_t * node) +{ + _init_obj(obj, node); + lv_svg_render_image_t * image = (lv_svg_render_image_t *)obj; + lv_draw_image_dsc_init(&image->img_dsc); + image->ratio = LV_SVG_ASPECT_RATIO_XMID_YMID | LV_SVG_ASPECT_RATIO_OPT_MEET; +} + +static void _init_poly(lv_svg_render_obj_t * obj, const lv_svg_node_t * node) +{ + _init_obj(obj, node); + lv_svg_render_poly_t * poly = (lv_svg_render_poly_t *)obj; + poly->path = lv_vector_path_create(LV_VECTOR_PATH_QUALITY_MEDIUM); + lv_area_set(&poly->bounds, 0, 0, 0, 0); +} + +#if LV_USE_FREETYPE +static void _init_text(lv_svg_render_obj_t * obj, const lv_svg_node_t * node) +{ + _init_obj(obj, node); + lv_svg_render_text_t * text = (lv_svg_render_text_t *)obj; + text->family = lv_strdup("sans-serif"); + text->size = 16.0f; + text->style = LV_FREETYPE_FONT_STYLE_NORMAL; + text->font = NULL; + text->x = text->y = 0.0f; + lv_array_init(&text->contents, LV_TREE_NODE(node)->child_cnt, sizeof(lv_svg_render_obj_t *)); + text->path = lv_vector_path_create(LV_VECTOR_PATH_QUALITY_MEDIUM); +} + +static void _init_content(lv_svg_render_obj_t * obj, const lv_svg_node_t * node) +{ + _init_obj(obj, node); + lv_svg_render_content_t * content = (lv_svg_render_content_t *)obj; + const char * str = node->xml_id; + content->count = lv_text_get_encoded_length(str); + content->letters = lv_malloc(sizeof(uint32_t) * content->count); + LV_ASSERT_MALLOC(content->letters); + uint32_t offset = 0; + for(uint32_t i = 0; i < content->count; i++) { + content->letters[i] = lv_text_encoded_next(str, &offset); + } +} + +static void _init_tspan(lv_svg_render_obj_t * obj, const lv_svg_node_t * node) +{ + _init_obj(obj, node); + lv_svg_render_tspan_t * span = (lv_svg_render_tspan_t *)obj; + lv_svg_node_t * parent = LV_SVG_NODE(LV_TREE_NODE(node)->parent); + if(parent->type != LV_SVG_TAG_TEXT) { + return; + } + + lv_svg_render_text_t * text = (lv_svg_render_text_t *)parent->render_obj; + span->family = lv_strdup(text->family); + span->size = text->size; + span->style = text->style; + span->path = lv_vector_path_create(LV_VECTOR_PATH_QUALITY_MEDIUM); + + lv_svg_node_t * content_node = LV_SVG_NODE(LV_TREE_NODE(node)->children[0]); + _init_content(obj, content_node); +} +#endif + +static void _init_gradient(lv_svg_render_obj_t * obj, const lv_svg_node_t * node) +{ + _init_obj(obj, node); + lv_svg_render_gradient_t * grad = (lv_svg_render_gradient_t *)obj; + grad->units = LV_SVG_GRADIENT_UNITS_OBJECT; + grad->dsc.cx = 0.5f; + grad->dsc.cy = 0.5f; + grad->dsc.cr = 0.5f; + grad->dsc.x1 = 0.0f; + grad->dsc.y1 = 0.0f; + grad->dsc.x2 = 1.0f; + grad->dsc.y2 = 0.0f; + grad->dsc.spread = LV_VECTOR_GRADIENT_SPREAD_PAD; + + uint32_t count = LV_TREE_NODE(node)->child_cnt; + uint32_t stop_count = 0; + + for(uint32_t i = 0; i < count; i++) { + lv_svg_node_t * child_node = LV_SVG_NODE_CHILD(node, i); + uint32_t len = lv_array_size(&child_node->attrs); + + bool is_stop = false; + lv_color_t stop_color = lv_color_black(); + lv_opa_t stop_opa = LV_OPA_COVER; + uint8_t stop_frac = 0; + + for(uint32_t j = 0; j < len; j++) { + lv_svg_attr_t * attr = lv_array_at(&child_node->attrs, j); + switch(attr->id) { + case LV_SVG_ATTR_GRADIENT_STOP_COLOR: { + stop_color = lv_color_hex(attr->value.uval); + is_stop = true; + } + break; + case LV_SVG_ATTR_GRADIENT_STOP_OPACITY: { + stop_opa = (lv_opa_t)(attr->value.fval * 255.0f); + is_stop = true; + } + break; + case LV_SVG_ATTR_GRADIENT_STOP_OFFSET: { + stop_frac = (uint8_t)(attr->value.fval * 255.0f); + is_stop = true; + } + break; + } + } + + if(is_stop) { + grad->dsc.stops[stop_count].opa = stop_opa; + grad->dsc.stops[stop_count].frac = stop_frac; + grad->dsc.stops[stop_count].color = stop_color; + stop_count++; + } + + if(stop_count == LV_GRADIENT_MAX_STOPS) { + break; + } + } + grad->dsc.stops_count = stop_count; +} + +static void _setup_matrix(lv_matrix_t * matrix, lv_vector_dsc_t * dsc, const lv_svg_render_obj_t * obj) +{ + lv_memcpy(matrix, &dsc->current_dsc.matrix, sizeof(lv_matrix_t)); + lv_matrix_multiply(&dsc->current_dsc.matrix, &obj->matrix); +} + +static void _restore_matrix(lv_matrix_t * matrix, lv_vector_dsc_t * dsc) +{ + lv_memcpy(&dsc->current_dsc.matrix, matrix, sizeof(lv_matrix_t)); +} + +static void _prepare_render(const lv_svg_render_obj_t * obj, lv_vector_dsc_t * dsc) +{ + _copy_draw_dsc(&(dsc->current_dsc), &(obj->dsc)); +} + +static void _special_render(const lv_svg_render_obj_t * obj, lv_vector_dsc_t * dsc) +{ + const lv_vector_draw_dsc_t * src = &(obj->dsc); + lv_vector_draw_dsc_t * dst = &(dsc->current_dsc); + + if(obj->flags & _RENDER_ATTR_FILL) { + lv_memcpy(&(dst->fill_dsc), &(src->fill_dsc), sizeof(lv_vector_fill_dsc_t)); + dst->blend_mode = src->blend_mode; + } + + if(obj->flags & _RENDER_ATTR_FILL_OPACITY) { + dst->fill_dsc.opa = src->fill_dsc.opa; + } + + if(obj->flags & _RENDER_ATTR_FILL_RULE) { + dst->fill_dsc.fill_rule = src->fill_dsc.fill_rule; + } + + if(obj->flags & _RENDER_ATTR_STROKE) { + dst->stroke_dsc.style = src->stroke_dsc.style; + dst->stroke_dsc.color = src->stroke_dsc.color; + lv_memcpy(&(dst->stroke_dsc.gradient), &(src->stroke_dsc.gradient), sizeof(lv_vector_gradient_t)); + lv_memcpy(&(dst->stroke_dsc.matrix), &(src->stroke_dsc.matrix), sizeof(lv_matrix_t)); + dst->blend_mode = src->blend_mode; + } + + if(obj->flags & _RENDER_ATTR_STROKE_OPACITY) { + dst->stroke_dsc.opa = src->stroke_dsc.opa; + } + + if(obj->flags & _RENDER_ATTR_STROKE_WIDTH) { + dst->stroke_dsc.width = src->stroke_dsc.width; + } + if(obj->flags & _RENDER_ATTR_STROKE_LINECAP) { + dst->stroke_dsc.cap = src->stroke_dsc.cap; + } + if(obj->flags & _RENDER_ATTR_STROKE_LINEJOIN) { + dst->stroke_dsc.join = src->stroke_dsc.join; + } + if(obj->flags & _RENDER_ATTR_STROKE_MITER_LIMIT) { + dst->stroke_dsc.miter_limit = src->stroke_dsc.miter_limit; + } + if(obj->flags & _RENDER_ATTR_STROKE_DASH_ARRAY) { + lv_array_copy(&(dst->stroke_dsc.dash_pattern), &(src->stroke_dsc.dash_pattern)); + } +} + +// render functions +static void _render_viewport(const lv_svg_render_obj_t * obj, lv_vector_dsc_t * dsc, const lv_matrix_t * matrix) +{ + LV_UNUSED(matrix); + + lv_svg_render_viewport_t * view = (lv_svg_render_viewport_t *)obj; + lv_matrix_multiply(&dsc->current_dsc.matrix, &obj->matrix); + if(view->viewport_fill) { + lv_area_t rc = {0, 0, (int32_t)view->width, (int32_t)view->height}; + lv_vector_clear_area(dsc, &rc); + } +} + +static void _render_rect(const lv_svg_render_obj_t * obj, lv_vector_dsc_t * dsc, const lv_matrix_t * matrix) +{ + lv_matrix_t mtx; + _setup_matrix(&mtx, dsc, obj); + + if(matrix) { + lv_matrix_multiply(&dsc->current_dsc.matrix, matrix); + } + + lv_svg_render_rect_t * rect = (lv_svg_render_rect_t *)obj; + + if(rect->rx > 0 && rect->ry == 0) rect->ry = rect->rx; + else if(rect->ry > 0 && rect->rx == 0) rect->rx = rect->ry; + + lv_vector_path_t * path = lv_vector_path_create(LV_VECTOR_PATH_QUALITY_MEDIUM); + lv_area_t rc = {(int32_t)rect->x, (int32_t)rect->y, (int32_t)(rect->x + rect->width), (int32_t)(rect->y + rect->height)}; + lv_vector_path_append_rect(path, &rc, rect->rx, rect->ry); + + _copy_draw_dsc_from_ref(dsc, obj); + lv_vector_dsc_add_path(dsc, path); + lv_vector_path_delete(path); + + _restore_matrix(&mtx, dsc); +} + +static void _render_circle(const lv_svg_render_obj_t * obj, lv_vector_dsc_t * dsc, const lv_matrix_t * matrix) +{ + lv_matrix_t mtx; + _setup_matrix(&mtx, dsc, obj); + + if(matrix) { + lv_matrix_multiply(&dsc->current_dsc.matrix, matrix); + } + + lv_svg_render_circle_t * circle = (lv_svg_render_circle_t *)obj; + lv_vector_path_t * path = lv_vector_path_create(LV_VECTOR_PATH_QUALITY_MEDIUM); + lv_fpoint_t cp = {circle->cx, circle->cy}; + lv_vector_path_append_circle(path, &cp, circle->r, circle->r); + + _copy_draw_dsc_from_ref(dsc, obj); + lv_vector_dsc_add_path(dsc, path); + lv_vector_path_delete(path); + + _restore_matrix(&mtx, dsc); +} + +static void _render_ellipse(const lv_svg_render_obj_t * obj, lv_vector_dsc_t * dsc, const lv_matrix_t * matrix) +{ + lv_matrix_t mtx; + _setup_matrix(&mtx, dsc, obj); + + if(matrix) { + lv_matrix_multiply(&dsc->current_dsc.matrix, matrix); + } + + lv_svg_render_ellipse_t * ellipse = (lv_svg_render_ellipse_t *)obj; + lv_vector_path_t * path = lv_vector_path_create(LV_VECTOR_PATH_QUALITY_MEDIUM); + lv_fpoint_t cp = {ellipse->cx, ellipse->cy}; + lv_vector_path_append_circle(path, &cp, ellipse->rx, ellipse->ry); + + _copy_draw_dsc_from_ref(dsc, obj); + lv_vector_dsc_add_path(dsc, path); + lv_vector_path_delete(path); + + _restore_matrix(&mtx, dsc); +} + +static void _render_line(const lv_svg_render_obj_t * obj, lv_vector_dsc_t * dsc, const lv_matrix_t * matrix) +{ + lv_matrix_t mtx; + _setup_matrix(&mtx, dsc, obj); + + if(matrix) { + lv_matrix_multiply(&dsc->current_dsc.matrix, matrix); + } + + lv_svg_render_line_t * line = (lv_svg_render_line_t *)obj; + lv_vector_path_t * path = lv_vector_path_create(LV_VECTOR_PATH_QUALITY_MEDIUM); + lv_fpoint_t sp = {line->x1, line->y1}; + lv_vector_path_move_to(path, &sp); + lv_fpoint_t ep = {line->x2, line->y2}; + lv_vector_path_line_to(path, &ep); + + _copy_draw_dsc_from_ref(dsc, obj); + lv_vector_dsc_add_path(dsc, path); + lv_vector_path_delete(path); + + _restore_matrix(&mtx, dsc); +} + +static void _render_poly(const lv_svg_render_obj_t * obj, lv_vector_dsc_t * dsc, const lv_matrix_t * matrix) +{ + lv_matrix_t mtx; + _setup_matrix(&mtx, dsc, obj); + + if(matrix) { + lv_matrix_multiply(&dsc->current_dsc.matrix, matrix); + } + + lv_svg_render_poly_t * poly = (lv_svg_render_poly_t *)obj; + + _copy_draw_dsc_from_ref(dsc, obj); + lv_vector_dsc_add_path(dsc, poly->path); + + _restore_matrix(&mtx, dsc); +} + +static void _render_group(const lv_svg_render_obj_t * obj, lv_vector_dsc_t * dsc, const lv_matrix_t * matrix) +{ + lv_svg_render_group_t * group = (lv_svg_render_group_t *)obj; + + lv_matrix_t mtx; + _setup_matrix(&mtx, dsc, obj); + + struct _lv_svg_draw_dsc save_dsc; + lv_memzero(&save_dsc, sizeof(struct _lv_svg_draw_dsc)); + + for(uint32_t i = 0; i < group->items.size; i++) { + lv_svg_render_obj_t * list = *((lv_svg_render_obj_t **)lv_array_at(&group->items, i)); + + if(list->render && (list->flags & _RENDER_IN_GROUP)) { + _copy_draw_dsc(&(save_dsc.dsc), &(dsc->current_dsc)); + _special_render(list, dsc); + list->render(list, dsc, matrix); + _copy_draw_dsc(&(dsc->current_dsc), &(save_dsc.dsc)); + } + } + + _restore_matrix(&mtx, dsc); +} + +static void _render_image(const lv_svg_render_obj_t * obj, lv_vector_dsc_t * dsc, const lv_matrix_t * matrix) +{ + lv_matrix_t imtx; + _setup_matrix(&imtx, dsc, obj); + + if(matrix) { + lv_matrix_multiply(&dsc->current_dsc.matrix, matrix); + } + + lv_svg_render_image_t * image = (lv_svg_render_image_t *)obj; + if(!image->img_dsc.header.w || !image->img_dsc.header.h || !image->img_dsc.src) { + return; + } + + lv_vector_path_t * path = lv_vector_path_create(LV_VECTOR_PATH_QUALITY_MEDIUM); + lv_area_t rc = {(int32_t)image->x, (int32_t)image->y, (int32_t)(image->x + image->width), (int32_t)(image->y + image->height)}; + lv_vector_path_append_rect(path, &rc, 0, 0); + + lv_matrix_t mtx; + lv_matrix_identity(&mtx); + + float img_w = (float)image->img_dsc.header.w; + float img_h = (float)image->img_dsc.header.h; + float scale_x = image->width / img_w; + float scale_y = image->height / img_h; + float scale = 1.0f; + + if((image->ratio & 0x1) == LV_SVG_ASPECT_RATIO_OPT_SLICE) { + scale = MAX(scale_x, scale_y); + } + else if((image->ratio & 0x1) == LV_SVG_ASPECT_RATIO_OPT_MEET) { + scale = MIN(scale_x, scale_y); + } + + uint32_t align = image->ratio & ~0x1; + + switch(align) { + case LV_SVG_ASPECT_RATIO_NONE: + lv_matrix_scale(&mtx, scale_x, scale_y); + break; + case LV_SVG_ASPECT_RATIO_XMIN_YMIN: + lv_matrix_scale(&mtx, scale, scale); + break; + case LV_SVG_ASPECT_RATIO_XMID_YMIN: { + float tx = (image->width - img_w * scale) / 2; + lv_matrix_translate(&mtx, tx, 0); + lv_matrix_scale(&mtx, scale, scale); + } + break; + case LV_SVG_ASPECT_RATIO_XMAX_YMIN: { + float tx = image->width - img_w * scale; + lv_matrix_translate(&mtx, tx, 0); + lv_matrix_scale(&mtx, scale, scale); + } + break; + case LV_SVG_ASPECT_RATIO_XMIN_YMID: { + float ty = (image->height - img_h * scale) / 2; + lv_matrix_translate(&mtx, 0, ty); + lv_matrix_scale(&mtx, scale, scale); + } + break; + case LV_SVG_ASPECT_RATIO_XMID_YMID: { + float tx = (image->width - img_w * scale) / 2; + float ty = (image->height - img_h * scale) / 2; + lv_matrix_translate(&mtx, tx, ty); + lv_matrix_scale(&mtx, scale, scale); + } + break; + case LV_SVG_ASPECT_RATIO_XMAX_YMID: { + float tx = image->width - img_w * scale; + float ty = (image->height - img_h * scale) / 2; + lv_matrix_translate(&mtx, tx, ty); + lv_matrix_scale(&mtx, scale, scale); + } + break; + case LV_SVG_ASPECT_RATIO_XMIN_YMAX: { + float ty = image->height - img_h * scale; + lv_matrix_translate(&mtx, 0, ty); + lv_matrix_scale(&mtx, scale, scale); + } + break; + case LV_SVG_ASPECT_RATIO_XMID_YMAX: { + float tx = (image->width - img_w * scale) / 2; + float ty = image->height - img_h * scale; + lv_matrix_translate(&mtx, tx, ty); + lv_matrix_scale(&mtx, scale, scale); + } + break; + case LV_SVG_ASPECT_RATIO_XMAX_YMAX: { + float tx = image->width - img_w * scale; + float ty = image->height - img_h * scale; + lv_matrix_translate(&mtx, tx, ty); + lv_matrix_scale(&mtx, scale, scale); + } + break; + } + + lv_vector_dsc_set_fill_transform(dsc, &mtx); + lv_vector_dsc_set_fill_image(dsc, &image->img_dsc); + + _copy_draw_dsc_from_ref(dsc, obj); + lv_vector_dsc_add_path(dsc, path); + lv_vector_path_delete(path); + + _restore_matrix(&imtx, dsc); +} + +static void _render_use(const lv_svg_render_obj_t * obj, lv_vector_dsc_t * dsc, const lv_matrix_t * matrix) +{ + LV_UNUSED(matrix); + lv_matrix_t imtx; + _setup_matrix(&imtx, dsc, obj); + + lv_svg_render_use_t * use = (lv_svg_render_use_t *)obj; + + lv_matrix_t mtx; + lv_matrix_identity(&mtx); + lv_matrix_translate(&mtx, use->x, use->y); + + lv_svg_render_obj_t * list = obj->head; + while(list) { + if(list->id) { + if(strcmp(use->xlink, list->id) == 0) { + if(list->render) { + _prepare_render(list, dsc); + _special_render(obj, dsc); + list->render(list, dsc, &mtx); + } + break; + } + } + list = list->next; + } + + _restore_matrix(&imtx, dsc); +} + +#if LV_USE_FREETYPE +static void _render_text(const lv_svg_render_obj_t * obj, lv_vector_dsc_t * dsc, const lv_matrix_t * matrix) +{ + lv_svg_render_text_t * text = (lv_svg_render_text_t *)obj; + if(!text->font) { + if(!hal_funcs.get_font_path) { + return; + } + const char * font_path = hal_funcs.get_font_path(text->family); + if(!font_path) { + return; + } + text->font = lv_freetype_font_create(font_path, LV_FREETYPE_FONT_RENDER_MODE_OUTLINE, (uint32_t)text->size, + text->style); + } + + if(!text->font || !lv_freetype_is_outline_font(text->font)) { + LV_LOG_ERROR("svg current font is not outline font!"); + return; + } + + lv_matrix_t tmtx; + _setup_matrix(&tmtx, dsc, obj); + + if(matrix) { + lv_matrix_multiply(&dsc->current_dsc.matrix, matrix); + } + + if(lv_array_size(&text->path->ops) == 0) { /* empty path */ + lv_vector_path_t * glyph_path = lv_vector_path_create(LV_VECTOR_PATH_QUALITY_MEDIUM); + // draw text contents and spans + lv_matrix_t mtx; + lv_matrix_identity(&mtx); + lv_matrix_translate(&mtx, text->x, text->y); + for(uint32_t i = 0; i < lv_array_size(&text->contents); i++) { + lv_svg_render_obj_t * ptext = *((lv_svg_render_obj_t **)lv_array_at(&text->contents, i)); + lv_svg_render_content_t * content = (lv_svg_render_content_t *)ptext; + + if(content->render_content) { + content->render_content(content, dsc, &mtx); + } + else { + float scale = text->size / 128.0f; + for(uint32_t j = 0; j < content->count; j++) { + uint32_t letter = content->letters[j]; + lv_font_glyph_dsc_t g; + lv_font_get_glyph_dsc(text->font, &g, letter, '\0'); + lv_vector_path_t * p = (lv_vector_path_t *)lv_font_get_glyph_bitmap(&g, NULL); + lv_vector_path_clear(glyph_path); + lv_vector_path_copy(glyph_path, p); + uint32_t letter_w = g.box_w > 0 ? g.box_w : g.adv_w; + + lv_matrix_t scale_matrix = mtx; + lv_matrix_translate(&mtx, g.ofs_x, 0); + lv_matrix_scale(&scale_matrix, scale, scale); + lv_matrix_transform_path(&scale_matrix, glyph_path); + + lv_vector_path_append_path(text->path, glyph_path); + text->font->release_glyph(text->font, &g); + lv_matrix_translate(&mtx, letter_w, 0); + } + } + } + lv_vector_path_delete(glyph_path); + lv_vector_path_get_bounding(text->path, &text->bounds); + } + + _copy_draw_dsc_from_ref(dsc, obj); + lv_vector_dsc_add_path(dsc, text->path); + + _restore_matrix(&tmtx, dsc); +} + +static void _render_span(const lv_svg_render_content_t * content, lv_vector_dsc_t * dsc, lv_matrix_t * matrix) +{ + lv_svg_render_obj_t * obj = (lv_svg_render_obj_t *)content; + + lv_svg_render_tspan_t * span = (lv_svg_render_tspan_t *)content; + if(!span->font) { + if(!hal_funcs.get_font_path) { + return; + } + const char * font_path = hal_funcs.get_font_path(span->family); + if(!font_path) { + return; + } + span->font = lv_freetype_font_create(font_path, LV_FREETYPE_FONT_RENDER_MODE_OUTLINE, (uint32_t)span->size, + span->style); + } + + if(!span->font || !lv_freetype_is_outline_font(span->font)) { + LV_LOG_ERROR("svg current font is not outline font!"); + return; + } + + struct _lv_svg_draw_dsc save_dsc; + lv_memzero(&save_dsc, sizeof(struct _lv_svg_draw_dsc)); + _copy_draw_dsc(&(save_dsc.dsc), &(dsc->current_dsc)); + + _copy_draw_dsc(&(dsc->current_dsc), &(obj->dsc)); + + if(lv_array_size(&span->path->ops) == 0) { /* empty path */ + lv_vector_path_t * glyph_path = lv_vector_path_create(LV_VECTOR_PATH_QUALITY_MEDIUM); + // draw text contents and spans + lv_matrix_t * mtx = matrix; + + float scale = span->size / 128.0f; + for(uint32_t j = 0; j < content->count; j++) { + uint32_t letter = content->letters[j]; + lv_font_glyph_dsc_t g; + lv_font_get_glyph_dsc(span->font, &g, letter, '\0'); + lv_vector_path_t * p = (lv_vector_path_t *)lv_font_get_glyph_bitmap(&g, NULL); + lv_vector_path_clear(glyph_path); + lv_vector_path_copy(glyph_path, p); + uint32_t letter_w = g.box_w > 0 ? g.box_w : g.adv_w; + + lv_matrix_t scale_matrix = *mtx; + lv_matrix_translate(mtx, g.ofs_x, 0); + lv_matrix_scale(&scale_matrix, scale, scale); + lv_matrix_transform_path(&scale_matrix, glyph_path); + + lv_vector_path_append_path(span->path, glyph_path); + span->font->release_glyph(span->font, &g); + lv_matrix_translate(mtx, letter_w, 0); + } + lv_vector_path_delete(glyph_path); + lv_vector_path_get_bounding(span->path, &span->bounds); + } + _copy_draw_dsc_from_ref(dsc, obj); + lv_vector_dsc_add_path(dsc, span->path); + + _copy_draw_dsc(&(dsc->current_dsc), &(save_dsc.dsc)); +} +#endif + +// get bounds functions + +static void _get_rect_bounds(const lv_svg_render_obj_t * obj, lv_area_t * area) +{ + lv_svg_render_rect_t * rect = (lv_svg_render_rect_t *)obj; + area->x1 = (int32_t)rect->x; + area->y1 = (int32_t)rect->y; + area->x2 = (int32_t)(rect->x + rect->width); + area->y2 = (int32_t)(rect->y + rect->height); +} + +static void _get_circle_bounds(const lv_svg_render_obj_t * obj, lv_area_t * area) +{ + lv_svg_render_circle_t * circle = (lv_svg_render_circle_t *)obj; + area->x1 = (int32_t)(circle->cx - circle->r); + area->y1 = (int32_t)(circle->cy - circle->r); + area->x2 = (int32_t)(circle->cx + circle->r); + area->y2 = (int32_t)(circle->cy + circle->r); +} + +static void _get_ellipse_bounds(const lv_svg_render_obj_t * obj, lv_area_t * area) +{ + lv_svg_render_ellipse_t * ellipse = (lv_svg_render_ellipse_t *)obj; + area->x1 = (int32_t)(ellipse->cx - ellipse->rx); + area->y1 = (int32_t)(ellipse->cy - ellipse->ry); + area->x2 = (int32_t)(ellipse->cx + ellipse->rx); + area->y2 = (int32_t)(ellipse->cy + ellipse->ry); +} + +static void _get_line_bounds(const lv_svg_render_obj_t * obj, lv_area_t * area) +{ + lv_svg_render_line_t * line = (lv_svg_render_line_t *)obj; + area->x1 = (int32_t)(line->x1); + area->y1 = (int32_t)(line->y1); + area->x2 = (int32_t)(line->x2); + area->y2 = (int32_t)(line->y2); +} + +static void _get_poly_bounds(const lv_svg_render_obj_t * obj, lv_area_t * area) +{ + lv_svg_render_poly_t * poly = (lv_svg_render_poly_t *)obj; + lv_area_copy(area, &poly->bounds); +} + +#if LV_USE_FREETYPE +static void _get_text_bounds(const lv_svg_render_obj_t * obj, lv_area_t * area) +{ + lv_svg_render_text_t * text = (lv_svg_render_text_t *)obj; + lv_area_copy(area, &text->bounds); +} + +static void _get_tspan_bounds(const lv_svg_render_obj_t * obj, lv_area_t * area) +{ + lv_svg_render_tspan_t * tspan = (lv_svg_render_tspan_t *)obj; + lv_area_copy(area, &tspan->bounds); +} +#endif + +// destroy functions +static void _destroy_poly(lv_svg_render_obj_t * obj) +{ + lv_svg_render_poly_t * poly = (lv_svg_render_poly_t *)obj; + lv_vector_path_delete(poly->path); +} + +static void _destroy_use(lv_svg_render_obj_t * obj) +{ + lv_svg_render_use_t * use = (lv_svg_render_use_t *)obj; + if(use->xlink) { + lv_free(use->xlink); + } +} + +static void _destroy_group(lv_svg_render_obj_t * obj) +{ + lv_svg_render_group_t * group = (lv_svg_render_group_t *)obj; + lv_array_deinit(&group->items); +} + +#if LV_USE_FREETYPE +static void _destroy_text(lv_svg_render_obj_t * obj) +{ + lv_svg_render_text_t * text = (lv_svg_render_text_t *)obj; + if(text->font) { + lv_freetype_font_delete(text->font); + } + if(text->family) { + lv_free(text->family); + } + lv_array_deinit(&text->contents); + lv_vector_path_delete(text->path); +} + +static void _destroy_content(lv_svg_render_obj_t * obj) +{ + lv_svg_render_content_t * content = (lv_svg_render_content_t *)obj; + if(content->letters) { + lv_free(content->letters); + } +} + +static void _destroy_tspan(lv_svg_render_obj_t * obj) +{ + lv_svg_render_tspan_t * span = (lv_svg_render_tspan_t *)obj; + if(span->font) { + lv_freetype_font_delete(span->font); + } + + if(span->family) { + lv_free(span->family); + } + + _destroy_content(obj); + lv_vector_path_delete(span->path); +} + +#endif + +static lv_svg_render_obj_t * _lv_svg_render_create(const lv_svg_node_t * node, + struct _lv_svg_drawing_builder_state * state) +{ + switch(node->type) { + case LV_SVG_TAG_SVG: { + lv_svg_render_viewport_t * view = lv_malloc_zeroed(sizeof(lv_svg_render_viewport_t)); + LV_ASSERT_MALLOC(view); + view->base.init = _init_viewport; + view->base.render = _render_viewport; + view->base.set_attr = _set_viewport_attr; + _set_render_attrs(LV_SVG_RENDER_OBJ(view), node, state); + return LV_SVG_RENDER_OBJ(view); + } + case LV_SVG_TAG_RECT: { + lv_svg_render_rect_t * rect = lv_malloc_zeroed(sizeof(lv_svg_render_rect_t)); + LV_ASSERT_MALLOC(rect); + rect->base.init = _init_obj; + rect->base.render = _render_rect; + rect->base.set_attr = _set_rect_attr; + rect->base.get_bounds = _get_rect_bounds; + _set_render_attrs(LV_SVG_RENDER_OBJ(rect), node, state); + return LV_SVG_RENDER_OBJ(rect); + } + case LV_SVG_TAG_CIRCLE: { + lv_svg_render_circle_t * circle = lv_malloc_zeroed(sizeof(lv_svg_render_circle_t)); + LV_ASSERT_MALLOC(circle); + circle->base.init = _init_obj; + circle->base.render = _render_circle; + circle->base.set_attr = _set_circle_attr; + circle->base.get_bounds = _get_circle_bounds; + _set_render_attrs(LV_SVG_RENDER_OBJ(circle), node, state); + return LV_SVG_RENDER_OBJ(circle); + } + case LV_SVG_TAG_ELLIPSE: { + lv_svg_render_ellipse_t * ellipse = lv_malloc_zeroed(sizeof(lv_svg_render_ellipse_t)); + LV_ASSERT_MALLOC(ellipse); + ellipse->base.init = _init_obj; + ellipse->base.render = _render_ellipse; + ellipse->base.set_attr = _set_ellipse_attr; + ellipse->base.get_bounds = _get_ellipse_bounds; + _set_render_attrs(LV_SVG_RENDER_OBJ(ellipse), node, state); + return LV_SVG_RENDER_OBJ(ellipse); + } + case LV_SVG_TAG_LINE: { + lv_svg_render_line_t * line = lv_malloc_zeroed(sizeof(lv_svg_render_line_t)); + LV_ASSERT_MALLOC(line); + line->base.init = _init_obj; + line->base.render = _render_line; + line->base.set_attr = _set_line_attr; + line->base.get_bounds = _get_line_bounds; + _set_render_attrs(LV_SVG_RENDER_OBJ(line), node, state); + return LV_SVG_RENDER_OBJ(line); + } + case LV_SVG_TAG_POLYLINE: { + lv_svg_render_poly_t * poly = lv_malloc_zeroed(sizeof(lv_svg_render_poly_t)); + LV_ASSERT_MALLOC(poly); + poly->base.init = _init_poly; + poly->base.render = _render_poly; + poly->base.set_attr = _set_polyline_attr; + poly->base.get_bounds = _get_poly_bounds; + poly->base.destroy = _destroy_poly; + _set_render_attrs(LV_SVG_RENDER_OBJ(poly), node, state); + return LV_SVG_RENDER_OBJ(poly); + } + case LV_SVG_TAG_POLYGON: { + lv_svg_render_poly_t * poly = lv_malloc_zeroed(sizeof(lv_svg_render_poly_t)); + LV_ASSERT_MALLOC(poly); + poly->base.init = _init_poly; + poly->base.render = _render_poly; + poly->base.set_attr = _set_polygen_attr; + poly->base.get_bounds = _get_poly_bounds; + poly->base.destroy = _destroy_poly; + _set_render_attrs(LV_SVG_RENDER_OBJ(poly), node, state); + return LV_SVG_RENDER_OBJ(poly); + } + case LV_SVG_TAG_PATH: { + lv_svg_render_poly_t * poly = lv_malloc_zeroed(sizeof(lv_svg_render_poly_t)); + LV_ASSERT_MALLOC(poly); + poly->base.init = _init_poly; + poly->base.render = _render_poly; + poly->base.set_attr = _set_path_attr; + poly->base.get_bounds = _get_poly_bounds; + poly->base.destroy = _destroy_poly; + _set_render_attrs(LV_SVG_RENDER_OBJ(poly), node, state); + return LV_SVG_RENDER_OBJ(poly); + } +#if LV_USE_FREETYPE + case LV_SVG_TAG_TEXT: { + lv_svg_render_text_t * txt = lv_malloc_zeroed(sizeof(lv_svg_render_text_t)); + LV_ASSERT_MALLOC(txt); + txt->base.init = _init_text; + txt->base.set_attr = _set_text_attr; + txt->base.render = _render_text; + txt->base.get_bounds = _get_text_bounds; + txt->base.destroy = _destroy_text; + _set_render_attrs(LV_SVG_RENDER_OBJ(txt), node, state); + return LV_SVG_RENDER_OBJ(txt); + } + case LV_SVG_TAG_TSPAN: { + lv_svg_render_tspan_t * span = lv_malloc_zeroed(sizeof(lv_svg_render_tspan_t)); + LV_ASSERT_MALLOC(span); + lv_svg_render_content_t * content = (lv_svg_render_content_t *)span; + content->render_content = _render_span; + content->base.init = _init_tspan; + content->base.set_attr = _set_tspan_attr; + content->base.get_bounds = _get_tspan_bounds; + content->base.destroy = _destroy_tspan; + _set_render_attrs(LV_SVG_RENDER_OBJ(span), node, state); + return LV_SVG_RENDER_OBJ(span); + } + case LV_SVG_TAG_CONTENT: { + lv_svg_render_content_t * content = lv_malloc_zeroed(sizeof(lv_svg_render_content_t)); + LV_ASSERT_MALLOC(content); + content->base.init = _init_content; + content->base.destroy = _destroy_content; + _set_render_attrs(LV_SVG_RENDER_OBJ(content), node, state); + return LV_SVG_RENDER_OBJ(content); + } +#endif + case LV_SVG_TAG_IMAGE: { + lv_svg_render_image_t * image = lv_malloc_zeroed(sizeof(lv_svg_render_image_t)); + LV_ASSERT_MALLOC(image); + image->base.init = _init_image; + image->base.render = _render_image; + image->base.set_attr = _set_image_attr; + _set_render_attrs(LV_SVG_RENDER_OBJ(image), node, state); + return LV_SVG_RENDER_OBJ(image); + } + case LV_SVG_TAG_USE: { + lv_svg_render_use_t * use = lv_malloc_zeroed(sizeof(lv_svg_render_use_t)); + LV_ASSERT_MALLOC(use); + use->base.init = _init_obj; + use->base.set_attr = _set_use_attr; + use->base.render = _render_use; + use->base.destroy = _destroy_use; + _set_render_attrs(LV_SVG_RENDER_OBJ(use), node, state); + return LV_SVG_RENDER_OBJ(use); + } + case LV_SVG_TAG_SOLID_COLOR: { + lv_svg_render_solid_t * solid = lv_malloc_zeroed(sizeof(lv_svg_render_solid_t)); + LV_ASSERT_MALLOC(solid); + solid->base.init = _init_obj; + solid->base.set_attr = _set_solid_attr; + solid->base.set_paint_ref = _set_solid_ref; + _set_render_attrs(LV_SVG_RENDER_OBJ(solid), node, state); + return LV_SVG_RENDER_OBJ(solid); + } + case LV_SVG_TAG_RADIAL_GRADIENT: + case LV_SVG_TAG_LINEAR_GRADIENT: { + lv_svg_render_gradient_t * grad = lv_malloc_zeroed(sizeof(lv_svg_render_gradient_t)); + LV_ASSERT_MALLOC(grad); + grad->base.init = _init_gradient; + grad->base.set_attr = _set_gradient_attr; + grad->base.set_paint_ref = _set_gradient_ref; + if(node->type == LV_SVG_TAG_LINEAR_GRADIENT) { + grad->dsc.style = LV_VECTOR_GRADIENT_STYLE_LINEAR; + } + else { // radial gradient + grad->dsc.style = LV_VECTOR_GRADIENT_STYLE_RADIAL; + } + _set_render_attrs(LV_SVG_RENDER_OBJ(grad), node, state); + return LV_SVG_RENDER_OBJ(grad); + } + case LV_SVG_TAG_G: { + lv_svg_render_group_t * group = lv_malloc_zeroed(sizeof(lv_svg_render_group_t)); + LV_ASSERT_MALLOC(group); + group->base.init = _init_group; + group->base.set_attr = _set_attr; + group->base.render = _render_group; + group->base.destroy = _destroy_group; + _set_render_attrs(LV_SVG_RENDER_OBJ(group), node, state); + return LV_SVG_RENDER_OBJ(group); + } + default: + return NULL; + } +} + +static bool _lv_svg_doc_walk_cb(const lv_tree_node_t * node, void * data) +{ + struct _lv_svg_drawing_builder_state * state = (struct _lv_svg_drawing_builder_state *)data; + lv_svg_render_obj_t * obj = _lv_svg_render_create(LV_SVG_NODE(node), state); + if(!obj) { + return true; + } + + if(state->in_defs) { + obj->flags |= _RENDER_IN_DEFS; + } + if(state->in_group_deps > 0) { + obj->flags |= _RENDER_IN_GROUP; + } + + if(state->list == NULL) { + state->list = obj; + state->tail = obj; + } + else { + state->tail->next = obj; + state->tail = obj; + } + LV_SVG_NODE(node)->render_obj = obj; + return true; +} + +static bool _lv_svg_doc_walk_before_cb(const lv_tree_node_t * node, void * data) +{ + struct _lv_svg_drawing_builder_state * state = (struct _lv_svg_drawing_builder_state *)data; + lv_svg_node_t * svg_node = LV_SVG_NODE(node); +#if LV_USE_FREETYPE + if(svg_node->type == LV_SVG_TAG_TEXT) { + state->in_text = true; + state->cur_text = svg_node; + } +#endif + if(svg_node->type == LV_SVG_TAG_DEFS) { + state->in_defs = true; + } + + if(svg_node->type == LV_SVG_TAG_G) { + state->in_group_deps++; + } + state->draw_dsc = _lv_svg_draw_dsc_push(state->draw_dsc); + return true; +} + +static void _lv_svg_doc_walk_after_cb(const lv_tree_node_t * node, void * data) +{ + struct _lv_svg_drawing_builder_state * state = (struct _lv_svg_drawing_builder_state *)data; + lv_svg_node_t * svg_node = LV_SVG_NODE(node); + if(svg_node->render_obj) { + _copy_draw_dsc(&(LV_SVG_NODE(node)->render_obj->dsc), &(state->draw_dsc->dsc)); + } +#if LV_USE_FREETYPE + if(state->in_text) { + if(svg_node->type == LV_SVG_TAG_TSPAN || svg_node->type == LV_SVG_TAG_CONTENT) { + if(LV_TREE_NODE(svg_node)->parent == LV_TREE_NODE(state->cur_text)) { + lv_svg_render_text_t * text = (lv_svg_render_text_t *)state->cur_text->render_obj; + if((lv_array_size(&text->contents) + 1) > lv_array_capacity(&text->contents)) { + lv_array_resize(&text->contents, text->contents.capacity << 1); + } + lv_array_push_back(&text->contents, (uint8_t *)(&svg_node->render_obj)); + } + } + } + if(svg_node->type == LV_SVG_TAG_TEXT) { + state->in_text = false; + state->cur_text = NULL; + } +#endif + if(svg_node->type == LV_SVG_TAG_G) { + lv_svg_render_group_t * group = (lv_svg_render_group_t *)svg_node->render_obj; + uint32_t count = LV_TREE_NODE(node)->child_cnt; + for(uint32_t i = 0; i < count; i++) { + lv_svg_node_t * child = LV_SVG_NODE_CHILD(node, i); + if(child->render_obj) { // not defs + lv_array_push_back(&group->items, (uint8_t *)(&child->render_obj)); + } + } + + state->in_group_deps--; + if(state->in_group_deps == 0) { + group->base.flags &= ~_RENDER_IN_GROUP; + } + } + if(svg_node->type == LV_SVG_TAG_DEFS) { + state->in_defs = false; + } + state->draw_dsc = _lv_svg_draw_dsc_pop(state->draw_dsc); +} + +#if LV_USE_FREETYPE +static void _freetype_outline_cb(lv_event_t * e) +{ + lv_event_code_t code = lv_event_get_code(e); + lv_freetype_outline_event_param_t * param = lv_event_get_param(e); + switch(code) { + case LV_EVENT_CREATE: + param->outline = lv_vector_path_create(LV_VECTOR_PATH_QUALITY_MEDIUM); + break; + case LV_EVENT_DELETE: + lv_vector_path_delete(param->outline); + break; + case LV_EVENT_INSERT: { + if(param->type == LV_FREETYPE_OUTLINE_MOVE_TO) { + lv_fpoint_t pt = {0}; + pt.x = LV_FREETYPE_F26DOT6_TO_FLOAT(param->to.x); + pt.y = -LV_FREETYPE_F26DOT6_TO_FLOAT(param->to.y); + lv_vector_path_move_to(param->outline, &pt); + } + else if(param->type == LV_FREETYPE_OUTLINE_LINE_TO) { + lv_fpoint_t pt = {0}; + pt.x = LV_FREETYPE_F26DOT6_TO_FLOAT(param->to.x); + pt.y = -LV_FREETYPE_F26DOT6_TO_FLOAT(param->to.y); + lv_vector_path_line_to(param->outline, &pt); + } + else if(param->type == LV_FREETYPE_OUTLINE_CUBIC_TO) { + lv_fpoint_t pt[3] = {0}; + pt[0].x = LV_FREETYPE_F26DOT6_TO_FLOAT(param->control1.x); + pt[0].y = -LV_FREETYPE_F26DOT6_TO_FLOAT(param->control1.y); + pt[1].x = LV_FREETYPE_F26DOT6_TO_FLOAT(param->control2.x); + pt[1].y = -LV_FREETYPE_F26DOT6_TO_FLOAT(param->control2.y); + pt[2].x = LV_FREETYPE_F26DOT6_TO_FLOAT(param->to.x); + pt[2].y = -LV_FREETYPE_F26DOT6_TO_FLOAT(param->to.y); + lv_vector_path_cubic_to(param->outline, &pt[0], &pt[1], &pt[2]); + } + else if(param->type == LV_FREETYPE_OUTLINE_CONIC_TO) { + lv_fpoint_t pt[2] = {0}; + pt[0].x = LV_FREETYPE_F26DOT6_TO_FLOAT(param->control1.x); + pt[0].y = -LV_FREETYPE_F26DOT6_TO_FLOAT(param->control1.y); + pt[1].x = LV_FREETYPE_F26DOT6_TO_FLOAT(param->to.x); + pt[1].y = -LV_FREETYPE_F26DOT6_TO_FLOAT(param->to.y); + lv_vector_path_quad_to(param->outline, &pt[0], &pt[1]); + } + else if(param->type == LV_FREETYPE_OUTLINE_END) { + lv_vector_path_close(param->outline); + } + } + break; + default: + LV_LOG_WARN("unknown event code: %d", code); + break; + } +} +#endif +/********************** + * GLOBAL FUNCTIONS + **********************/ + +lv_svg_render_obj_t * lv_svg_render_create(const lv_svg_node_t * svg_doc) +{ + if(!svg_doc) { + return NULL; + } + + struct _lv_svg_draw_dsc * dsc = _lv_svg_draw_dsc_create(); + struct _lv_svg_drawing_builder_state state = { + .doc = svg_doc, + .draw_dsc = dsc, + .in_group_deps = 0, + .in_defs = false, +#if LV_USE_FREETYPE + .in_text = false, + .cur_text = NULL, +#endif + .list = NULL, .tail = NULL + }; + + lv_tree_walk(LV_TREE_NODE(svg_doc), LV_TREE_WALK_PRE_ORDER, _lv_svg_doc_walk_cb, _lv_svg_doc_walk_before_cb, + _lv_svg_doc_walk_after_cb, &state); + _lv_svg_draw_dsc_delete(dsc); + return state.list; +} + +void lv_svg_render_delete(lv_svg_render_obj_t * list) +{ + while(list) { + lv_svg_render_obj_t * obj = list; + list = list->next; + + _deinit_draw_dsc(&(obj->dsc)); + + if(obj->destroy) { + obj->destroy(obj); + } + if(obj->id) { + lv_free(obj->id); + } + if(obj->fill_ref) { + lv_free(obj->fill_ref); + } + if(obj->stroke_ref) { + lv_free(obj->stroke_ref); + } + lv_free(obj); + } +} + +void lv_draw_svg_render(lv_vector_dsc_t * dsc, const lv_svg_render_obj_t * render) +{ + if(!render || !dsc) { + return; + } + + const lv_svg_render_obj_t * cur = render; + while(cur) { + if(cur->render && ((cur->flags & 3) == _RENDER_NORMAL)) { + _prepare_render(cur, dsc); + cur->render(cur, dsc, NULL); + } + cur = cur->next; + } +} + +void lv_draw_svg(lv_layer_t * layer, const lv_svg_node_t * svg_doc) +{ + if(!svg_doc) { + return; + } + + lv_vector_dsc_t * dsc = lv_vector_dsc_create(layer); + lv_svg_render_obj_t * list = lv_svg_render_create(svg_doc); + lv_draw_svg_render(dsc, list); + lv_draw_vector(dsc); + lv_svg_render_delete(list); + lv_vector_dsc_delete(dsc); +} + +/********************** + * STATIC FUNCTIONS + **********************/ +#endif /*LV_USE_SVG*/ diff --git a/src/libs/svg/lv_svg_render.h b/src/libs/svg/lv_svg_render.h new file mode 100644 index 000000000..135305488 --- /dev/null +++ b/src/libs/svg/lv_svg_render.h @@ -0,0 +1,98 @@ +/** + * @file lv_svg_render.h + * + */ + +#ifndef LV_SVG_RENDER_H +#define LV_SVG_RENDER_H + +/********************* + * INCLUDES + *********************/ +#include "../../lv_conf_internal.h" + +#if LV_USE_SVG && LV_USE_VECTOR_GRAPHIC +#include "lv_svg.h" +#include "../../misc/lv_types.h" +#include "../../draw/lv_draw_vector_private.h" + +/********************* + * DEFINES + *********************/ + +#define LV_SVG_RENDER_OBJ(n) ((lv_svg_render_obj_t*)(n)) + +/********************** + * TYPEDEFS + **********************/ + +typedef struct _lv_svg_render_obj { + struct _lv_svg_render_obj * next; + uint32_t flags; + char * id; + lv_vector_draw_dsc_t dsc; + lv_matrix_t matrix; + + /* for url(XXX) reference */ + struct _lv_svg_render_obj * head; + char * fill_ref; + char * stroke_ref; + void (*set_paint_ref)(struct _lv_svg_render_obj * obj, lv_vector_draw_dsc_t * dsc, + const struct _lv_svg_render_obj * target_obj, bool fill); + + void (*init)(struct _lv_svg_render_obj * obj, const lv_svg_node_t * node); + void (*render)(const struct _lv_svg_render_obj * obj, lv_vector_dsc_t * dsc, const lv_matrix_t * matrix); + void (*set_attr)(struct _lv_svg_render_obj * obj, lv_vector_draw_dsc_t * dsc, const lv_svg_attr_t * attr); + void (*get_bounds)(const struct _lv_svg_render_obj * obj, lv_area_t * area); + void (*destroy)(struct _lv_svg_render_obj * obj); +} lv_svg_render_obj_t; + +typedef struct _lv_svg_render_hal { + void (*load_image)(const char * image_url, lv_draw_image_dsc_t * img_dsc); + const char * (*get_font_path)(const char * font_family); +} lv_svg_render_hal_t; + +/********************** + * GLOBAL PROTOTYPES + **********************/ + +/** + * @brief Initialize the SVG render + * @param hal pointer to a structure with rendering functions + */ +void lv_svg_render_init(const lv_svg_render_hal_t * hal); + +/** + * @brief Create a new SVG render from an SVG document + * @param svg_doc pointer to the SVG document + * @return pointer to the new SVG render object + */ +lv_svg_render_obj_t * lv_svg_render_create(const lv_svg_node_t * svg_doc); + +/** + * @brief Delete an SVG render object + * @param render pointer to the SVG render object to delete + */ +void lv_svg_render_delete(lv_svg_render_obj_t * render); + +/** + * @brief Render an SVG object to a vector graphics + * @param dsc pointer to the vector graphics descriptor + * @param render pointer to the SVG render object to render + */ +void lv_draw_svg_render(lv_vector_dsc_t * dsc, const lv_svg_render_obj_t * render); + +/** + * @brief Draw an SVG document to a layer + * @param layer pointer to the target layer + * @param svg_doc pointer to the SVG document to draw + */ +void lv_draw_svg(lv_layer_t * layer, const lv_svg_node_t * svg_doc); + +/********************** + * MACROS + **********************/ + +#endif /*LV_USE_SVG*/ + +#endif /*LV_SVG_RENDER_H*/ diff --git a/src/libs/svg/lv_svg_token.c b/src/libs/svg/lv_svg_token.c new file mode 100644 index 000000000..6ba54ca43 --- /dev/null +++ b/src/libs/svg/lv_svg_token.c @@ -0,0 +1,483 @@ +/** + * @file lv_svg_token.c + * + */ + +/********************* + * INCLUDES + *********************/ + +#include "lv_svg_token.h" +#if LV_USE_SVG + +#include "../../../lvgl.h" +#include +#include + +/********************* +* DEFINES +*********************/ + +/********************** +* TYPEDEFS +**********************/ + +/* + * tag mask quote mask tag search comment doc type xml inst + * | 0 0 0 | 0 0 | 0 | 0 | 0 | 0 | 0 | + */ +enum { + SVG_TAG_MASK = (1 << 3) - 1, + SVG_QUOTE_MASK = (1 << 5) - (1 << 3), + SVG_TAG = 1 << 5, + SVG_SEARCH = 1 << 6, + SVG_COMMENT = 1 << 7, + SVG_DOCTYPE = 1 << 8, + SVG_XMLINST = 1 << 9, +}; +typedef uint32_t _lv_svg_parser_bits_t; + +enum { + SVG_NO_QUOTE = 0, + SVG_SINGLE_QUOTE = 1, + SVG_DOUBLE_QUOTE = 2, +}; +typedef uint32_t _lv_svg_parser_quote_t; + +enum { + SVG_NO_TAG = 0, + SVG_TAG_NAME = 1, + SVG_ATTR_START = 2, + SVG_ATTR_NAME = 3, + SVG_SEARCH_EQUAL = 4, + SVG_SEARCH_VALUE = 5, + SVG_QUOTE_VALUE = 6, + SVG_VALUE = 7, +}; +typedef uint32_t _lv_svg_parser_tag_state_t; + +typedef struct { + uint32_t flags; + const char * cur; + const char * end; +} _lv_svg_parser_state_t; + +/********************** + * STATIC PROTOTYPES + **********************/ +static void _set_state(_lv_svg_parser_state_t * state, uint32_t bit) +{ + state->flags |= bit; +} + +static void _clear_state(_lv_svg_parser_state_t * state, uint32_t bit) +{ + state->flags &= ~bit; +} + +static bool _is_state(_lv_svg_parser_state_t * state, uint32_t bit) +{ + return state->flags & bit; +} + +static void _set_tag_state(_lv_svg_parser_state_t * state, uint32_t bit) +{ + state->flags = (state->flags & ~SVG_TAG_MASK) | bit; +} + +static void _set_quote_state(_lv_svg_parser_state_t * state, uint32_t bit) +{ + state->flags = (state->flags & ~SVG_QUOTE_MASK) | (bit << 3); +} + +static bool _special_handle(_lv_svg_parser_state_t * state) +{ + return state->flags & (SVG_TAG | SVG_SEARCH | SVG_TAG_MASK | SVG_COMMENT | SVG_DOCTYPE | SVG_XMLINST); +} + +static void _lv_svg_token_init(_lv_svg_token_t * token) +{ + token->start = NULL; + token->end = NULL; + token->type = LV_SVG_TOKEN_CONTENT; + token->flat = false; + token->cur_attr = NULL; + lv_array_init(&token->attrs, LV_ARRAY_DEFAULT_CAPACITY, sizeof(_lv_svg_token_attr_t)); +} + +static void _lv_svg_token_reset(_lv_svg_token_t * token) +{ + token->start = NULL; + token->end = NULL; + token->type = LV_SVG_TOKEN_CONTENT; + token->flat = false; + token->cur_attr = NULL; + lv_array_clear(&token->attrs); +} + +static bool _lv_svg_token_process(_lv_svg_token_t * token, svg_token_process cb, void * data) +{ + if(!token->start || SVG_TOKEN_LEN(token) == 0) + return true; + + bool ret = cb(token, data); + _lv_svg_token_reset(token); + return ret; +} + +static _lv_svg_token_attr_t * _new_svg_attr(_lv_svg_token_t * token) +{ + if((lv_array_size(&token->attrs) + 1) > lv_array_capacity(&token->attrs)) { + lv_array_resize(&token->attrs, token->attrs.capacity << 1); + } + + token->attrs.size++; + _lv_svg_token_attr_t * attr = lv_array_at(&token->attrs, token->attrs.size - 1); + lv_memset(attr, 0, sizeof(_lv_svg_token_attr_t)); + return attr; +} + +static void _svg_parser_xml_inst(_lv_svg_parser_state_t * state, _lv_svg_token_t * token) +{ + LV_UNUSED(token); + + while(state->cur <= state->end) { + char ch = *(state->cur); + if(ch == '>' && (*(state->cur - 1)) == '?') { + _clear_state(state, SVG_XMLINST); + state->cur++; + break; + } + state->cur++; + } +} + +static void _svg_parser_comment(_lv_svg_parser_state_t * state, _lv_svg_token_t * token) +{ + LV_UNUSED(token); + + while(state->cur <= state->end) { + char ch = *(state->cur); + if(ch == '>' && (*(state->cur - 1)) == '-' && (*(state->cur - 2)) == '-') { + _clear_state(state, SVG_COMMENT); + state->cur++; + break; + } + state->cur++; + } +} + +static void _svg_parser_doctype(_lv_svg_parser_state_t * state, _lv_svg_token_t * token) +{ + LV_UNUSED(token); + + //TODO: processing DTD type + while(state->cur <= state->end) { + char ch = *(state->cur); + if(ch == '>') { + _clear_state(state, SVG_DOCTYPE); + state->cur++; + break; + } + state->cur++; + } +} + +static bool _svg_parser_tag(_lv_svg_parser_state_t * state, _lv_svg_token_t * token, svg_token_process cb, void * data) +{ + while(state->cur <= state->end) { + switch(state->flags & SVG_TAG_MASK) { + case SVG_NO_TAG: { + if(!_lv_svg_token_process(token, cb, data)) { + return false; + } + state->cur++; + } + return true; + case SVG_TAG_NAME: { + char ch = *(state->cur); + if(ch == '/') { + token->type = LV_SVG_TOKEN_END; + state->cur++; + if(!token->start) { + token->start = state->cur; + } + continue; + } + else if(ch == '>' || isspace(ch)) { + token->end = state->cur; + _set_tag_state(state, SVG_ATTR_START); + continue; + } + else { + if(!token->start) { + token->type = LV_SVG_TOKEN_BEGIN; + token->start = state->cur; + } + state->cur++; + continue; + } + } + break; + case SVG_ATTR_START: { + char ch = *(state->cur); + if(!isspace(ch) && ch != '\'' && ch != '\"') { + if(ch == '/') { + token->flat = true; + state->cur++; + continue; + } + if(ch == '>') { + _set_tag_state(state, SVG_NO_TAG); + } + else { + token->cur_attr = NULL; + _set_tag_state(state, SVG_ATTR_NAME); + } + continue; + } + } + break; + case SVG_ATTR_NAME: { + if(!token->cur_attr) { + token->cur_attr = _new_svg_attr(token); + } + char ch = *(state->cur); + if(isspace(ch) || ch == '=' || ch == '/' || ch == '>') { + token->cur_attr->name_end = state->cur; + _set_tag_state(state, SVG_SEARCH_EQUAL); + continue; + } + else { + if(!token->cur_attr->name_start) { + token->cur_attr->name_start = state->cur; + } + state->cur++; + continue; + } + } + break; + case SVG_SEARCH_EQUAL: { + char ch = *(state->cur); + if(!isspace(ch) && ch != '/' && ch != '\'' && ch != '\"') { + if(ch == '=') { + _set_tag_state(state, SVG_SEARCH_VALUE); + } + else { + // attr name has empty value + token->cur_attr = NULL; + _set_tag_state(state, SVG_ATTR_START); + continue; + } + } + } + break; + case SVG_SEARCH_VALUE: { + char ch = *(state->cur); + if(!isspace(ch)) { + if(ch == '\'' || ch == '\"') { + if(ch == '\'') { + _set_quote_state(state, SVG_SINGLE_QUOTE); + } + else { + _set_quote_state(state, SVG_DOUBLE_QUOTE); + } + _set_tag_state(state, SVG_QUOTE_VALUE); + } + else { + _set_tag_state(state, SVG_VALUE); + continue; + } + } + } + break; + case SVG_QUOTE_VALUE: { + char ch = *(state->cur); + if((ch == '\'' && ((state->flags & SVG_QUOTE_MASK) >> 3) == SVG_SINGLE_QUOTE) + || (ch == '\"' && ((state->flags & SVG_QUOTE_MASK) >> 3) == SVG_DOUBLE_QUOTE)) { + if(!token->cur_attr->value_start) { + token->cur_attr->value_start = state->cur; + } + token->cur_attr->value_end = state->cur; + _set_quote_state(state, SVG_NO_QUOTE); + _set_tag_state(state, SVG_ATTR_START); + continue; + } + else { + if(!token->cur_attr->value_start) { + token->cur_attr->value_start = state->cur; + } + state->cur++; + continue; + } + } + break; + case SVG_VALUE: { + char ch = *(state->cur); + if(isspace(ch) || ch == '>' || ch == '/') { + if(!token->cur_attr->value_start) { + token->cur_attr->value_start = state->cur; + } + token->cur_attr->value_end = state->cur; + _set_quote_state(state, SVG_NO_QUOTE); + _set_tag_state(state, SVG_ATTR_START); + continue; + } + else { + if(!token->cur_attr->value_start) { + token->cur_attr->value_start = state->cur; + } + state->cur++; + continue; + } + } + break; + } + state->cur++; + } + return true; +} + +/********************** + * STATIC VARIABLES + **********************/ + +/********************** + * MACROS + **********************/ + +/********************** + * GLOBAL FUNCTIONS + **********************/ + +bool _lv_svg_tokenizer(const char * svg_data, uint32_t data_len, svg_token_process cb, void * data) +{ + LV_ASSERT_NULL(svg_data); + LV_ASSERT(data_len > 0); + LV_ASSERT_NULL(cb); + LV_ASSERT_NULL(data); + + _lv_svg_token_t token; + _lv_svg_token_init(&token); + _lv_svg_parser_state_t state = { + .flags = 0, + .cur = svg_data, + .end = svg_data + data_len, + }; + + while(state.cur <= state.end) { + char ch = *(state.cur); + if(ch == '\r' || ch == '\n') { // skip LR character + state.cur++; + continue; + } + else if(_special_handle(&state)) { + if(_is_state(&state, SVG_TAG)) { + _clear_state(&state, SVG_TAG); + switch(ch) { + case '/': // end tag + _set_tag_state(&state, SVG_TAG_NAME); + break; + case '!': { + // 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×y}RNaE%IN7iAxlOL{S_QY$JToDf8iz;XzB~3%j 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 UGgpcVsKJ281+VjTw`&jn5A3fF>Hq)$ literal 0 HcmV?d00001 diff --git a/tests/ref_imgs/draw/svg_draw_svg_image_2.lp64.png b/tests/ref_imgs/draw/svg_draw_svg_image_2.lp64.png new file mode 100644 index 0000000000000000000000000000000000000000..d016e305a689b8cc681fbabf09d0eea2ccbf3a57 GIT binary patch literal 73305 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×y}RNaE%IN7iAxlOL{S_QY$JToDf8iz;XzB~3%j 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 UGgpcVsKJ281+VjTw`&jn5A3fF>Hq)$ literal 0 HcmV?d00001 diff --git a/tests/ref_imgs/draw/svg_draw_svg_image_3.lp32.png b/tests/ref_imgs/draw/svg_draw_svg_image_3.lp32.png new file mode 100644 index 0000000000000000000000000000000000000000..f623cf7d59dcbcd5f8b37f98dda65518ce544ab1 GIT binary patch literal 73559 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 literal 0 HcmV?d00001 diff --git a/tests/ref_imgs/draw/svg_draw_svg_image_3.lp64.png b/tests/ref_imgs/draw/svg_draw_svg_image_3.lp64.png new file mode 100644 index 0000000000000000000000000000000000000000..f623cf7d59dcbcd5f8b37f98dda65518ce544ab1 GIT binary patch literal 73559 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 literal 0 HcmV?d00001 diff --git a/tests/ref_imgs/draw/svg_draw_svg_image_4.lp32.png b/tests/ref_imgs/draw/svg_draw_svg_image_4.lp32.png new file mode 100644 index 0000000000000000000000000000000000000000..d92316952a21455d67376e8e833cf9525a2f5767 GIT binary patch literal 53507 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

|t_=yTKM)e{`49i2NZm?18ujZ(8b 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

|t_=yTKM)e{`49i2NZm?18ujZ(8b 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�Fbh%xwWbwcQv#UlmHVhT2wzfh`s3}IU} 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�Fbh%xwWbwcQv#UlmHVhT2wzfh`s3}IU} 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�Fbh%xwWbwcQv#UlmHVhT2wzfh`s3}IU} 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�Fbh%xwWbwcQv#UlmHVhT2wzfh`s3}IU} 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 RT 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 z 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 RT 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 z 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 RT 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 z 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 RT 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 z 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 RT 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 z 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 RT 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 z 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 bj9mNtBj={K<@pl)BL#umg91vnaZ>&Pv3|KT literal 0 HcmV?d00001 diff --git a/tests/ref_imgs/draw/svg_draw_svg_shapes_11.lp32.png b/tests/ref_imgs/draw/svg_draw_svg_shapes_11.lp32.png new file mode 100644 index 0000000000000000000000000000000000000000..1f56fbd43df95352c371747dfaf4012f46aad6b2 GIT binary patch literal 10356 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 D(kZAX literal 0 HcmV?d00001 diff --git a/tests/ref_imgs/draw/svg_draw_svg_shapes_2.lp64.png b/tests/ref_imgs/draw/svg_draw_svg_shapes_2.lp64.png new file mode 100644 index 0000000000000000000000000000000000000000..ee0b858acb338b534cace37501d10484964e655f GIT binary patch literal 3037 zcmeHJ`!|$n9DimSJ8PKD652tD;>hH(#cIh=u9Z2K;;m!s+lt8Lh+ImnaaImBNw#5E z>$XzNn1*T#yO~yO))w0_FOh3YyW^TUIL2+C_p$%L{_eNu`F_8j%lG>{&wJi%U#=&U z!D0XanBHD)egJGT27og3Ar(emg%+0spi$xN=6Wpo)?`2Dnqeq4YdFrjjqCEj#C+E7 zRx{IU*tzJb>m~4;ah{2ljB@=aBWyOx_jylqa%H2chSNXiM8B)5x-l&;=(@7Bv{W`f z_M&9)l5(l<(X`UMWMpb;Mm5(Sc<)Kj=p?xL_Wk2|8eV>A^;yFB*{zq~zF&DXxVj1v zkxT#*tv(XV$In*Of^^-R{D*lBtOz#1_ng3^t0f*R4S>1pU&X_wH14JsFCEq}!bQz$6V*->R6 zUM2D*o6l%2l@yZ$i8tz!--mt03iXqcI3kh%n|`CeR>`gQ*K81=ef7%rnqlowGb6&*h}0 z&eT%y?Y9>1`v(H)XV+FPR9S+a9p-CSyL7=se)HE>3I<4QU*u>csDTtS%0+U^ReJ`r z#PPvAQN&12dJ53S?Fc^E>`PQhmuhkEBG3s2T?HI*|&UY49XY=fY5WKsC z*1}~SfsnFyMI&Pd%L0kSAA7w7sQ1fflT?t%0y6$Yp0P%8~#ZP#^?F;S7oEg*uFi+Xz1wk{Sin~qK9 zwIE2JZORRHCrRD&?XK$61VR(+EoOTWw|#iMeH-HGdk|jy4Qk-U$p+sWs7_d;Wub3R zj>$ge2kv)o5X}?0U+6(nWoWnfgyk7TBWd~lY1~&Rm?Iu!cOZtIdtsQj#_rl-3HW;&M^;E^jBJ@x;6=A!#?K?S@C z@&}s0{+=Pu+u<;5uUcvu(1*@Bn4Z8@!->e;jzwN-=o$Dq!h-dr@ D(kZAX literal 0 HcmV?d00001 diff --git a/tests/ref_imgs/draw/svg_draw_svg_shapes_3.lp32.png b/tests/ref_imgs/draw/svg_draw_svg_shapes_3.lp32.png new file mode 100644 index 0000000000000000000000000000000000000000..07695b667dab50a4589bb28808ad40877e480f5c GIT binary patch literal 2669 zcmeAS@N?(olHy`uVBq!ia0y~yU{+vYV0^&A1QfZHI&TpJ1DA=Xi(^Q|oVT|O^PxYS7PEU|;e4e#cilL_Z-TU|FYgr$7h(F)Qz;NJy?*S%;4o)40h8cs5abtI|+_w)O z3d+mNPYFNFm_B{Fyj_jOcU^{x$$nB1Kv8-7I-94R1zTp%o~<9hZ_aNqhCQC@yldRA z-(PDN`~UGO%V)>7Z~R#M`SzUM;dyo&_df4q@3;7SbYA*$ANdY z<>zet-dA#3Ka1b^>BGGLuhu90o)R9P@c#78&unEs|NPt@zLvQm_MAY({B_6A+snil zUY}oV_jmIyQ@P}rGs?$*f8#knt9b9>m&aek~M>aPXZ&u5f-sg2AP3yZ|=Vn_Wz~!|0^swdgrU<^~dhwtM6*-ACp-9^^8pN zy657LE$1C8w(C9qxx(gb|HkJxcUoj;|9i^UfBRiknI$mBUs^wVo^*cW&gVsEBW!-x zJc_yh?dMzFXXe*>Y(ICWKkuG9-~RcHKc3IO{d#)(X2s9h@9WR(zkfBRXZrhs$E`Zo z^WR#ESNF-DXF5>-fT!{6>GzL+&yU+#w)F=KLxnUjQHFLa2KP_i?-&>i8(A3ygd;{7qk%A*5=L{uXf7Dd1ys%jzqy_} X=w0UKu)YFpMlyK1`njxgN@xNAzvpW< literal 0 HcmV?d00001 diff --git a/tests/ref_imgs/draw/svg_draw_svg_shapes_3.lp64.png b/tests/ref_imgs/draw/svg_draw_svg_shapes_3.lp64.png new file mode 100644 index 0000000000000000000000000000000000000000..07695b667dab50a4589bb28808ad40877e480f5c GIT binary patch literal 2669 zcmeAS@N?(olHy`uVBq!ia0y~yU{+vYV0^&A1QfZHI&TpJ1DA=Xi(^Q|oVT|O^PxYS7PEU|;e4e#cilL_Z-TU|FYgr$7h(F)Qz;NJy?*S%;4o)40h8cs5abtI|+_w)O z3d+mNPYFNFm_B{Fyj_jOcU^{x$$nB1Kv8-7I-94R1zTp%o~<9hZ_aNqhCQC@yldRA z-(PDN`~UGO%V)>7Z~R#M`SzUM;dyo&_df4q@3;7SbYA*$ANdY z<>zet-dA#3Ka1b^>BGGLuhu90o)R9P@c#78&unEs|NPt@zLvQm_MAY({B_6A+snil zUY}oV_jmIyQ@P}rGs?$*f8#knt9b9>m&aek~M>aPXZ&u5f-sg2AP3yZ|=Vn_Wz~!|0^swdgrU<^~dhwtM6*-ACp-9^^8pN zy657LE$1C8w(C9qxx(gb|HkJxcUoj;|9i^UfBRiknI$mBUs^wVo^*cW&gVsEBW!-x zJc_yh?dMzFXXe*>Y(ICWKkuG9-~RcHKc3IO{d#)(X2s9h@9WR(zkfBRXZrhs$E`Zo z^WR#ESNF-DXF5>-fT!{6>GzL+&yU+#w)F=KLxnUjQHFLa2KP_i?-&>i8(A3ygd;{7qk%A*5=L{uXf7Dd1ys%jzqy_} X=w0UKu)YFpMlyK1`njxgN@xNAzvpW< literal 0 HcmV?d00001 diff --git a/tests/ref_imgs/draw/svg_draw_svg_shapes_4.lp32.png b/tests/ref_imgs/draw/svg_draw_svg_shapes_4.lp32.png new file mode 100644 index 0000000000000000000000000000000000000000..38ff8930389716739daf41a0266c6acfd03d1ffc GIT binary patch literal 5585 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 E0X&WLHUIzs literal 0 HcmV?d00001 diff --git a/tests/ref_imgs/draw/svg_draw_svg_shapes_4.lp64.png b/tests/ref_imgs/draw/svg_draw_svg_shapes_4.lp64.png new file mode 100644 index 0000000000000000000000000000000000000000..15df72307a2760477ff61a876d32876e22b76464 GIT binary patch literal 5587 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 S`^hfrfQz;cztGQm-TFTf^Lu#! literal 0 HcmV?d00001 diff --git a/tests/ref_imgs/draw/svg_draw_svg_shapes_5.lp64.png b/tests/ref_imgs/draw/svg_draw_svg_shapes_5.lp64.png new file mode 100644 index 0000000000000000000000000000000000000000..9b87f5748fe1c1e350563c3f09b5a68b303806f3 GIT binary patch literal 7117 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 Tg_g2wI^f(H_upuz{ICBnS_^3Z literal 0 HcmV?d00001 diff --git a/tests/ref_imgs/draw/svg_draw_svg_shapes_6.lp32.png b/tests/ref_imgs/draw/svg_draw_svg_shapes_6.lp32.png new file mode 100644 index 0000000000000000000000000000000000000000..f41c325ec7ed154f5898dc4a96bd3f623489d96a GIT binary patch literal 5595 zcmeHL>049R-rWW$CPFQDmqxXc?_Ttstm{Ko~*-I3|WcOqdKvRkXFywzr_7 zK-DW~<^Um>kPrnzMKOht1QSC*E(Qo;5D7>Kyocxh3HQU>5B+$~bI#s-t>3iP{_#lU z0h<+$D*ymC2fy3*Jpg8#09e*%1%uvn9j~|#z`FYf_k9zcb62lMomGi>#YZRFZi^U) zQf_=^_5$%qS@OT#Kl`rYTF3~NV8$9X#jkzD@k*?t|MFG(`)&nU++Wai7@QAToS%|B z@Lo21ulMY+ROsrnYlgKeMSB2R{{4)mu<$=_1zu~sKa54jK3BzZFxu*1Lu>BOI5U3)qjpTO z2J1<5QGkM;Hw!5-EK21kyoP8p4KP{8Vrt`|RaVM6E9A;h?A%3FJ zsl=-sL0C^b94+IydxyoBM^-}{JV{LBs`f6(fT%h6B*xkHO1efU<6(Vpbarp(Q%5uE zu1d*N(9NYirh?F34*9j9&pPkf((^-xzauUcF0T_lCuN$+gCv9>5Fw8mw~U{El1N(* z6U9zN7a=TT{pdoHF(!|i@Y$#%RaGn#=-;kMMr{bHlpKe?e|z>xciOh`!Y7IEa{b$3 z7nlRNFkMbiK|TUbg{P1c)Q791g6(v{MF>Z#9B~^X6S>z?Yj*X}_b5v&0J`m8=JLs$ zc|BJn^y7*17Tx>nYW6h{ckjK8;pi^n`23`#Bwu@Q-a@hpSuK4mN8}#mQLZyb;*&k; z-^apLtauKCC&ChR7xiyb1J~DnX$^!ws4Zh2Q@aqjy|h=mS}4>@Qr&~)I-}ysN}}!} zhdna<>2V?_^IA&o)Xkd?WD6j{Yl{5jGVz||z^Cy+w0p^X zULjZykdqc@OC!eS)2Uu8-sNY+X5(A;{sswYJ8R_Q{iz^D)&_YmK7Omekq!Fd^nR@N zA3tppj3jX%&{{7)ODkdVf6d5?xIeavHfH}!KPj6{L*zC?2ROMCh@zA@48e!OsH@-E z$fU3F8p}clrkvZ(64!3@-;8|74w=n210fHwyfGKH>_S7Z zg}guGl=d+E0gdb`Pr-P8+vQt#G=C9eL*op#8vnTdl=mRaI(sclB<+d9kWbcl+p>9& zu;I9%nq=d-zlQZ2Z18LFL0K%pyH?M{R1}J-crp0CU$bQiPDDE-ez|9rOuQSH>LYImUkYDW5*!J4 ztJk1cV#n`eY1Eo1;b_^;7T5(X>&8-X<74T5FyAev^ zL6Z2@liaTBuJ$143duYs+v`-q{%a3t9CDnx^MR(!ZFjbcHF6-^(zpAz)bJ#ZfM9pj zButGy+fg&(2o*|Fu(=~Jq#rIqNT$w6DO3izD?YH76v*Ojjox}M;OX2w9#6RO4?=Ct{4CjO-W-HMecAF|20B?&k=$8rQ{KokA0ITGnqLDtN{7k z8&FB@|DJy=(Tnz6=4mDG3TO(pr#2#jv+fPqob*g+Ag{5^PR0y1dX2Hy5(%B3g ztPEz2ypG0SKJ#gveRUk_G(qX2s=$yFn7pigs)wSq3{GjWIy4NkOk~#+fuRrnY1o3x z9M15dXToCy7l?xN?Q~_ermp%J9nqJ9BD8Oa2ck%lK}6~3ERFeyci578ntWTyQ8F4!R}pd5?Be@Ydq5URyX=y@^>G`*=_(B$q^42R+7 zRb$hc$Zr#Iv>9|)?kBTu3jr&?Ayjpk~hz`tk7fojoYO3IyIiIs#cD#C2bz*ClUWxUmoAk3TFc3KX*i2V$ z+tF98zcra&&3!VJwN<*Hm99DjSNIg%{RMWRx~^8F^!kl+KJMk?W(lJW-}HR8*nI^M zmX%w?_dN}14^82mA4LZs~eQC_i#PP+3 zF*`*U-85zB3{W42fy3`03?@<)x3l&gk_2lxw=Woh~j^h%F8XcY{9H z5CVoX7Oo@VmdgYU__@w)k54w-M5|^r-|_I$zpi$AuLQG4Dg#*dcG$8i{qJ#9s?k(H zLMR{I(tb4E^p#{8ZKp~0QoR0|{UQpLz6=;4;5ck)ZN8-^`-L9 zZ^AGAH{k@;;Yx<%gAsl$)iFam^)XLS+T`qwDbSh79C@KyXFz{w7>5HZDDge34syTX zb|R) zfJ#81o#1M_$FjfWdoM$Qck0ToLD1 zgcKK40(Gslbd43w|7YH#yxiQl#5NMeVthasW2WL!s=ul;GL)I!9|Syi?kX>@ z)uq;_t{}fG5xdHj>dR9q)u*bMD2Re%5Cu}*zp(9Rleh|sGg>Apt9l&qkT;B-JXOqi zDKE9s__XBZPFI+aS+x!Y3%{O>Gy|2d(_qxG?V&c}sP+Cab4qnAuE;MU%7%8jM=KQA zEn&%5vyPSO^$^F<_>ua0+A_om7W}%hvTvdT`AVcq;`{$?bH?Qg#V?TBL|d~~ZdUxEqhs0XX+G_SED zo3kFNUYSjhl~1z-&4T$*S zRzQMf7WoO%#L8P3y1tB3?c=fWd!GN(k+XV(f&FzVhH!_?=F~u1a)FU{M<2LC$BezRhR>I*q%dE&h$FAfz%J)sbF#qDQ@FS40#kI+CQFtB9Hs-PPwWSG+@x zK#lyW+j83JGROo#9*MtxH&@}NI;T?cKmWE(`=7Py>kQRIpEi?f%-JE|E3|`pafKV} zryX0c4wkw(j5?2#*)k+v(=X0^pk767d^E7_4g>U2bL*E9Kb*RwfhQ#SzslL&EU}Oq zVrFtHoQaTV|I6+Z2o7Yj1_zHWr;1>X4*UEhed)Cz|h zb_bXb92nKz_^AEF<4M=ARdyanEx;M${UTY{A+TFM+35hl#F_uq-?F9-6!eTkge%a6 zq$Ph^I6v72nQJgxc*SU17{UR}(@@B84~2t*-@e@Qx3boMN4x*enf{iyF#m+*pRoKr h?+5>GnYn1m*msxm^6bn;=+YJ(+#k7*u?O?R{{eSFF7^Nb literal 0 HcmV?d00001 diff --git a/tests/ref_imgs/draw/svg_draw_svg_shapes_6.lp64.png b/tests/ref_imgs/draw/svg_draw_svg_shapes_6.lp64.png new file mode 100644 index 0000000000000000000000000000000000000000..f41c325ec7ed154f5898dc4a96bd3f623489d96a GIT binary patch literal 5595 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 literal 0 HcmV?d00001 diff --git a/tests/ref_imgs/draw/svg_draw_svg_shapes_7.lp32.png b/tests/ref_imgs/draw/svg_draw_svg_shapes_7.lp32.png new file mode 100644 index 0000000000000000000000000000000000000000..5aeb017cbecf1369361e02fd746f2668159c1392 GIT binary patch literal 4980 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 literal 0 HcmV?d00001 diff --git a/tests/ref_imgs/draw/svg_draw_svg_shapes_7.lp64.png b/tests/ref_imgs/draw/svg_draw_svg_shapes_7.lp64.png new file mode 100644 index 0000000000000000000000000000000000000000..5aeb017cbecf1369361e02fd746f2668159c1392 GIT binary patch literal 4980 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 literal 0 HcmV?d00001 diff --git a/tests/ref_imgs/draw/svg_draw_svg_shapes_8.lp32.png b/tests/ref_imgs/draw/svg_draw_svg_shapes_8.lp32.png new file mode 100644 index 0000000000000000000000000000000000000000..62df6c121b7c4bc421578b5028c191a7333a1c1a GIT binary patch literal 2416 zcmeAS@N?(olHy`uVBq!ia0y~yU{+vYV0^&A1QfZHI&TpJ1E;yCi(^Q|oVPa*`br0i zI9#+(7I)ChJ9u}A%A~Xv%$>4}S|g9$bn)uo**HhrZbEUG|Kf@NKF7!QPM8;3=B19Oxz3#Y8x0B zk|<>S=1i}PJie=^RPwb|+3AQl*|OIW=XqaqpZ{O+@MgichffdRkGrupIkJxL@$1`h zFH@&~yY)2YoAmnq=cm7a^=3o#v0pV2`}e+_%5=c~11pu>M4^`mXx}!!;Mv>nob7da z+n3*zW?$^#`f$zhKBwe%ej7=%NZW@4}S|g9$bn)uo**HhrZbEUG|Kf@NKF7!QPM8;3=B19Oxz3#Y8x0B zk|<>S=1i}PJie=^RPwb|+3AQl*|OIW=XqaqpZ{O+@MgichffdRkGrupIkJxL@$1`h zFH@&~yY)2YoAmnq=cm7a^=3o#v0pV2`}e+_%5=c~11pu>M4^`mXx}!!;Mv>nob7da z+n3*zW?$^#`f$zhKBwe%ej7=%NZW@0Mx7iAkAx$anF;uhGqbCZwLB%h33>L=Dd=kg(nIg7uiX< z1=ZJLqo%*0RbJk(Sx)^c;8w%0Ry4Dxe?-i;#5>9!d|bu}a(xqOwA(vfHl8e<$S-qt zqvpL;$^74`rez;m_HJ*z{$0s_x4W~Yq_Ro#^v$)kG^H&t`g7N9lsekD8ME%*r@L3h z-uA2TlndFWZ2p#=8u%^FW0a8^si>$=B!St#~DEI^~`REAa@Dbywy0~Ia;K)J(#Dznxgz-Fj*-egT);e zOni|})&(`n9A@|TsKPBl_*X5$kS^4`S2CK=vWsen5DQ8I(>G zdJ+@U5nj&&VU-S;I2=ig=0CP5@puoMtDn1?j@ey3yaCO^21_m?w(8ZguLXBWU7m^% zDMs-d&;{oa3l#tEat$lQgdzSzIpE~ zQD#2KauNFF{GVa@60U%NQ#ofW^~=26S~Exn7Qz>uX++5|krt7Q-G2gObPu4r=RxSA zwJQ_tcznNvehStmHy*1Z_K#L!yphLo=r*}g2$^nN(TB&99c^L__-Py}fm*9Zs&RH$ zbns~w4acKh0_24 literal 0 HcmV?d00001 diff --git a/tests/ref_imgs/draw/svg_draw_svg_shapes_9.lp64.png b/tests/ref_imgs/draw/svg_draw_svg_shapes_9.lp64.png new file mode 100644 index 0000000000000000000000000000000000000000..3ad8e7f941743dc969c05e17734162b3f376d45d GIT binary patch literal 3048 zcmeHJYcQNw7(Tm*Tj?~dOWdQ#Oc$YpCd6!A;yTqNmEC0+8<&Y0;(i-j)+I9;Luh`u zOx=o66q_$n7TeX;1Zg(5lCZ5}W3pw%+H72wh=_jQIgCG@{_9MC_;ud%p7-)R&wI`{ zU&)0Ke?1)&9RPq{V1Vx>0Mx7iAkAx$anF;uhGqbCZwLB%h33>L=Dd=kg(nIg7uiX< z1=ZJLqo%*0RbJk(Sx)^c;8w%0Ry4Dxe?-i;#5>9!d|bu}a(xqOwA(vfHl8e<$S-qt zqvpL;$^74`rez;m_HJ*z{$0s_x4W~Yq_Ro#^v$)kG^H&t`g7N9lsekD8ME%*r@L3h z-uA2TlndFWZ2p#=8u%^FW0a8^si>$=B!St#~DEI^~`REAa@Dbywy0~Ia;K)J(#Dznxgz-Fj*-egT);e zOni|})&(`n9A@|TsKPBl_*X5$kS^4`S2CK=vWsen5DQ8I(>G zdJ+@U5nj&&VU-S;I2=ig=0CP5@puoMtDn1?j@ey3yaCO^21_m?w(8ZguLXBWU7m^% zDMs-d&;{oa3l#tEat$lQgdzSzIpE~ zQD#2KauNFF{GVa@60U%NQ#ofW^~=26S~Exn7Qz>uX++5|krt7Q-G2gObPu4r=RxSA zwJQ_tcznNvehStmHy*1Z_K#L!yphLo=r*}g2$^nN(TB&99c^L__-Py}fm*9Zs&RH$ zbns~w4acKh0_24 literal 0 HcmV?d00001 diff --git a/tests/ref_imgs/draw/svg_draw_svg_text_1.lp32.png b/tests/ref_imgs/draw/svg_draw_svg_text_1.lp32.png new file mode 100644 index 0000000000000000000000000000000000000000..2d0f64309e37cf526e0f45e940345fba587fc056 GIT binary patch literal 5461 zcmeHLYdDl^+kPZ@%R*LmVN6k`Y_qb@EqpU-_f_x)VwbzSFqUiTAw$<|7I zpTa%}g2b)QS^N$`!iOM8=<7drftB9tSve3SqhxLI+vSj#-$(tP+6M|6IbEdQa*abV z&kZWw4ymaScSr7ysdy~ok>}>IOZUtxi3{nRL(y&N7Z5OnXZfB_xc;bDnwgp^()&f! zeoNUaB*GV#6;s(K#4#KqQ$*!(kuq{?%O9W9Sv{i*wd*6xWZtCNOxQy0(MP8bLmP~D z-t=Ng?*9880llK(ASSr}E-~m(TH`M0oLVUaCGFLO?qB=wEDg26SA@dOjokC>@3*k{ z>EO?XBi;QrP~%=}H~o$ek2o6>Qc|~vm7CR|uMa1GJ`DZ(OQZ<&^n#lZbmV{|1hws! z{huXEi>53y)UmK`Q6VVI;>d2AqF+7A#ih=JnlQak&_kYL6DX$-Pj|%OCUX23v)zZ) z)pP6%jTY)_zE_2?iar~1vwKz&aV%Ogl?Vj4-W#d!Gg$iR)2Fv~`33}s zc(zvXHVO-uG?&j7`23`-w9bIX$yt>h30g=<)|iM!K2bJv-&}gR&c*hwBy!e<{Yr?$ zmnW`%z!|AS8|RGQvnMgfnwsUP{LO`g0Jf56rp(c!Wp}Ul)6QD>jK~iRaC*<<=H9~l zukM22w-AF0#H1woUyi8c5H)=pPN9n)r(zQj*-sEzF_qpPOOwZr$Hs&#cWivSh#XWE zfz0b|OB)}@EQIU$*6U*M$Jq@gq@eKN`U<_`I_;K3#`a8wR|;7eqE0u75z$4=tWaiO zwr?0~wucAjv#^}GLhARwp!4D4wH@vEdpsY!>_z~^Tvpuw!PU! zxOMARmCsP`>+`9~X87mQC7)o=;uQ_GT}c7-Vpn^6d(X^3w0}?~_M^Y^Hs3SgTki<$ zZ2!OjS+F)N)l+`GJ!*ot_IC+ z2@RfIS#p?=aeexgJ_=#G*tJgEx#G>Ze-L}*l`)!+CPB%tJ$6J!0)$HcZ}&c}?^u`AaBN8Au}{DIjB)+ubOvGZ0el2Ug*{WV z!O#93oxXAQ(dnz7U+4m5{0{cd553!IMWt-xz`5C;TtD(E?dr#lWkJBa{Q$ZIw%SeIbAlY>b4d6lW?IOXr^hDvS zSCc6&zFzd=QIABkD$pKk4LwOm&x083fB$_cgTbHv^^QeT>z}HW%?>{{0L*NPwZaP$ zV7hm&U3Q?(5221(uxPqrA)xtDb_a&5nxn)yu@{vD^9*YD-)B^rZ}YQ^Py7_$ zIe{!S<&Qn;duYt&xa!-(Xr(lLZ?u=!x7Vo{{MP0SQn1puEm$DLO>~(qU$9Uz>IwYm z84MZ0=h5sfOu4hUQa$9*_4f}%;k+j3ehVKt)xu2e$brR&XwK&j{^s(GAwMmBk3{X!_fpb?hc&l{tD^nXH8eDI zbQs{!FO}YklEi5E*tXk;hZATA%QMjuu4V4cppenxifha`9bXVb{~MGPj?*m1091SD z*`=&^vm0mxDMG*nYJo3sv@g{3ERkH z-mbPa-<(`G&Glb0@thwE$>kvUrHT?b_abc{UR|=Dc}k|7;?#-cEC&>d(3a`G1m0Y-hDMxW61$?V+SSFOec_u5gxS-$`cjcSmSjfbm5;?Dq#ba7Z}W88hscXc?DNpgy*_ zhw+EC$@W)eg!Ec70(x?O@HOFT(UP8L_tdsAGjtsqA9$ew>M zu`Lg#2xDNy%bg~Ez`yPCZ8L#?0ccxm)s)eDGnqCFE$B{7(wPXa4WmII0qr`Jdau4b zP}IP={GTMH7Uo8l>AfjP$_hCU!({eLtOxOg2uh4|J{Ay-&_%XEd4+Cryt4r xk(~d1r~c6sKYHRvPyAnhoPMz5Kfw+jQbtQ7DaC*bew;#(wWX~^@oBd|{sqpIo#y}m literal 0 HcmV?d00001 diff --git a/tests/ref_imgs/draw/svg_draw_svg_text_1.lp64.png b/tests/ref_imgs/draw/svg_draw_svg_text_1.lp64.png new file mode 100644 index 0000000000000000000000000000000000000000..2d0f64309e37cf526e0f45e940345fba587fc056 GIT binary patch literal 5461 zcmeHLYdDl^+kPZ@%R*LmVN6k`Y_qb@EqpU-_f_x)VwbzSFqUiTAw$<|7I zpTa%}g2b)QS^N$`!iOM8=<7drftB9tSve3SqhxLI+vSj#-$(tP+6M|6IbEdQa*abV z&kZWw4ymaScSr7ysdy~ok>}>IOZUtxi3{nRL(y&N7Z5OnXZfB_xc;bDnwgp^()&f! zeoNUaB*GV#6;s(K#4#KqQ$*!(kuq{?%O9W9Sv{i*wd*6xWZtCNOxQy0(MP8bLmP~D z-t=Ng?*9880llK(ASSr}E-~m(TH`M0oLVUaCGFLO?qB=wEDg26SA@dOjokC>@3*k{ z>EO?XBi;QrP~%=}H~o$ek2o6>Qc|~vm7CR|uMa1GJ`DZ(OQZ<&^n#lZbmV{|1hws! z{huXEi>53y)UmK`Q6VVI;>d2AqF+7A#ih=JnlQak&_kYL6DX$-Pj|%OCUX23v)zZ) z)pP6%jTY)_zE_2?iar~1vwKz&aV%Ogl?Vj4-W#d!Gg$iR)2Fv~`33}s zc(zvXHVO-uG?&j7`23`-w9bIX$yt>h30g=<)|iM!K2bJv-&}gR&c*hwBy!e<{Yr?$ zmnW`%z!|AS8|RGQvnMgfnwsUP{LO`g0Jf56rp(c!Wp}Ul)6QD>jK~iRaC*<<=H9~l zukM22w-AF0#H1woUyi8c5H)=pPN9n)r(zQj*-sEzF_qpPOOwZr$Hs&#cWivSh#XWE zfz0b|OB)}@EQIU$*6U*M$Jq@gq@eKN`U<_`I_;K3#`a8wR|;7eqE0u75z$4=tWaiO zwr?0~wucAjv#^}GLhARwp!4D4wH@vEdpsY!>_z~^Tvpuw!PU! zxOMARmCsP`>+`9~X87mQC7)o=;uQ_GT}c7-Vpn^6d(X^3w0}?~_M^Y^Hs3SgTki<$ zZ2!OjS+F)N)l+`GJ!*ot_IC+ z2@RfIS#p?=aeexgJ_=#G*tJgEx#G>Ze-L}*l`)!+CPB%tJ$6J!0)$HcZ}&c}?^u`AaBN8Au}{DIjB)+ubOvGZ0el2Ug*{WV z!O#93oxXAQ(dnz7U+4m5{0{cd553!IMWt-xz`5C;TtD(E?dr#lWkJBa{Q$ZIw%SeIbAlY>b4d6lW?IOXr^hDvS zSCc6&zFzd=QIABkD$pKk4LwOm&x083fB$_cgTbHv^^QeT>z}HW%?>{{0L*NPwZaP$ zV7hm&U3Q?(5221(uxPqrA)xtDb_a&5nxn)yu@{vD^9*YD-)B^rZ}YQ^Py7_$ zIe{!S<&Qn;duYt&xa!-(Xr(lLZ?u=!x7Vo{{MP0SQn1puEm$DLO>~(qU$9Uz>IwYm z84MZ0=h5sfOu4hUQa$9*_4f}%;k+j3ehVKt)xu2e$brR&XwK&j{^s(GAwMmBk3{X!_fpb?hc&l{tD^nXH8eDI zbQs{!FO}YklEi5E*tXk;hZATA%QMjuu4V4cppenxifha`9bXVb{~MGPj?*m1091SD z*`=&^vm0mxDMG*nYJo3sv@g{3ERkH z-mbPa-<(`G&Glb0@thwE$>kvUrHT?b_abc{UR|=Dc}k|7;?#-cEC&>d(3a`G1m0Y-hDMxW61$?V+SSFOec_u5gxS-$`cjcSmSjfbm5;?Dq#ba7Z}W88hscXc?DNpgy*_ zhw+EC$@W)eg!Ec70(x?O@HOFT(UP8L_tdsAGjtsqA9$ew>M zu`Lg#2xDNy%bg~Ez`yPCZ8L#?0ccxm)s)eDGnqCFE$B{7(wPXa4WmII0qr`Jdau4b zP}IP={GTMH7Uo8l>AfjP$_hCU!({eLtOxOg2uh4|J{Ay-&_%XEd4+Cryt4r xk(~d1r~c6sKYHRvPyAnhoPMz5Kfw+jQbtQ7DaC*bew;#(wWX~^@oBd|{sqpIo#y}m literal 0 HcmV?d00001 diff --git a/tests/ref_imgs/draw/svg_draw_svg_text_2.lp32.png b/tests/ref_imgs/draw/svg_draw_svg_text_2.lp32.png new file mode 100644 index 0000000000000000000000000000000000000000..b8b16637ae7aeb56574e7b9ab3073b629676db8b GIT binary patch literal 8846 zcmeHtX;%|g*LEybR7Bd_0TqE(tB4Ay%pjz#MFb=$$UFp!%tMeF0z}I#S`ks1B#CB=s$SZdY|W8Kc2nLI_vD~TxaiV@3sHF1+rD$ ze_}rX08q8N@rN@2p!5>}uxozrcRQA`AmkeW;3t6HAHUs6E@jWAPRYr_b8n zHv0PH@ejSbcOTyUhoGJq)?POUY-iVo!#R6k=U$DhE-mp$32PJe_>l!DC!G^#*yf|Z zt5H_d&>(MA+x5l%jJ9AG0FXAm_aflF|92{YpI*KD4zTxZBLMK%zW*JQ+fiIa2?XSV zT2a>l-MsebI$M(7#$CZtP!o5Z8#ZC9H(6Gpp*Go3oURnnU`<2`!94Km{H|-3uyeL# z=sQlF}WhUq!G$&s7ifc_G*WPDrH<|A)!@0O86pdUN{icp_Z-~Ycl zjIaN$4vo|OY8rhr`)C!DDa5TZnKLhwnpIWXgt($xZ9dV|ms4<@29TvBI`?TgcJj=6 zFs(sl4&vyTx{A01*6x_5)=`>+bW8NSCUFrPC_rPyKIk2gN2UJ!6j)qL*(UH1FO!jFqrJ4w79Nl7))rY?))X_0fj*uLz6W>=0 zb08(G#;vV(?Hrfye0Di2J>{ki2LCK&Q_qDt=S$sg{n%VP@ZbpuSCCdUl@@ZGty;wlx8Pu(!v{Uw=^~yM3;cC=j+wd*=aolF9;s8|HssR9+48v zoU^L;XeucC?%gwpx9=%5`lf;l3|so-#;pCEK&w*G|H7(ENNB^9PHyy4nDjJky~pGp{o)Ifk$O;^9Qa56?O{VFeNEqp0kb(CrrYw~D*1cP| zIr-|-Uy`YZuvlY_{WNr1@^y`AO#0o_g+FN%%=5I*jj>;kkgbIUIffyGgx7q&1}r6T z=&h5{O~~3IZlQsbZWVDIq*Hq9j(g5Q^IwAS%(RfGC<_^n$A%Elb-!P5uf~pm`m~6~ z66N{RcfEH{U@{7<6{42v`n_SXd}`SB2u1V+br~d$6ga^K@gBg?m|#VwebOxH+o!cP zioz<6Kbsehmp`_A9eqsz)wwF9kyoR{&I@*}AG80|t#Vx-mnRP@VYR(l9CO3#_{T}m zlwAFx>?q}lt$sbl>H5;EB&wc9J=91MF8ci25h%XnW6^YDK>xlFOq+;^&eE zz@DF%3kXCjaU}IA4cgK2c2%VC^t}B7Muw%w@!?dx%!{8L6{0Dg@{{2ksv-|6L7x1M zAJ;eQl{B_q1QWc}u}&B-?zysCsoUg^sdTHQuh8JJR=U@NXD2p04QA#;~oDyy)!@Nkt$Jr!`0wThLDJcjw`BB5cDyC;uxNK41FESdJ#=B){OZzW9adZ z3>EMVWvy4kKw#Gvhe#3gZ3up|Fc>FQlhuE?11UmONT%fFoFU2az{%`m@ffwUSN$LnR~<+ zp&*=;$yVD5y}Br$u8iKSHH8SGZgo#u{bI9R!z_bNfRs&iwDMl4KSJIcuP&kL`Qm~< zuI1Q*$J$Q06MwF{Lx>6ElOc(k){zu;gkLf#pqIG<@lJ>&m-|xlw81ipLSLG22cf`m z+ts}jn@X$EGy+Dt9NoOFY7@uQaAKl$*SRbWO8LacqNKZ^>ORM1qT|q zY}nco9Omuro@)(nAU1>!y|AseT)#<5U8Wt-MrNrwts+Y@#1tNB9oK>R;Xdrrbc_~y zbCL4&xJ?3;H4{g9_dwJOhx4RdQLm4Fx{xU99T8k}pRs7tjR2N}%6YB>ciXkNe|Njbsj9Anwxbu|wGia2Y(Np-Q1^R~ zWPO_d0_rT}hzLM_ykJh^Et?VIlh@VegofB={gRpSt}}=WdlYLSa2mv< zasTyJcP+CHbkaz-d!2S_bH;BOK3)v{OsJ1_Qw}(oVclctn-;JD&vMX@P!y%S-_39U zhli9rdu3rvlBZ@gy*VXYP-73q;}Uv00NZ;f-5wa<`_od`oqN)=r8Oo%z6zB7tl)wy ztFT>D1ApiIUQkf%lry5%3r|am($Ih)lp$U|t=qlYENV?NqT+-wha^5oRv2DgFRpS} ztyjHT$<;Dj$HL?+J_Q2_bhJH;{7{<$6^Yx{TfY2ML^f7?$IO^Vx}HwbTbnfUov5`9 z310I8Vc_IonpL58BaXp;k29V1YyGmQyjpMvZ&+;8YdYM2_~yd`Xs{QYHc-DOWtNCi zF^G)Fd`4U@eABDg&TZ+_x(wYjU$J&=M-?gLHrWyMh}^6!-bRmzk4i7EbSM%$(pR0f zDzoISen0Zo58EK$wA@NsDJl#)Xjuc(m^M9Mch2hDlJ9<6M~m+q$ZVta_QUKFzcW6- zkN~!~Be-jI;q;X=XRHoFEX<31!B_#K(D35;Ae_>81ttm2emBtI-NkwKSB>SsKzpf? zHBQIn_U**2kZb`(!2T~??6y|4fgk^v6E;@)#uzM*eHXoJ`|Y&fcM&piwKfuFUGGy2 z28s`9o;cRYZA|mmgPJC%ZN5ptCE!Hq2Z0^#G_B>RNP1+~qVf^_&Z|M2D|qP-d=2jA zOOObI4cpm&31(4CLkS#o`6u%r&8}*oh^F)f0Q#jqf_M@SUZ~SpB~i_;ciu+zsGVnw zS|$9-*tF3sEZMr@?F|!CG$%tObE$RTMm86UAPKjOm$TkqNXafp>Q7`i{*zt`tD|@YEuAi)h(4fpgP-I0gJn8TVuC)aoK04}A zf<-5vt)|P)mV^z|_;9az!4+M}>3PO=nd_$_fAp}DxJE{kkGAvB=X8fEg{hF)t?g0a z&wHNH3FeI^7k#mbg1F!Q~o7NghiEJ}x;92ther3G_^bsK{dooV4~pKFjPf}zMvq#h`+rAh4crzJNB!) z@(0aT>$p11_M8awZjz0E0dJB;IpF;%KmV@y@c0*r;u_;|Z?AiTgfIEY`tW^CdScR^ zx>}};6EOcgk+VMSj36Ek3SCG>Cq|)%z!=s{{k78sXM0S2GFy_Hp}-eK*F}6H%!<@X zVbfs*P3+obO$F~DvuR|wATyP!A8w)35A@bLMt>r3SE>PjyWT!Y(ZEyUo&zEw zc;dSgS6f3j<^4f@Pi4=Yu>9jbMhhR9RrOX24aOR#Mt3lCU($G1$^`S2F=%reYtvL4 znAAH{`=s`A&&QKS-(I(8wF8I6i(`BTCqz6mVzm?R5@b6fj=yy_j{%GxFM)-gFzIBC zs_&$c97={hV#esSryXhw`A8L#LEcf1<5xWzVoD`&+w2ClXbYn2TIlV7rW`7 zPu-5kye~Qa1&sd1C6+N-n>)~Wwo%c3Q;x_nxpLky=rn(D&guKrK_TQTX1_FEuHtdTNz>_Mw{PRbX^`@2 zpF@4Az{@^N6ezO$1DZSA)$6@qsqS8Q7S3tKwl8Te39}`ypZVFtB=UyHk7#0Ga?zu8 zvx;UB`(M7$`c~^J^9C8iPKnhP!o0n~+DPG!X+Y9`C{uZNFq)`>zF8gGz}iti(;Atp zxGCr2o53^3ZG@|I5!ZAoo%Y6^HrSz~xW9_bY(Jn)+})FPB34yMN~HG_kTa4eb3`93 z`5(qcEwto2N2N(0p+#&YrvD&SctYvi0&?KV~c42@_xz~53UgRsWRRK)<`d8(5 z@~ZAQ$M^s{S_1^x@AI&bnkL1S#+X)tQddgE9NM^qeswvv4TvzUD7S`j*c*n42DB)i}xe4U+b8!j0-E*G8;eTEMvfQx=eOeaBDGfP$m0NcxgHKiJv}l#!H4|DW->k?` zBj0^P#&^}FEAJztD6*H9nv^ZEe+9B{CBy`rB3v}amT)c(#@D{J__NE6{?hq8J?Ivd zv0Lrv;Bq0ttX!T$@R~I%B2zO~zltSVgBa!zdB;@&aqGrmIlK2izl8 zd;Hg~`Z*r8mSaQTtZ%Eo+58y?9c4U!80Xz~Ac>Oz6>7uFdcyiOj1To)6%8V?y`PTy z$rJhf5bL;+0t591=@v$fO>(f+*=`p-EO8%4AG>8dFQ7!z>uJ%NX*7wuv)h#Lm2@$5 zMfMfBQYLvCMJn8n`H#MQvVJJRIpIUb8Q=5M+vrZ3uaAilJzEvhfr}i}HBPer{I#e! z9U8zdR=6cCkEpm8D#TNR`Zi9Z8Q^wx;J$mDnL-U7vp}EJ5;_!^TXk=7?CEhmLh0qx z>05b>EppE@)%%(giKc396}7d4Loj`F>7gCfZxtBR`-EqJivAK*6hBZ?MPwt7U;V|! zC2!7m<`Vnw95p(jJk=Nf%X0Nh*FtfP#&vDacnbag&pYVQiY|KNlNSRPYX!$%V5;QT zo>T*5J!c>WV4tK6)Wv7vCWX=QO2OCu|oZ~ZM+X5Ng7mk;3L6_R%lVe z1?Evw^NI+n9<;_(8F_Lt<0GeRyZdPT*k4o?XM3n{lGuEaey%Ow`!;q+`yd4-&B%s8 z+HW@q*g-k;H{AI-U%`nnroigi6tEz_GV+>zP4s)qA$q%{wb1EPSb0l`FvAp#-OfW* zMN%NxfcM=6I!IUR@MP3AwR6+yq0zkqtP61_a}s|$->3xxEbpm7Va7sBy)2_X?A|nU zr$p|}-f10#eRwP#*y)3r&bk<<^~cXYV0=1Fv6fUmP@;V8WiU__?uZWHhHez$ zL4mWy{Qbct-6|B!npo-IkV!bYl(9)^cSPE}ijbRb*JjhC3HGBiHjkd_S`=)FS*k$u zb%df74G!?vyi^_PwIRaRVXPo>n!$9{rABA_(+Ai2Jy11iKf{oQ87$jV0*n|c!MYvM zc0QX2AO3KXPqi9pO(Y|KxcYYbb^h4XUc;4!QX&*H>tau?ElQWoVd#RfsD~xSEAIS{ zOp}Son(lj?q14=27)A8EMgjjVGx1X&%}VxXHort;!S5}1L7CqrOd>l0O$k>NdtZw^ zu~@9%xwH>=NBh$G=qC}Fa79Gqi_3vej)shYRuM(|MD)2vdk2bUQsqurTWW5j;e>!! zgQ9}U0{g0G6CF(Fj-|Z?u*~ojhyUh0Gdsl{e7e<>`|UG!_l5Ig#fpjL5L145Q^xv> zBNe&fDQ(PxVjJ~c!egE(^SAZ1Nn2BcZXYL4rumeCZvrC;x7k2cRZGVbOXE6h`J+>Q z(p2-p7gUZ}eRD@FI|~Q(CDO{fta$SZ>*RM%$}^i=niY=@yORA#LVMlW9URmh+d|_a z@ONnC>2-o=^Rc>-%N1U;t+z*-lyM#|6R42ox1^o*L;b#--z*PJX>hg=}?U^J$HJTUf9y;{O?kZ`7l3jt}BQM4U4 zoG`n@{Y)QNPj8gQ=@dkAI-43?i?IsQR!y5MLrO+wCPt@#^z-_qOVx5B+c*Bl9o@5& zoYv_rYoAHkT6se8;DiqGM5}jEnH6;VgProztF;9w$Q|)7b}LODeOxvq8ysC_O|BG0 z%r+u>qJeAy0?H~SFC$YV#j8iHl0LuAM8Y@5bFKLm-9y7bmUKtkF>|OxaYRUa@P)|K z|J3y!uF#7-;W3-5iO^+yqq~Zti3gGeoVmOV-+SW$_0i86(~;C<5-r%(*?5<=&42pJ*5*U6Ug#4q78Ie%uMzr3ziZ6=6d$9- zX1}-0#=^>q)7OSr-jHBgeZPQ%5c7sk#@v{Et3)0cm@+53x)(veJ;PxJ(Y{^P9+1#_k76MTN-Q4Fk)bDgdxoxQ?pLRq<#2SJKBfij(6E$>Yx^@jCoZ^y82JlMUVX5;_A}kG+7# zo*z8`fcM`Y1^jyH!EV40H~n`3zCZM@>0c!N<;1^V;oqR}e;Es7)i%Bd0KT*PXBOaJ juKmlk|4**TfqVXoJ73WD!D?sD1Yl8Nw7u1Pmbw5FsHk^T|2qANZc%0I=`F7yFfwso=6o0N@9J^RJh@QcJd$;rU*S(oZ|sw9KrK zJmig7kDvc8?K)WX#nX^Dc-67I^WlFMj{V*HJ^B1Mp|>@2PE?(l{CnfBnL*KaPRM1a z8|JHz|M+U~;DK)s-lY?YYY1#v6}73Zh86uO`*%^gySqCbijQ6nm*^0gG^RZ$ZKT^gHGB?+1KwrWpYE{mY*K_k;Ey0sQdle<>7v!?uS}U=EMZ zhpk-!(+vnHcKnpy|dpqI9W@nD-oonZ1$G4}y z?;OEotPbqeJ&I-P63Z@%Ke!P$@RSVP*pC(M$zz5}x}?<`Q=aY<(wE;lXn z;uXx2vP?_sW-S98fir~3(ax{l3>{}V1WBw?JG-NHvY}9D`@}K#uY3TCd;UKj_Lc-B=EmWI0c57q|lEpfo&faK+JPvBga zV*FGx&L+7{(UQ>Zznte;hmsA8S*D@PzL&MN=j|J{KDLhUYGd z@1?OYHRZ!Ot^?U1S#NSwkC@G8I$%Mxs|%4v#;yh>&*Z!484>bgL~D znDkRJDYN!2k2x9Ny`+l|H6=D@$e{}_^2xm^<56ov{Mp`3DO~Ls7e__rj(KEwTddE! zQ#S~a>;;4-J^oz-2n(WIS^Eu>A3g`_mGgIfJxnE>L9?NZC}AEE)apdq5>`wa2fhOF zoKh@N4@chEZb?OsAbgx-)bdzD6PYq&>Cn<53{`L3AWg4#;!3SU-{70VGY)+Gi$f~5 zJmy0YUh_|QM^T%Gh19&a)cc=vWf?N}UbAtpH7648BV6gI#v8!ew)&CWOm5yIDOX8M+ z8|Ftm_5}^&8-ZVg!8Hm|xq19u<0S75F=zUrR|KoyuRF*4cO;rXU?D$V zTN{@a9?}`&xKi{o*FEBnq$AhO#D8=4aOSuh=ZrJiNqHL=m$@?B-BvG)yn!ke&Q2^2( zMAr9$vcGsHLAURZiKh$TSi}!gEaVw+2>^jRz(S;{4zV5m@sCF0e`0 zjJWdLIVybvG2C;J{OY;8^=S&FW0$=#xy8NZ$(h5(txZMYJ9ejPoFp4n?y!B*Oe*-d zJsB4yd-kq6&)p?u>A74k&}vL^GTMZ z(FkrLLMo~Yi{YmR-gmQBj}}ud^-cp@)3`Dpn*2X0jiTUsV(NQ1J59ezk<5 zWpK(A7mX53VeOM<3I{G6RC#OZ1(NQz8x&0B>b2@tR5v8{pFdTkHAfEgk_lSLQA^=L zjQGZK-?88}j$H5y?>40+JH*mDtbNr1R}0^G^wuI+pISAnkK@>dy3l(L_Ms=(@|n!z zp=E*jrWA^{yX`3uD#I2QxwD!$>l?O)5bEf}U+r1R;(yFzy-}UUpljBiMliP;dp0VS z(_*qHuy5)mqy`e`+|g0nX-O_AZ0a#mi;8LZ4xsq1lk#1|6~yNAXo87u?9UnGKfY!i zfn8PAdj;(JfwW6QOpEs};{)wJ2W^MWtrscWXmDmCHK0`8s`;#{>d~J>+qpeDqS{u| zvgUBdC>KK$I0!-3n9WcW=}}h+z31XYTMo$jbI06!g7Bs=>)!VEumF6ik-)xTf|k7} z!p3aFMP0+QCiPMNq>RBVZMi5$%OOcx^L(d5+bV;evRyLO+r@7|XP3pz)D%-p0y;t# zwR4G!S^<e{6Of(Xg$S7c;@Rw&zU{I4QW{wS;MARF>Az2wT@psUF%jHg*Lq zJsY>Tg@r*OkX(ndCKB-;`MFaKf$QFv#+W;*UzVle!7N2*h^P5|+>Tz{SNBopsIhtt zJ8RSJVV9FAo4vfL{@+A{MMeD8C!#@rAW}#W4UUW?GLgqk*mVofogn_7Gt-NfGZK=J zNa;~^b$3<}C(&by*j zCfpLwBWn>tDYYDKiBM!VW^5y%y+YMb5;`_vJdC6F_~}0((-4wh`}(JW=}Zkxig%lP z>C~VW7O@S7m4DIyGzNNb_MHJ%S&HSJ4tY2nZo_G)v@ks`9hLX1gr&*#`H3tB=9Dms zV?~M&L~q*_{Sr!fym`bU=H8vPMzgKw$6eRwEKLPe46hK9-jI`b)|NZX%XbwR`X_KP zW|k?JqBz&e97IH4p$xf0r}|7cH91O>sfg?U1ChNS&~A}z`it@7nTkC#G6$sXbMVxX zv4&3IEFpBIo|1bpz`?-**qDfZW7qWR{g7!}V);rbu={na+W-cQSB&<4ddtU{cC@)U zT`Mc0rJf@B+;}ekl${*Xv)FSh@PDXSbgrTlvEuafCqMt@9~3-&`7;F^TROD>i(>qJ zrD9}c3_HZkzU|hF@65@;j}L%Mjr^sn8UnW0!uX9G$xt9No1yr=OtLhENtipNHzm?2 zRV+B51X;D9_LiDchdpjndfU=vB`MIzXQPZF)u1GY*onI5go3@uB47k%ZMrSV1PdW6 z8Bz9+#{42*{9&<}`;-6XPA1RQh*~&SxvI?!Ib8F0#13?t9K`@<_HHjvU)JjAxHP<+ z7BRVsk~%Hk$$e#~@@aCfLaB^Uips$bZikbjV;X-_DxM}@pTf9G9MM@@WfP_Fw%_fNywJ-Am6nV);d~{Lqu*8xuQg`X2g<)UmRCpRZCoQ@-x3a7E9~;k$Nuf79a=Xs;)# z^KSz4;tOkhYl<@5xs8RqGZs(m?hFUpzL= z&B!C0GrXEaCr!u-STFHi5#^0Chc6n+WJZ?w;3ENP;QaiMDMTMW8ZO(s!z# zpd_m?5K7ZxB|c^8{!X!ORtLL#jx%RT&LvGxx@k#VMn==pcl+>n+v?9Sp46p@8?q>( zV@b7#J?+7>w9Ek+EuVuwrL8PQEr6Lk_kR2M>$^Rd#a59nT06D8A@zWt%a=<%Jjf#fvxZ|-lAleK&@ zRkcj)ty(r;wdn7Lb=qe>IaA`(*WO{U)Dg0lmBprL7v~b0A1n<#(mX8DcJhKXX2UB_ z?;92&^RF@w>3Ypw7Y=`q^6$xD)#A%-B)to^-pTw157poch4Qs4eS6t8x7J4WP}Xzr z-&<`lryjYPy?B{u#D&j)TE}lDZeAj1G7b-SPgNdzHq(c+~te zFm7C*_u*1hq)tr?y>gI2W*rPh5Q}_sj1hV*9$~?9;rrmfn|I}IrTAO4w~O#2o@+;aJjnNGA=8{p zL(J5r%fES(g5p$j&*7UthX*`y$d9VN9AvV+F}eSfMl|6_!%4@-npk_qiYl0X^73yM zccymL$KToWCM%t75o)aW-#6q>)t++iyS;h*VQAeI4L#)ics3@#49+Z6-@f~V?~qJ? zYs&@OgN!llyDUh;o*UWx<{pCy^%RW8XO<+dsupM;#~;h|dV!N`AdEP{NPClL$} zdy_(#t>UG+Th}?6ys}v8q=&a~d*<4mGTX}|#YnkBSviK7(;RfWq@eMAZ3@0reLNTK zXC0jE5+*t(a{d*OyG$B{9#*N33(xBCU^)$_&{A-_^2Vi;K9-SJMS%oMQ_C?}^Uli! zUF)}EiN2Bln9iJ>U%gMTWVUxUHTm;WH;W8%_+#Q=kSc!pAoz@@IV9Q5O}ypyhUXVm zd+m(b_Mep!9#<|Z-XcbrF99D$tQSWaZ_Aq1O!Op+cS2g+C<^57mfw-tqat3Kez+l3|>&ovfJnFH#DlT{~% zd$ri+)i4IlZDM~Nv@3F;BxTkOjuBD7szDZgd{YC>z^DF-Vuv|$YH)%!Heczxvv>y8 zV)42KCNw>6dTjyhZdGw_rzm1k|54IFft`{Dxn*1Dn-6KYhnBvCDZQQ|ePjrpKn-hP zxN6ff+A^m1Ot$YtB=viYB9<)|UMqm5x%SAPS2*Z0tE8P`N~4}L5KY*#HLG!WR$kTG ziV$Im@|Mo0#C`&Y_TSiODzVMT-Dw*y-dnPskg*@YkbC!W>f6L9C*3Xcw256kH^?su zY6~I~+zLufBz<%rZtu09f6Z(W6_Oz|$zAeTjqMS$Qlq-3^Ee8=I)5bPd#|LlH<n<{vuwHIK8Xf-Vx|2vx#-I~Wf|MsmraK5nWC`b zEVFU~w+?ayk|CPQ7SJ$N$I_Q~r%a5)!AD=8h-HSQY|lpE)rlOLv7zx6;+j0pJOLF4 z<4qukIs;uFLcY|JZFa8P)Y{x8y#T(9N(a+9riR)@+`%jmJs9nGcOeQOJN0bS3s4$#nTi`2(v^_ffU9Jr{HUxPASR!BkgV*kXGD)V;XCUi2<; z@c6CaL;dOzgkshD8{XdQ1rBH(`J=2XVcGev+n2>?Ptazos|{mjYB_o0sNRd(T4z^H zi)--kwJMFs*MVpg=Wb_>=+x-ltVt)$Wj-kA>ST&^4>MX|vY0yGRcCkQV??duS*796 ziddHIs1`-{LKCy;)UHtGz4sGoqu@DR{xP3Vt8K^dB7n9#qU9?|lKG0hL)*0A<;Oh_ zagFdD`NM@C@!Pf^v&&l~2E^urrRJzTY5o)qDQNm>6yySAfM+6k*#mri61~#4I6A)` z8S1-+-?-S7g6_*|??L8P2|P}pHl#kgSy!xx=Ha*Pn;6I9{myPJ^wCY`fZ~r~hEzT^ z@)aqF@hJ3V?g<*}y~;?kei5|gf@HBFN9f>x69WA_`jg$-6Aa8MDuM)y@LTFs-k*g{ zR+>lqpE&;`X?H1M+6{zZP4gnkGHi5HgKT#HX`iqU`_SKh??#$nL22H;1l)9?Mg?K= z)vbOoi@V8Ul}`YHuQ(sJMBOlHdvspt*GgxsMijrWK$Uu#r%ax_^Vl8Jdp=>nV;m)P z0CFMU`KbPBSfrUw8)I|E%Y}QRDTYUt*!g1sA^Rj(LB)&td&WHMn{~1eZ}v~`!R-8Z z)iq}4osdZrW=+&qg993D%d;5ssL6I~W9B9;LYP0*$_|E+6r7aac&C++9FcclOHYmk zv@W&;(MG!?q$d*JUkSFW>(SlaNtz%o-IlFi>C$4Sf4(H+DwcPrCq^5`9QMD?7#iFB z6Mb0!ye~fvW>>%3Q%_Z#fZiQ@RXJE_HZ5XeM@>x+H%v_>&IN=?KbuE@Cx`M3uVz9Bqm5VkhTl zk+gq}^)7%kEjK6QI073!K3h*pSJn8;x=#q~i{L-23}2`h1{z{)1H0E&owZ`3$pvhi z_81Dy#3^mhI>f798^pF2{G}N&BIY;fbU^C0@$VU3=T&NG5c}{{NpS%>rDsR0G`h!r zy4F*o9rOJ8sp%U|9sa(lt#y;lw^;8Crr&IJ#QXXxuTuC*YfDE`7nHPZ-?C}G>7t?< zq9=liWEyDHcJ&MLGHABLC_zAi*qdSLxu}JN_v0oL@041qd}#@V?|TB=uhiVv&hTW# zDY`u=lXrG$uV~`C5S0|pZW~jhJXW&rRBm{188-iBF7dcQ;KkL@1p5SjH=r0M#zTP-%g}#tS!RX^tTHfnp9GBnm21&3=5#NHPD-Z zvgECvxr#nx8xr05K)fMHNfZ#c_q?(~Lq{GK`;p>gGY>rxiR>2oeVHXbMD?ZvVta^0 zDk>F%ljXLj?FeXfYPa%8kEq*OO?M|qVltGEI8y;BN(4+7S=7Qv=4pweEZkv6JnNy> z6bFZe^QH*gntdu$?<)7srr_Id5+qjHZOqTripoh|UGF)$d>OGW^+iZPq-7J5LUdmZGCo$!Il-KNtLEIOD@# VdwJT4cwpm&!PC{xWt~$(696t*n@j)z literal 0 HcmV?d00001 diff --git a/tests/ref_imgs/draw/svg_draw_svg_viewport_1.lp64.png b/tests/ref_imgs/draw/svg_draw_svg_viewport_1.lp64.png new file mode 100644 index 0000000000000000000000000000000000000000..007ab01be0573d821956e9f53da3efaf01d1a3c4 GIT binary patch literal 2275 zcmeAS@N?(olHy`uVBq!ia0y~yU{+vYV0^&A1QfZHI&TpJ1IH>)7srr_Id5+qjHZOqTripoh|UGF)$d>OGW^+iZPq-7J5LUdmZGCo$!Il-KNtLEIOD@# VdwJT4cwpm&!PC{xWt~$(696t*n@j)z literal 0 HcmV?d00001 diff --git a/tests/ref_imgs/draw/svg_draw_svg_viewport_2.lp32.png b/tests/ref_imgs/draw/svg_draw_svg_viewport_2.lp32.png new file mode 100644 index 0000000000000000000000000000000000000000..4926fdb80ea64dabb87977df063fa7886b23cfb1 GIT binary patch literal 2276 zcmeAS@N?(olHy`uVBq!ia0y~yU{+vYV0^&A1QfZHI&TpJ1IKDl7srr_Id5+q`)16%E8Ng+6T!e>*vQHtAUw(#4TRB@Fq#WSbHQjX7=*cC aBY)m>{@RDnUUdRnFAScpelF{r5}E+D8IyPb literal 0 HcmV?d00001 diff --git a/tests/ref_imgs/draw/svg_draw_svg_viewport_2.lp64.png b/tests/ref_imgs/draw/svg_draw_svg_viewport_2.lp64.png new file mode 100644 index 0000000000000000000000000000000000000000..4926fdb80ea64dabb87977df063fa7886b23cfb1 GIT binary patch literal 2276 zcmeAS@N?(olHy`uVBq!ia0y~yU{+vYV0^&A1QfZHI&TpJ1IKDl7srr_Id5+q`)16%E8Ng+6T!e>*vQHtAUw(#4TRB@Fq#WSbHQjX7=*cC aBY)m>{@RDnUUdRnFAScpelF{r5}E+D8IyPb literal 0 HcmV?d00001 diff --git a/tests/ref_imgs/draw/svg_draw_svg_viewport_3.lp32.png b/tests/ref_imgs/draw/svg_draw_svg_viewport_3.lp32.png new file mode 100644 index 0000000000000000000000000000000000000000..4507016c1682c4e0179f6325d13129843b33266d GIT binary patch literal 7921 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 literal 0 HcmV?d00001 diff --git a/tests/ref_imgs/draw/svg_draw_svg_viewport_3.lp64.png b/tests/ref_imgs/draw/svg_draw_svg_viewport_3.lp64.png new file mode 100644 index 0000000000000000000000000000000000000000..d4f708d4189aeef5ba816a5d64fac7eb4f8ae758 GIT binary patch literal 7921 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 literal 0 HcmV?d00001 diff --git a/tests/src/lv_test_conf_full.h b/tests/src/lv_test_conf_full.h index a6212731c..081bea544 100644 --- a/tests/src/lv_test_conf_full.h +++ b/tests/src/lv_test_conf_full.h @@ -95,6 +95,9 @@ #define LV_USE_THORVG_INTERNAL 1 #define LV_USE_LZ4_INTERNAL 1 #define LV_USE_VECTOR_GRAPHIC 1 +#define LV_USE_SVG 1 +#define LV_USE_SVG_ANIMATION 1 +#define LV_USE_SVG_DEBUG 1 #define LV_USE_PROFILER 1 #define LV_PROFILER_INCLUDE "lv_profiler_builtin.h" #define LV_USE_GRIDNAV 1 diff --git a/tests/src/test_cases/draw/test_draw_svg.c b/tests/src/test_cases/draw/test_draw_svg.c new file mode 100644 index 000000000..501cbbefb --- /dev/null +++ b/tests/src/test_cases/draw/test_draw_svg.c @@ -0,0 +1,706 @@ +#if LV_BUILD_TEST +#include "../lvgl.h" +#include "lv_test_helpers.h" +#include + +#include "unity/unity.h" + +static lv_layer_t layer; +static lv_obj_t * canvas; +static lv_draw_buf_t * canvas_buf; + +void setUp(void) +{ + canvas = lv_canvas_create(lv_scr_act()); + canvas_buf = lv_draw_buf_create(480, 480, LV_COLOR_FORMAT_ARGB8888, 0); + TEST_ASSERT_NOT_NULL(canvas_buf); + lv_canvas_set_draw_buf(canvas, canvas_buf); + lv_canvas_fill_bg(canvas, lv_color_make(0xff, 0xff, 0xff), 255); + lv_canvas_init_layer(canvas, &layer); +} + +void tearDown(void) +{ + lv_image_cache_drop(canvas_buf); + lv_draw_buf_destroy(canvas_buf); + lv_obj_del(canvas); +} + +#if LV_USE_VECTOR_GRAPHIC && LV_USE_SVG + +#define SNAPSHOT_NAME(n) (#n) + +static void draw_snapshot(const char * name) +{ + LV_UNUSED(name); +#ifndef NON_AMD64_BUILD + char fn_buf[64]; + lv_snprintf(fn_buf, sizeof(fn_buf), "draw/svg_draw_%s.lp64.png", name); + TEST_ASSERT_EQUAL_SCREENSHOT(fn_buf); +#else + char fn_buf[64]; + lv_snprintf(fn_buf, sizeof(fn_buf), "draw/svg_draw_%s.lp32.png", name); + TEST_ASSERT_EQUAL_SCREENSHOT(fn_buf); +#endif +} + +static void draw_svg(lv_svg_node_t * svg) +{ + lv_image_cache_drop(canvas_buf); + lv_canvas_set_draw_buf(canvas, canvas_buf); + lv_canvas_fill_bg(canvas, lv_color_make(0xff, 0xff, 0xff), 255); + lv_draw_svg(&layer, svg); + lv_canvas_finish_layer(canvas, &layer); +} + +void test_draw_group(void) +{ + const char * svg_group_1 = \ + "" + "" + "" + "" + ""; + + lv_svg_node_t * svg = lv_svg_load_data(svg_group_1, lv_strlen(svg_group_1)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_group_1)); + lv_svg_node_delete(svg); + + const char * svg_group_2 = \ + "" + "" + "" + ""; + + svg = lv_svg_load_data(svg_group_2, lv_strlen(svg_group_2)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_group_2)); + lv_svg_node_delete(svg); + + const char * svg_group_3 = \ + "" + "" + "" + "" + ""; + + svg = lv_svg_load_data(svg_group_3, lv_strlen(svg_group_3)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_group_3)); + lv_svg_node_delete(svg); + + const char * svg_group_4 = \ + "" + "" + "" + "" + "" + "" + "" + "" + "" + ""; + + svg = lv_svg_load_data(svg_group_4, lv_strlen(svg_group_4)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_group_4)); + lv_svg_node_delete(svg); + +} + +static void load_image(const char * image_url, lv_draw_image_dsc_t * img_dsc) +{ + if(strcmp(image_url, "cogwheel.bin") == 0) { + LV_IMAGE_DECLARE(test_image_cogwheel_argb8888); + img_dsc->header = test_image_cogwheel_argb8888.header; + img_dsc->src = &test_image_cogwheel_argb8888; + } +} + +static const char * get_font_path(const char * font_family) +{ + LV_UNUSED(font_family); +#ifndef TEST_FONT_PATH + return "./src/test_files/fonts/noto/NotoSansSC-Regular.ttf"; +#else + return TEST_FONT_PATH; +#endif +} + +const lv_svg_render_hal_t hal = { + .load_image = load_image, + .get_font_path = get_font_path, +}; + +void test_draw_shapes(void) +{ + lv_svg_render_init(&hal); + const char * svg_shapes_1 = \ + "" + "" + "" + ""; + + lv_svg_node_t * svg = lv_svg_load_data(svg_shapes_1, lv_strlen(svg_shapes_1)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_shapes_1)); + lv_svg_node_delete(svg); + + const char * svg_shapes_2 = \ + "" + "" + ""; + + svg = lv_svg_load_data(svg_shapes_2, lv_strlen(svg_shapes_2)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_shapes_2)); + lv_svg_node_delete(svg); + + const char * svg_shapes_3 = \ + "" + "" + "" + "" + "" + "" + ""; + + svg = lv_svg_load_data(svg_shapes_3, lv_strlen(svg_shapes_3)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_shapes_3)); + lv_svg_node_delete(svg); + + const char * svg_shapes_4 = \ + "" + "" + "" + "" + "" + "" + "A" + ""; + + svg = lv_svg_load_data(svg_shapes_4, lv_strlen(svg_shapes_4)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_shapes_4)); + lv_svg_node_delete(svg); + + const char * svg_shapes_5 = \ + "" + "" + "" + "" + "" + ""; + + svg = lv_svg_load_data(svg_shapes_5, lv_strlen(svg_shapes_5)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_shapes_5)); + lv_svg_node_delete(svg); + + const char * svg_shapes_6 = \ + "" + "" + "" + "" + "" + ""; + + svg = lv_svg_load_data(svg_shapes_6, lv_strlen(svg_shapes_6)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_shapes_6)); + lv_svg_node_delete(svg); + + const char * svg_shapes_7 = \ + "" + "" + "" + "" + "" + ""; + + svg = lv_svg_load_data(svg_shapes_7, lv_strlen(svg_shapes_7)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_shapes_7)); + lv_svg_node_delete(svg); + + const char * svg_shapes_8 = \ + "" + "" + "" + "" + "" + "" + "" + "" + "" + ""; + + svg = lv_svg_load_data(svg_shapes_8, lv_strlen(svg_shapes_8)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_shapes_8)); + lv_svg_node_delete(svg); + + const char * svg_shapes_9 = \ + "" + "" + "" + "" + "" + ""; + + svg = lv_svg_load_data(svg_shapes_9, lv_strlen(svg_shapes_9)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_shapes_9)); + lv_svg_node_delete(svg); + + const char * svg_shapes_10 = \ + "" + "" + "" + "" + ""; + + svg = lv_svg_load_data(svg_shapes_10, lv_strlen(svg_shapes_10)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_shapes_10)); + lv_svg_node_delete(svg); + + const char * svg_shapes_11 = \ + "" + "" + "" + "" + "" + "" + "" + "" + ""; + + svg = lv_svg_load_data(svg_shapes_11, lv_strlen(svg_shapes_11)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_shapes_11)); + lv_svg_node_delete(svg); +} + +void test_draw_image(void) +{ + lv_svg_render_init(&hal); + + const char * svg_image_0 = \ + "" + "" + ""; + + lv_svg_node_t * svg = lv_svg_load_data(svg_image_0, lv_strlen(svg_image_0)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_image_0)); + lv_svg_node_delete(svg); + + const char * svg_image_1 = \ + "" + "" + ""; + + svg = lv_svg_load_data(svg_image_1, lv_strlen(svg_image_1)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_image_1)); + lv_svg_node_delete(svg); + + const char * svg_image_2 = \ + "" + "" + ""; + + svg = lv_svg_load_data(svg_image_2, lv_strlen(svg_image_2)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_image_2)); + lv_svg_node_delete(svg); + + const char * svg_image_3 = \ + "" + "" + ""; + + svg = lv_svg_load_data(svg_image_3, lv_strlen(svg_image_3)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_image_3)); + lv_svg_node_delete(svg); + + const char * svg_image_4 = \ + "" + "" + ""; + + svg = lv_svg_load_data(svg_image_4, lv_strlen(svg_image_4)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_image_4)); + lv_svg_node_delete(svg); + + const char * svg_image_5 = \ + "" + "" + ""; + + svg = lv_svg_load_data(svg_image_5, lv_strlen(svg_image_5)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_image_5)); + lv_svg_node_delete(svg); + + const char * svg_image_6 = \ + "" + "" + ""; + + svg = lv_svg_load_data(svg_image_6, lv_strlen(svg_image_6)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_image_6)); + lv_svg_node_delete(svg); + + const char * svg_image_7 = \ + "" + "" + ""; + + svg = lv_svg_load_data(svg_image_7, lv_strlen(svg_image_7)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_image_7)); + lv_svg_node_delete(svg); + + const char * svg_image_8 = \ + "" + "" + ""; + + svg = lv_svg_load_data(svg_image_8, lv_strlen(svg_image_8)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_image_8)); + lv_svg_node_delete(svg); + + const char * svg_image_9 = \ + "" + "" + ""; + + svg = lv_svg_load_data(svg_image_9, lv_strlen(svg_image_9)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_image_9)); + lv_svg_node_delete(svg); + + const char * svg_image_10 = \ + "" + "" + ""; + + svg = lv_svg_load_data(svg_image_10, lv_strlen(svg_image_10)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_image_10)); + lv_svg_node_delete(svg); + + const char * svg_image_11 = \ + "" + "" + ""; + + svg = lv_svg_load_data(svg_image_11, lv_strlen(svg_image_11)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_image_11)); + lv_svg_node_delete(svg); + + const char * svg_image_12 = \ + "" + "" + ""; + + svg = lv_svg_load_data(svg_image_12, lv_strlen(svg_image_12)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_image_12)); + lv_svg_node_delete(svg); +} + +void test_draw_text(void) +{ + lv_svg_render_init(&hal); + + const char * svg_text_1 = \ + "" + "hello all world" + ""; + + lv_svg_node_t * svg = lv_svg_load_data(svg_text_1, lv_strlen(svg_text_1)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_text_1)); + lv_svg_node_delete(svg); + + const char * svg_text_2 = \ + "" + "" + "" + "" + "" + "hello all world" + ""; + + svg = lv_svg_load_data(svg_text_2, lv_strlen(svg_text_2)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_text_2)); + lv_svg_node_delete(svg); +} + +void test_draw_complex(void) +{ + lv_svg_render_init(&hal); + + const char * svg_com_1 = \ + "" + "'use' with a 'transform' attribute" + "" + "" + "" + "" + ""; + + lv_svg_node_t * svg = lv_svg_load_data(svg_com_1, lv_strlen(svg_com_1)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_com_1)); + lv_svg_node_delete(svg); + + const char * svg_com_2 = \ + "" + "" + "" + "" + "" + "" + ""; + + svg = lv_svg_load_data(svg_com_2, lv_strlen(svg_com_2)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_com_2)); + lv_svg_node_delete(svg); + + const char * svg_com_3 = \ + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "M100,200 C100,100 250,100 250,200" + "S400,300 400,200" + ""; + + svg = lv_svg_load_data(svg_com_3, lv_strlen(svg_com_3)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_com_3)); + lv_svg_node_delete(svg); + + const char * svg_com_4 = \ + "" + "" + "Example rect02 - rounded rectangles" + "" + "" + "" + "" + "" + ""; + + svg = lv_svg_load_data(svg_com_4, lv_strlen(svg_com_4)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_com_4)); + lv_svg_node_delete(svg); + + const char * svg_com_5 = \ + "" + "" + "" + "" + "" + ""; + + svg = lv_svg_load_data(svg_com_5, lv_strlen(svg_com_5)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_com_5)); + lv_svg_node_delete(svg); + + const char * svg_com_6 = \ + "" + "" + "" + "" + "" + "" + "" + "" + ""; + + svg = lv_svg_load_data(svg_com_6, lv_strlen(svg_com_6)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_com_6)); + lv_svg_node_delete(svg); + + const char * svg_com_7 = \ + "" + "" + "" + ""; + + svg = lv_svg_load_data(svg_com_7, lv_strlen(svg_com_7)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_com_7)); + lv_svg_node_delete(svg); + + const char * svg_com_8 = \ + "" + "داستان SVG Tiny 1.2 طولا ني است." + ""; + + svg = lv_svg_load_data(svg_com_8, lv_strlen(svg_com_8)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_com_8)); + lv_svg_node_delete(svg); + +} + +void test_draw_svg(void) +{ + const char * svg_viewport_1 = \ + ""; + + lv_svg_node_t * svg = lv_svg_load_data(svg_viewport_1, lv_strlen(svg_viewport_1)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_viewport_1)); + lv_svg_node_delete(svg); + + const char * svg_viewport_2 = \ + ""; + + svg = lv_svg_load_data(svg_viewport_2, lv_strlen(svg_viewport_2)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_viewport_2)); + lv_svg_node_delete(svg); + + const char * svg_viewport_3 = \ + "" + "" + "" + "" + "Stretch to fit" + ""; + + svg = lv_svg_load_data(svg_viewport_3, lv_strlen(svg_viewport_3)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + draw_svg(svg); + draw_snapshot(SNAPSHOT_NAME(svg_viewport_3)); + lv_svg_node_delete(svg); +} +#else + +void test_draw_svg(void) +{ + ; +} +#endif +#endif diff --git a/tests/src/test_cases/test_svg.c b/tests/src/test_cases/test_svg.c new file mode 100644 index 000000000..aec799548 --- /dev/null +++ b/tests/src/test_cases/test_svg.c @@ -0,0 +1,853 @@ +#if LV_BUILD_TEST +#include "../lvgl.h" + +#include "unity/unity.h" + +#define LV_ARRAY_GET(array, index, type) ((type*)lv_array_at((array), (index))) + +static const char * svg_str_1 = \ + "" + "" + "" + "" + "" + " SVG Test " + ""; + +void setUp(void) +{ +} + +void tearDown(void) +{ +} + +void testSvgParser(void) +{ + lv_svg_node_t * svg = lv_svg_load_data(svg_str_1, lv_strlen(svg_str_1)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + lv_svg_node_delete(svg); +} + +void testNode(void) +{ + lv_svg_node_t * svg = lv_svg_node_create(NULL); + + TEST_ASSERT_NOT_EQUAL(NULL, svg); + lv_svg_node_delete(svg); +} + +void testNodeTree(void) +{ + lv_svg_node_t * root = lv_svg_node_create(NULL); + + lv_svg_node_t * node1 = lv_svg_node_create(root); + lv_svg_node_t * node2 = lv_svg_node_create(node1); + lv_svg_node_t * node3 = lv_svg_node_create(root); + + lv_svg_attr_t attr1; + attr1.id = LV_SVG_ATTR_X; + attr1.val_type = LV_SVG_ATTR_VALUE_DATA; + attr1.value.fval = 10.0f; + + lv_array_push_back(&node3->attrs, &attr1); + + TEST_ASSERT_EQUAL(lv_array_size(&node3->attrs), 1); + TEST_ASSERT_EQUAL_FLOAT((LV_ARRAY_GET(&node3->attrs, 0, lv_svg_attr_t))->value.fval, 10.0f); + + lv_svg_node_delete(node2); + lv_svg_node_delete(root); +} + +void testSvgElement(void) +{ + const char * svg_1 = \ + ""; + lv_svg_node_t * svg_node1 = lv_svg_load_data(svg_1, lv_strlen(svg_1)); + TEST_ASSERT_EQUAL(lv_array_size(&svg_node1->attrs), 2); + TEST_ASSERT_EQUAL_STRING((LV_ARRAY_GET(&svg_node1->attrs, 0, lv_svg_attr_t))->value.sval, "1.2"); + TEST_ASSERT_EQUAL_STRING((LV_ARRAY_GET(&svg_node1->attrs, 1, lv_svg_attr_t))->value.sval, "tiny"); + lv_svg_node_delete(svg_node1); + + /* test viewBox */ + const char * svg_viewbox0 = \ + ""; + lv_svg_node_t * svg_node_viewbox = lv_svg_load_data(svg_viewbox0, lv_strlen(svg_viewbox0)); + TEST_ASSERT_EQUAL(0, LV_ARRAY_GET(&svg_node_viewbox->attrs, 0, lv_svg_attr_t)->class_type); + lv_svg_node_delete(svg_node_viewbox); + + const char * svg_viewbox1 = \ + ""; + lv_svg_node_t * svg_node_viewbox1 = lv_svg_load_data(svg_viewbox1, lv_strlen(svg_viewbox1)); + float ret1[4] = {0.0f, 0.0f, 10.0f, 10.0f}; + TEST_ASSERT_EQUAL_FLOAT_ARRAY(ret1, (float *)(LV_ARRAY_GET(&svg_node_viewbox1->attrs, 0, lv_svg_attr_t))->value.val, 4); + lv_svg_node_delete(svg_node_viewbox1); + + const char * svg_viewbox2 = \ + ""; + lv_svg_node_t * svg_node_viewbox2 = lv_svg_load_data(svg_viewbox2, lv_strlen(svg_viewbox2)); + float ret2[4] = {-5.0f, 10.0f, 10.0f, -10.0f}; + TEST_ASSERT_EQUAL_FLOAT_ARRAY(ret2, (float *)(LV_ARRAY_GET(&svg_node_viewbox2->attrs, 0, lv_svg_attr_t))->value.val, 4); + lv_svg_node_delete(svg_node_viewbox2); + + const char * svg_viewbox3 = \ + ""; + lv_svg_node_t * svg_node_viewbox3 = lv_svg_load_data(svg_viewbox3, lv_strlen(svg_viewbox3)); + TEST_ASSERT_EQUAL(0, LV_ARRAY_GET(&svg_node_viewbox3->attrs, 0, lv_svg_attr_t)->class_type); + lv_svg_node_delete(svg_node_viewbox3); + + const char * svg_viewbox4 = \ + ""; + lv_svg_node_t * svg_node_viewbox4 = lv_svg_load_data(svg_viewbox4, lv_strlen(svg_viewbox4)); + float ret4[4] = {-5.0f, -5.0f, 0.2f, 15.0f}; + TEST_ASSERT_EQUAL_FLOAT_ARRAY(ret4, (float *)(LV_ARRAY_GET(&svg_node_viewbox4->attrs, 0, lv_svg_attr_t))->value.val, 4); + lv_svg_node_delete(svg_node_viewbox4); + + /* width and height */ + const char * svg_wh = \ + ""; + lv_svg_node_t * svg_node_wh = lv_svg_load_data(svg_wh, lv_strlen(svg_wh)); + TEST_ASSERT_EQUAL_FLOAT((LV_ARRAY_GET(&svg_node_wh->attrs, 0, lv_svg_attr_t))->value.fval, 100.0f); + TEST_ASSERT_EQUAL_FLOAT((LV_ARRAY_GET(&svg_node_wh->attrs, 1, lv_svg_attr_t))->value.fval, 100.0f); + lv_svg_node_delete(svg_node_wh); + + const char * svg_wh2 = \ + ""; + lv_svg_node_t * svg_node_wh2 = lv_svg_load_data(svg_wh2, lv_strlen(svg_wh2)); + TEST_ASSERT_EQUAL_FLOAT((LV_ARRAY_GET(&svg_node_wh2->attrs, 0, lv_svg_attr_t))->value.fval, 377.9528f); + TEST_ASSERT_EQUAL_FLOAT((LV_ARRAY_GET(&svg_node_wh2->attrs, 1, lv_svg_attr_t))->value.fval, 377.9528f); + lv_svg_node_delete(svg_node_wh2); + + const char * svg_wh3 = \ + ""; + lv_svg_node_t * svg_node_wh3 = lv_svg_load_data(svg_wh3, lv_strlen(svg_wh3)); + TEST_ASSERT_EQUAL_FLOAT((LV_ARRAY_GET(&svg_node_wh3->attrs, 0, lv_svg_attr_t))->value.fval, 960.0f); + TEST_ASSERT_EQUAL_FLOAT((LV_ARRAY_GET(&svg_node_wh3->attrs, 1, lv_svg_attr_t))->value.fval, 160.0f); + lv_svg_node_delete(svg_node_wh3); + + const char * svg_wh4 = \ + ""; + lv_svg_node_t * svg_node_wh4 = lv_svg_load_data(svg_wh4, lv_strlen(svg_wh4)); + TEST_ASSERT_EQUAL_FLOAT((LV_ARRAY_GET(&svg_node_wh4->attrs, 0, lv_svg_attr_t))->value.fval, 160.0f); + TEST_ASSERT_EQUAL_FLOAT((LV_ARRAY_GET(&svg_node_wh4->attrs, 1, lv_svg_attr_t))->value.fval, 83.2f); + lv_svg_node_delete(svg_node_wh4); + + const char * svg_wh5 = \ + ""; + lv_svg_node_t * svg_node_wh5 = lv_svg_load_data(svg_wh5, lv_strlen(svg_wh5)); + TEST_ASSERT_EQUAL_FLOAT((LV_ARRAY_GET(&svg_node_wh5->attrs, 0, lv_svg_attr_t))->value.fval, 13.3333f); + TEST_ASSERT_EQUAL_FLOAT((LV_ARRAY_GET(&svg_node_wh5->attrs, 1, lv_svg_attr_t))->value.fval, 1.0f); + lv_svg_node_delete(svg_node_wh5); + + /* preserveAspectRatio */ + + const char * svg_ar0 = \ + ""; + lv_svg_node_t * svg_node_ar = lv_svg_load_data(svg_ar0, lv_strlen(svg_ar0)); + TEST_ASSERT_EQUAL(lv_array_size(&svg_node_ar->attrs), 1); + lv_svg_node_delete(svg_node_ar); + + const char * svg_ar1 = \ + ""; + svg_node_ar = lv_svg_load_data(svg_ar1, lv_strlen(svg_ar1)); + TEST_ASSERT_EQUAL((LV_ARRAY_GET(&svg_node_ar->attrs, 0, lv_svg_attr_t))->value.uval, 2); + lv_svg_node_delete(svg_node_ar); + + const char * svg_ar2 = \ + ""; + svg_node_ar = lv_svg_load_data(svg_ar2, lv_strlen(svg_ar2)); + TEST_ASSERT_EQUAL((LV_ARRAY_GET(&svg_node_ar->attrs, 0, lv_svg_attr_t))->value.uval, 5); + lv_svg_node_delete(svg_node_ar); + + const char * svg_ar3 = \ + ""; + svg_node_ar = lv_svg_load_data(svg_ar3, lv_strlen(svg_ar3)); + TEST_ASSERT_EQUAL((LV_ARRAY_GET(&svg_node_ar->attrs, 0, lv_svg_attr_t))->value.uval, 6); + lv_svg_node_delete(svg_node_ar); + + const char * svg_ar4 = \ + ""; + svg_node_ar = lv_svg_load_data(svg_ar4, lv_strlen(svg_ar4)); + TEST_ASSERT_EQUAL((LV_ARRAY_GET(&svg_node_ar->attrs, 0, lv_svg_attr_t))->value.uval, 8); + lv_svg_node_delete(svg_node_ar); + + const char * svg_ar5 = \ + ""; + svg_node_ar = lv_svg_load_data(svg_ar5, lv_strlen(svg_ar5)); + TEST_ASSERT_EQUAL((LV_ARRAY_GET(&svg_node_ar->attrs, 0, lv_svg_attr_t))->value.uval, 10); + lv_svg_node_delete(svg_node_ar); + + const char * svg_ar6 = \ + ""; + svg_node_ar = lv_svg_load_data(svg_ar6, lv_strlen(svg_ar6)); + TEST_ASSERT_EQUAL((LV_ARRAY_GET(&svg_node_ar->attrs, 0, lv_svg_attr_t))->value.uval, 13); + lv_svg_node_delete(svg_node_ar); + + const char * svg_ar7 = \ + ""; + svg_node_ar = lv_svg_load_data(svg_ar7, lv_strlen(svg_ar7)); + TEST_ASSERT_EQUAL((LV_ARRAY_GET(&svg_node_ar->attrs, 0, lv_svg_attr_t))->value.uval, 15); + lv_svg_node_delete(svg_node_ar); + + const char * svg_ar8 = \ + ""; + svg_node_ar = lv_svg_load_data(svg_ar8, lv_strlen(svg_ar8)); + TEST_ASSERT_EQUAL((LV_ARRAY_GET(&svg_node_ar->attrs, 0, lv_svg_attr_t))->value.uval, 16); + lv_svg_node_delete(svg_node_ar); + + const char * svg_ar9 = \ + ""; + svg_node_ar = lv_svg_load_data(svg_ar9, lv_strlen(svg_ar9)); + TEST_ASSERT_EQUAL((LV_ARRAY_GET(&svg_node_ar->attrs, 0, lv_svg_attr_t))->value.uval, 18); + lv_svg_node_delete(svg_node_ar); + + const char * svg_ar10 = \ + ""; + svg_node_ar = lv_svg_load_data(svg_ar10, lv_strlen(svg_ar10)); + TEST_ASSERT_EQUAL(lv_array_size(&svg_node_ar->attrs), 1); + lv_svg_node_delete(svg_node_ar); +} + +void testPolylineElement(void) +{ + const char * svg_poly1 = \ + ""; + lv_svg_node_t * svg_node_root = lv_svg_load_data(svg_poly1, lv_strlen(svg_poly1)); + lv_svg_node_t * svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + TEST_ASSERT_EQUAL(((lv_svg_attr_values_list_t *)(LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t))->value.val)->length, + 5); + lv_svg_node_delete(svg_node_root); + + const char * svg_poly2 = \ + ""; + svg_node_root = lv_svg_load_data(svg_poly2, lv_strlen(svg_poly2)); + svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + TEST_ASSERT_EQUAL(((lv_svg_attr_values_list_t *)(LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t))->value.val)->length, + 3); + lv_svg_node_delete(svg_node_root); + + const char * svg_poly3 = \ + ""; + svg_node_root = lv_svg_load_data(svg_poly3, lv_strlen(svg_poly3)); + svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + TEST_ASSERT_EQUAL(((lv_svg_attr_values_list_t *)(LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t))->value.val)->length, + 1); + lv_svg_node_delete(svg_node_root); + + const char * svg_poly4 = \ + ""; + svg_node_root = lv_svg_load_data(svg_poly4, lv_strlen(svg_poly4)); + svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + TEST_ASSERT_EQUAL(((lv_svg_attr_values_list_t *)(LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t))->value.val)->length, + 0); + lv_svg_node_delete(svg_node_root); + + const char * svg_poly5 = \ + ""; + svg_node_root = lv_svg_load_data(svg_poly5, lv_strlen(svg_poly5)); + svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + TEST_ASSERT_EQUAL(lv_array_size(&svg_node->attrs), 0); + lv_svg_node_delete(svg_node_root); + +} + +void testPathElement(void) +{ + const char * svg_path1 = \ + ""; + lv_svg_node_t * svg_node_root = lv_svg_load_data(svg_path1, lv_strlen(svg_path1)); + lv_svg_node_t * svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + TEST_ASSERT_EQUAL(lv_array_size(&svg_node->attrs), 0); + lv_svg_node_delete(svg_node_root); + + const char * svg_path2 = \ + ""; + svg_node_root = lv_svg_load_data(svg_path2, lv_strlen(svg_path2)); + svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + TEST_ASSERT_EQUAL(((lv_svg_attr_values_list_t *)(LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t))->value.val)->length, + 0); + lv_svg_node_delete(svg_node_root); + + const char * svg_path3 = \ + ""; + svg_node_root = lv_svg_load_data(svg_path3, lv_strlen(svg_path3)); + svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + TEST_ASSERT_EQUAL(((lv_svg_attr_values_list_t *)(LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t))->value.val)->length, + 0); + lv_svg_node_delete(svg_node_root); + + const char * svg_path4 = \ + ""; + svg_node_root = lv_svg_load_data(svg_path4, lv_strlen(svg_path4)); + svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + TEST_ASSERT_EQUAL(((lv_svg_attr_values_list_t *)(LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t))->value.val)->length, + 5); + lv_svg_node_delete(svg_node_root); + + const char * svg_path5 = \ + ""; + svg_node_root = lv_svg_load_data(svg_path5, lv_strlen(svg_path5)); + svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + TEST_ASSERT_EQUAL(((lv_svg_attr_values_list_t *)(LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t))->value.val)->length, + 9); + uint32_t seg_size = sizeof(uint32_t) + sizeof(lv_svg_point_t); + lv_svg_attr_values_list_t * list = (lv_svg_attr_values_list_t *)(LV_ARRAY_GET(&svg_node->attrs, 0, + lv_svg_attr_t))->value.val; + + lv_svg_attr_path_value_t * path = (lv_svg_attr_path_value_t *)(&list->data); + TEST_ASSERT_EQUAL(path->cmd, LV_SVG_PATH_CMD_MOVE_TO); + + path = (lv_svg_attr_path_value_t *)((uint8_t *)&list->data + seg_size); + TEST_ASSERT_EQUAL(path->cmd, LV_SVG_PATH_CMD_LINE_TO); + + path = (lv_svg_attr_path_value_t *)((uint8_t *)&list->data + seg_size * 2); + TEST_ASSERT_EQUAL(path->cmd, LV_SVG_PATH_CMD_LINE_TO); + + TEST_ASSERT_EQUAL_FLOAT(((lv_svg_point_t *)(&path->data))->x, 400.0f); + TEST_ASSERT_EQUAL_FLOAT(((lv_svg_point_t *)(&path->data))->y, 450.0f); + + path = (lv_svg_attr_path_value_t *)((uint8_t *)&list->data + seg_size * 7); + TEST_ASSERT_EQUAL(path->cmd, LV_SVG_PATH_CMD_LINE_TO); + + TEST_ASSERT_EQUAL_FLOAT(((lv_svg_point_t *)(&path->data))->x, 600.0f); + TEST_ASSERT_EQUAL_FLOAT(((lv_svg_point_t *)(&path->data))->y, 650.0f); + lv_svg_node_delete(svg_node_root); + + const char * svg_path6 = \ + ""; + svg_node_root = lv_svg_load_data(svg_path6, lv_strlen(svg_path6)); + svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + TEST_ASSERT_EQUAL(((lv_svg_attr_values_list_t *)(LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t))->value.val)->length, + 10); + lv_svg_node_delete(svg_node_root); +} + +void testTransform(void) +{ + const char * svg_tr1 = \ + ""; + lv_svg_node_t * svg_node_root = lv_svg_load_data(svg_tr1, lv_strlen(svg_tr1)); + lv_svg_node_t * svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + TEST_ASSERT_EQUAL(lv_array_size(&svg_node->attrs), 0); + lv_svg_node_delete(svg_node_root); + + const char * svg_tr2 = \ + ""; + svg_node_root = lv_svg_load_data(svg_tr2, lv_strlen(svg_tr2)); + svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + TEST_ASSERT_EQUAL(lv_array_size(&svg_node->attrs), 1); + lv_svg_node_delete(svg_node_root); + + const char * svg_tr3 = \ + ""; + svg_node_root = lv_svg_load_data(svg_tr3, lv_strlen(svg_tr3)); + svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + lv_svg_matrix_t * matrix = (lv_svg_matrix_t *)(LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t))->value.val; + + TEST_ASSERT_EQUAL_FLOAT(matrix->m[0][0], 1.0f); + TEST_ASSERT_EQUAL_FLOAT(matrix->m[1][1], 1.0f); + TEST_ASSERT_EQUAL_FLOAT(matrix->m[2][2], 1.0f); + + lv_svg_node_delete(svg_node_root); + + const char * svg_tr4 = \ + ""; + svg_node_root = lv_svg_load_data(svg_tr4, lv_strlen(svg_tr4)); + svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + matrix = (lv_svg_matrix_t *)(LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t))->value.val; + + TEST_ASSERT_EQUAL_FLOAT(matrix->m[0][0], 1.5f); + TEST_ASSERT_EQUAL_FLOAT(matrix->m[1][0], 0.0f); + TEST_ASSERT_EQUAL_FLOAT(matrix->m[0][1], 2.0f); + TEST_ASSERT_EQUAL_FLOAT(matrix->m[1][1], 2.0f); + TEST_ASSERT_EQUAL_FLOAT(matrix->m[0][2], 10.0f); + TEST_ASSERT_EQUAL_FLOAT(matrix->m[1][2], 20.0f); + + lv_svg_node_delete(svg_node_root); + + const char * svg_tr5 = \ + ""; + svg_node_root = lv_svg_load_data(svg_tr5, lv_strlen(svg_tr5)); + svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + matrix = (lv_svg_matrix_t *)(LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t))->value.val; + + TEST_ASSERT_EQUAL_FLOAT(matrix->m[0][2], 3.0f); + TEST_ASSERT_EQUAL_FLOAT(matrix->m[1][2], 4.0f); + + lv_svg_node_delete(svg_node_root); + + const char * svg_tr6 = \ + ""; + svg_node_root = lv_svg_load_data(svg_tr6, lv_strlen(svg_tr6)); + svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + matrix = (lv_svg_matrix_t *)(LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t))->value.val; + + TEST_ASSERT_EQUAL_FLOAT(matrix->m[0][0], 0.25f); + TEST_ASSERT_EQUAL_FLOAT(matrix->m[1][1], 0.25f); + + lv_svg_node_delete(svg_node_root); + + const char * svg_tr7 = \ + ""; + svg_node_root = lv_svg_load_data(svg_tr7, lv_strlen(svg_tr7)); + svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + matrix = (lv_svg_matrix_t *)(LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t))->value.val; + + TEST_ASSERT_EQUAL_FLOAT(matrix->m[0][2], 10.0f); + TEST_ASSERT_EQUAL_FLOAT(matrix->m[1][2], 0.0f); + TEST_ASSERT_EQUAL_FLOAT(matrix->m[0][0], 0.25f); + TEST_ASSERT_EQUAL_FLOAT(matrix->m[1][1], 0.25f); + + lv_svg_node_delete(svg_node_root); + + const char * svg_tr8 = \ + ""; + svg_node_root = lv_svg_load_data(svg_tr8, lv_strlen(svg_tr8)); + svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + matrix = (lv_svg_matrix_t *)(LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t))->value.val; + + TEST_ASSERT_EQUAL_FLOAT(matrix->m[0][2], 20.0f); + TEST_ASSERT_EQUAL_FLOAT(matrix->m[1][2], 0.0f); + + lv_svg_node_delete(svg_node_root); + + const char * svg_tr9 = \ + ""; + svg_node_root = lv_svg_load_data(svg_tr9, lv_strlen(svg_tr9)); + svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + matrix = (lv_svg_matrix_t *)(LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t))->value.val; + + TEST_ASSERT_EQUAL_FLOAT(matrix->m[0][2], 0.0f); + TEST_ASSERT_EQUAL_FLOAT(matrix->m[1][2], 0.0f); + + lv_svg_node_delete(svg_node_root); + + const char * svg_tr10 = \ + ""; + svg_node_root = lv_svg_load_data(svg_tr10, lv_strlen(svg_tr10)); + svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + matrix = (lv_svg_matrix_t *)(LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t))->value.val; + + TEST_ASSERT_EQUAL_FLOAT(matrix->m[0][1], 0.176327f); + TEST_ASSERT_EQUAL_FLOAT(matrix->m[1][0], 0.176327f); + + lv_svg_node_delete(svg_node_root); +} + +void testStrokeFill(void) +{ + const char * svg_sf1 = \ + ""; + lv_svg_node_t * svg_node_root = lv_svg_load_data(svg_sf1, lv_strlen(svg_sf1)); + lv_svg_node_t * svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + TEST_ASSERT_EQUAL(lv_array_size(&svg_node->attrs), 0); + lv_svg_node_delete(svg_node_root); + + const char * svg_sf2 = \ + ""; + svg_node_root = lv_svg_load_data(svg_sf2, lv_strlen(svg_sf2)); + svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + TEST_ASSERT_EQUAL(lv_array_size(&svg_node->attrs), 2); + lv_svg_node_delete(svg_node_root); + + const char * svg_sf3 = \ + ""; + svg_node_root = lv_svg_load_data(svg_sf3, lv_strlen(svg_sf3)); + svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + const char * str = (const char *)(LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t))->value.sval; + TEST_ASSERT_EQUAL_STRING(str, "grad1"); + lv_svg_node_delete(svg_node_root); + + const char * svg_sf4 = \ + ""; + svg_node_root = lv_svg_load_data(svg_sf4, lv_strlen(svg_sf4)); + svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + str = (const char *)(LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t))->value.sval; + TEST_ASSERT_EQUAL_STRING(str, ""); + lv_svg_node_delete(svg_node_root); + + const char * svg_sf5 = \ + ""; + svg_node_root = lv_svg_load_data(svg_sf5, lv_strlen(svg_sf5)); + svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + str = (const char *)(LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t))->value.sval; + TEST_ASSERT_EQUAL_STRING(str, "grad2"); + lv_svg_node_delete(svg_node_root); + + const char * svg_sf6 = \ + ""; + svg_node_root = lv_svg_load_data(svg_sf6, lv_strlen(svg_sf6)); + svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + uint32_t c = (LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t))->value.uval; + TEST_ASSERT_EQUAL(c, 0); + lv_svg_node_delete(svg_node_root); + + const char * svg_sf7 = \ + ""; + svg_node_root = lv_svg_load_data(svg_sf7, lv_strlen(svg_sf7)); + svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + c = (LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t))->value.uval; + TEST_ASSERT_EQUAL(c, 0xffffff); + lv_svg_node_delete(svg_node_root); + + const char * svg_sf8 = \ + ""; + svg_node_root = lv_svg_load_data(svg_sf8, lv_strlen(svg_sf8)); + svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + c = (LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t))->value.uval; + TEST_ASSERT_EQUAL(c, 0x808080); + lv_svg_node_delete(svg_node_root); + + const char * svg_sf9 = \ + ""; + svg_node_root = lv_svg_load_data(svg_sf9, lv_strlen(svg_sf9)); + svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + c = (LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t))->value.uval; + TEST_ASSERT_EQUAL(c, 0xff0000); + lv_svg_node_delete(svg_node_root); + + const char * svg_sf10 = \ + ""; + svg_node_root = lv_svg_load_data(svg_sf10, lv_strlen(svg_sf10)); + svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + c = (LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t))->value.uval; + TEST_ASSERT_EQUAL(c, 0xff8000); + lv_svg_node_delete(svg_node_root); + + const char * svg_sf11 = \ + ""; + svg_node_root = lv_svg_load_data(svg_sf11, lv_strlen(svg_sf11)); + svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + c = (LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t))->value.uval; + TEST_ASSERT_EQUAL(c, 0xff0000); + lv_svg_node_delete(svg_node_root); +} + +void testStrokeFillAttrs(void) +{ + const char * svg_sf0 = \ + ""; + lv_svg_node_t * svg_node_root = lv_svg_load_data(svg_sf0, lv_strlen(svg_sf0)); + lv_svg_node_t * svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + TEST_ASSERT_EQUAL(lv_array_size(&svg_node->attrs), 0); + lv_svg_node_delete(svg_node_root); + + const char * svg_sf1 = \ + ""; + svg_node_root = lv_svg_load_data(svg_sf1, lv_strlen(svg_sf1)); + svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + float f1 = (LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t))->value.fval; + TEST_ASSERT_EQUAL_FLOAT(f1, 1.0f); + uint32_t f2 = (LV_ARRAY_GET(&svg_node->attrs, 1, lv_svg_attr_t))->value.ival; + TEST_ASSERT_EQUAL(f2, 3); + lv_svg_node_delete(svg_node_root); + + const char * svg_sf2 = \ + ""; + svg_node_root = lv_svg_load_data(svg_sf2, lv_strlen(svg_sf2)); + svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + uint32_t r1 = (LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t))->value.ival; + TEST_ASSERT_EQUAL(r1, LV_SVG_FILL_EVENODD); + float w1 = (LV_ARRAY_GET(&svg_node->attrs, 1, lv_svg_attr_t))->value.fval; + TEST_ASSERT_EQUAL_FLOAT(w1, 0.0f); + uint32_t l1 = (LV_ARRAY_GET(&svg_node->attrs, 2, lv_svg_attr_t))->value.uval; + TEST_ASSERT_EQUAL(l1, 1); + lv_svg_node_delete(svg_node_root); + + const char * svg_sf3 = \ + ""; + svg_node_root = lv_svg_load_data(svg_sf3, lv_strlen(svg_sf3)); + svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + uint32_t c1 = (LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t))->value.ival; + TEST_ASSERT_EQUAL(c1, LV_SVG_LINE_CAP_ROUND); + uint32_t c2 = (LV_ARRAY_GET(&svg_node->attrs, 1, lv_svg_attr_t))->value.ival; + TEST_ASSERT_EQUAL(c2, LV_SVG_LINE_JOIN_BEVEL); + uint32_t r2 = (LV_ARRAY_GET(&svg_node->attrs, 2, lv_svg_attr_t))->value.ival; + TEST_ASSERT_EQUAL(r2, LV_SVG_FILL_NONZERO); + lv_svg_node_delete(svg_node_root); + + const char * svg_sf4 = \ + ""; + svg_node_root = lv_svg_load_data(svg_sf4, lv_strlen(svg_sf4)); + svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + uint32_t c3 = (LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t))->value.ival; + TEST_ASSERT_EQUAL(c3, LV_SVG_LINE_CAP_SQUARE); + uint32_t c4 = (LV_ARRAY_GET(&svg_node->attrs, 1, lv_svg_attr_t))->value.ival; + TEST_ASSERT_EQUAL(c4, LV_SVG_LINE_JOIN_ROUND); + lv_svg_node_delete(svg_node_root); + + const char * svg_sf5 = \ + ""; + svg_node_root = lv_svg_load_data(svg_sf5, lv_strlen(svg_sf5)); + svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + uint32_t c5 = (LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t))->value.ival; + TEST_ASSERT_EQUAL(c5, LV_SVG_LINE_CAP_BUTT); + uint32_t c6 = (LV_ARRAY_GET(&svg_node->attrs, 1, lv_svg_attr_t))->value.ival; + TEST_ASSERT_EQUAL(c6, LV_SVG_LINE_JOIN_MITER); + lv_svg_node_delete(svg_node_root); + + const char * svg_sf6 = \ + ""; + svg_node_root = lv_svg_load_data(svg_sf6, lv_strlen(svg_sf6)); + svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + lv_svg_attr_values_list_t * list = (lv_svg_attr_values_list_t *)(LV_ARRAY_GET(&svg_node->attrs, 0, + lv_svg_attr_t))->value.val; + TEST_ASSERT_EQUAL(list->length, 5); + float * arr = (float *)(&list->data); + float ret[5] = {1.0f, 2.0f, 3.0f, 2.5f, 3.0f}; + TEST_ASSERT_EQUAL_FLOAT_ARRAY(ret, arr, 5); + + float c8 = (LV_ARRAY_GET(&svg_node->attrs, 1, lv_svg_attr_t))->value.fval; + TEST_ASSERT_EQUAL_FLOAT(c8, 1.2f); + float c9 = (LV_ARRAY_GET(&svg_node->attrs, 2, lv_svg_attr_t))->value.fval; + TEST_ASSERT_EQUAL_FLOAT(c9, 1.0f); + lv_svg_node_delete(svg_node_root); +} + +void testTextAttrs(void) +{ + const char * svg_sf0 = \ + "hello world!"; + lv_svg_node_t * svg_node_root = lv_svg_load_data(svg_sf0, lv_strlen(svg_sf0)); + lv_svg_node_t * svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + + float font_size = (LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t))->value.fval; + TEST_ASSERT_EQUAL_FLOAT(font_size, 16.0f); + const char * font_family = (LV_ARRAY_GET(&svg_node->attrs, 1, lv_svg_attr_t))->value.sval; + TEST_ASSERT_EQUAL_STRING(font_family, "arial"); + lv_svg_node_t * svg_node1 = LV_SVG_NODE_CHILD(svg_node, 0); + const char * content = svg_node1->xml_id; + TEST_ASSERT_EQUAL_STRING(content, "hello world!"); + lv_svg_node_delete(svg_node_root); + + const char * svg_sf1 = \ + "hellomy\nworld!"; + svg_node_root = lv_svg_load_data(svg_sf1, lv_strlen(svg_sf1)); + svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + + font_size = (LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t))->value.fval; + TEST_ASSERT_EQUAL_FLOAT(font_size, 256.0f); + const char * font_style = (LV_ARRAY_GET(&svg_node->attrs, 1, lv_svg_attr_t))->value.sval; + TEST_ASSERT_EQUAL_STRING(font_style, "italic "); + svg_node1 = LV_SVG_NODE_CHILD(svg_node, 0); + const char * content1 = svg_node1->xml_id; + TEST_ASSERT_EQUAL_STRING(content1, "hello"); + svg_node1 = LV_SVG_NODE_CHILD(svg_node, 2); + const char * content2 = svg_node1->xml_id; + TEST_ASSERT_EQUAL_STRING(content2, "world!"); + svg_node1 = LV_SVG_NODE_CHILD(svg_node, 1); + lv_svg_node_t * svg_node2 = LV_SVG_NODE_CHILD(svg_node1, 0); + const char * content3 = svg_node2->xml_id; + TEST_ASSERT_EQUAL_STRING(content3, "my"); + lv_svg_node_delete(svg_node_root); +} + +void testGradient(void) +{ + const char * svg_gt1 = \ + "" + "" + "" + ""; + lv_svg_node_t * svg_node_root = lv_svg_load_data(svg_gt1, lv_strlen(svg_gt1)); + lv_svg_node_t * svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + TEST_ASSERT_EQUAL_STRING(svg_node->xml_id, "gt1"); + lv_svg_node_t * svg_node1 = LV_SVG_NODE_CHILD(svg_node, 1); + uint32_t c1 = (LV_ARRAY_GET(&svg_node1->attrs, 0, lv_svg_attr_t))->value.uval; + TEST_ASSERT_EQUAL(c1, 0); + float o1 = (LV_ARRAY_GET(&svg_node1->attrs, 1, lv_svg_attr_t))->value.fval; + TEST_ASSERT_EQUAL_FLOAT(o1, 0.5f); + float o2 = (LV_ARRAY_GET(&svg_node1->attrs, 2, lv_svg_attr_t))->value.fval; + TEST_ASSERT_EQUAL_FLOAT(o2, 1.0f); + lv_svg_node_delete(svg_node_root); + + const char * svg_gt2 = \ + "" + "" + "" + "" + ""; + svg_node_root = lv_svg_load_data(svg_gt2, lv_strlen(svg_gt2)); + svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); //defs + svg_node1 = LV_SVG_NODE_CHILD(svg_node, 0); + TEST_ASSERT_EQUAL_STRING(svg_node1->xml_id, "gt2"); + uint32_t g = (LV_ARRAY_GET(&svg_node1->attrs, 0, lv_svg_attr_t))->value.ival; + TEST_ASSERT_EQUAL(g, LV_SVG_GRADIENT_UNITS_USER_SPACE); + float cx = (LV_ARRAY_GET(&svg_node1->attrs, 1, lv_svg_attr_t))->value.fval; + TEST_ASSERT_EQUAL_FLOAT(cx, 400.0f); + float cy = (LV_ARRAY_GET(&svg_node1->attrs, 2, lv_svg_attr_t))->value.fval; + TEST_ASSERT_EQUAL_FLOAT(cy, 200.0f); + lv_svg_node_delete(svg_node_root); +} + +void testBadCase(void) +{ + const char * svg_b1 = \ + ""; + lv_svg_node_t * svg = lv_svg_load_data(svg_b1, lv_strlen(svg_b1)); + TEST_ASSERT_EQUAL(NULL, svg); + lv_svg_node_delete(svg); + + const char * svg_b2 = \ + ""; + svg = lv_svg_load_data(svg_b2, lv_strlen(svg_b2)); + TEST_ASSERT_EQUAL(NULL, svg); + lv_svg_node_delete(svg); + + const char * svg_b3 = \ + ""; + svg = lv_svg_load_data(svg_b3, lv_strlen(svg_b3)); + TEST_ASSERT_EQUAL(NULL, svg); + lv_svg_node_delete(svg); + + const char * svg_b4 = \ + ""; + svg = lv_svg_load_data(svg_b4, lv_strlen(svg_b4)); + lv_svg_node_t * svg_node = LV_SVG_NODE_CHILD(svg, 0); + TEST_ASSERT_EQUAL(0, LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t)->class_type); + lv_svg_node_delete(svg); + + const char * svg_b5 = \ + ""; + svg = lv_svg_load_data(svg_b5, lv_strlen(svg_b5)); + svg_node = LV_SVG_NODE_CHILD(svg, 0); + lv_svg_matrix_t * matrix = (lv_svg_matrix_t *)(LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t))->value.val; + + TEST_ASSERT_EQUAL_FLOAT(matrix->m[0][0], 1.0f); + TEST_ASSERT_EQUAL_FLOAT(matrix->m[1][1], 1.0f); + TEST_ASSERT_EQUAL_FLOAT(matrix->m[2][2], 1.0f); + lv_svg_node_delete(svg); + + const char * svg_b6 = \ + "<123><123>"; + svg = lv_svg_load_data(svg_b6, lv_strlen(svg_b6)); + TEST_ASSERT_EQUAL(NULL, svg); + lv_svg_node_delete(svg); + + const char * svg_b7 = \ + " bad case "; + svg = lv_svg_load_data(svg_b7, lv_strlen(svg_b7)); + TEST_ASSERT_EQUAL(NULL, svg); + lv_svg_node_delete(svg); + + const char * svg_b8 = \ + ""; + svg = lv_svg_load_data(svg_b8, lv_strlen(svg_b8)); + svg_node = LV_SVG_NODE_CHILD(svg, 0); + TEST_ASSERT_EQUAL(((lv_svg_attr_values_list_t *)(LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t))->value.val)->length, + 3); + uint32_t seg_size = sizeof(uint32_t) + sizeof(lv_svg_point_t); + lv_svg_attr_values_list_t * list = (lv_svg_attr_values_list_t *)(LV_ARRAY_GET(&svg_node->attrs, 0, + lv_svg_attr_t))->value.val; + + lv_svg_attr_path_value_t * path = (lv_svg_attr_path_value_t *)(&list->data); + TEST_ASSERT_EQUAL(path->cmd, LV_SVG_PATH_CMD_MOVE_TO); + + TEST_ASSERT_EQUAL_FLOAT(((lv_svg_point_t *)(&path->data))->x, 100.0f); + TEST_ASSERT_EQUAL_FLOAT(((lv_svg_point_t *)(&path->data))->y, 150.0f); + + path = (lv_svg_attr_path_value_t *)((uint8_t *)&list->data + seg_size); + TEST_ASSERT_EQUAL(path->cmd, LV_SVG_PATH_CMD_LINE_TO); + + TEST_ASSERT_EQUAL_FLOAT(((lv_svg_point_t *)(&path->data))->x, 180.0f); + TEST_ASSERT_EQUAL_FLOAT(((lv_svg_point_t *)(&path->data))->y, 150.0f); + lv_svg_node_delete(svg); + + const char * svg_b9 = \ + ""; + svg = lv_svg_load_data(svg_b9, lv_strlen(svg_b9)); + svg_node = LV_SVG_NODE_CHILD(svg, 0); + TEST_ASSERT_EQUAL(((lv_svg_attr_values_list_t *)(LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t))->value.val)->length, + 1); + seg_size = sizeof(uint32_t) + sizeof(lv_svg_point_t); + list = (lv_svg_attr_values_list_t *)(LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t))->value.val; + + path = (lv_svg_attr_path_value_t *)(&list->data); + TEST_ASSERT_EQUAL(path->cmd, LV_SVG_PATH_CMD_MOVE_TO); + + TEST_ASSERT_EQUAL_FLOAT(((lv_svg_point_t *)(&path->data))->x, 100.0f); + TEST_ASSERT_EQUAL_FLOAT(((lv_svg_point_t *)(&path->data))->y, 200.0f); + lv_svg_node_delete(svg); + + const char * svg_b10 = \ + "bad case"; + svg = lv_svg_load_data(svg_b10, lv_strlen(svg_b10)); + TEST_ASSERT_EQUAL(NULL, svg); + lv_svg_node_delete(svg); + + const char * svg_b11 = \ + ""; + svg = lv_svg_load_data(svg_b11, lv_strlen(svg_b11)); + svg_node = LV_SVG_NODE_CHILD(svg, 0); + TEST_ASSERT_EQUAL(lv_array_size(&svg_node->attrs), 0); + TEST_ASSERT_EQUAL(LV_TREE_NODE(svg_node)->child_cnt, 0); + lv_svg_node_delete(svg); + + const char * svg_b12 = \ + ""; + svg = lv_svg_load_data(svg_b12, lv_strlen(svg_b12)); + svg_node = LV_SVG_NODE_CHILD(svg, 0); + TEST_ASSERT_EQUAL(lv_array_size(&svg_node->attrs), 0); + TEST_ASSERT_EQUAL(LV_TREE_NODE(svg_node)->child_cnt, 0); + lv_svg_node_delete(svg); + + const char * svg_b13 = \ + ""; + svg = lv_svg_load_data(svg_b13, lv_strlen(svg_b13)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + lv_svg_node_delete(svg); + + const char * svg_b14 = \ + ""; + svg = lv_svg_load_data(svg_b14, lv_strlen(svg_b14)); + TEST_ASSERT_NOT_EQUAL(NULL, svg); + lv_svg_node_delete(svg); + + const char * svg_b15 = \ + "" + "" + ""; + svg = lv_svg_load_data(svg_b15, lv_strlen(svg_b15)); + svg_node = LV_SVG_NODE_CHILD(svg, 0); + + TEST_ASSERT_EQUAL(((lv_svg_attr_values_list_t *)(LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t))->value.val)->length, + 5); + seg_size = sizeof(uint32_t) + sizeof(lv_svg_point_t); + list = (lv_svg_attr_values_list_t *)(LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t))->value.val; + + path = (lv_svg_attr_path_value_t *)(&list->data); + TEST_ASSERT_EQUAL(path->cmd, LV_SVG_PATH_CMD_MOVE_TO); + + TEST_ASSERT_EQUAL_FLOAT(((lv_svg_point_t *)(&path->data))->x, -122.3f); + TEST_ASSERT_EQUAL_FLOAT(((lv_svg_point_t *)(&path->data))->y, 84.285f); + + lv_svg_node_delete(svg); + + const char * svg_b16 = \ + "" + "" + "" + ""; + svg = lv_svg_load_data(svg_b16, lv_strlen(svg_b16)); + svg_node = LV_SVG_NODE_CHILD(svg, 0); + matrix = (lv_svg_matrix_t *)(LV_ARRAY_GET(&svg_node->attrs, 0, lv_svg_attr_t))->value.val; + + TEST_ASSERT_EQUAL_FLOAT(matrix->m[0][0], 1.7656463f); + TEST_ASSERT_EQUAL_FLOAT(matrix->m[1][0], 0.0f); + TEST_ASSERT_EQUAL_FLOAT(matrix->m[0][1], 0.0f); + TEST_ASSERT_EQUAL_FLOAT(matrix->m[1][1], 1.7656463f); + TEST_ASSERT_EQUAL_FLOAT(matrix->m[0][2], 324.90716f); + TEST_ASSERT_EQUAL_FLOAT(matrix->m[1][2], 255.00942f); + + lv_svg_node_delete(svg); +} + +#endif diff --git a/tests/src/test_cases/test_svg_anim.c b/tests/src/test_cases/test_svg_anim.c new file mode 100644 index 000000000..305b00d49 --- /dev/null +++ b/tests/src/test_cases/test_svg_anim.c @@ -0,0 +1,267 @@ +#if LV_BUILD_TEST +#include "../lvgl.h" + +#include "unity/unity.h" + +#define LV_ARRAY_GET(array, index, type) ((type*)lv_array_at((array), (index))) + +void setUp(void) +{ +} + +void tearDown(void) +{ +} + +void testAnimate(void) +{ + const char * svg_anim0 = \ + "" + "" + ""; + + lv_svg_node_t * svg_node_root = lv_svg_load_data(svg_anim0, lv_strlen(svg_anim0)); + lv_svg_node_t * svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + lv_svg_node_t * anim_node = LV_SVG_NODE_CHILD(svg_node, 0); + TEST_ASSERT_NOT_EQUAL(NULL, anim_node); + TEST_ASSERT_EQUAL(LV_SVG_TAG_ANIMATE, anim_node->type); + lv_svg_attr_type_t at = (LV_ARRAY_GET(&anim_node->attrs, 0, lv_svg_attr_t))->value.ival; + TEST_ASSERT_EQUAL(LV_SVG_ATTR_X, at); + float dur = (LV_ARRAY_GET(&anim_node->attrs, 1, lv_svg_attr_t))->value.fval; + TEST_ASSERT_EQUAL_FLOAT(dur, 9000.0f); + + int ft = (LV_ARRAY_GET(&anim_node->attrs, 2, lv_svg_attr_t))->value.ival; + TEST_ASSERT_EQUAL(ft, LV_SVG_ANIM_FREEZE); + + float fr = (LV_ARRAY_GET(&anim_node->attrs, 3, lv_svg_attr_t))->value.fval; + TEST_ASSERT_EQUAL_FLOAT(fr, 300.0f); + + float to = (LV_ARRAY_GET(&anim_node->attrs, 4, lv_svg_attr_t))->value.fval; + TEST_ASSERT_EQUAL_FLOAT(to, 0.0f); + + lv_svg_node_delete(svg_node_root); +} + +void testSet(void) +{ + const char * svg_anim0 = \ + "" + "" + ""; + + lv_svg_node_t * svg_node_root = lv_svg_load_data(svg_anim0, lv_strlen(svg_anim0)); + lv_svg_node_t * svg_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + lv_svg_node_t * anim_node = LV_SVG_NODE_CHILD(svg_node, 0); + TEST_ASSERT_NOT_EQUAL(NULL, anim_node); + TEST_ASSERT_EQUAL(LV_SVG_TAG_SET, anim_node->type); + lv_svg_attr_type_t at = (LV_ARRAY_GET(&anim_node->attrs, 0, lv_svg_attr_t))->value.ival; + TEST_ASSERT_EQUAL(LV_SVG_ATTR_X, at); + float to = (LV_ARRAY_GET(&anim_node->attrs, 1, lv_svg_attr_t))->value.fval; + TEST_ASSERT_EQUAL_FLOAT(to, 500.0f); + + lv_svg_node_delete(svg_node_root); +} + +void testAnimateMotion(void) +{ + const char * svg_anim0 = \ + "" + "" + "" + "" + ""; + + lv_svg_node_t * svg_node_root = lv_svg_load_data(svg_anim0, lv_strlen(svg_anim0)); + lv_svg_node_t * path_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + TEST_ASSERT_NOT_EQUAL(NULL, path_node); + lv_svg_node_t * anim_node = LV_SVG_NODE_CHILD(svg_node_root, 1); + TEST_ASSERT_NOT_EQUAL(NULL, anim_node); + TEST_ASSERT_EQUAL(LV_SVG_TAG_ANIMATE_MOTION, anim_node->type); + + lv_svg_node_t * mpath_node = LV_SVG_NODE_CHILD(anim_node, 0); + TEST_ASSERT_NOT_EQUAL(NULL, mpath_node); + TEST_ASSERT_EQUAL(LV_SVG_TAG_MPATH, mpath_node->type); + + const char * xlink = (LV_ARRAY_GET(&mpath_node->attrs, 0, lv_svg_attr_t))->value.sval; + TEST_ASSERT_EQUAL_STRING(xlink, path_node->xml_id); + + uint32_t rp = (LV_ARRAY_GET(&anim_node->attrs, 1, lv_svg_attr_t))->value.uval; + TEST_ASSERT_EQUAL(rp, 0); + + float rt = (LV_ARRAY_GET(&anim_node->attrs, 2, lv_svg_attr_t))->value.fval; + TEST_ASSERT_EQUAL_FLOAT(rt, 0.0f); + lv_svg_node_delete(svg_node_root); + + const char * svg_anim1 = \ + "" + "" + "" + ""; + + svg_node_root = lv_svg_load_data(svg_anim1, lv_strlen(svg_anim1)); + path_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + anim_node = LV_SVG_NODE_CHILD(path_node, 0); + TEST_ASSERT_NOT_EQUAL(NULL, anim_node); + TEST_ASSERT_EQUAL(LV_SVG_TAG_ANIMATE_MOTION, anim_node->type); + + lv_svg_attr_values_list_t * lb = (LV_ARRAY_GET(&anim_node->attrs, 0, lv_svg_attr_t))->value.val; + TEST_ASSERT_EQUAL(lb->length, 1); + float * fb = (float *)(&lb->data); + TEST_ASSERT_EQUAL_FLOAT(*fb, 500.0f); + + float dr = (LV_ARRAY_GET(&anim_node->attrs, 1, lv_svg_attr_t))->value.fval; + TEST_ASSERT_EQUAL(dr, 3100.0f); + + int cm = (LV_ARRAY_GET(&anim_node->attrs, 2, lv_svg_attr_t))->value.ival; + TEST_ASSERT_EQUAL(cm, LV_SVG_ANIM_CALC_MODE_LINEAR); + + lv_svg_attr_values_list_t * l = (LV_ARRAY_GET(&anim_node->attrs, 3, lv_svg_attr_t))->value.val; + TEST_ASSERT_EQUAL(l->length, 3); + + float * pt = (float *)(&l->data); + TEST_ASSERT_EQUAL_FLOAT(pt[0], 0.5f); + TEST_ASSERT_EQUAL_FLOAT(pt[1], 0.8f); + TEST_ASSERT_EQUAL_FLOAT(pt[2], 1.0f); + + lv_svg_attr_values_list_t * lp = (LV_ARRAY_GET(&anim_node->attrs, 4, lv_svg_attr_t))->value.val; + TEST_ASSERT_EQUAL(lp->length, 2); + lv_svg_node_delete(svg_node_root); + + const char * svg_anim2 = \ + "" + "" + "" + ""; + + svg_node_root = lv_svg_load_data(svg_anim2, lv_strlen(svg_anim2)); + path_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + anim_node = LV_SVG_NODE_CHILD(path_node, 0); + TEST_ASSERT_NOT_EQUAL(NULL, anim_node); + TEST_ASSERT_EQUAL(LV_SVG_TAG_ANIMATE_MOTION, anim_node->type); + + lb = (LV_ARRAY_GET(&anim_node->attrs, 0, lv_svg_attr_t))->value.val; + TEST_ASSERT_EQUAL(lb->length, 2); + fb = (float *)(&lb->data); + TEST_ASSERT_EQUAL_FLOAT(fb[0], 5000.0f); + TEST_ASSERT_EQUAL_FLOAT(fb[1], 2000.0f); + + lb = (LV_ARRAY_GET(&anim_node->attrs, 1, lv_svg_attr_t))->value.val; + TEST_ASSERT_EQUAL(lb->length, 2); + fb = (float *)(&lb->data); + TEST_ASSERT_EQUAL_FLOAT(fb[0], 8000.0f); + TEST_ASSERT_EQUAL_FLOAT(fb[1], 10000.0f); + + lb = (LV_ARRAY_GET(&anim_node->attrs, 2, lv_svg_attr_t))->value.val; + TEST_ASSERT_EQUAL(lb->length, 2); + lv_svg_point_t * ps = (lv_svg_point_t *)(&lb->data); + TEST_ASSERT_EQUAL_FLOAT(ps[0].x, 100.0f); + TEST_ASSERT_EQUAL_FLOAT(ps[0].y, 50.0f); + TEST_ASSERT_EQUAL_FLOAT(ps[1].x, 200.0f); + TEST_ASSERT_EQUAL_FLOAT(ps[1].y, 200.0f); + + lb = (LV_ARRAY_GET(&anim_node->attrs, 3, lv_svg_attr_t))->value.val; + TEST_ASSERT_EQUAL(lb->length, 2); + fb = (float *)(&lb->data); + TEST_ASSERT_EQUAL_FLOAT(fb[0], 100.0f); + TEST_ASSERT_EQUAL_FLOAT(fb[1], 200.0f); + + l = (LV_ARRAY_GET(&anim_node->attrs, 4, lv_svg_attr_t))->value.val; + TEST_ASSERT_EQUAL(l->length, 4); + + ps = (lv_svg_point_t *)(&l->data); + TEST_ASSERT_EQUAL_FLOAT(ps[0].x, 0.0f); + TEST_ASSERT_EQUAL_FLOAT(ps[0].y, 0.0f); + TEST_ASSERT_EQUAL_FLOAT(ps[1].x, 1.5f); + TEST_ASSERT_EQUAL_FLOAT(ps[1].y, 1.0f); + TEST_ASSERT_EQUAL_FLOAT(ps[2].x, 0.5f); + TEST_ASSERT_EQUAL_FLOAT(ps[2].y, 0.5f); + TEST_ASSERT_EQUAL_FLOAT(ps[3].x, 2.0f); + TEST_ASSERT_EQUAL_FLOAT(ps[3].y, 1.5f); + + lv_svg_node_delete(svg_node_root); +} + +void testAnimateTransform(void) +{ + const char * svg_anim0 = \ + "" + "" + "" + ""; + + lv_svg_node_t * svg_node_root = lv_svg_load_data(svg_anim0, lv_strlen(svg_anim0)); + lv_svg_node_t * path_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + TEST_ASSERT_NOT_EQUAL(NULL, path_node); + lv_svg_node_t * anim_node1 = LV_SVG_NODE_CHILD(path_node, 0); + TEST_ASSERT_NOT_EQUAL(NULL, anim_node1); + TEST_ASSERT_EQUAL(LV_SVG_TAG_ANIMATE_TRANSFORM, anim_node1->type); + lv_svg_node_t * anim_node2 = LV_SVG_NODE_CHILD(path_node, 1); + TEST_ASSERT_NOT_EQUAL(NULL, anim_node2); + TEST_ASSERT_EQUAL(LV_SVG_TAG_ANIMATE_TRANSFORM, anim_node2->type); + + lv_svg_attr_type_t at = (LV_ARRAY_GET(&anim_node1->attrs, 0, lv_svg_attr_t))->value.ival; + TEST_ASSERT_EQUAL(LV_SVG_ATTR_TRANSFORM, at); + + lv_svg_transform_type_t tt = (LV_ARRAY_GET(&anim_node1->attrs, 1, lv_svg_attr_t))->value.ival; + TEST_ASSERT_EQUAL(LV_SVG_TRANSFORM_TYPE_ROTATE, tt); + + lv_svg_attr_values_list_t * l = (LV_ARRAY_GET(&anim_node1->attrs, 2, lv_svg_attr_t))->value.val; + TEST_ASSERT_EQUAL(l->length, 1); + float * pt = (float *)(&l->data); + TEST_ASSERT_EQUAL_FLOAT(pt[0], 0.0f); + + l = (LV_ARRAY_GET(&anim_node2->attrs, 5, lv_svg_attr_t))->value.val; + TEST_ASSERT_EQUAL(l->length, 2); + lv_svg_attr_values_list_t * ll = (lv_svg_attr_values_list_t *)(&l->data); + TEST_ASSERT_EQUAL(ll->length, 1); + pt = (float *)(&ll->data); + TEST_ASSERT_EQUAL_FLOAT(pt[0], 0.5f); + + ll = (lv_svg_attr_values_list_t *)((uint8_t *)(&l->data) + sizeof(uint32_t) + sizeof(float) * 4); + TEST_ASSERT_EQUAL(ll->length, 2); + pt = (float *)(&ll->data); + TEST_ASSERT_EQUAL_FLOAT(pt[0], 0.2f); + TEST_ASSERT_EQUAL_FLOAT(pt[1], 0.2f); + + lv_svg_node_delete(svg_node_root); +} + +void testAnimateColor(void) +{ + const char * svg_anim0 = \ + "" + "" + ""; + + lv_svg_node_t * svg_node_root = lv_svg_load_data(svg_anim0, lv_strlen(svg_anim0)); + lv_svg_node_t * path_node = LV_SVG_NODE_CHILD(svg_node_root, 0); + TEST_ASSERT_NOT_EQUAL(NULL, path_node); + lv_svg_node_t * anim_node = LV_SVG_NODE_CHILD(path_node, 0); + TEST_ASSERT_NOT_EQUAL(NULL, anim_node); + TEST_ASSERT_EQUAL(LV_SVG_TAG_ANIMATE_COLOR, anim_node->type); + + lv_svg_attr_type_t at = (LV_ARRAY_GET(&anim_node->attrs, 0, lv_svg_attr_t))->value.ival; + TEST_ASSERT_EQUAL(LV_SVG_ATTR_FILL, at); + + uint32_t c = (LV_ARRAY_GET(&anim_node->attrs, 1, lv_svg_attr_t))->value.uval; + TEST_ASSERT_EQUAL(c, 0xFF0000); + + c = (LV_ARRAY_GET(&anim_node->attrs, 2, lv_svg_attr_t))->value.uval; + TEST_ASSERT_EQUAL(c, 0xDDDDFF); + + lv_svg_attr_values_list_t * l = (LV_ARRAY_GET(&anim_node->attrs, 9, lv_svg_attr_t))->value.val; + TEST_ASSERT_EQUAL(l->length, 2); + uint32_t * pc = (uint32_t *)(&l->data); + TEST_ASSERT_EQUAL(pc[0], 0x00FF00); + TEST_ASSERT_EQUAL(pc[1], 0x000000); + + lv_svg_node_delete(svg_node_root); +} +#endif diff --git a/tests/src/test_cases/test_tree.c b/tests/src/test_cases/test_tree.c new file mode 100644 index 000000000..c6f61c8eb --- /dev/null +++ b/tests/src/test_cases/test_tree.c @@ -0,0 +1,213 @@ +#if LV_BUILD_TEST +#include "../lvgl.h" + +#include "unity/unity.h" + +#define MY_CLASS &lv_test_tree_class + +typedef struct { + lv_tree_node_t base; + int data1; + float data2; +} lv_test_node_t; + +static void lv_test_constructor(const lv_tree_class_t * class_p, lv_tree_node_t * node) +{ + LV_UNUSED(class_p); + lv_test_node_t * t = (lv_test_node_t *)node; + t->data1 = 100; + t->data2 = 100.0f; +} + +static void lv_test_destructor(const lv_tree_class_t * class_p, lv_tree_node_t * node) +{ + LV_UNUSED(class_p); + lv_test_node_t * t = (lv_test_node_t *)node; + t->data1 = 0; + t->data2 = 0.0f; +} + +const lv_tree_class_t lv_test_tree_class = { + .base_class = &lv_tree_node_class, + .instance_size = sizeof(lv_test_node_t), + .constructor_cb = lv_test_constructor, + .destructor_cb = lv_test_destructor, +}; + +static lv_test_node_t * lv_test_create(lv_test_node_t * parent) +{ + lv_tree_node_t * node = lv_tree_node_create(MY_CLASS, (lv_tree_node_t *)parent); + return (lv_test_node_t *)node; +} + +static void lv_test_delete(lv_test_node_t * node) +{ + lv_tree_node_delete((lv_tree_node_t *)node); +} + +static lv_test_node_t * test; + +void setUp(void) +{ + test = lv_test_create(NULL); +} + +void tearDown(void) +{ + lv_test_delete(test); +} + +void testCreateAndDelete(void) +{ + lv_test_node_t * node = lv_test_create(test); + TEST_ASSERT_EQUAL_UINT32(1, test->base.child_cnt); + TEST_ASSERT_EQUAL_UINT32(0, node->base.child_cnt); + TEST_ASSERT_EQUAL(test, node->base.parent); + TEST_ASSERT_EQUAL(NULL, test->base.parent); + + TEST_ASSERT_EQUAL_INT32(100, node->data1); + TEST_ASSERT_EQUAL_FLOAT(100.0f, node->data2); + + lv_test_delete(node); + TEST_ASSERT_EQUAL(NULL, test->base.children[0]); +} + +struct _result { + int32_t result[8]; + int32_t num; +}; + +static bool test_walk_cb(const lv_tree_node_t * node, void * data) +{ + lv_test_node_t * n = (lv_test_node_t *)node; + struct _result * ret = (struct _result *)data; + + ret->result[ret->num++] = n->data1; + return true; +} + +void testBuildTree(void) +{ + lv_test_node_t * node = lv_test_create(test); + node->data1 = 0; + + for(int i = 0; i < 16; i++) { + lv_test_node_t * snode = lv_test_create(node); + snode->data1 = i; + TEST_ASSERT_NOT_EQUAL(NULL, snode); + } + TEST_ASSERT_EQUAL(16, node->base.child_cnt); + lv_test_delete(node); +} + +void testWalkTree(void) +{ + lv_test_node_t * node = lv_test_create(test); + node->data1 = 1; + + lv_test_node_t * node1 = lv_test_create(node); + node1->data1 = 2; + lv_test_node_t * node2 = lv_test_create(node); + node2->data1 = 3; + + lv_test_node_t * node11 = lv_test_create(node1); + node11->data1 = 4; + + lv_test_node_t * node12 = lv_test_create(node1); + node12->data1 = 5; + + lv_test_node_t * node21 = lv_test_create(node2); + node21->data1 = 6; + + lv_test_node_t * node111 = lv_test_create(node11); + node111->data1 = 7; + + struct _result result = {.num = 0}; + + lv_tree_walk((lv_tree_node_t *)node, LV_TREE_WALK_POST_ORDER, test_walk_cb, NULL, NULL, &result); + + int32_t ret[8] = {7, 4, 5, 2, 6, 3, 1}; + + TEST_ASSERT_EQUAL_INT32_ARRAY(ret, result.result, 8); + + result.num = 0; + lv_memset(&result, 0, sizeof(struct _result)); + lv_tree_walk((lv_tree_node_t *)node, LV_TREE_WALK_PRE_ORDER, test_walk_cb, NULL, NULL, &result); + + int32_t ret2[8] = {1, 2, 4, 7, 5, 3, 6}; + + TEST_ASSERT_EQUAL_INT32_ARRAY(ret2, result.result, 8); + + lv_test_delete(node111); + + result.num = 0; + lv_memset(&result, 0, sizeof(struct _result)); + lv_tree_walk((lv_tree_node_t *)node, LV_TREE_WALK_PRE_ORDER, test_walk_cb, NULL, NULL, &result); + + int32_t ret3[8] = {1, 2, 4, 5, 3, 6}; + + TEST_ASSERT_EQUAL_INT32_ARRAY(ret3, result.result, 8); + + lv_test_delete(node); +} + +static bool test_search_cb(const lv_tree_node_t * node, void * data) +{ + lv_test_node_t * n = (lv_test_node_t *)node; + struct _result * ret = (struct _result *)data; + + if(n->data1 == 3) { + return false; + } + + ret->result[ret->num++] = n->data1; + return true; +} + +static bool test_before_search_cb(const lv_tree_node_t * node, void * data) +{ + LV_UNUSED(node); + LV_UNUSED(data); + return true; +} + +static void test_after_search_cb(const lv_tree_node_t * node, void * data) +{ + LV_UNUSED(node); + LV_UNUSED(data); +} + +void testTreeSearch(void) +{ + lv_test_node_t * node = lv_test_create(test); + node->data1 = 1; + + lv_test_node_t * node1 = lv_test_create(node); + node1->data1 = 2; + lv_test_node_t * node2 = lv_test_create(node); + node2->data1 = 3; + + lv_test_node_t * node11 = lv_test_create(node1); + node11->data1 = 4; + + struct _result result = {.num = 0}; + + lv_tree_walk((lv_tree_node_t *)node, LV_TREE_WALK_PRE_ORDER, test_search_cb, test_before_search_cb, + test_after_search_cb, &result); + + int32_t ret2[4] = {1, 2}; + + TEST_ASSERT_EQUAL_INT32_ARRAY(ret2, result.result, 2); + + result.num = 0; + lv_memset(&result, 0, sizeof(struct _result)); + lv_tree_walk((lv_tree_node_t *)node, LV_TREE_WALK_POST_ORDER, test_search_cb, test_before_search_cb, + test_after_search_cb, &result); + + int32_t ret3[4] = {4, 2}; + + TEST_ASSERT_EQUAL_INT32_ARRAY(ret3, result.result, 2); + lv_test_delete(node); +} + +#endif