docs(examples): add XML examples too covering specific features (#10142)
Arduino Lint / lint (push) Has been cancelled
Build Examples with C++ Compiler / build-examples (push) Has been cancelled
MicroPython CI / Build esp32 port (push) Has been cancelled
MicroPython CI / Build rp2 port (push) Has been cancelled
MicroPython CI / Build stm32 port (push) Has been cancelled
MicroPython CI / Build unix port (push) Has been cancelled
C/C++ CI / Build OPTIONS_16BIT - Ubuntu (push) Has been cancelled
C/C++ CI / Build OPTIONS_24BIT - Ubuntu (push) Has been cancelled
C/C++ CI / Build OPTIONS_FULL_32BIT - Ubuntu (push) Has been cancelled
C/C++ CI / Build OPTIONS_NORMAL_8BIT - Ubuntu (push) Has been cancelled
C/C++ CI / Build OPTIONS_SDL - Ubuntu (push) Has been cancelled
C/C++ CI / Build OPTIONS_16BIT - cl - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_16BIT - gcc - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_24BIT - cl - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_24BIT - gcc - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_FULL_32BIT - cl - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_FULL_32BIT - gcc - Windows (push) Has been cancelled
C/C++ CI / Build ESP IDF ESP32S3 (push) Has been cancelled
C/C++ CI / Run tests with 32bit build (push) Has been cancelled
C/C++ CI / Run tests with 64bit build (push) Has been cancelled
BOM Check / bom-check (push) Has been cancelled
Verify that lv_conf_internal.h matches repository state / verify-conf-internal (push) Has been cancelled
Verify GDB constants are up-to-date / verify-gdb-consts (push) Has been cancelled
Verify the widget property name / verify-property-name (push) Has been cancelled
Verify code formatting / verify-formatting (push) Has been cancelled
Compare file templates with file names / template-check (push) Has been cancelled
Build Docs / build-and-deploy (push) Has been cancelled
Build .deb packages / build (push) Has been cancelled
Test API JSON generator / Test API JSON (push) Has been cancelled
Install LVGL using CMake / build-examples (private) (push) Has been cancelled
Install LVGL using CMake / build-examples (public) (push) Has been cancelled
Check Makefile / Build using Makefile (push) Has been cancelled
Check Makefile for UEFI / Build using Makefile for UEFI (push) Has been cancelled
Emulated Performance Test / ARM Emulated Benchmark - Script Check (scripts/perf/tests/benchmark_results_comment/test.sh) (push) Has been cancelled
Emulated Performance Test / ARM Emulated Benchmark - Script Check (scripts/perf/tests/filter_docker_logs/test.sh) (push) Has been cancelled
Emulated Performance Test / ARM Emulated Benchmark - Script Check (scripts/perf/tests/serialize_results/test.sh) (push) Has been cancelled
Emulated Performance Test / ARM Emulated Benchmark 32b - lv_conf_perf32b (push) Has been cancelled
Emulated Performance Test / ARM Emulated Benchmark 64b - lv_conf_perf64b (push) Has been cancelled
Emulated Performance Test / ARM Emulated Benchmark - Save PR Number (push) Has been cancelled
Performance Tests CI / Perf Tests OPTIONS_TEST_PERF_32B - Ubuntu (push) Has been cancelled
Performance Tests CI / Perf Tests OPTIONS_TEST_PERF_64B - Ubuntu (push) Has been cancelled
Port repo release update / run-release-branch-updater (push) Has been cancelled
Static Checks / Static Checks (push) Has been cancelled
Verify Font License / verify-font-license (push) Has been cancelled
Verify Kconfig / verify-kconfig (push) Has been cancelled
Hardware Performance Test / Hardware Performance Benchmark (push) Has been cancelled
Hardware Performance Test / HW Benchmark - Save PR Number (push) Has been cancelled

Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
This commit is contained in:
Gabor Kiss-Vamosi
2026-05-21 10:22:44 +02:00
committed by GitHub
co-authored by cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
parent 8a32a7f2d5
commit 0241174e50
643 changed files with 23114 additions and 8383 deletions
+318
View File
@@ -0,0 +1,318 @@
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/src/misc/cache/class/lv_cache_class.h:2: warning: the name 'lv_cache_clazz.h' supplied as the argument in the \file statement is not an input file
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/3d/lv_gltf_environment.h:45: warning: argument 'pointer' of command @param is not found in the argument list of lv_gltf_ibl_sampler_set_cube_map_pixel_resolution(lv_gltf_ibl_sampler_t *sampler, uint32_t resolution)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/3d/lv_gltf_environment.h:45: warning: The following parameter of lv_gltf_ibl_sampler_set_cube_map_pixel_resolution(lv_gltf_ibl_sampler_t *sampler, uint32_t resolution) is not documented:
parameter 'sampler'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/core/lv_group.h:262: warning: argument 'indev' of command @param is not found in the argument list of lv_group_get_user_data(const lv_group_t *group)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/core/lv_group.h:262: warning: The following parameter of lv_group_get_user_data(const lv_group_t *group) is not documented:
parameter 'group'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/core/lv_matrix.h:82: warning: argument 'matrix2' of command @param is not found in the argument list of lv_matrix_multiply(lv_matrix_t *matrix, const lv_matrix_t *mul)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/core/lv_matrix.h:82: warning: The following parameter of lv_matrix_multiply(lv_matrix_t *matrix, const lv_matrix_t *mul) is not documented:
parameter 'mul'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/core/lv_matrix.h:51: warning: argument 'tx' from the argument list of lv_matrix_translate has multiple @param documentation sections
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/core/lv_matrix.h:51: warning: The following parameter of lv_matrix_translate(lv_matrix_t *matrix, float tx, float ty) is not documented:
parameter 'ty'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/core/lv_obj_tree.h:252: warning: The following parameter of lv_obj_find_by_name(const lv_obj_t *parent, const char *name) is not documented:
parameter 'name'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/core/lv_obj_tree.h:265: warning: The following parameter of lv_obj_get_child_by_name(const lv_obj_t *parent, const char *name_path) is not documented:
parameter 'name_path'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/core/lv_timer.h:201: warning: argument 'destructor' of command @param is not found in the argument list of lv_timer_set_external_data(lv_timer_t *timer, void *data, void(*free_cb)(void *data))
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/core/lv_timer.h:201: warning: The following parameter of lv_timer_set_external_data(lv_timer_t *timer, void *data, void(*free_cb)(void *data)) is not documented:
parameter 'free_cb'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/debugging/lv_test_indev.h:105: warning: argument 'k' of command @param is not found in the argument list of lv_test_key_release(void)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/display/lv_display.h:273: warning: The following parameters of lv_display_set_buffers_with_stride(lv_display_t *disp, void *buf1, void *buf2, uint32_t buf_size, uint32_t stride, lv_display_render_mode_t render_mode) are not documented:
parameter 'disp'
parameter 'buf1'
parameter 'buf2'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/draw/lv_draw.h:213: warning: The following parameter of lv_draw_add_task(lv_layer_t *layer, const lv_area_t *coords, lv_draw_task_type_t type) is not documented:
parameter 'type'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/draw/lv_draw.h:326: warning: found documented return type for lv_draw_layer_init that does not return anything
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/draw/lv_draw_3d.h:55: warning: The following parameter of lv_draw_3d(lv_layer_t *layer, const lv_draw_3d_dsc_t *dsc, const lv_area_t *coords) is not documented:
parameter 'coords'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/display/lv_draw_eve_display_defines.h:599: warning: argument 'linestride' of command @param is not found in the argument list of LV_EVE_BITMAP_SIZE_H(uint16_t width, uint16_t height)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/display/lv_draw_eve_display_defines.h:599: warning: The following parameter of LV_EVE_BITMAP_SIZE_H(uint16_t width, uint16_t height) is not documented:
parameter 'width'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/display/lv_ili9341.h:39: warning: argument 'send_cmd' of command @param is not found in the argument list of lv_ili9341_create(uint32_t hor_res, uint32_t ver_res, lv_lcd_flag_t flags, lv_ili9341_send_cmd_cb_t send_cmd_cb, lv_ili9341_send_color_cb_t send_color_cb)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/display/lv_ili9341.h:39: warning: argument 'send_color' of command @param is not found in the argument list of lv_ili9341_create(uint32_t hor_res, uint32_t ver_res, lv_lcd_flag_t flags, lv_ili9341_send_cmd_cb_t send_cmd_cb, lv_ili9341_send_color_cb_t send_color_cb)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/display/lv_ili9341.h:39: warning: The following parameters of lv_ili9341_create(uint32_t hor_res, uint32_t ver_res, lv_lcd_flag_t flags, lv_ili9341_send_cmd_cb_t send_cmd_cb, lv_ili9341_send_color_cb_t send_color_cb) are not documented:
parameter 'send_cmd_cb'
parameter 'send_color_cb'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/display/lv_lcd_generic_mipi.h:177: warning: argument 'send_cmd' of command @param is not found in the argument list of lv_lcd_generic_mipi_create(uint32_t hor_res, uint32_t ver_res, lv_lcd_flag_t flags, lv_lcd_send_cmd_cb_t send_cmd_cb, lv_lcd_send_color_cb_t send_color_cb)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/display/lv_lcd_generic_mipi.h:177: warning: argument 'send_color' of command @param is not found in the argument list of lv_lcd_generic_mipi_create(uint32_t hor_res, uint32_t ver_res, lv_lcd_flag_t flags, lv_lcd_send_cmd_cb_t send_cmd_cb, lv_lcd_send_color_cb_t send_color_cb)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/display/lv_lcd_generic_mipi.h:177: warning: The following parameters of lv_lcd_generic_mipi_create(uint32_t hor_res, uint32_t ver_res, lv_lcd_flag_t flags, lv_lcd_send_cmd_cb_t send_cmd_cb, lv_lcd_send_color_cb_t send_color_cb) are not documented:
parameter 'send_cmd_cb'
parameter 'send_color_cb'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/display/lv_nv3007.h:39: warning: argument 'send_cmd' of command @param is not found in the argument list of lv_nv3007_create(uint32_t hor_res, uint32_t ver_res, lv_lcd_flag_t flags, lv_nv3007_send_cmd_cb_t send_cmd_cb, lv_nv3007_send_color_cb_t send_color_cb)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/display/lv_nv3007.h:39: warning: argument 'send_color' of command @param is not found in the argument list of lv_nv3007_create(uint32_t hor_res, uint32_t ver_res, lv_lcd_flag_t flags, lv_nv3007_send_cmd_cb_t send_cmd_cb, lv_nv3007_send_color_cb_t send_color_cb)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/display/lv_nv3007.h:39: warning: The following parameters of lv_nv3007_create(uint32_t hor_res, uint32_t ver_res, lv_lcd_flag_t flags, lv_nv3007_send_cmd_cb_t send_cmd_cb, lv_nv3007_send_color_cb_t send_color_cb) are not documented:
parameter 'send_cmd_cb'
parameter 'send_color_cb'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/display/lv_st7735.h:39: warning: argument 'send_cmd' of command @param is not found in the argument list of lv_st7735_create(uint32_t hor_res, uint32_t ver_res, lv_lcd_flag_t flags, lv_st7735_send_cmd_cb_t send_cmd_cb, lv_st7735_send_color_cb_t send_color_cb)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/display/lv_st7735.h:39: warning: argument 'send_color' of command @param is not found in the argument list of lv_st7735_create(uint32_t hor_res, uint32_t ver_res, lv_lcd_flag_t flags, lv_st7735_send_cmd_cb_t send_cmd_cb, lv_st7735_send_color_cb_t send_color_cb)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/display/lv_st7735.h:39: warning: The following parameters of lv_st7735_create(uint32_t hor_res, uint32_t ver_res, lv_lcd_flag_t flags, lv_st7735_send_cmd_cb_t send_cmd_cb, lv_st7735_send_color_cb_t send_color_cb) are not documented:
parameter 'send_cmd_cb'
parameter 'send_color_cb'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/display/lv_st7789.h:39: warning: argument 'send_cmd' of command @param is not found in the argument list of lv_st7789_create(uint32_t hor_res, uint32_t ver_res, lv_lcd_flag_t flags, lv_st7789_send_cmd_cb_t send_cmd_cb, lv_st7789_send_color_cb_t send_color_cb)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/display/lv_st7789.h:39: warning: argument 'send_color' of command @param is not found in the argument list of lv_st7789_create(uint32_t hor_res, uint32_t ver_res, lv_lcd_flag_t flags, lv_st7789_send_cmd_cb_t send_cmd_cb, lv_st7789_send_color_cb_t send_color_cb)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/display/lv_st7789.h:39: warning: The following parameters of lv_st7789_create(uint32_t hor_res, uint32_t ver_res, lv_lcd_flag_t flags, lv_st7789_send_cmd_cb_t send_cmd_cb, lv_st7789_send_color_cb_t send_color_cb) are not documented:
parameter 'send_cmd_cb'
parameter 'send_color_cb'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/display/lv_st7796.h:39: warning: argument 'send_cmd' of command @param is not found in the argument list of lv_st7796_create(uint32_t hor_res, uint32_t ver_res, lv_lcd_flag_t flags, lv_st7796_send_cmd_cb_t send_cmd_cb, lv_st7796_send_color_cb_t send_color_cb)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/display/lv_st7796.h:39: warning: argument 'send_color' of command @param is not found in the argument list of lv_st7796_create(uint32_t hor_res, uint32_t ver_res, lv_lcd_flag_t flags, lv_st7796_send_cmd_cb_t send_cmd_cb, lv_st7796_send_color_cb_t send_color_cb)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/display/lv_st7796.h:39: warning: The following parameters of lv_st7796_create(uint32_t hor_res, uint32_t ver_res, lv_lcd_flag_t flags, lv_st7796_send_cmd_cb_t send_cmd_cb, lv_st7796_send_color_cb_t send_color_cb) are not documented:
parameter 'send_cmd_cb'
parameter 'send_color_cb'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/indev/lv_evdev.h:43: warning: argument 'type' of command @param is not found in the argument list of lv_evdev_create(lv_indev_type_t indev_type, const char *dev_path)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/indev/lv_evdev.h:43: warning: The following parameter of lv_evdev_create(lv_indev_type_t indev_type, const char *dev_path) is not documented:
parameter 'indev_type'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/indev/lv_evdev.h:51: warning: argument 'type' of command @param is not found in the argument list of lv_evdev_create_fd(lv_indev_type_t indev_type, int fd)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/indev/lv_evdev.h:51: warning: The following parameter of lv_evdev_create_fd(lv_indev_type_t indev_type, int fd) is not documented:
parameter 'indev_type'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/indev/lv_libinput.h:78: warning: argument 'type' of command @param is not found in the argument list of lv_libinput_create(lv_indev_type_t indev_type, const char *dev_path)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/indev/lv_libinput.h:78: warning: The following parameter of lv_libinput_create(lv_indev_type_t indev_type, const char *dev_path) is not documented:
parameter 'indev_type'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/indev/lv_libinput.h:67: warning: argument 'devices' of command @param is not found in the argument list of lv_libinput_find_devs(lv_libinput_capability capabilities, char **found, size_t count, bool force_rescan)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/indev/lv_libinput.h:67: warning: The following parameter of lv_libinput_find_devs(lv_libinput_capability capabilities, char **found, size_t count, bool force_rescan) is not documented:
parameter 'found'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/opengles/lv_opengles_driver.h:48: warning: The following parameter of lv_opengles_render_texture(unsigned int texture, const lv_area_t *texture_area, lv_opa_t opa, int32_t disp_w, int32_t disp_h, const lv_area_t *texture_clip_area, bool h_flip, bool v_flip) is not documented:
parameter 'texture_clip_area'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/wayland/lv_wayland_window.h:82: warning: argument 'fullscreen' of command @param is not found in the argument list of lv_wayland_window_set_maximized(lv_display_t *disp, bool maximize)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/wayland/lv_wayland_window.h:82: warning: The following parameter of lv_wayland_window_set_maximized(lv_display_t *disp, bool maximize) is not documented:
parameter 'maximize'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/font/lv_font_manager.h:98: warning: found documented return type for lv_font_manager_delete_font that does not return anything
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/font/lv_freetype.h:99: warning: Found unknown command '@lv_freetype_font_render_mode_t'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/font/lv_freetype.h:114: warning: argument 'cb' of command @param is not found in the argument list of lv_freetype_outline_add_event(lv_event_cb_t event_cb, lv_event_code_t filter, void *user_data)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/font/lv_freetype.h:114: warning: The following parameters of lv_freetype_outline_add_event(lv_event_cb_t event_cb, lv_event_code_t filter, void *user_data) are not documented:
parameter 'event_cb'
parameter 'filter'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/font/lv_freetype.h:114: warning: found documented return type for lv_freetype_outline_add_event that does not return anything
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/fs/lv_fs.h:263: warning: argument 'filename' of command @param is not found in the argument list of lv_fs_load_with_alloc(const char *path, uint32_t *size)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/fs/lv_fs.h:263: warning: The following parameter of lv_fs_load_with_alloc(const char *path, uint32_t *size) is not documented:
parameter 'path'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/indev/lv_indev_gesture.h:194: warning: The following parameter of lv_event_get_gesture_state(lv_event_t *gesture_event, lv_indev_gesture_type_t type) is not documented:
parameter 'type'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/indev/lv_indev_gesture.h:187: warning: argument 'gesture_event' of command @param is not found in the argument list of lv_indev_get_gesture_center_point(lv_indev_gesture_recognizer_t *recognizer, lv_point_t *point)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/indev/lv_indev_gesture.h:187: warning: The following parameter of lv_indev_get_gesture_center_point(lv_indev_gesture_recognizer_t *recognizer, lv_point_t *point) is not documented:
parameter 'recognizer'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/indev/lv_indev_gesture.h:178: warning: The following parameter of lv_indev_set_gesture_data(lv_indev_data_t *data, lv_indev_gesture_recognizer_t *recognizer, lv_indev_gesture_type_t type) is not documented:
parameter 'type'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/lvgl.h:225: warning: explicit link request to 'if' could not be resolved
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/lvgl.h:227: warning: explicit link request to 'endif' could not be resolved
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/lvgl.h:231: warning: explicit link request to 'if' could not be resolved
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/lvgl.h:233: warning: explicit link request to 'endif' could not be resolved
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/lvgl.h:237: warning: explicit link request to 'if' could not be resolved
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/lvgl.h:239: warning: explicit link request to 'endif' could not be resolved
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_gltf.h:410: warning: argument 'lv_point_t' of command @param is not found in the argument list of lv_gltf_world_to_screen(lv_obj_t *obj, const lv_3dpoint_t world_pos, lv_point_t *screen_pos)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_gltf.h:410: warning: The following parameter of lv_gltf_world_to_screen(lv_obj_t *obj, const lv_3dpoint_t world_pos, lv_point_t *screen_pos) is not documented:
parameter 'screen_pos'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_gltf.h:383: warning: argument 'screen_y' of command @param is not found in the argument list of lv_intersect_ray_with_plane(const lv_3dray_t *ray, const lv_3dplane_t *plane, lv_3dpoint_t *collision_point)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_gltf.h:383: warning: The following parameter of lv_intersect_ray_with_plane(const lv_3dray_t *ray, const lv_3dplane_t *plane, lv_3dpoint_t *collision_point) is not documented:
parameter 'plane'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_image.h:230: warning: explicit link request to 'lv' could not be resolved
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_scale.h:236: warning: argument 'range_min' of command @param is not found in the argument list of lv_scale_section_set_range(lv_scale_section_t *section, int32_t min, int32_t max)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_scale.h:236: warning: argument 'range_max' of command @param is not found in the argument list of lv_scale_section_set_range(lv_scale_section_t *section, int32_t min, int32_t max)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_scale.h:236: warning: The following parameters of lv_scale_section_set_range(lv_scale_section_t *section, int32_t min, int32_t max) are not documented:
parameter 'min'
parameter 'max'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_scale.h:153: warning: argument 'max_angle' of command @param is not found in the argument list of lv_scale_set_angle_range(lv_obj_t *obj, uint32_t angle_range)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_scale.h:153: warning: The following parameter of lv_scale_set_angle_range(lv_obj_t *obj, uint32_t angle_range) is not documented:
parameter 'angle_range'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_scale.h:146: warning: argument 'min' of command @param is not found in the argument list of lv_scale_set_max_value(lv_obj_t *obj, int32_t max)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_scale.h:146: warning: The following parameter of lv_scale_set_max_value(lv_obj_t *obj, int32_t max) is not documented:
parameter 'max'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_scale.h:245: warning: argument 'range_min' of command @param is not found in the argument list of lv_scale_set_section_range(lv_obj_t *scale, lv_scale_section_t *section, int32_t min, int32_t max)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_scale.h:245: warning: argument 'range_max' of command @param is not found in the argument list of lv_scale_set_section_range(lv_obj_t *scale, lv_scale_section_t *section, int32_t min, int32_t max)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_scale.h:245: warning: The following parameters of lv_scale_set_section_range(lv_obj_t *scale, lv_scale_section_t *section, int32_t min, int32_t max) are not documented:
parameter 'min'
parameter 'max'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_slider.h:168: warning: argument 'obj' of command @param is not found in the argument list of lv_slider_get_orientation(lv_obj_t *slider)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_slider.h:168: warning: The following parameter of lv_slider_get_orientation(lv_obj_t *slider) is not documented:
parameter 'slider'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_span.h:158: warning: argument 'span' from the argument list of lv_span_set_text_static has multiple @param documentation sections
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_span.h:158: warning: argument 'text' from the argument list of lv_span_set_text_static has multiple @param documentation sections
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_tileview.h:49: warning: argument 'parent' of command @param is not found in the argument list of lv_tileview_set_tile(lv_obj_t *tv, lv_obj_t *tile_obj, lv_anim_enable_t anim_en)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_tileview.h:49: warning: The following parameter of lv_tileview_set_tile(lv_obj_t *tv, lv_obj_t *tile_obj, lv_anim_enable_t anim_en) is not documented:
parameter 'tv'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_win.h:45: warning: argument 'obj' of command @param is not found in the argument list of lv_win_add_button(lv_obj_t *win, const void *icon, int32_t btn_w)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_win.h:45: warning: The following parameter of lv_win_add_button(lv_obj_t *win, const void *icon, int32_t btn_w) is not documented:
parameter 'win'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_win.h:37: warning: argument 'obj' of command @param is not found in the argument list of lv_win_add_title(lv_obj_t *win, const char *txt)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_win.h:37: warning: The following parameter of lv_win_add_title(lv_obj_t *win, const char *txt) is not documented:
parameter 'win'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/src/draw/lv_draw_vector_private.h:121: warning: argument 'user_data' of command @param is not found in the argument list of lv_vector_for_each_destroy_tasks(lv_ll_t *task_list, vector_draw_task_cb cb, void *used_data)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/src/draw/lv_draw_vector_private.h:121: warning: The following parameter of lv_vector_for_each_destroy_tasks(lv_ll_t *task_list, vector_draw_task_cb cb, void *used_data) is not documented:
parameter 'used_data'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx_utils.h:166: warning: The following parameters of lv_nemagfx_grad_set(void *gradient, lv_grad_dsc_t lv_grad, lv_opa_t opa) are not documented:
parameter 'lv_grad'
parameter 'opa'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/src/draw/sw/blend/lv_draw_sw_blend.h:46: warning: argument 'draw_unit' of command @param is not found in the argument list of lv_draw_sw_blend(lv_draw_task_t *t, const lv_draw_sw_blend_dsc_t *dsc)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/src/draw/sw/blend/lv_draw_sw_blend.h:46: warning: The following parameter of lv_draw_sw_blend(lv_draw_task_t *t, const lv_draw_sw_blend_dsc_t *dsc) is not documented:
parameter 't'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/src/draw/sw/lv_draw_sw.h:124: warning: argument 'coords' of command @param is not found in the argument list of lv_draw_sw_mask_rect(lv_draw_task_t *t, const lv_draw_mask_rect_dsc_t *dsc)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/src/draw/vg_lite/lv_vg_lite_stroke.h:70: warning: argument 'stroke' of command @param is not found in the argument list of lv_vg_lite_stroke_drop(struct _lv_draw_vg_lite_unit_t *unit, lv_cache_entry_t *cache_entry)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/src/draw/vg_lite/lv_vg_lite_stroke.h:70: warning: The following parameter of lv_vg_lite_stroke_drop(struct _lv_draw_vg_lite_unit_t *unit, lv_cache_entry_t *cache_entry) is not documented:
parameter 'cache_entry'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/src/draw/vg_lite/lv_vg_lite_stroke.h:40: warning: The following parameter of lv_vg_lite_stroke_init(struct _lv_draw_vg_lite_unit_t *unit, uint32_t cache_cnt) is not documented:
parameter 'cache_cnt'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/src/drivers/opengles/lv_opengles_private.h:146: warning: The following parameter of lv_opengles_render_texture_rbswap(unsigned int texture, const lv_area_t *texture_area, lv_opa_t opa, int32_t disp_w, int32_t disp_h, const lv_area_t *texture_clip_area, bool h_flip, bool v_flip) is not documented:
parameter 'texture_clip_area'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/src/font/font_manager/lv_font_manager_recycle.h:61: warning: The following parameter of lv_font_manager_recycle_set_reuse(lv_font_manager_recycle_t *manager, lv_font_t *font, const lv_font_info_t *ft_info) is not documented:
parameter 'font'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/src/libs/gltf/gltf_data/lv_gltf_data_internal.h:195: warning: argument 'D' of command @param is not found in the argument list of lv_gltf_data_get_radius(const lv_gltf_model_t *model)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/src/libs/gltf/gltf_data/lv_gltf_data_internal.h:195: warning: The following parameter of lv_gltf_data_get_radius(const lv_gltf_model_t *model) is not documented:
parameter 'model'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/src/misc/lv_circle_buf_private.h:109: warning: found documented return type for lv_circle_buf_reset that does not return anything
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/3d/lv_gltf_environment.h:45: warning: argument 'pointer' of command @param is not found in the argument list of lv_gltf_ibl_sampler_set_cube_map_pixel_resolution(lv_gltf_ibl_sampler_t *sampler, uint32_t resolution)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/3d/lv_gltf_environment.h:45: warning: The following parameter of lv_gltf_ibl_sampler_set_cube_map_pixel_resolution(lv_gltf_ibl_sampler_t *sampler, uint32_t resolution) is not documented:
parameter 'sampler'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/core/lv_group.h:262: warning: argument 'indev' of command @param is not found in the argument list of lv_group_get_user_data(const lv_group_t *group)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/core/lv_group.h:262: warning: The following parameter of lv_group_get_user_data(const lv_group_t *group) is not documented:
parameter 'group'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/core/lv_matrix.h:51: warning: argument 'tx' from the argument list of lv_matrix_translate has multiple @param documentation sections
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/core/lv_matrix.h:51: warning: The following parameter of lv_matrix_translate(lv_matrix_t *matrix, float tx, float ty) is not documented:
parameter 'ty'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/core/lv_matrix.h:82: warning: argument 'matrix2' of command @param is not found in the argument list of lv_matrix_multiply(lv_matrix_t *matrix, const lv_matrix_t *mul)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/core/lv_matrix.h:82: warning: The following parameter of lv_matrix_multiply(lv_matrix_t *matrix, const lv_matrix_t *mul) is not documented:
parameter 'mul'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/core/lv_obj_tree.h:252: warning: The following parameter of lv_obj_find_by_name(const lv_obj_t *parent, const char *name) is not documented:
parameter 'name'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/core/lv_obj_tree.h:265: warning: The following parameter of lv_obj_get_child_by_name(const lv_obj_t *parent, const char *name_path) is not documented:
parameter 'name_path'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/core/lv_timer.h:201: warning: argument 'destructor' of command @param is not found in the argument list of lv_timer_set_external_data(lv_timer_t *timer, void *data, void(*free_cb)(void *data))
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/core/lv_timer.h:201: warning: The following parameter of lv_timer_set_external_data(lv_timer_t *timer, void *data, void(*free_cb)(void *data)) is not documented:
parameter 'free_cb'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/debugging/lv_test_indev.h:105: warning: argument 'k' of command @param is not found in the argument list of lv_test_key_release(void)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/display/lv_display.h:273: warning: The following parameters of lv_display_set_buffers_with_stride(lv_display_t *disp, void *buf1, void *buf2, uint32_t buf_size, uint32_t stride, lv_display_render_mode_t render_mode) are not documented:
parameter 'disp'
parameter 'buf1'
parameter 'buf2'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/draw/lv_draw.h:213: warning: The following parameter of lv_draw_add_task(lv_layer_t *layer, const lv_area_t *coords, lv_draw_task_type_t type) is not documented:
parameter 'type'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/draw/lv_draw_3d.h:55: warning: The following parameter of lv_draw_3d(lv_layer_t *layer, const lv_draw_3d_dsc_t *dsc, const lv_area_t *coords) is not documented:
parameter 'coords'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/display/lv_draw_eve_display_defines.h:599: warning: argument 'linestride' of command @param is not found in the argument list of LV_EVE_BITMAP_SIZE_H(uint16_t width, uint16_t height)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/display/lv_draw_eve_display_defines.h:599: warning: The following parameter of LV_EVE_BITMAP_SIZE_H(uint16_t width, uint16_t height) is not documented:
parameter 'width'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/display/lv_ili9341.h:39: warning: argument 'send_cmd' of command @param is not found in the argument list of lv_ili9341_create(uint32_t hor_res, uint32_t ver_res, lv_lcd_flag_t flags, lv_ili9341_send_cmd_cb_t send_cmd_cb, lv_ili9341_send_color_cb_t send_color_cb)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/display/lv_ili9341.h:39: warning: argument 'send_color' of command @param is not found in the argument list of lv_ili9341_create(uint32_t hor_res, uint32_t ver_res, lv_lcd_flag_t flags, lv_ili9341_send_cmd_cb_t send_cmd_cb, lv_ili9341_send_color_cb_t send_color_cb)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/display/lv_ili9341.h:39: warning: The following parameters of lv_ili9341_create(uint32_t hor_res, uint32_t ver_res, lv_lcd_flag_t flags, lv_ili9341_send_cmd_cb_t send_cmd_cb, lv_ili9341_send_color_cb_t send_color_cb) are not documented:
parameter 'send_cmd_cb'
parameter 'send_color_cb'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/display/lv_lcd_generic_mipi.h:177: warning: argument 'send_cmd' of command @param is not found in the argument list of lv_lcd_generic_mipi_create(uint32_t hor_res, uint32_t ver_res, lv_lcd_flag_t flags, lv_lcd_send_cmd_cb_t send_cmd_cb, lv_lcd_send_color_cb_t send_color_cb)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/display/lv_lcd_generic_mipi.h:177: warning: argument 'send_color' of command @param is not found in the argument list of lv_lcd_generic_mipi_create(uint32_t hor_res, uint32_t ver_res, lv_lcd_flag_t flags, lv_lcd_send_cmd_cb_t send_cmd_cb, lv_lcd_send_color_cb_t send_color_cb)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/display/lv_lcd_generic_mipi.h:177: warning: The following parameters of lv_lcd_generic_mipi_create(uint32_t hor_res, uint32_t ver_res, lv_lcd_flag_t flags, lv_lcd_send_cmd_cb_t send_cmd_cb, lv_lcd_send_color_cb_t send_color_cb) are not documented:
parameter 'send_cmd_cb'
parameter 'send_color_cb'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/display/lv_nv3007.h:39: warning: argument 'send_cmd' of command @param is not found in the argument list of lv_nv3007_create(uint32_t hor_res, uint32_t ver_res, lv_lcd_flag_t flags, lv_nv3007_send_cmd_cb_t send_cmd_cb, lv_nv3007_send_color_cb_t send_color_cb)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/display/lv_nv3007.h:39: warning: argument 'send_color' of command @param is not found in the argument list of lv_nv3007_create(uint32_t hor_res, uint32_t ver_res, lv_lcd_flag_t flags, lv_nv3007_send_cmd_cb_t send_cmd_cb, lv_nv3007_send_color_cb_t send_color_cb)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/display/lv_nv3007.h:39: warning: The following parameters of lv_nv3007_create(uint32_t hor_res, uint32_t ver_res, lv_lcd_flag_t flags, lv_nv3007_send_cmd_cb_t send_cmd_cb, lv_nv3007_send_color_cb_t send_color_cb) are not documented:
parameter 'send_cmd_cb'
parameter 'send_color_cb'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/display/lv_st7735.h:39: warning: argument 'send_cmd' of command @param is not found in the argument list of lv_st7735_create(uint32_t hor_res, uint32_t ver_res, lv_lcd_flag_t flags, lv_st7735_send_cmd_cb_t send_cmd_cb, lv_st7735_send_color_cb_t send_color_cb)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/display/lv_st7735.h:39: warning: argument 'send_color' of command @param is not found in the argument list of lv_st7735_create(uint32_t hor_res, uint32_t ver_res, lv_lcd_flag_t flags, lv_st7735_send_cmd_cb_t send_cmd_cb, lv_st7735_send_color_cb_t send_color_cb)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/display/lv_st7735.h:39: warning: The following parameters of lv_st7735_create(uint32_t hor_res, uint32_t ver_res, lv_lcd_flag_t flags, lv_st7735_send_cmd_cb_t send_cmd_cb, lv_st7735_send_color_cb_t send_color_cb) are not documented:
parameter 'send_cmd_cb'
parameter 'send_color_cb'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/display/lv_st7789.h:39: warning: argument 'send_cmd' of command @param is not found in the argument list of lv_st7789_create(uint32_t hor_res, uint32_t ver_res, lv_lcd_flag_t flags, lv_st7789_send_cmd_cb_t send_cmd_cb, lv_st7789_send_color_cb_t send_color_cb)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/display/lv_st7789.h:39: warning: argument 'send_color' of command @param is not found in the argument list of lv_st7789_create(uint32_t hor_res, uint32_t ver_res, lv_lcd_flag_t flags, lv_st7789_send_cmd_cb_t send_cmd_cb, lv_st7789_send_color_cb_t send_color_cb)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/display/lv_st7789.h:39: warning: The following parameters of lv_st7789_create(uint32_t hor_res, uint32_t ver_res, lv_lcd_flag_t flags, lv_st7789_send_cmd_cb_t send_cmd_cb, lv_st7789_send_color_cb_t send_color_cb) are not documented:
parameter 'send_cmd_cb'
parameter 'send_color_cb'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/display/lv_st7796.h:39: warning: argument 'send_cmd' of command @param is not found in the argument list of lv_st7796_create(uint32_t hor_res, uint32_t ver_res, lv_lcd_flag_t flags, lv_st7796_send_cmd_cb_t send_cmd_cb, lv_st7796_send_color_cb_t send_color_cb)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/display/lv_st7796.h:39: warning: argument 'send_color' of command @param is not found in the argument list of lv_st7796_create(uint32_t hor_res, uint32_t ver_res, lv_lcd_flag_t flags, lv_st7796_send_cmd_cb_t send_cmd_cb, lv_st7796_send_color_cb_t send_color_cb)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/display/lv_st7796.h:39: warning: The following parameters of lv_st7796_create(uint32_t hor_res, uint32_t ver_res, lv_lcd_flag_t flags, lv_st7796_send_cmd_cb_t send_cmd_cb, lv_st7796_send_color_cb_t send_color_cb) are not documented:
parameter 'send_cmd_cb'
parameter 'send_color_cb'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/indev/lv_evdev.h:43: warning: argument 'type' of command @param is not found in the argument list of lv_evdev_create(lv_indev_type_t indev_type, const char *dev_path)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/indev/lv_evdev.h:43: warning: The following parameter of lv_evdev_create(lv_indev_type_t indev_type, const char *dev_path) is not documented:
parameter 'indev_type'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/indev/lv_evdev.h:51: warning: argument 'type' of command @param is not found in the argument list of lv_evdev_create_fd(lv_indev_type_t indev_type, int fd)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/indev/lv_evdev.h:51: warning: The following parameter of lv_evdev_create_fd(lv_indev_type_t indev_type, int fd) is not documented:
parameter 'indev_type'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/indev/lv_libinput.h:67: warning: argument 'devices' of command @param is not found in the argument list of lv_libinput_find_devs(lv_libinput_capability capabilities, char **found, size_t count, bool force_rescan)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/indev/lv_libinput.h:67: warning: The following parameter of lv_libinput_find_devs(lv_libinput_capability capabilities, char **found, size_t count, bool force_rescan) is not documented:
parameter 'found'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/indev/lv_libinput.h:78: warning: argument 'type' of command @param is not found in the argument list of lv_libinput_create(lv_indev_type_t indev_type, const char *dev_path)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/indev/lv_libinput.h:78: warning: The following parameter of lv_libinput_create(lv_indev_type_t indev_type, const char *dev_path) is not documented:
parameter 'indev_type'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/opengles/lv_opengles_driver.h:48: warning: The following parameter of lv_opengles_render_texture(unsigned int texture, const lv_area_t *texture_area, lv_opa_t opa, int32_t disp_w, int32_t disp_h, const lv_area_t *texture_clip_area, bool h_flip, bool v_flip) is not documented:
parameter 'texture_clip_area'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/wayland/lv_wayland_window.h:82: warning: argument 'fullscreen' of command @param is not found in the argument list of lv_wayland_window_set_maximized(lv_display_t *disp, bool maximize)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/drivers/wayland/lv_wayland_window.h:82: warning: The following parameter of lv_wayland_window_set_maximized(lv_display_t *disp, bool maximize) is not documented:
parameter 'maximize'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/font/lv_freetype.h:99: warning: Found unknown command '@lv_freetype_font_render_mode_t'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/font/lv_freetype.h:114: warning: argument 'cb' of command @param is not found in the argument list of lv_freetype_outline_add_event(lv_event_cb_t event_cb, lv_event_code_t filter, void *user_data)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/font/lv_freetype.h:114: warning: The following parameters of lv_freetype_outline_add_event(lv_event_cb_t event_cb, lv_event_code_t filter, void *user_data) are not documented:
parameter 'event_cb'
parameter 'filter'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/fs/lv_fs.h:263: warning: argument 'filename' of command @param is not found in the argument list of lv_fs_load_with_alloc(const char *path, uint32_t *size)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/fs/lv_fs.h:263: warning: The following parameter of lv_fs_load_with_alloc(const char *path, uint32_t *size) is not documented:
parameter 'path'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/indev/lv_indev_gesture.h:178: warning: The following parameter of lv_indev_set_gesture_data(lv_indev_data_t *data, lv_indev_gesture_recognizer_t *recognizer, lv_indev_gesture_type_t type) is not documented:
parameter 'type'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/indev/lv_indev_gesture.h:187: warning: argument 'gesture_event' of command @param is not found in the argument list of lv_indev_get_gesture_center_point(lv_indev_gesture_recognizer_t *recognizer, lv_point_t *point)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/indev/lv_indev_gesture.h:187: warning: The following parameter of lv_indev_get_gesture_center_point(lv_indev_gesture_recognizer_t *recognizer, lv_point_t *point) is not documented:
parameter 'recognizer'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/indev/lv_indev_gesture.h:194: warning: The following parameter of lv_event_get_gesture_state(lv_event_t *gesture_event, lv_indev_gesture_type_t type) is not documented:
parameter 'type'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/lvgl.h:225: warning: explicit link request to 'if' could not be resolved
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/lvgl.h:227: warning: explicit link request to 'endif' could not be resolved
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/lvgl.h:231: warning: explicit link request to 'if' could not be resolved
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/lvgl.h:233: warning: explicit link request to 'endif' could not be resolved
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/lvgl.h:237: warning: explicit link request to 'if' could not be resolved
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/lvgl.h:239: warning: explicit link request to 'endif' could not be resolved
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_gltf.h:383: warning: argument 'screen_y' of command @param is not found in the argument list of lv_intersect_ray_with_plane(const lv_3dray_t *ray, const lv_3dplane_t *plane, lv_3dpoint_t *collision_point)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_gltf.h:383: warning: The following parameter of lv_intersect_ray_with_plane(const lv_3dray_t *ray, const lv_3dplane_t *plane, lv_3dpoint_t *collision_point) is not documented:
parameter 'plane'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_gltf.h:410: warning: argument 'lv_point_t' of command @param is not found in the argument list of lv_gltf_world_to_screen(lv_obj_t *obj, const lv_3dpoint_t world_pos, lv_point_t *screen_pos)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_gltf.h:410: warning: The following parameter of lv_gltf_world_to_screen(lv_obj_t *obj, const lv_3dpoint_t world_pos, lv_point_t *screen_pos) is not documented:
parameter 'screen_pos'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_image.h:230: warning: explicit link request to 'lv' could not be resolved
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_scale.h:146: warning: argument 'min' of command @param is not found in the argument list of lv_scale_set_max_value(lv_obj_t *obj, int32_t max)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_scale.h:146: warning: The following parameter of lv_scale_set_max_value(lv_obj_t *obj, int32_t max) is not documented:
parameter 'max'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_scale.h:153: warning: argument 'max_angle' of command @param is not found in the argument list of lv_scale_set_angle_range(lv_obj_t *obj, uint32_t angle_range)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_scale.h:153: warning: The following parameter of lv_scale_set_angle_range(lv_obj_t *obj, uint32_t angle_range) is not documented:
parameter 'angle_range'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_scale.h:236: warning: argument 'range_min' of command @param is not found in the argument list of lv_scale_section_set_range(lv_scale_section_t *section, int32_t min, int32_t max)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_scale.h:236: warning: argument 'range_max' of command @param is not found in the argument list of lv_scale_section_set_range(lv_scale_section_t *section, int32_t min, int32_t max)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_scale.h:236: warning: The following parameters of lv_scale_section_set_range(lv_scale_section_t *section, int32_t min, int32_t max) are not documented:
parameter 'min'
parameter 'max'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_scale.h:245: warning: argument 'range_min' of command @param is not found in the argument list of lv_scale_set_section_range(lv_obj_t *scale, lv_scale_section_t *section, int32_t min, int32_t max)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_scale.h:245: warning: argument 'range_max' of command @param is not found in the argument list of lv_scale_set_section_range(lv_obj_t *scale, lv_scale_section_t *section, int32_t min, int32_t max)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_scale.h:245: warning: The following parameters of lv_scale_set_section_range(lv_obj_t *scale, lv_scale_section_t *section, int32_t min, int32_t max) are not documented:
parameter 'min'
parameter 'max'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_slider.h:168: warning: argument 'obj' of command @param is not found in the argument list of lv_slider_get_orientation(lv_obj_t *slider)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_slider.h:168: warning: The following parameter of lv_slider_get_orientation(lv_obj_t *slider) is not documented:
parameter 'slider'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_span.h:158: warning: argument 'span' from the argument list of lv_span_set_text_static has multiple @param documentation sections
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_span.h:158: warning: argument 'text' from the argument list of lv_span_set_text_static has multiple @param documentation sections
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_tileview.h:49: warning: argument 'parent' of command @param is not found in the argument list of lv_tileview_set_tile(lv_obj_t *tv, lv_obj_t *tile_obj, lv_anim_enable_t anim_en)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_tileview.h:49: warning: The following parameter of lv_tileview_set_tile(lv_obj_t *tv, lv_obj_t *tile_obj, lv_anim_enable_t anim_en) is not documented:
parameter 'tv'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_win.h:37: warning: argument 'obj' of command @param is not found in the argument list of lv_win_add_title(lv_obj_t *win, const char *txt)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_win.h:37: warning: The following parameter of lv_win_add_title(lv_obj_t *win, const char *txt) is not documented:
parameter 'win'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_win.h:45: warning: argument 'obj' of command @param is not found in the argument list of lv_win_add_button(lv_obj_t *win, const void *icon, int32_t btn_w)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/include/lvgl/widgets/lv_win.h:45: warning: The following parameter of lv_win_add_button(lv_obj_t *win, const void *icon, int32_t btn_w) is not documented:
parameter 'win'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/src/draw/lv_draw_vector_private.h:121: warning: argument 'user_data' of command @param is not found in the argument list of lv_vector_for_each_destroy_tasks(lv_ll_t *task_list, vector_draw_task_cb cb, void *used_data)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/src/draw/lv_draw_vector_private.h:121: warning: The following parameter of lv_vector_for_each_destroy_tasks(lv_ll_t *task_list, vector_draw_task_cb cb, void *used_data) is not documented:
parameter 'used_data'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/src/draw/sw/blend/lv_draw_sw_blend.h:46: warning: argument 'draw_unit' of command @param is not found in the argument list of lv_draw_sw_blend(lv_draw_task_t *t, const lv_draw_sw_blend_dsc_t *dsc)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/src/draw/sw/blend/lv_draw_sw_blend.h:46: warning: The following parameter of lv_draw_sw_blend(lv_draw_task_t *t, const lv_draw_sw_blend_dsc_t *dsc) is not documented:
parameter 't'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/src/draw/sw/lv_draw_sw.h:124: warning: argument 'coords' of command @param is not found in the argument list of lv_draw_sw_mask_rect(lv_draw_task_t *t, const lv_draw_mask_rect_dsc_t *dsc)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/src/draw/vg_lite/lv_vg_lite_stroke.h:40: warning: The following parameter of lv_vg_lite_stroke_init(struct _lv_draw_vg_lite_unit_t *unit, uint32_t cache_cnt) is not documented:
parameter 'cache_cnt'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/src/draw/vg_lite/lv_vg_lite_stroke.h:70: warning: argument 'stroke' of command @param is not found in the argument list of lv_vg_lite_stroke_drop(struct _lv_draw_vg_lite_unit_t *unit, lv_cache_entry_t *cache_entry)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/src/draw/vg_lite/lv_vg_lite_stroke.h:70: warning: The following parameter of lv_vg_lite_stroke_drop(struct _lv_draw_vg_lite_unit_t *unit, lv_cache_entry_t *cache_entry) is not documented:
parameter 'cache_entry'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/src/drivers/opengles/lv_opengles_private.h:146: warning: The following parameter of lv_opengles_render_texture_rbswap(unsigned int texture, const lv_area_t *texture_area, lv_opa_t opa, int32_t disp_w, int32_t disp_h, const lv_area_t *texture_clip_area, bool h_flip, bool v_flip) is not documented:
parameter 'texture_clip_area'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/src/font/font_manager/lv_font_manager_recycle.h:61: warning: The following parameter of lv_font_manager_recycle_set_reuse(lv_font_manager_recycle_t *manager, lv_font_t *font, const lv_font_info_t *ft_info) is not documented:
parameter 'font'
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/src/libs/gltf/gltf_data/lv_gltf_data_internal.h:195: warning: argument 'D' of command @param is not found in the argument list of lv_gltf_data_get_radius(const lv_gltf_model_t *model)
WARNING: /home/kisvegabor/projects/lvgl/eclipse-workspace/lv_port_pc_eclipse/lvgl/src/libs/gltf/gltf_data/lv_gltf_data_internal.h:195: warning: The following parameter of lv_gltf_data_get_radius(const lv_gltf_model_t *model) is not documented:
parameter 'model'
+14 -15
View File
@@ -60,33 +60,33 @@ in `lv_conf.h`.
The object hierarchy of a freshly-created File Explorer looks like this:
- `File Explorer`: occupies full area of parent Widget, typically a Screen (Flex-Flow COLUMN)
- `Container`: occupies full area of File Explorer (Flex grow 1)
- `Quick-Access Panel`:
- `Device List`: grows to accommodate children
- `File System`: button
- `Places List`: grows to accommodate children
- `HOME`: button
- `Video`: button
- `Pictures`: button
- `Music`: button
- `Documents`: button
- `Browser Panel`:
- `Header`: 14% of `Browser Panel` height
- `Current Path`: label
- `File Table`: with 1 column, 86% of `Browser Panel` height
- Fields:
- `home_dir` = NULL
- `video_dir` = NULL
- `pictures_dir` = NULL
@@ -150,11 +150,11 @@ These are the possible sorting methods:
## Events
- <ApiLink name="LV_EVENT_READY" /> Sent when a directory is opened, which can happen:
- when the File Explorer is initially opened,
- after a user clicks on a `Quick-Access Panel` navigation button, and
- after the user clicks on a directory displayed in the `Browser Panel`.
You can use it to, for example, customize the file sort.
- <ApiLink name="LV_EVENT_VALUE_CHANGED" /> Sent once when any item (file) in the
`Browser Panel`'s file list is clicked.
@@ -198,4 +198,3 @@ through functions such as <ApiLink name="strcpy" /> and <ApiLink name="strcat" /
<LvglExample name="lv_example_file_explorer_3" path="others/file_explorer/lv_example_file_explorer_3" />
## API
-1
View File
@@ -80,4 +80,3 @@ lv_fragment_manager_pop(manager);
<LvglExample name="lv_example_fragment_2" path="others/fragment/lv_example_fragment_2" />
## API
@@ -318,4 +318,3 @@ not the original Widget. To get the original target call
<LvglExample name="lv_example_event_draw" path="event/lv_example_event_draw" />
## API
+1 -2
View File
@@ -54,7 +54,7 @@ There are three explicit ways to change a Widget's layer position (Z-order) amon
Widgets that share the same parent:
- Use <ApiLink name="lv_obj_move_to_index" display="lv_obj_move_to_index(widget, idx)" /> to move a Widget to a new index.
:0: Background
:child_count - 1: Foreground
:&lt; 0: Count down from the top (-1 = topmost).
@@ -65,4 +65,3 @@ Widgets that share the same parent:
- When <ApiLink name="lv_obj_set_parent" display="lv_obj_set_parent(widget, new_parent)" /> is used, `widget` will
become the foremost child of `new_parent`.
## API
@@ -32,6 +32,10 @@ with <ApiLink name="LV_USE_FLEX" /> in `lv_conf.h`.
See CSS Flexbox for illustrations showing the meanings of these terms.
<Callout type="info" title="Further Reading">
Learn more about CSS Flexbox.
</Callout>
## Simple Interface
Use the following functions to set and control the Flex layout on any parent Widget.
@@ -44,6 +48,8 @@ not already.
### Flex flow
<LvglExample name="lv_example_flex_flow" path="layouts/flex/flex_flow/lv_example_flex_flow" />
<ApiLink name="lv_obj_set_flex_flow" display="lv_obj_set_flex_flow(widget, flex_flow)" />
The possible values for `flex_flow` are:
@@ -62,6 +68,8 @@ by combining flex-direction_ and flex-wrap_ as defined under flex-flow_.
### Flex align
<LvglExample name="lv_example_flex_align" path="layouts/flex/flex_align/lv_example_flex_align" />
To manage placement of children use
<ApiLink name="lv_obj_set_flex_align" display="lv_obj_set_flex_align(widget, main_place, cross_place, track_cross_place)" />
which makes the parent Widget model the Flex-container behavior defined [here](justify-content_).
@@ -98,6 +106,8 @@ See justify-content_, align-items_ and align-content_ for illustrations of these
### Flex grow
<LvglExample name="lv_example_flex_grow" path="layouts/flex/flex_grow/lv_example_flex_grow" />
Flex grow can be used to make one or more children fill available space in the track.
When more than one child Widget have non-zero grow values, all available space will
be distributed in proportion to their respective grow values. For example, if there
@@ -130,6 +140,8 @@ The following flex related style properties exist:
### Internal padding
<LvglExample name="lv_example_flex_internal_padding" path="layouts/flex/flex_internal_padding/lv_example_flex_internal_padding" />
To modify the minimum space flexbox inserts between Widgets, the
following functions can be used to set the flex container padding style:
@@ -139,9 +151,9 @@ following functions can be used to set the flex container padding style:
These can, for example, be used if you do not want any padding between
Widgets: <ApiLink name="lv_style_set_pad_column" display="lv_style_set_pad_column(&row_container_style, 0)" />
## Other Features
### Right-to-Left writing direction (RTL)
### RTL
<LvglExample name="lv_example_flex_rtl" path="layouts/flex/flex_rtl/lv_example_flex_rtl" />
If the base direction of the container is set the
<ApiLink name="LV_BASE_DIR_RTL" /> the meaning of
@@ -152,16 +164,32 @@ If the base direction of the container is set the
The items on `ROW` layouts, and tracks of `COLUMN` layouts will be
placed from right to left.
### New track
## Forcing a New Track
<LvglExample name="lv_example_flex_new_track" path="layouts/flex/flex_new_track/lv_example_flex_new_track" />
You can force Flex to put an item into a new line with
<ApiLink name="lv_obj_add_flag" display="lv_obj_add_flag(child, LV_OBJ_FLAG_FLEX_IN_NEW_TRACK)" />.
<Callout type="info" title="Further Reading">
Learn more about CSS Flexbox.
</Callout>
## Ignoring layout
### Edge cases and notes
<LvglExample name="lv_example_flex_ignore_layout" path="layouts/flex/flex_ignore_layout/lv_example_flex_ignore_layout" />
A child can opt out of flex positioning entirely by setting the
<ApiLink name="LV_OBJ_FLAG_IGNORE_LAYOUT" /> flag:
```c
lv_obj_add_flag(child, LV_OBJ_FLAG_IGNORE_LAYOUT);
```
When set, the flex algorithm skips that child — it does not occupy a flex slot
and the remaining children close the gap as if it were absent. The child keeps
whatever position was set manually with `lv_obj_set_pos()`. This is useful for
overlay elements (badges, tooltips, decorations) that should float above the
flex content without disturbing the normal flow.
## Edge cases and notes
The following behaviors clarify interactions between flex grow, wrapping and size constraints:
@@ -181,30 +209,3 @@ The following behaviors clarify interactions between flex grow, wrapping and siz
- Gaps with zero-size grow: Padding/gap is still applied even if a grown item ends up
with zero size on the main axis; this matches CSS flex behavior.
## Examples
### A simple row and a column layout with flexbox
<LvglExample name="lv_example_flex_1" path="layouts/flex/lv_example_flex_1" />
### Arrange items in rows with wrap and even spacing
<LvglExample name="lv_example_flex_2" path="layouts/flex/lv_example_flex_2" />
### Demonstrate flex grow
<LvglExample name="lv_example_flex_3" path="layouts/flex/lv_example_flex_3" />
### Demonstrate flex grow
<LvglExample name="lv_example_flex_4" path="layouts/flex/lv_example_flex_4" />
### Demonstrate column and row gap style properties
<LvglExample name="lv_example_flex_5" path="layouts/flex/lv_example_flex_5" />
### RTL base direction changes order of the items
<LvglExample name="lv_example_flex_6" path="layouts/flex/lv_example_flex_6" />
## API
@@ -38,6 +38,8 @@ Grid container if it is not already.
### Grid descriptors
<LvglExample name="lv_example_grid_descriptors" path="layouts/grid/grid_descriptors/lv_example_grid_descriptors" />
First you need to describe the size of rows and columns. It can be done
by declaring 2 arrays and the track sizes in them. The last element must
be <ApiLink name="LV_GRID_TEMPLATE_LAST" />.
@@ -55,12 +57,16 @@ To set the descriptors on a parent use
Besides settings the sizes in pixels, you can use two special
values:
<LvglExample name="lv_example_grid_fr" path="layouts/grid/grid_fr/lv_example_grid_fr" />
- <ApiLink name="LV_GRID_CONTENT" /> sets size to fit the largest child on this track
- <ApiLink name="LV_GRID_FR" display="LV_GRID_FR(X)" /> determines what portion of the remaining space
should be used by this track. Larger values means larger space.
### Grid items
<LvglExample name="lv_example_grid_cell_span" path="layouts/grid/grid_cell_span/lv_example_grid_cell_span" />
By default, a Widget's children are not added to the grid. They need to be
added manually to a cell.
@@ -80,6 +86,8 @@ from the start cell. Must be `>= 1`.
### Grid align
<LvglExample name="lv_example_grid_align" path="layouts/grid/grid_align/lv_example_grid_align" />
If there is some empty space, items (Widgets) in Grid tracks can be aligned in several ways:
- <ApiLink name="LV_GRID_ALIGN_START" />: means left when direction is horizontal and top when vertical. (default)
@@ -99,7 +107,9 @@ If there is some empty space, items (Widgets) in Grid tracks can be aligned in s
To set the track's alignment use
<ApiLink name="lv_obj_set_grid_align" display="lv_obj_set_grid_align(widget, column_align, row_align)" />.
### Sub grid
## Sub grid
<LvglExample name="lv_example_grid_subgrid" path="layouts/grid/grid_subgrid/lv_example_grid_subgrid" />
If you set the column and/or row grid descriptors of a widget to `NULL` it will use
the grid descriptor(s) from it's parent.
@@ -139,7 +149,9 @@ The following Grid-related style properties exist:
- <ApiLink name="GRID_CELL_ROW_POS" />
- <ApiLink name="GRID_CELL_ROW_SPAN" />
### Internal padding
## Internal padding
<LvglExample name="lv_example_grid_internal_padding" path="layouts/grid/grid_internal_padding/lv_example_grid_internal_padding" />
To modify the minimum space Grid inserts between Widgets, the following
properties can be set on the Grid container style:
@@ -147,9 +159,10 @@ properties can be set on the Grid container style:
- <ApiLink name="lv_style_set_pad_row" /> sets padding between rows.
- <ApiLink name="lv_style_set_pad_column" /> sets padding between columns.
## Other features
### RTL
## Right-to-Left writing direction (RTL)
<LvglExample name="lv_example_grid_rtl" path="layouts/grid/grid_rtl/lv_example_grid_rtl" />
If the base direction of the container is set to <ApiLink name="LV_BASE_DIR_RTL" />,
the meaning of <ApiLink name="LV_GRID_ALIGN_START" /> and <ApiLink name="LV_GRID_ALIGN_END" /> is
@@ -157,6 +170,21 @@ swapped. I.e. `START` will mean right-most.
The columns will be placed from right to left.
## Ignoring layout
<LvglExample name="lv_example_grid_ignore_layout" path="layouts/grid/grid_ignore_layout/lv_example_grid_ignore_layout" />
To opt a child out of Grid positioning, set
<ApiLink name="LV_OBJ_FLAG_IGNORE_LAYOUT" /> on that child:
```c
lv_obj_add_flag(child, LV_OBJ_FLAG_IGNORE_LAYOUT);
```
When this flag is set, Grid skips the child completely. It does not occupy a
grid cell and keeps its manually set position, which is useful for overlays
or decorative elements.
### Edge cases and notes
- Min/max as content or percent: Child Widgets can set min/max width/height to
@@ -169,30 +197,3 @@ The columns will be placed from right to left.
- Learn more about CSS Subgrid layout.
</Callout>
## Examples
### A simple grid
<LvglExample name="lv_example_grid_1" path="layouts/grid/lv_example_grid_1" />
### Demonstrate cell placement and span
<LvglExample name="lv_example_grid_2" path="layouts/grid/lv_example_grid_2" />
### Demonstrate grid's -free unit-
<LvglExample name="lv_example_grid_3" path="layouts/grid/lv_example_grid_3" />
### Demonstrate track placement
<LvglExample name="lv_example_grid_4" path="layouts/grid/lv_example_grid_4" />
### Demonstrate column and row gap
<LvglExample name="lv_example_grid_5" path="layouts/grid/lv_example_grid_5" />
### Demonstrate RTL direction on grid
<LvglExample name="lv_example_grid_6" path="layouts/grid/lv_example_grid_6" />
## API
@@ -9,7 +9,7 @@ properties of Widgets. It's intended use is to:
- simplify (decreasing development time) writing bindings for LVGL in another
language, such as:
- Micropython,
- Lua,
- Python,
@@ -17,7 +17,7 @@ properties of Widgets. It's intended use is to:
- .NET
- make it possible to control the UI (or parts of it, e.g. animation) via external
input, without modifying firmware, such as:
- an external text file (YAML, JSON, XML, custom)
- any external input source (e.g. serial)
@@ -241,4 +241,3 @@ dynamically-loaded library) may need additional code to convert values from thei
local data type (e.g. dict, table, etc.) to a C struct before passing it to the
<ApiLink name="lv_obj_set_property" /> function.
## API
@@ -86,4 +86,3 @@ animation starts after `delay` time.
All input device events (e.g. touch, keys, etc) are disabled during the Screen's
animation.
## API
+149 -245
View File
@@ -5,324 +5,228 @@ description: "In LVGL scrolling works very intuitively: if a Widget is outside i
## Overview
In LVGL scrolling works very intuitively: if a Widget is outside its
parent content area (the size without padding), the parent becomes
scrollable and scrollbar(s) will appear. That's it.
<LvglExample name="lv_example_scroll_overview" path="scroll/scroll_overview/lv_example_scroll_overview" />
Any Widget can be scrollable including [base widget](/widgets/base_widget), `lv_image`,
`lv_button`, `lv_meter`, etc
In LVGL scrolling works very intuitively: if a Widget is outside its parent
content area (the size without padding), the parent becomes scrollable and
scrollbar(s) will appear. No scroll-specific API is required — content that
overflows is enough.
The Widget can either be scrolled horizontally or vertically in one
stroke; diagonal scrolling is not possible.
Any Widget can be scrollable, including the [base widget](/widgets/base_widget),
`lv_image`, `lv_button`, etc. A Widget scrolls either horizontally or
vertically in one stroke; diagonal scrolling is not possible.
### Scrollbar
## Scrollbar
##### Mode
### Mode
Scrollbars are displayed according to the configured `scrollbar-mode`. The
following modes are available:
<LvglExample name="lv_example_scroll_scrollbar_mode" path="scroll/scroll_scrollbar_mode/lv_example_scroll_scrollbar_mode" />
- <ApiLink name="LV_SCROLLBAR_MODE_OFF" />: Never show the scrollbars
- <ApiLink name="LV_SCROLLBAR_MODE_ON" />: Always show the scrollbars
- <ApiLink name="LV_SCROLLBAR_MODE_ACTIVE" />: Show scroll bars while a Widget is being scrolled
- <ApiLink name="LV_SCROLLBAR_MODE_AUTO" />: Show scroll bars when the content is large enough to be scrolled
The scrollbar is shown according to the configured mode, set with
<ApiLink name="lv_obj_set_scrollbar_mode" display="lv_obj_set_scrollbar_mode(widget, LV_SCROLLBAR_MODE_...)" />:
<ApiLink name="lv_obj_set_scrollbar_mode" display="lv_obj_set_scrollbar_mode(widget, LV_SCROLLBAR_MODE_...)" /> sets the scrollbar mode on a Widget.
- <ApiLink name="LV_SCROLLBAR_MODE_OFF" /> — never show the scrollbar.
- <ApiLink name="LV_SCROLLBAR_MODE_ON" /> — always show the scrollbar.
- <ApiLink name="LV_SCROLLBAR_MODE_ACTIVE" /> — show it only while the Widget is being scrolled.
- <ApiLink name="LV_SCROLLBAR_MODE_AUTO" /> — show it only when the content is large enough to scroll.
##### Styling
### Styling
A Scrollbar is a dedicated part of a Widget, called
<ApiLink name="LV_PART_SCROLLBAR" />. For example, a scrollbar can turn to red like
this:
<LvglExample name="lv_example_scroll_scrollbar_style" path="scroll/scroll_scrollbar_style/lv_example_scroll_scrollbar_style" />
The scrollbar is a dedicated part of every scrollable Widget,
<ApiLink name="LV_PART_SCROLLBAR" />. Add a style to that part to recolor or
resize it:
```c
static lv_style_t style_red;
lv_style_init(&style_red);
lv_style_set_bg_color(&style_red, lv_color_red());
...
lv_obj_add_style(widget, &style_red, LV_PART_SCROLLBAR);
```
A Widget goes to the <ApiLink name="LV_STATE_SCROLLED" /> state while it's being
scrolled. This allows adding different styles to the Widget that will be effective
while it is being scrolled. For example, this code makes the scrollbar blue while
the Widget is being scrolled:
A Widget enters the <ApiLink name="LV_STATE_SCROLLED" /> state while it is being
scrolled, so a style added to `LV_PART_SCROLLBAR | LV_STATE_SCROLLED` takes
effect only during scrolling.
```c
static lv_style_t style_blue;
lv_style_init(&style_blue);
lv_style_set_bg_color(&style_blue, lv_color_blue());
`pad_left/right/top/bottom` set the spacing around the scrollbar, `width` sets
its thickness, and `length` sets its length. If `length` is `0` it is sized
automatically from the content. The minimum length is fixed to 10; the maximum
is the Widget's height or width depending on the scrollbar's orientation.
...
### Right-to-left scrolling
lv_obj_add_style(widget, &style_blue, LV_STATE_SCROLLED | LV_PART_SCROLLBAR);
```
<LvglExample name="lv_example_scroll_rtl" path="scroll/scroll_rtl/lv_example_scroll_rtl" />
If the base direction of the <ApiLink name="LV_PART_SCROLLBAR" /> is RTL
(<ApiLink name="LV_BASE_DIR_RTL" />) the vertical scrollbar will be placed on the left.
Note that, the `base_dir` style property is inherited. Therefore, it
can be set directly on the <ApiLink name="LV_PART_SCROLLBAR" /> part of a Widget, or
on the Widget's LV_PART_MAIN part, or that of any of its parents, to make a scrollbar
inherit the base direction.
When the base direction is <ApiLink name="LV_BASE_DIR_RTL" />, the vertical
scrollbar is placed on the left side. `base_dir` is inherited, so it can be set
on the <ApiLink name="LV_PART_SCROLLBAR" /> part, on the Widget's
`LV_PART_MAIN`, or on any parent.
`pad_left/right/top/bottom` sets the spacing around the scrollbars,
`width` sets the scrollbar's width and `length` sets the scrollbar's length:
If `length` is not set or left at `0` the scrollbar's length will be set automatically
according to the length of the content.
## Scrolling events
```c
static lv_style_t style_scrollbar;
lv_style_init(&style_scrollbar);
lv_style_set_pad_left(&style_scrollbar, 2);
lv_style_set_pad_right(&style_scrollbar, 2);
lv_style_set_pad_top(&style_scrollbar, 2);
lv_style_set_pad_bottom(&style_scrollbar, 2);
lv_style_set_width(&style_scrollbar, 10);
lv_style_set_length(&style_scrollbar, 50);
The following events are emitted while scrolling:
...
- <ApiLink name="LV_EVENT_SCROLL_BEGIN" /> — scrolling has begun. The event
parameter is `NULL` or an `lv_anim_t *` scroll-animation descriptor that may
be modified.
- <ApiLink name="LV_EVENT_SCROLL_END" /> — scrolling has ended.
- <ApiLink name="LV_EVENT_SCROLL" /> — the scroll position changed; sent on
every position change.
lv_obj_add_style(widget, &style_scrollbar, LV_PART_SCROLLBAR);
```
<LvglExample name="lv_example_scroll_events" path="scroll/lv_example_scroll_events" />
The minimum length of the scrollbar is fixed to 10, while its maximum length is limited by the
Widget's height or width, depending on whether the scrollbar is vertical or horizontal. Any length value
set outside of these limits will automatically result in a length fixed to either limit.
Any scroll coordinate can be read from the callback (see
[Scrolling programmatically](#scrolling-programmatically)) to drive other UI.
### Scrolling Events
### Transforming children while scrolling
The following events are emitted as part of scrolling:
<LvglExample name="lv_example_scroll_translate" path="scroll/lv_example_scroll_translate" />
- <ApiLink name="LV_EVENT_SCROLL_BEGIN" />: Signals that scrolling has begun. The
event parameter is `NULL` or an `lv_anim_t *` with a scroll animation
descriptor that can be modified if required.
- <ApiLink name="LV_EVENT_SCROLL_END" />: Signals that scrolling has ended.
- <ApiLink name="LV_EVENT_SCROLL" />: Signals that the scrolling position changed;
triggered on every position change.
Because `LV_EVENT_SCROLL` fires on every position change, the handler can
reposition or restyle children relative to the viewport — here each child is
projected onto a circle and faded with distance, an effect the declarative
style layer cannot express.
## Features of Scrolling
## Scrollable
Besides, managing "normal" scrolling there are many interesting and
useful additional features.
<LvglExample name="lv_example_scroll_scrollable" path="scroll/scroll_scrollable/lv_example_scroll_scrollable" />
### Scrollable
A Widget can be made non-scrollable by clearing its
<ApiLink name="LV_OBJ_FLAG_SCROLLABLE" /> flag with
<ApiLink name="lv_obj_remove_flag" display="lv_obj_remove_flag(widget, LV_OBJ_FLAG_SCROLLABLE)" />
(XML: `scrollable="false"`). Overflowing content is then simply clipped.
Non-scrollable Widgets can still propagate scrolling to their parents.
It is possible to make a Widget non-scrollable with
<ApiLink name="lv_obj_remove_flag" display="lv_obj_remove_flag(widget, LV_OBJ_FLAG_SCROLLABLE)" />.
The scrollable direction is controlled by
<ApiLink name="lv_obj_set_scroll_dir" display="lv_obj_set_scroll_dir(widget, LV_DIR_...)" />:
Non-scrollable Widgets can still propagate the scrolling (chain) to
their parents.
- <ApiLink name="LV_DIR_TOP" />, <ApiLink name="LV_DIR_BOTTOM" />,
<ApiLink name="LV_DIR_LEFT" />, <ApiLink name="LV_DIR_RIGHT" /> — one side only.
- <ApiLink name="LV_DIR_HOR" />, <ApiLink name="LV_DIR_VER" /> — one axis.
- <ApiLink name="LV_DIR_ALL" /> — any direction.
The direction in which scrolling happens can be controlled by
<ApiLink name="lv_obj_set_scroll_dir" display="lv_obj_set_scroll_dir(widget, LV_DIR_...)" />.
OR-ed values are possible, e.g. <ApiLink name="LV_DIR_TOP" display="LV_DIR_TOP | LV_DIR_LEFT" />.
The following values can be used for the direction:
## Scroll chaining
- <ApiLink name="LV_DIR_TOP" />: only scroll up
- <ApiLink name="LV_DIR_LEFT" />: only scroll left
- <ApiLink name="LV_DIR_BOTTOM" />: only scroll down
- <ApiLink name="LV_DIR_RIGHT" />: only scroll right
- <ApiLink name="LV_DIR_HOR" />: only scroll horizontally
- <ApiLink name="LV_DIR_VER" />: only scroll vertically
- <ApiLink name="LV_DIR_ALL" />: scroll any directions
<LvglExample name="lv_example_scroll_chain" path="scroll/scroll_chain/lv_example_scroll_chain" />
OR-ed values are also possible. E.g. <ApiLink name="LV_DIR_TOP" display="LV_DIR_TOP | LV_DIR_LEFT" />.
If a Widget can't be scrolled further, the additional scroll is propagated to
its parent and continues up to the [Screen](/common-widget-features/screens).
This is called *scroll chaining* and is controlled by the
`LV_OBJ_FLAG_SCROLL_CHAIN_HOR/VER` flags (XML: `scroll_chain`). With chaining
disabled, propagation stops at the Widget and the parent does not move.
### Scroll chaining
## Scroll momentum and elastic scroll
If a Widget can't be scrolled further (e.g. its content has reached the
bottom-most position), additional scrolling is propagated to its parent.
If the parent can be scrolled in that direction than it will be scrolled
instead. It continues propagating up the Widget's parent hierarchy up to
the [Screen](/common-widget-features/screens).
<LvglExample name="lv_example_scroll_properties" path="scroll/lv_example_scroll_properties" />
The propagation on scrolling is called "scroll chaining" and it can be
enabled/disabled with `LV_OBJ_FLAG_SCROLL_CHAIN_HOR/VER` flag. If
chaining is disabled the propagation stops on the Widget and the
parent(s) won't be scrolled.
These behaviors only reveal themselves through interaction, so one example
toggles them live on a list:
### Scroll momentum
- <ApiLink name="LV_OBJ_FLAG_SCROLL_MOMENTUM" /> — when the user "throws" the
Widget, scrolling continues and slows down smoothly.
- <ApiLink name="LV_OBJ_FLAG_SCROLL_ELASTIC" /> — the content can be
over-scrolled past its edge with resistance, then animates back when
released.
- <ApiLink name="LV_OBJ_FLAG_SCROLLABLE" /> and the chaining flag from the
previous section are toggled in the same example.
When the user scrolls a Widget and releases it, LVGL can emulate
inertial momentum for the scrolling. It's like the Widget was "thrown"
and scrolling slows down smoothly.
## Snapping
Scroll momentum can be enabled/disabled with the
<ApiLink name="LV_OBJ_FLAG_SCROLL_MOMENTUM" /> flag.
<LvglExample name="lv_example_scroll_snap" path="scroll/scroll_snap/lv_example_scroll_snap" />
### Elastic scroll
Children can be snapped to a position when scrolling ends. Make a child
snappable with the <ApiLink name="LV_OBJ_FLAG_SNAPPABLE" /> flag (XML:
`snappable`), and choose the alignment with
<ApiLink name="lv_obj_set_scroll_snap_x" display="lv_obj_set_scroll_snap_x(widget, LV_SCROLL_SNAP_...)" />
or <ApiLink name="lv_obj_set_scroll_snap_y" display="lv_obj_set_scroll_snap_y(widget, LV_SCROLL_SNAP_...)" />:
Normally a Widget can't be scrolled past the extremities of its
content. That is, the top side of the content can't be below the top side
of the Widget, and vice versa for the bottom side.
- <ApiLink name="LV_SCROLL_SNAP_NONE" /> — snapping disabled (default).
- <ApiLink name="LV_SCROLL_SNAP_START" /> — align to the left/top side.
- <ApiLink name="LV_SCROLL_SNAP_END" /> — align to the right/bottom side.
- <ApiLink name="LV_SCROLL_SNAP_CENTER" /> — align to the center.
However, with <ApiLink name="LV_OBJ_FLAG_SCROLL_ELASTIC" /> a fancy effect is added
when the user "over-scrolls" the content. The scrolling slows down, and
the content can be scrolled inside the Widget. When the Widget is
released the content scrolled in it is animated back to the closest valid
position.
### Snapping
The children of a Widget can be snapped according to specific rules
when scrolling ends. Children can be made snappable individually with
the <ApiLink name="LV_OBJ_FLAG_SNAPPABLE" /> flag.
A Widget can align snapped children in four ways:
- <ApiLink name="LV_SCROLL_SNAP_NONE" />: Snapping is disabled. (default)
- <ApiLink name="LV_SCROLL_SNAP_START" />: Align the children to the left/top side of a scrolled Widget
- <ApiLink name="LV_SCROLL_SNAP_END" />: Align the children to the right/bottom side of a scrolled Widget
- <ApiLink name="LV_SCROLL_SNAP_CENTER" />: Align the children to the center of a scrolled Widget
Snap alignment is set with
<ApiLink name="lv_obj_set_scroll_snap_x" display="lv_obj_set_scroll_snap_x(widget, LV_SCROLL_SNAP_...)" /> and
<ApiLink name="lv_obj_set_scroll_snap_y" display="lv_obj_set_scroll_snap_y(widget, LV_SCROLL_SNAP_...)" />.
This is what happens under the hood:
1. user scrolls and releases a Widget;
2. LVGL calculates where the scroll would end considering scroll momentum;
3. LVGL finds the nearest scroll point;
4. LVGL scrolls to the snap point with an animation.
On release, LVGL computes where momentum would end, finds the nearest snap
point, and animates to it.
### Scroll one
The "scroll one" feature tells LVGL to allow scrolling only one
snappable child at a time. This requires making the children snappable
and setting scroll snap alignment to something other than
<ApiLink name="LV_SCROLL_SNAP_NONE" />.
<LvglExample name="lv_example_scroll_one" path="scroll/scroll_one/lv_example_scroll_one" />
This feature can be enabled by the <ApiLink name="LV_OBJ_FLAG_SCROLL_ONE" /> flag.
The <ApiLink name="LV_OBJ_FLAG_SCROLL_ONE" /> flag (XML: `scroll_one`) limits
each gesture to a single snappable child. It requires snappable children and a
snap alignment other than <ApiLink name="LV_SCROLL_SNAP_NONE" />.
### Scroll on focus
## Scroll on focus
Imagine that there are a lot of Widgets in a group that are on a scrollable
Widget. Pressing the "Tab" button moves focus to the next Widget but it might
be outside the visible area of the scrollable Widget. If the "scroll on
focus" feature is enabled LVGL will automatically scroll Widgets to
bring the child Widget with focus into view. The scrolling happens recursively
therefore even nested scrollable Widgets are handled properly. The
Widget will be scrolled into view even if it is on a different page of a
tabview.
When the "scroll on focus" feature is enabled, LVGL automatically scrolls a
focused child into view — recursively, so nested scrollable Widgets and even
off-page tabview content are handled. This is driven by input-device focus
(e.g. pressing "Tab" in a group) rather than by declarative setup.
## Scrolling Programmatically
## Floating children
The following API functions allow programmatic scrolling of Widgets:
<LvglExample name="lv_example_scroll_floating" path="scroll/scroll_floating/lv_example_scroll_floating" />
- `lv_obj_scroll_by(widget, x, y, LV_ANIM_ON/OFF)` scroll by `x` and `y` values
- `lv_obj_scroll_to(widget, x, y, LV_ANIM_ON/OFF)` scroll to bring the given coordinate to the top left corner
- `lv_obj_scroll_to_x(widget, x, LV_ANIM_ON/OFF)` scroll to bring the given coordinate to the left side
- `lv_obj_scroll_to_y(widget, y, LV_ANIM_ON/OFF)` scroll to bring the given coordinate to the top side
A child with the <ApiLink name="LV_OBJ_FLAG_FLOATING" /> flag (XML:
`floating="true"`) is ignored by the layout and is not moved when its parent
scrolls. It stays pinned in place — the typical pattern for a floating action
button over a scrollable list.
From time to time you may need to retrieve the *scroll position* of a
scrollable Widget, either to restore it later, or to dynamically display some
elements according to its current scroll position. Here is an example to illustrate
how to combine scroll event and store the scroll-top position.
## Scrolling programmatically
```c
static int scroll_value = 0;
<LvglExample name="lv_example_scroll_to" path="scroll/lv_example_scroll_to" />
static void store_scroll_top_value_event_cb(lv_event_t* e) {
lv_obj_t * scr = lv_event_get_target(e);
scroll_value = lv_obj_get_scroll_top(scr);
printf("%d pixels are scrolled above top edge of display.\n", scroll_value);
}
Scroll position can be moved from code, with or without animation:
lv_obj_t * scr = lv_obj_create(NULL);
lv_obj_add_event_cb(scr, store_scroll_top_value_event_cb, LV_EVENT_SCROLL, NULL);
```
- <ApiLink name="lv_obj_scroll_by" display="lv_obj_scroll_by(widget, dx, dy, anim_enable)" /> — scroll by a delta.
- <ApiLink name="lv_obj_scroll_by_bounded" display="lv_obj_scroll_by_bounded(widget, dx, dy, anim_enable)" /> — scroll by a delta, clamped to the edges.
- <ApiLink name="lv_obj_scroll_to" display="lv_obj_scroll_to(widget, x, y, anim_enable)" /> — scroll to a coordinate.
- <ApiLink name="lv_obj_scroll_to_x" display="lv_obj_scroll_to_x(widget, x, anim_enable)" /> / <ApiLink name="lv_obj_scroll_to_y" display="lv_obj_scroll_to_y(widget, y, anim_enable)" /> — scroll one axis.
- <ApiLink name="lv_obj_scroll_to_view" display="lv_obj_scroll_to_view(widget, anim_enable)" /> / <ApiLink name="lv_obj_scroll_to_view_recursive" display="lv_obj_scroll_to_view_recursive(widget, anim_enable)" /> — bring a child into view.
Scroll coordinates can be retrieved from different axes with these functions:
The current position is read with:
- <ApiLink name="lv_obj_get_scroll_x" display="lv_obj_get_scroll_x(widget)" /> Pixels scrolled past left edge of Widget's view window.
- <ApiLink name="lv_obj_get_scroll_y" display="lv_obj_get_scroll_y(widget)" /> Pixels scrolled past top of Widget's view window.
- <ApiLink name="lv_obj_get_scroll_top" display="lv_obj_get_scroll_top(widget)" /> Identical to <ApiLink name="lv_obj_get_scroll_y" display="lv_obj_get_scroll_y(widget)" />
- <ApiLink name="lv_obj_get_scroll_bottom" display="lv_obj_get_scroll_bottom(widget)" /> Pixels scrolled past bottom of Widget's view window.
- <ApiLink name="lv_obj_get_scroll_left" display="lv_obj_get_scroll_left(widget)" /> Identical to <ApiLink name="lv_obj_get_scroll_x" display="lv_obj_get_scroll_x(widget)" />.
- <ApiLink name="lv_obj_get_scroll_right" display="lv_obj_get_scroll_right(widget)" /> Pixels scrolled past right edge of Widget's view window.
- <ApiLink name="lv_obj_get_scroll_x" display="lv_obj_get_scroll_x(widget)" /> / <ApiLink name="lv_obj_get_scroll_y" display="lv_obj_get_scroll_y(widget)" /> — pixels scrolled past the left/top edge.
- <ApiLink name="lv_obj_get_scroll_top" display="lv_obj_get_scroll_top(widget)" /> / <ApiLink name="lv_obj_get_scroll_bottom" display="lv_obj_get_scroll_bottom(widget)" /> — pixels available above/below the view.
- <ApiLink name="lv_obj_get_scroll_left" display="lv_obj_get_scroll_left(widget)" /> / <ApiLink name="lv_obj_get_scroll_right" display="lv_obj_get_scroll_right(widget)" /> — pixels available left/right of the view.
Setting scroll position can be done with these functions:
## Scrolling patterns
- <ApiLink name="lv_obj_scroll_by" display="lv_obj_scroll_by(widget, dx, dy, anim_enable)" /> Scroll by given amount of pixels.
- <ApiLink name="lv_obj_scroll_by_bounded" display="lv_obj_scroll_by_bounded(widget, dx, dy, animation_enable)" /> Scroll by given amount of pixels.
- <ApiLink name="lv_obj_scroll_to" display="lv_obj_scroll_to(widget, x, y, animation_enable)" /> Scroll to given coordinate on Widget.
- <ApiLink name="lv_obj_scroll_to_x" display="lv_obj_scroll_to_x(widget, x, animation_enable)" /> Scroll to X coordinate on Widget.
- <ApiLink name="lv_obj_scroll_to_y" display="lv_obj_scroll_to_y(widget, y, animation_enable)" /> Scroll to Y coordinate on Widget.
- <ApiLink name="lv_obj_scroll_to_view" display="lv_obj_scroll_to_view(widget, animation_enable)" /> Scroll `obj`'s parent Widget until `obj` becomes visible.
- <ApiLink name="lv_obj_scroll_to_view_recursive" display="lv_obj_scroll_to_view_recursive(widget, animation_enable)" /> Scroll `obj`'s parent Widgets recursively until `obj` becomes visible.
### Infinite scrolling
## Self Size
<LvglExample name="lv_example_scroll_infinite" path="scroll/lv_example_scroll_infinite" />
Self size is a property of a Widget. Normally, the user shouldn't use
this parameter but if a custom widget is created it might be useful.
Rows are created on demand and far-off rows are deleted as the column is
scrolled, so the element count stays bounded no matter how far the user goes.
In short, self size establishes the size of a Widget's content. To
understand it better take the example of a table. Let's say it has 10
rows each with 50 px height. So the total height of the content is 500
px. In other words the "self height" is 500 px. If the user sets only
200 px height for the table LVGL will see that the self size is larger
and make the table scrollable.
### Endless circular scrolling
This means not only the children can make a Widget scrollable but a
larger self size will as well.
<LvglExample name="lv_example_scroll_circular" path="scroll/lv_example_scroll_circular" />
LVGL uses the <ApiLink name="LV_EVENT_GET_SELF_SIZE" /> event to get the self size of
a Widget. Here is an example to see how to handle the event:
When an edge is reached, the boundary child is moved to the opposite end and
the scroll position is compensated, so a finite list feels infinite in both
directions.
## Self size
Self size establishes the size of a Widget's content. For example a table with
10 rows of 50 px has a "self height" of 500 px; if the user sets only 200 px of
height, LVGL sees the larger self size and makes the table scrollable. So not
only children but also a larger self size can make a Widget scrollable.
Normally this is only relevant when creating a custom widget. LVGL queries it
through the <ApiLink name="LV_EVENT_GET_SELF_SIZE" /> event:
```c
if(event_code == LV_EVENT_GET_SELF_SIZE) {
lv_point_t * p = lv_event_get_param(e);
/* If x or y < 0 then it doesn't need to be calculated now. */
if(p->x >= 0) {
p->x = 200; /* Set or calculate self width. */
}
if(p->y >= 0) {
p->y = 50; /* Set or calculate self height. */
}
/* If x or y < 0 it doesn't need to be calculated now. */
if(p->x >= 0) p->x = 200; /* self width */
if(p->y >= 0) p->y = 50; /* self height */
}
```
## Examples
### Nested scrolling
<LvglExample name="lv_example_scroll_1" path="scroll/lv_example_scroll_1" />
### Snapping
<LvglExample name="lv_example_scroll_2" path="scroll/lv_example_scroll_2" />
### Floating button
<LvglExample name="lv_example_scroll_3" path="scroll/lv_example_scroll_3" />
### Styling the scrollbars
<LvglExample name="lv_example_scroll_4" path="scroll/lv_example_scroll_4" />
### Right to left scrolling
<LvglExample name="lv_example_scroll_5" path="scroll/lv_example_scroll_5" />
### Translate on scroll
<LvglExample name="lv_example_scroll_6" path="scroll/lv_example_scroll_6" />
### Infinite scrolling
<LvglExample name="lv_example_scroll_7" path="scroll/lv_example_scroll_7" />
### Circular scrolling
<LvglExample name="lv_example_scroll_8" path="scroll/lv_example_scroll_8" />
### Scrolling Properties
<LvglExample name="lv_example_scroll_9" path="scroll/lv_example_scroll_9" />
## API
```
@@ -3,24 +3,16 @@ title: Local Styles
description: "In addition to \"normal\" styles, Widgets can also store local styles. This concept is similar to inline styles in CSS (e."
---
## Overview
<LvglExample name="lv_example_style_local" path="styles/style_local/lv_example_style_local" />
In addition to "normal" styles, Widgets can also store local styles.
This concept is similar to inline styles in CSS
(e.g. `<div style="color:red">`) with some modification.
Local styles are like normal styles, but they can't be shared among
other Widgets. If used, local styles are allocated automatically, and
freed when the Widget is deleted. They are useful to add local
customization to a Widget.
Unlike in CSS, LVGL local styles can be assigned to states
(pseudo-classes_) and parts (pseudo-elements_).
## Usage
In addition to "normal" styles, Widgets can also store local styles, similar to inline
styles in CSS (e.g. `<div style="color:red">`). Local styles can't be shared between
Widgets; they are allocated automatically and freed when the Widget is deleted. Unlike
CSS inline styles, they can be assigned to states (pseudo-classes) and parts
(pseudo-elements).
To set a local property use functions like
`lv_obj_set_style_<property_name>(widget, <value>, <selector>);` For example:
`lv_obj_set_style_<property_name>(widget, <value>, <selector>);` For example:
```c
lv_obj_set_style_bg_color(slider, lv_color_red(), LV_PART_INDICATOR | LV_STATE_FOCUSED);
@@ -9,7 +9,7 @@ variable which can hold properties like border width, font, text color and so on
It's similar to a `class` in CSS.
- Styles can be assigned to Widgets to change their appearance. Upon assignment, the
target part (pseudo-element_ in CSS) and target state (pseudo-class_ in CSS) can be
target part (pseudo-element in CSS) and target state (pseudo-class in CSS) can be
specified. For example one can add `style_blue` to the knob of a slider when it's
in pressed state.
- The same style can be used by any number of Widgets.
@@ -25,11 +25,11 @@ It's similar to a `class` in CSS.
specified in a Widget.
- Widgets can also have [local styles](/common-widget-features/styles/local_styles) with higher precedence than
"normal" styles.
- Unlike CSS (where pseudo-classes_ describe different states, e.g. `:focus`), in
- Unlike CSS (where pseudo-classes describe different states, e.g. `:focus`), in
LVGL a property is assigned to a given state.
- Transitions can be applied when the Widget changes state.
For the full list of style properties click [here](/common-widget-features/styles/style-properties).
See the [full list of style properties](/common-widget-features/styles/style-properties).
## States
@@ -58,59 +58,33 @@ A style can be added to any state or state combination. For example, setting a
different background color for the default and pressed states. If a property is not
defined in a state the best matching state's property will be used. Typically this
means the property with <ApiLink name="LV_STATE_DEFAULT" /> is used. If the property is
not set even for the default state the default value will be used. (See later)
not set even for the default state the default value will be used.
Since <ApiLink name="LV_PART_MAIN" /> and <ApiLink name="LV_STATE_DEFAULT" /> both have
zero values, you can simply pass `0` as the `selector` argument instead of
`LV_PART_MAIN | LV_STATE_DEFAULT` as a shortcut when adding styles to an object.
### What "best matching" means
### What does the "best matching state's property" mean?
Each state's precedence equals its value in the list above — a higher value wins. When
a property isn't set for the current state, the value from the highest-precedence
matching state is used; if none matches, the default state's value (or the global
default) applies.
States have a precedence which is shown by their value (see in the above list). A
higher value means higher precedence. To determine which state's property to use let's
take an example. Imagine the background color is defined like this:
For example, with `bg_color` white in `LV_STATE_DEFAULT`, gray in `LV_STATE_PRESSED`
(0x0020) and red in `LV_STATE_FOCUSED` (0x0002):
- <ApiLink name="LV_STATE_DEFAULT" />: white
- <ApiLink name="LV_STATE_PRESSED" />: gray
- <ApiLink name="LV_STATE_FOCUSED" />: red
- Pressed → gray (0x0020 beats default's 0x0000).
- Focused → red.
- Focused + pressed → gray (pressed outranks focused).
- `LV_STATE_PRESSED | LV_STATE_FOCUSED` set to rose → rose (0x0022 beats either alone).
- Checked → white (no checked value, so it falls back to default).
1. Initially the Widget is in the default state, so it's a simple case: the property is
perfectly defined in the Widget's current state as white.
2. When the Widget is pressed there are 2 related properties: default with white
(default is related to every state) and pressed with gray. The pressed state has
0x0020 precedence which is higher than the default state's 0x0000 precedence, so
gray color will be used.
3. When the Widget has focus the same thing happens as in pressed state and red color
will be used. (Focused state has higher precedence than default state).
4. When the Widget has focus and pressed both gray and red would work, but the pressed
state has higher precedence than focused so gray color will be used.
5. It's possible to set e.g. rose color for
<ApiLink name="LV_STATE_PRESSED" display="LV_STATE_PRESSED | LV_STATE_FOCUSED" />. In this case, this combined state
has 0x0020 + 0x0002 = 0x0022 precedence, which is higher than the pressed state's
precedence so rose color would be used.
6. When the Widget is in the checked state there is no property to set the background
color for this state. So for lack of a better option, the Widget remains white from
the default state's property.
Some practical notes:
- The precedence (value) of states is quite intuitive, and it's something the user
would expect naturally. Example: if a Widget has focus the user will still want to
see if it's pressed, therefore the pressed state has a higher precedence. If the
focused state had a higher precedence it would overwrite the pressed color.
- If you want to set a property for all states (e.g. red background color) just set it
for the default state. If the Widget can't find a property for its current state it
will fall back to the default state's property.
- Use ORed states to describe the properties for complex cases (e.g. pressed + checked
+ focused).
- It might be a good idea to use different style elements for different states. For
example, finding background colors for released, pressed, checked + pressed,
focused, focused + pressed, focused + pressed + checked, etc. states is quite
difficult. Instead, for example, use the background color for pressed and checked
states and indicate the focused state with a different border color.
The ordering is intentional: a pressed Widget should still look pressed while focused.
To cover every state, set the property in the default state. For combinations that are
hard to enumerate, vary one part per state (e.g. background color for pressed/checked,
border color for focused).
## Cascading Styles
<LvglExample name="lv_example_style_multiple" path="styles/style_multiple/lv_example_style_multiple" />
It's not required to set all the properties in one style. It's possible to add more
styles to a Widget and have the latter added style modify or extend appearance. For
example, create a general gray button style and create a new one for red buttons where
@@ -145,6 +119,8 @@ color will be used.
## Parts
<LvglExample name="lv_example_style_parts_states" path="styles/style_parts_states/lv_example_style_parts_states" />
Widgets can be composed of *parts* which may each have their own styles.
The following predefined parts exist in LVGL:
@@ -180,24 +156,17 @@ zero values, you can simply pass `0` as the `selector` argument instead of
## Properties Requiring New Layers
If the `opa`, `blend_mode`, `transform_angle`, or `transform_zoom` properties
are set to a non-default value LVGL creates a snapshot of the widget and its children
in order to blend the whole widget with the set opacity, blend mode and transformation
properties.
<LvglExample name="lv_example_style_opacity_transform" path="styles/style_opacity_transform/lv_example_style_opacity_transform" />
These properties have this effect only on the `MAIN` part of the widget.
Setting `opa`, `blend_mode`, `transform_angle`, or `transform_zoom` to a non-default
value on the `MAIN` part makes LVGL snapshot the Widget and its children into an
intermediate *layer* so the whole Widget is blended together.
The created snapshot is called "intermediate layer" or simply "layer". If only `opa`
and/or `blend_mode` is set to a non-default value LVGL can build the layer from
smaller chunks. The size of these chunks can be configured by the following properties
in `lv_conf.h`:
If only `opa` and/or `blend_mode` is set, the layer is built from smaller chunks sized
by these `lv_conf.h` options (transformations force a single full-size layer):
- <ApiLink name="LV_LAYER_SIMPLE_BUF_SIZE" />: [bytes] the optimal target buffer size.
LVGL will try to allocate this size of memory.
- <ApiLink name="LV_LAYER_SIMPLE_FALLBACK_BUF_SIZE" />: [bytes] used if
<ApiLink name="LV_LAYER_SIMPLE_BUF_SIZE" /> couldn't be allocated.
If transformation properties were also used the layer cannot be rendered in chunks
- <ApiLink name="LV_LAYER_SIMPLE_BUF_SIZE" /> target chunk buffer size in bytes.
- <ApiLink name="LV_LAYER_SIMPLE_FALLBACK_BUF_SIZE" /> — used if the above can't be allocated.
## Typical Background Properties
@@ -213,88 +182,28 @@ background properties" are the properties being referred to:
- Width and height transformation
- X and Y translation
## Examples
## Effects
### Size styles
Examples that combine several style properties for a visual effect.
Per-property examples are on the
[Style Properties](/common-widget-features/styles/style-properties) page.
<LvglExample name="lv_example_style_1" path="styles/lv_example_style_1" />
### Conic gradient knob
### Background styles
<LvglExample name="lv_example_style_gradient_conic" path="styles/lv_example_style_gradient_conic" />
<LvglExample name="lv_example_style_2" path="styles/lv_example_style_2" />
### Radial gradient background
### Border styles
<LvglExample name="lv_example_style_gradient_radial" path="styles/lv_example_style_gradient_radial" />
<LvglExample name="lv_example_style_3" path="styles/lv_example_style_3" />
### Gradient button backgrounds
### Outline styles
<LvglExample name="lv_example_style_gradient_buttons" path="styles/lv_example_style_gradient_buttons" />
<LvglExample name="lv_example_style_4" path="styles/lv_example_style_4" />
### Modal overlay
### Shadow styles
<LvglExample name="lv_example_style_modal" path="styles/lv_example_style_modal" />
<LvglExample name="lv_example_style_5" path="styles/lv_example_style_5" />
### Interactive transform
### Image styles
<LvglExample name="lv_example_style_6" path="styles/lv_example_style_6" />
### Arc styles
<LvglExample name="lv_example_style_7" path="styles/lv_example_style_7" />
### Text styles
<LvglExample name="lv_example_style_8" path="styles/lv_example_style_8" />
### Line styles
<LvglExample name="lv_example_style_9" path="styles/lv_example_style_9" />
### Drop shadow styles
<LvglExample name="lv_example_style_10" path="styles/lv_example_style_10" />
### Transition
<LvglExample name="lv_example_style_11" path="styles/lv_example_style_11" />
### Using multiple styles
<LvglExample name="lv_example_style_12" path="styles/lv_example_style_12" />
### Local styles
<LvglExample name="lv_example_style_13" path="styles/lv_example_style_13" />
### Add styles to parts and states
<LvglExample name="lv_example_style_14" path="styles/lv_example_style_14" />
### Extending the current theme
<LvglExample name="lv_example_style_15" path="styles/lv_example_style_15" />
### Opacity and Transformations
<LvglExample name="lv_example_style_16" path="styles/lv_example_style_16" />
### Metallic knob with conic gradient
<LvglExample name="lv_example_style_17" path="styles/lv_example_style_17" />
### Radial gradient as background
<LvglExample name="lv_example_style_18" path="styles/lv_example_style_18" />
### Gradients for button background
<LvglExample name="lv_example_style_19" path="styles/lv_example_style_19" />
### Test between recolor style or full background modal
<LvglExample name="lv_example_style_20" path="styles/lv_example_style_20" />
### Transform style
<LvglExample name="lv_example_style_21" path="styles/lv_example_style_21" />
<LvglExample name="lv_example_style_transform_card" path="styles/lv_example_style_transform_card" />
@@ -12,6 +12,8 @@ description: LVGL style property reference.
Properties related to size, position, alignment and layout of Widgets.
<LvglExample name="lv_example_style_size_position" path="styles/style_size_position/lv_example_style_size_position" />
<StyleProperty
name="width"
default="Widget dependent"
@@ -262,6 +264,8 @@ Skew Widget vertically. The value is interpreted in 0.1 degree units. E.g. 450 m
Properties to describe spacing between the parent's sides and the children and among the children. Very similar to the padding properties in HTML.
<LvglExample name="lv_example_style_padding" path="styles/style_padding/lv_example_style_padding" />
<StyleProperty
name="pad_top"
default="0"
@@ -336,6 +340,8 @@ Pad text labels away from the scale ticks/remainder of the ``LV_PART_``.
Properties to describe spacing around a Widget. Very similar to the margin properties in HTML.
<LvglExample name="lv_example_style_margin" path="styles/style_margin/lv_example_style_margin" />
<StyleProperty
name="margin_top"
default="0"
@@ -380,6 +386,8 @@ Sets margin on the right. Widget will keep this space from its siblings in layou
Properties to describe the background color and image of Widget.
<LvglExample name="lv_example_style_background" path="styles/style_background/lv_example_style_background" />
<StyleProperty
name="bg_color"
default="`0xffffff`"
@@ -538,6 +546,8 @@ If enabled the background image will be tiled. Possible values are `true` or `fa
Properties to describe the borders
<LvglExample name="lv_example_style_border" path="styles/style_border/lv_example_style_border" />
<StyleProperty
name="border_color"
default="`0x000000`"
@@ -597,6 +607,8 @@ Sets whether the border should be drawn before or after the children are drawn.
Properties to describe the outline. It's like a border but drawn outside of the rectangles.
<LvglExample name="lv_example_style_outline" path="styles/style_outline/lv_example_style_outline" />
<StyleProperty
name="outline_width"
default="0"
@@ -643,6 +655,8 @@ Set padding of outline, i.e. the gap between Widget and the outline.
Properties to describe the shadow drawn under the rectangles.
<LvglExample name="lv_example_style_shadow" path="styles/style_shadow/lv_example_style_shadow" />
<StyleProperty
name="shadow_width"
default="0"
@@ -710,6 +724,8 @@ or LV_OPA_10, LV_OPA_20, etc means semi transparency.
Properties to describe the images
<LvglExample name="lv_example_style_image" path="styles/lv_example_style_image" />
<StyleProperty
name="image_opa"
default="`LV_OPA_COVER`"
@@ -760,6 +776,8 @@ Set image colorkey definition. The lv_image_colorkey_t contains two color values
Properties to describe line-like Widgets
<LvglExample name="lv_example_style_line" path="styles/lv_example_style_line" />
<StyleProperty
name="line_width"
default="0"
@@ -824,6 +842,8 @@ Set opacity of lines.
Properties to describe the Arc Widget
<LvglExample name="lv_example_style_arc" path="styles/style_arc/lv_example_style_arc" />
<StyleProperty
name="arc_width"
default="0"
@@ -879,6 +899,8 @@ effects on the arcs. Can be a pointer to `lv_image_dsc_t` or a path to a file.
Properties to describe the properties of text. All these properties are inherited.
<LvglExample name="lv_example_style_text" path="styles/style_text/lv_example_style_text" />
<StyleProperty
name="text_color"
default="`0x000000`"
@@ -1003,6 +1025,8 @@ Possible values are `LV_TEXT_LEADING_TRIM_NONE/CAPITAL_BASELINE/LOWER_BASELINE/C
Blur the widget or its background
<LvglExample name="lv_example_style_blur" path="styles/style_blur/lv_example_style_blur" />
<StyleProperty
name="blur_radius"
default="`0`"
@@ -1042,6 +1066,8 @@ blur. With `LV_BLUR_QUALITY_AUTO` the quality will be selected automatically.
Take an A8 snapshot of the given part and blur it.
<LvglExample name="lv_example_style_drop_shadow" path="styles/lv_example_style_drop_shadow" />
<StyleProperty
name="drop_shadow_radius"
default="`0`"
@@ -1109,6 +1135,8 @@ blur. With `LV_BLUR_QUALITY_AUTO` the quality will be selected automatically.
Mixed properties for various purposes.
<LvglExample name="lv_example_style_opacity_transform" path="styles/style_opacity_transform/lv_example_style_opacity_transform" />
<StyleProperty
name="radius"
default="0"
@@ -1302,6 +1330,8 @@ rotary to half, 512: speeds up to double, 256: no change.
Flex layout properties.
<LvglExample name="lv_example_flex_flow" path="layouts/flex/flex_flow/lv_example_flex_flow" />
<StyleProperty
name="flex_flow"
default="`LV_FLEX_FLOW_NONE`"
@@ -1356,6 +1386,8 @@ Defines how much space to take proportionally from the free space of the Widget'
Grid layout properties.
<LvglExample name="lv_example_grid_descriptors" path="layouts/grid/grid_descriptors/lv_example_grid_descriptors" />
<StyleProperty
name="grid_column_dsc_array"
default="`NULL`"
@@ -3,8 +3,6 @@ title: Style Sheets
description: "Styles are stored in lv_style_t variables. Style variables should be static, global or dynamically allocated."
---
## Overview
## Initializing Styles
Styles are stored in <ApiLink name="lv_style_t" /> variables. Style variables should be
@@ -5,22 +5,12 @@ description: "A Theme is a collection of styles with the knowledge of which subs
## Overview
A Theme is a collection of styles with the knowledge of which subset of styles
are applied to which types of Widgets. If there is an active theme LVGL
applies it to every newly-created widget. This will give a default appearance
to the UI which can then be modified by adding further styles.
A theme is a collection of styles plus the knowledge of which styles apply to which
Widget types. An active theme is applied to every newly created Widget, giving the UI
a default look that further styles can refine. Each display can use its own theme
(e.g. a colorful TFT alongside a monochrome secondary display).
Every display can have a different theme. For example, you could have a
colorful theme on a TFT and monochrome theme on a secondary monochrome
display.
To set a theme for a display, two steps are required:
1. Initialize the theme.
2. Assign the initialized theme to the display.
Theme initialization functions can have different prototypes. This
example shows how to set the "default" theme:
Setting a theme takes two calls — initialize it, then assign it to the display:
```c
lv_theme_t * th = lv_theme_default_init(display, /* Use DPI, size, etc. from this display */
@@ -34,18 +24,17 @@ lv_theme_t * th = lv_theme_default_init(display, /* Use DPI, siz
lv_display_set_theme(display, th); /* Assign theme to display */
```
The included themes are enabled in `lv_conf.h`. If the default theme
is enabled by <ApiLink name="LV_USE_THEME_DEFAULT" /> LVGL automatically initializes
and sets it when a display is created.
If <ApiLink name="LV_USE_THEME_DEFAULT" /> is enabled in `lv_conf.h`, LVGL initializes and
sets the default theme automatically when a display is created.
## Extending themes
Built-in themes can be extended. If a custom theme is created, a parent
theme can be selected. The parent theme's styles will be added before
the custom theme's styles. Any number of themes can be chained this way.
E.g. default theme -> custom theme -> dark theme.
<LvglExample name="lv_example_style_theme" path="styles/lv_example_style_theme" />
<ApiLink name="lv_theme_set_parent" display="lv_theme_set_parent(new_theme, base_theme)" /> extends the
`base_theme` with the `new_theme`.
This extends the current theme with an extra button style. It is C-only because a
`lv_theme_*` callback has no XML form.
There is an example of this among the [Style examples](/common-widget-features/styles/overview).
A custom theme can select a parent theme: the parent's styles are applied before the
custom theme's, and themes can be chained (e.g. default → custom → dark).
<ApiLink name="lv_theme_set_parent" display="lv_theme_set_parent(new_theme, base_theme)" />
extends `base_theme` with `new_theme`.
@@ -5,31 +5,18 @@ description: "By default, when a Widget changes state (e.g."
## Overview
By default, when a Widget changes state (e.g. it's pressed) the new
properties from the new state are set immediately. However, with
transitions it's possible to play an animation on state change. For
example, on pressing a button its background color can be animated to
the pressed color over 300 ms.
By default, when a Widget changes state the new properties are applied immediately.
A transition instead animates the change — e.g. on press a button's background color
fades to the pressed color over 300 ms.
The parameters of the transitions are stored in the styles. It's
possible to set
<LvglExample name="lv_example_style_transition" path="styles/lv_example_style_transition" />
- the time of the transition
- the delay before starting the transition
- the animation path (also known as the timing or easing function)
- the properties to animate
Transition parameters are stored in the style and set per state — the duration, delay,
animation path (easing function) and the list of properties to animate. Defining them
per state controls each direction independently: a 100 ms time in the pressed state
and 500 ms in the default state enters the pressed look quickly and returns slowly.
The transition properties can be defined for each state. For example,
setting a 500 ms transition time in the default state means that when
the Widget goes to the default state a 500 ms transition time is
applied. Setting a 100 ms transition time in the pressed state causes a
100 ms transition when going to the pressed state. This example
configuration results in going to the pressed state quickly and then
going back to default slowly.
## Usage
To describe a transition an <ApiLink name="lv_style_transition_dsc_t" /> variable needs to be
To describe a transition, an <ApiLink name="lv_style_transition_dsc_t" /> variable needs to be
initialized and added to a style:
```c
+11 -12
View File
@@ -16,21 +16,21 @@ and [misc/lv_templ.h](https://github.com/lvgl/lvgl/blob/master/src/misc/lv_templ
- In enums and defines use only upper case letters
(e.g. *MAX_LINE_NUM*)
- Global names (API):
- start with *lv*
- followed by module name: *button*, *label*, *style* etc.
- followed by the action (for functions): *set*, *get*, etc.
- closed with the subject: *name*, *size*, *state* etc.
- Typedefs
- prefer `typedef struct` and `typedef enum` instead of
`struct name` and `enum name`
- always end `typedef struct` and `typedef enum type names with
t`
- Abbreviations:
- The following abbreviations are used and allowed:
- `dsc` descriptor
- `param` parameter
- `indev` input device
@@ -41,22 +41,22 @@ and [misc/lv_templ.h](https://github.com/lvgl/lvgl/blob/master/src/misc/lv_templ
- `alloc` allocate
- `ctrl` control
- `pos` position
- Avoid adding new abbreviations
## Coding Guide
- Editor:
- Set editor to use 4 spaces for tab indentations (instead of tab characters).
- Exception: the **Kconfig** file and any make files require leading tab characters
on child items.
- Functions:
- Write functions that use the single-responsibility principle.
- Make functions `static` when not part of that object's public API (where possible).
- Variables:
- One line, one declaration (BAD: char x, y;).
- Use `<stdint.h>` (*uint8_t*, *int32_t* etc).
- Declare variables where needed (not all at function start).
@@ -108,7 +108,7 @@ typedef struct {
- In comments use back-quotes (`...`) when referring to a code element, such as a variable, type,
or struct name: ``/* Update value of `x_act` */``
- When adding or modifying comments, priorities are (in order of importance):
1. clarity (the ease with which other programmers can understand your intention),
2. readability (the ease with which other programmers can read your comments),
3. brevity (the quality of using few words when speaking or writing).
@@ -167,7 +167,7 @@ void lv_obj_set_flex_align(lv_obj_t * widget, lv_flex_align_t main_place, lv_fle
to the address contained by a pointer parameter, if not already obvious (e.g. when
the parameter name contains the word "out"), include the direction in the command
for clarity:
`@param[out] param_name description`.
- Describe return values with the `@return` command.
- Add at least 2 spaces after Doxygen commands for improved readability.
@@ -220,7 +220,6 @@ void lv_obj_set_flex_align(lv_obj_t * widget, lv_flex_align_t main_place, lv_fle
- `@see text`
generates a "See also" paragraph in a highlighted section, helpful when additional
information about a topic can be found elsewhere.
## API Conventions
To support the auto-generation of bindings, the LVGL C API must
@@ -241,7 +240,7 @@ follow some coding conventions:
- Do not `malloc` into a static or global variables. Instead declare the variable in `lv_global_t`
structure in `lv_global.h` and mark the variable with <ApiLink name="(LV_GLOBAL_DEFAULT()->variable)" /> when it's used.
- To register and use callbacks one of the following needs to be followed.
- Pass a pointer to a `struct` as the first argument of both the registration function and the callback. That
`struct` must contain `void * user_data` field.
- The last argument of the registration function must be `void * user_data` and the same `user_data`
-1
View File
@@ -70,4 +70,3 @@ The first 5 macros append the following information to your `text`:
<ApiLink name="LV_LOG" />(text) is similar to <ApiLink name="LV_LOG_USER" /> but has no extra information added.
## API
-1
View File
@@ -52,4 +52,3 @@ Note that `input_range` has different meanings depending on the `type` input dev
<LvglExample name="lv_example_monkey_3" path="others/monkey/lv_example_monkey_3" />
## API
-1
View File
@@ -150,4 +150,3 @@ The screenshot comparison uses `lodepng` which is built-in to LVGL and just need
To avoid making the entire Test module dependent on `lodepng`, screenshot comparison can be individually enabled by
<ApiLink name="LV_USE_TEST_SCREENSHOT_COMPARE" />.
## API
@@ -57,4 +57,3 @@ LVGL (sometimes worse) for regular Cortex-M processors.
- [A Cortex-M55 (supports Helium) based MDK Project, PC emulation is
available.](https://github.com/lvgl/lv_port_an547_cm55_sim)
## API
@@ -88,10 +88,10 @@ void app_main(void)
### Benchmarking
When running the `lv_demo_benchmark` from LVGL the user can compare the performance when
the PPA is enabled versus the pure software rendering, by using the latest version of the
When running the `lv_demo_benchmark` from LVGL the user can compare the performance when
the PPA is enabled versus the pure software rendering, by using the latest version of the
LVGL and LVGL port component it can be observed an average saving of 30% of the rendering
time for draw tasks that are image and rectangle fill. On some cases for pure filling on
time for draw tasks that are image and rectangle fill. On some cases for pure filling on
integer multiples of the display size it is possible to observe up 9x of speed increase when
the PPA is enabled.
@@ -104,28 +104,27 @@ the initial cause for that according to the PPA section from reference manual is
## Using the Espressif LVGL component PPA features
The Espressif IDF LVGL port component also offers hardware acceleration
for the display operations, that is it, once the LVGL render completes
for the display operations, that is it, once the LVGL render completes
an operation and the draw buffer is already handled to the display driver,
the Espressif component can optionally perform mirror and rotation of
the Espressif component can optionally perform mirror and rotation of
the rendered data using hardware assistance.
The LVGL display driver for Espressif operates by reading the
descriptor of the drawn data to check if rotation and mirror are flags
set on the data properties, in positive case, before sending the data
to the display, the mirror and rotation are performed first using the
to the display, the mirror and rotation are performed first using the
PPA rotation and mirror client.
When compared to pure software rotation, using the PPA to rotate the objects
can save up 40% of rendering time in average, while keeping the CPU in idle
can save up 40% of rendering time in average, while keeping the CPU in idle
saving power, or using it to perform other tasks, PPA rotation is asynchronous,
and once started it will signal the application using its dedicated interrupt.
To enable such behavior on the display driver, the PPA acceleration should
be set on the project `sdkconfig.defaults` via the symbol `CONFIG_LVGL_PORT_ENABLE_PPA`,
setting it to true will make the hardware assistance for image rotation and mirroring
setting it to true will make the hardware assistance for image rotation and mirroring
automatic. No extra code is required.
Please notice that such option can be set via menuconfig using the
Please notice that such option can be set via menuconfig using the
standard IDF command for configuration: `idf.py menuconfig`.
## API
@@ -2,4 +2,3 @@
title: NXP G2D GPU
---
## API
@@ -2,4 +2,3 @@
title: NXP PXP GPU
---
## API
@@ -14,7 +14,7 @@ LVGL rendering acceleration can be supported without the need for LVGL adaptatio
1. Set <ApiLink name="LV_USE_DRAW_VG_LITE" /> to 1 in `lv_conf.h` to enabled the VG-Lite rendering backend.
Make sure that your hardware has been adapted to the VG-Lite API and that the absolute path to `vg_lite.h`, which can be directly referenced by lvgl, has been exposed.
2. Confirm the GPU initialization method, there are two ways:
- The SDK calls the GPU initialization function on its own during system startup, and the GPU is available when LVGL starts; set <ApiLink name="LV_VG_LITE_USE_GPU_INIT" /> to 0.
- LVGL actively calls the GPU initialization function, and the SDK needs to implement the public function `gpu_init()`.
LVGL will call it to complete the GPU hardware initialization during startup; set <ApiLink name="LV_VG_LITE_USE_GPU_INIT" /> to 1.
@@ -27,13 +27,13 @@ LVGL rendering acceleration can be supported without the need for LVGL adaptatio
4. Set the <ApiLink name="LV_VG_LITE_FLUSH_MAX_COUNT" /> configuration to specify the flush method.
VG-Lite uses two sets of command buffer buffers to render instructions, and utilizing this mechanism well can greatly improve drawing efficiency.
Currently, two buffering methods are supported:
- Set <ApiLink name="LV_VG_LITE_FLUSH_MAX_COUNT" /> to zero (recommended). The rendering backend will obtain the GPU's working status every time it writes rendering instructions to the command buffer.
When the GPU is idle, it will immediately call `vg_lite_flush` to notify the GPU to start rendering and swap the command buffer. When the GPU is busy, it will continue to fill the command buffer cache with rendering instructions.
The underlying driver will automatically determine if the command buffer has been filled. When it is about to be filled, it will forcibly wait for the unfinished drawing tasks to end and swap the command buffer.
This method can effectively improve GPU utilization, especially in scenarios where rendering text, as the GPU's drawing time and the CPU's data preparation time are very close, allowing the CPU and GPU to run in parallel.
- Set <ApiLink name="LV_VG_LITE_FLUSH_MAX_COUNT" /> to a value greater than zero, such as 8. After writing 8 rendering instructions to the command buffer, the rendering backend
will call `vg_lite_flush` to notify the GPU to start rendering and swap the command buffer.
5. Set the <ApiLink name="LV_VG_LITE_USE_BOX_SHADOW" /> configuration to use GPU rendering for shadows.
@@ -88,4 +88,3 @@ The following table shows the color format mapping:
- **Compressed formats are not supported.** Images with `LV_IMAGE_FLAGS_COMPRESSED` flag will be rejected by this decoder
and passed to other decoders that support decompression.
## API
@@ -60,4 +60,3 @@ is **not** enabled. LTDC will use the DMA2D peripheral for flushing, if that is
NeoChrom and DMA2D may be enabled at the same time. They are both draw units
and they will both independently accept draw tasks.
## API
@@ -138,4 +138,3 @@ with each other at all.
NeoChrom and DMA2D may be enabled at the same time. They are both draw units
and they will both independently accept draw tasks.
## API
-1
View File
@@ -42,4 +42,3 @@ After any of a bar code's settings have changed, call
<LvglExample name="lv_example_barcode_1" path="libs/barcode/lv_example_barcode_1" />
## API
-1
View File
@@ -152,4 +152,3 @@ See the <ApiLink name="lv_example_freetype_2_vector_font" /> function for a usag
<LvglExample name="lv_example_freetype_3" path="libs/freetype/lv_example_freetype_3" />
## API
-1
View File
@@ -48,4 +48,3 @@ allow kerning, if supported, or disable.
<LvglExample name="lv_example_tiny_ttf_3" path="libs/tiny_ttf/lv_example_tiny_ttf_3" />
## API
@@ -15,4 +15,3 @@ For a detailed introduction, see:
Enable <ApiLink name="LV_USE_FS_ARDUINO_ESP_LITTLEFS" /> and define a <ApiLink name="LV_FS_ARDUINO_ESP_LITTLEFS_LETTER" /> in `lv_conf.h`.
## API
-1
View File
@@ -16,4 +16,3 @@ For a detailed introduction, see:
Enable <ApiLink name="LV_USE_FS_ARDUINO_SD" /> and define a <ApiLink name="LV_FS_ARDUINO_SD_LETTER" /> in `lv_conf.h`.
You will need to initialize the SD card before LVGL can use it (i.e. <ApiLink name="SD" display="SD.begin(0, SPI, 40000000)" />).
## API
-1
View File
@@ -53,6 +53,5 @@ if (err) {
lv_littlefs_set_handler(&lfs);
```
## API
See also: [lvgl/src/libs/fsdrv/lv_fs_littlefs.c](https://github.com/lvgl/lvgl/blob/master/src/libs/fsdrv/lv_fs_littlefs.c)
+12 -13
View File
@@ -40,9 +40,9 @@ LVGL's glTF implementation provides comprehensive 3D rendering capabilities:
- Image-Based Lighting (IBL) for realistic environmental lighting
- Punctual lighting support with animated light sources
- Physically Based Rendering (PBR) materials with full texture support:
* Diffuse/albedo textures
* Roughness and metallic workflow textures
* Roughness and metallic workflow textures
* Normal maps for surface detail
* Ambient occlusion textures
@@ -71,12 +71,12 @@ LVGL's glTF implementation provides comprehensive 3D rendering capabilities:
### Rendering Quality
- Configurable antialiasing with multiple modes:
* Always-on for consistent quality
* Always-off for maximum performance
* Always-off for maximum performance
* Auto-on that activates when scene movement stops
- Flexible background rendering:
* Environment-based backgrounds using IBL
* Solid color backgrounds
* Transparent backgrounds for overlay effects
@@ -122,7 +122,7 @@ set(FASTGLTF_DIFFUSE_TRANSMISSION_SUPPORT
CACHE BOOL "" FORCE)
FetchContent_MakeAvailable(fastgltf)
# Fetch libwebp library
# Fetch libwebp library
FetchContent_Declare(
webp
GIT_REPOSITORY https://github.com/webmproject/libwebp
@@ -301,7 +301,7 @@ lv_gltf_model_node_set_scale_z(node, 2.0f);
##### Reading Node Properties
For performance reasons, the node properties are only calculated during rendering.
For performance reasons, the node properties are only calculated during rendering.
In order to read them, you must first register an event callback.
This event callback will be called every time the node properties change.
@@ -319,17 +319,17 @@ static void node_value_cb(lv_event_t * e)
lv_gltf_model_node_get_euler_rotation(e, &rotation);
lv_gltf_model_node_get_scale(e, &scale);
LV_LOG_USER("Local Position: %.2f, %.2f, %.2f\n",
LV_LOG_USER("Local Position: %.2f, %.2f, %.2f\n",
position.x, position.y, position.z);
}
/* Register the callback */
lv_gltf_model_node_add_event_cb(node, node_value_cb,
lv_gltf_model_node_add_event_cb(node, node_value_cb,
LV_EVENT_VALUE_CHANGED, NULL);
```
If you need world-space coordinates (position in global scene coordinates rather than relative to parent),
use the world position variant. This involves complex matrix calculations during the rendering phase which
use the world position variant. This involves complex matrix calculations during the rendering phase which
will impact performance:
```c
@@ -340,7 +340,7 @@ static void node_world_value_cb(lv_event_t * e)
lv_gltf_model_node_get_local_position(e, &local_pos);
lv_gltf_model_node_get_world_position(e, &world_pos);
LV_LOG_USER("Local: %.2f, %.2f, %.2f\n",
LV_LOG_USER("Local: %.2f, %.2f, %.2f\n",
local_pos.x, local_pos.y, local_pos.z);
LV_LOG_USER("World: %.2f, %.2f, %.2f\n",
world_pos.x, world_pos.y, world_pos.z);
@@ -376,7 +376,7 @@ Access nodes by index, numeric path or path:
```c
/* Get by index */
lv_gltf_model_node_t * root = lv_gltf_model_node_get_by_index(model, 0);
lv_gltf_model_node_t * last_node = lv_gltf_model_node_get_by_index(model, lv_gltf_model_get_node_count(model) - 1);
lv_gltf_model_node_t * last_node = lv_gltf_model_node_get_by_index(model, lv_gltf_model_get_node_count(model) - 1);
/* Get by path (hierarchical node names from your 3D editor) */
lv_gltf_model_node_t * cursor = lv_gltf_model_node_get_by_path(model, "/cursor");
@@ -527,4 +527,3 @@ Animation speeds use integer values to avoid floating-point arithmetic:
<LvglExample name="lv_example_gltf_3" path="libs/gltf/lv_example_gltf_3" />
## API
-1
View File
@@ -38,4 +38,3 @@ files. Follow the instructions in [File System (lv_fs_drv)](/main-modules/fs).
<LvglExample name="lv_example_bmp_1" path="libs/bmp/lv_example_bmp_1" />
## API
@@ -53,4 +53,3 @@ feature to ensure that the memory usage is within a reasonable range.
<LvglExample name="lv_example_libjpeg_turbo_1" path="libs/libjpeg_turbo/lv_example_libjpeg_turbo_1" />
## API
-1
View File
@@ -48,4 +48,3 @@ stored in RGBA pixel format.
<LvglExample name="lv_example_libpng_1" path="libs/libpng/lv_example_libpng_1" />
## API
-1
View File
@@ -51,4 +51,3 @@ For optimal memory usage, combine with LVGL's [Image Caching](/main-modules/imag
<LvglExample name="lv_example_libwebp_1" path="libs/libwebp/lv_example_libwebp_1" />
## API
-1
View File
@@ -49,4 +49,3 @@ for example Compress PNG: https://compresspng.com/
<LvglExample name="lv_example_lodepng_1" path="libs/lodepng/lv_example_lodepng_1" />
## API
-1
View File
@@ -80,4 +80,3 @@ An RLE image binary can be directly generated from another image using script
This will decompress `cogwheel.png`, and then re-compress it using RLE and write
the output to `./output/cogwheel.bin`.
## API
+1 -2
View File
@@ -235,7 +235,7 @@ Please note, that while lottie animations are capable of running on many
ESP chips, below is recommended for best performance.
- ESP32-S3-WROOM-1-N16R8
- 16mb quad spi flash
- 8mb octal spi PSRAM
- IDF4.4 or higher
@@ -275,4 +275,3 @@ rlottie->allocated_buf = heap_caps_malloc(allocated_buf_size+1, MALLOC_CAP_SPIRA
<LvglExample name="lv_example_rlottie_2" path="libs/rlottie/lv_example_rlottie_2" />
## API
-1
View File
@@ -59,4 +59,3 @@ lv_svg_node_delete(svg_doc);
<LvglExample name="lv_example_svg_3" path="libs/svg/lv_example_svg_3" />
## API
-1
View File
@@ -49,4 +49,3 @@ follow the instructions in [File System (lv_fs_drv)](/main-modules/fs).
<LvglExample name="lv_example_tjpgd_1" path="libs/tjpgd/lv_example_tjpgd_1" />
## API
+2 -7
View File
@@ -12,6 +12,8 @@ Widget that generates and displays QR Codes using the library.
## Usage
<LvglExample name="lv_example_qrcode_basic" path="libs/qrcode/qrcode_basic/lv_example_qrcode_basic" />
Enable <ApiLink name="LV_USE_QRCODE" /> in `lv_conf.h` by setting its value to `1`.
Use <ApiLink name="lv_qrcode_create" /> to create the QR-Code Widget. Then use
@@ -27,10 +29,3 @@ call <ApiLink name="lv_qrcode_update" /> again to update the QR Code.
- QR Codes with less data are smaller, but they are scaled by an integer
value to best fit to the given size.
## Example
### Create a QR Code
<LvglExample name="lv_example_qrcode_1" path="libs/qrcode/lv_example_qrcode_1" />
## API
-1
View File
@@ -80,4 +80,3 @@ Learn more about [events](/common-widget-features/events).
<LvglExample name="lv_example_ffmpeg_2" path="libs/ffmpeg/lv_example_ffmpeg_2" />
## API
+13 -14
View File
@@ -79,23 +79,23 @@ Follow the official GStreamer documentation to install its development libraries
## Setup
1. **Install Dependencies**
Install the GStreamer development libraries for your platform as shown in the Dependencies section above.
2. **Enable GStreamer Support**
Set <ApiLink name="LV_USE_GSTREAMER" /> to `1` in `lv_conf.h`.
3. **CMake Integration**
**Option 1: Direct linking with LVGL (Recommended)**
```cmake
find_package(PkgConfig REQUIRED)
# Find GStreamer packages
pkg_check_modules(GSTREAMER REQUIRED gstreamer-1.0)
pkg_check_modules(GSTREAMER_VIDEO REQUIRED gstreamer-video-1.0)
pkg_check_modules(GSTREAMER_APP REQUIRED gstreamer-app-1.0)
# Link with LVGL
target_include_directories(lvgl PUBLIC
$\{GSTREAMER_INCLUDE_DIRS\}
@@ -108,33 +108,33 @@ Follow the official GStreamer documentation to install its development libraries
```
4. **Manual Compilation with pkg-config**
You can also compile manually using pkg-config to query the necessary flags:
```bash
# Get compilation flags
gcc $(pkg-config --cflags --libs gstreamer-1.0 gstreamer-video-1.0 gstreamer-app-1.0) -o your_app your_app.c lvgl.a
```
5. **Basic Setup Example**
```c
int main(void)
{
/* Initialize LVGL */
lv_init();
/* Setup display driver */
lv_display_t *display = lv_display_create(800, 480);
/* ... configure display driver ... */
/* Create and run your GStreamer application */
lv_example_gstreamer_1();
while (1) {
lv_timer_handler();
}
return 0;
}
```
@@ -334,4 +334,3 @@ Then, in your LVGL application, configure WebRTC by passing the signalling serve
<LvglExample name="lv_example_gstreamer_1" path="libs/gstreamer/lv_example_gstreamer_1" />
## API
-1
View File
@@ -394,4 +394,3 @@ lv_anim_timeline_start(timeline);
<LvglExample name="lv_example_anim_timeline_1" path="anim/lv_example_anim_timeline_1" />
## API
-1
View File
@@ -124,7 +124,6 @@ Some special purpose defines are also introduced:
You can also use the `LV_OPA_*` defines in <ApiLink name="lv_color_mix" /> as a
mixing *ratio*.
## API
lv_color_make
lv_color_mix
@@ -24,12 +24,12 @@ selected color format.
In case of RGB565 color format it might be required to swap the 2 bytes
because the SPI, I2C or 8 bit parallel port periphery sends them in the wrong order.
This usually requires calling <ApiLink name="lv_draw_sw_rgb565_swap" display="lv_draw_sw_rgb565_swap(buf, buf_size_in_px)" />
inside the [Flush Callback](/main-modules/display/setup), implementing a custom function to swap the bytes or
This usually requires calling <ApiLink name="lv_draw_sw_rgb565_swap" display="lv_draw_sw_rgb565_swap(buf, buf_size_in_px)" />
inside the [Flush Callback](/main-modules/display/setup), implementing a custom function to swap the bytes or
using the correct color format.
LVGL supports the <ApiLink name="LV_COLOR_FORMAT_RGB565_SWAPPED" /> color format natively.
By using this color format, no manual byte swapping is needed at all,
By using this color format, no manual byte swapping is needed at all,
simplifying display drivers and eliminating software overhead.
Note that this is not about swapping the Red and Blue channel but converting
@@ -137,4 +137,3 @@ In summary, to enable transparent screens and displays for OSD menu-like UIs:
- Set a color format with alpha channel. E.g.
<ApiLink name="lv_display_set_color_format" display="lv_display_set_color_format(disp, LV_COLOR_FORMAT_ARGB8888)" />
## API
@@ -46,4 +46,3 @@ The following events are sent for Display (lv_display_t) objects:
- <ApiLink name="LV_EVENT_SCREEN_LOADED" />: Sent when a screen finishes being loaded on this display
- <ApiLink name="LV_EVENT_SCREEN_UNLOADED" />: Sent when a screen finishes being unloaded on this display
## API

Some files were not shown because too many files have changed in this diff Show More