[中文]

Changelog

v9.1.0 20 March 2024

New Features

  • feat(indev) Add crown support to pointer input device

5057 - feat(test): test bin image loaded to RAM or not 5895 - feat(script): change trace_filter default trace log file to log_file.systrace 5900 - feat(vg_lite): automatically select path type based on opa 5896 - feat(freertos): support Espressif's FreeRTOS flavor 5862 - feat(tests): add freetype font stress tests 5828 - feat(vg_lite): add stroke path support 5831 - feat(docs): add Chinese translation (jump link) 5839 - feat(ci): update distro to ubuntu 22.02 to fix freetype build problem 5834 - feat(image_cache): add resize function to image cache 5829 - feat(nuttx): add cpu idle getter 5814 - feat(test): add multiple color formats to stride adjust test 5690 - feat(libjpeg_turbo): add JPEG image EXIF data parsing 5263 - feat(freetype): change the tilt of freetype fonts in italics 5812 - feat(vg_lite): add matrix assert 5766 - feat(vg_lite): add grad cache size config and auto release cache 5731 - feat(draw_buf): support indexed image in draw_buf_copy 5686 - feat(nuttx): update display driver 5752 - feat(fs): implement littlefs lfs.h driver support 5562 - feat(test_keyboard): add keyboard test 5739 - feat(x11): add LV_KEYs 5704 - feat(display): add save screenshot to file support 5481 - feat(decoder): do not even try cache if 'no_cache' is set 5688 - feat(event): return event dsc for later to remove 5630 - feat(keyboard) add Home and End keys mapping 5675 - feat(draw_buf): distinguish between lv_image_dsc_t and lv_draw_buf_t 5496 - feat(indev): remove the PRESSED state on scroll 5660 - feat(sysmon): show max memory usage 5661 - feat(image_decoder): add stride warning 5471 - feat(image, layer): add bitmap mask feature 5545 - feat(draw-sw): add simple Helium acceleration 5596 - feat(cache): use unified cache entry free callback 5612 - feat(draw_buf): use draw_buf as parameter of invalidate_cache API 5602 - feat(script): add ARGB8565 format support 5593 - feat(vg_lite): add ARGB8565 support 5592 - feat(vg_lite): add gpu idle flush 5571 - feat(vg_lite_tvg): add buffer address alignment config 5576 - feat(vg_lite/vector): add compatible processing for non-scissor support 5572 - feat(vg_lite): remove support for RGB565A8 5574 - feat(vg_lite_label): upgrade path quality to HIGH 5556 - feat(font_glyph_format): refactor draw and font format into `lv_font_glyph_format_t` 5540 - feat(vg_lite): add index format decode support 5476 - feat(vector): add API to append arc 5510 - feat(nuttx_image_cache): add independent image cache heap support 5528 - feat(cache): refactor cache framework and add new APIs 5501 - feat(drivers): add libinput/xkb driver 5486 - feat(draw_buf): misc update 5498 - feat(draw): add convenience methods for safely getting correct draw descriptor 5505 - feat(profiler): add multithreading support and testcase 5490 - feat(doc): Update display-related documentation to new API 5489 - feat(image_cache): add image header cache drop 5472 - feat(fbdev): add docs and allow forcing refresh 5444 - feat(script): add tool to view bin image 5451 - feat(vg_lite): add profiler instrumentation 5434

  • feat(draw_letter): adapt `lv_font_glyph_format_t` for draw_letter process

3c1a765 - feat(color): add color format ARGB8565 86016a8

Performance

  • perf(draw): minor optimization on rgb565 color blending

5603 - perf(draw): use the simpler layer clear method 5470 - perf(vg_lite): add asynchronous rendering support 5398

Fixes

  • fix(obj_tree): fix unintended click triggers on object deletion

5907 - fix(monkey): add missing include 5903 - fix(demo/vector_graphic): add missing buffer clear 5898 - fix(image): fix the image decoder if LV_BIN_DECODER_RAM_LOAD == 0 5892 - fix(indev): Fix scroll obj cannot be cleared when waiting until release 5833 - fix(vglite): update NXP's VGLite implementation 5887 - fix(imagebutton): clipped area of mid part 5849 - fix(drm): default to XRGB8888 framebuffer 5851 - fix(vg_lite): fix stroke path memory leak 5883 - fix(ci): workaround ASAN error in CI with Ubuntu 22.04 image 5867 - fix(conf): fix typo cause thorvg not enabled 5837 - fix(indev): always save the last key 5795 - fix(fsdrv/fatfs): fix does not detect the end of entries in fs_dir_read 5826 - fix(layer): update the cached layer type on state change 5801 - fix(file_explorer): fix quick access compiler error 5783 - fix(msgbox): return the footer in lv_msgbox_get_footer 5804 - fix(x11): fix assert on delete 5799 - fix(demo_music): fix the previous button in the music demo is not clickable 5808 - fix(draw): fix non antialiased rgb565a8 transformation 5782 - fix(freetpye): fix the problem of incomplete font drawing when setting with italic 5807 - fix(fsdrv): add missing lv_fs_littlefs_init function declaration 5778 - fix(vg_lite):fix bug for wrong rendering in vertical or horizontal dir 5789 - fix(env): added *.cpp glob in ESP configuration 5761 - fix(draw): fix the invalidation of scaled areas 5548 - fix(warning): variable set but unused. 5757 - fix(draw): fix rgb565 with LV_BLEND_MODE_MULTIPLY 5749 - fix(api_map_v8): add some missing functions 5710 - ** fix(refr): fix ARGB8888 buffer clearing in DIRECT mode (#5741)** 5758 - fix(draw_buf): init struct member in order 5753 - fix(refr): fix clearing the partial buffers in case of ARGB8888 format 5741 - fix(x11): fix typo 5742 - fix(draw_vector): check the point length of path in lv_vector_path_get_bounding 5734 - fix(vg_lite): fix draw layer drawing is incomplete 5729 - fix(test_span): fix an issue where img has span_1.png, but it is not in the code 5736 - fix(vg_lite): fix drawing command accumulation 5730 - fix(vg_lite): fix vector rendering fill dsc matrix not taking effect 5728 - fix(stdlib): fix issues when using LVGL TLSF memory pool to manage more than 4 GiB of memory 5720 - fix(vg_lite): remove redundant MOVE_TO operations 5713 - fix(nuttx): fix compile warning 5701 - fix(draw_vector): remove redundant MOVE_TO operations 5715 - fix(draw_buf): use height as loop condition instead of checking data pointers 5687 - fix(vg_lite): fix the loss of display accuracy of rounded rectangles 5714 - fix(test): check compiler flag should not contain '_' 5706 - fix(imagebutton): fix the example 5719 - fix(drm): eliminate use of non-existent lv_api_map.h and enable smoke tests 5694 - fix(test): enable -Wpedantic 5676 - fix(pxp): fix issues in pxp cache management callback 5685 - fix(windows): improve graphic performance via using high resolution tick count and timer delay implementation 5711 - fix(windows): improve the document 5699 - fix(example): fix lv_example_obj_2 5697 - fix(draw): fix compiler error when LV_DRAW_SW_COMPLEX is disabled 5695 - fix(test): allow to run test locally on mac 5672 - fix(sdl): fix buf memleak on lv_display_delete 5692 - fix(decoder): decoded image should always have same w,h as original image 5689 - fix(cache): fix warnings 5671 - fix(dave2d): follow lvgl changes 5659 - fix(vg_lite): fix typo in decoder_close 5683 - fix(vg_lite): use float instead of int to avoid type conversion 5682 - fix(formatting): fix code formatting 5673 - fix(freetype): fix build break when disable LV_USE_FS_MEMFS 5651 - fix(array): use memmove instead of memcopy 5656 - fix(image): fix wrong log level statement 5655 - fix(tests): fix test_img_emoji_F617.c error include path 5652 - fix(FreeRTOS): Stacksize calculation 5647 - fix(benchmark): fix FPS calculation 5646 - fix(label): consider max-width 5644 - fix(demo): fix memory leak in vector demo 5643 - fix(calendar): fix crash when no default is set 5621 - fix(freetype): fix using memfs to create a FT font 5627 - fix(indev): fix variable name in preprocessor warning 5637 - fix(rle): avoid buffer overflow when compressed data is not in pixel unit 5619 - fix(LVGLImage): use lv_image_dsc_t instead of lv_img_dsc_t 5629 - fix(vg_lite): fix linear image use after free 5618 - fix(kconfig): skip lv_conf.h by default 5617 - fix(image): add data_size filed to all c-array images 5608 - fix(doc): wrong code for Displays transparency 5607 - fix(refr): take stride into consideration in partial update mode 5583 - fix(test): fix typo related to #5559 5594 - fix(sysmon): fix build error when LV_USE_PERF_MONITOR_LOG_MODE is enabled 5597 - fix(sdl): use the new draw buffer structure in the layers 5578 - fix(benchmark): improve the benchmark 5558 - fix(ffmpeg): add missing stride setting to ffmpeg image 5580 - fix(sysmon): fix build break 5585 - fix(tileview): on size change auto. update the pos. of the tiles 5577 - fix(sdl): fix keyboard handling 5575 - fix(lv_conf): minor typo fixes in lv_conf_template.h 5570 - fix(vg_lite): fix arc img not move to arc center 5554 - fix(vg_lite): add grad image buffer check 5552 - fix(obj): fix cover change with semi transparent gradients 5531 - fix(vg_lite): path matrix should use main vector matrix 5538 - fix(vg_lite): fix LV_RADIUS_CIRCLE not round 5543 - fix(vg_lite): add config to disable draw shadow 5534 - fix(neon): update stride from px to bytes 5526 - fix(script): Remove TRUECOLOR for LVGLImage.py 5523 - fix(sysmon): support starting LVGL without having a display 5518 - fix(chart): set the series id correctly 5482 - fix(vg_lite): fix clip corner image display error 5517 - fix(arduino): update example LVGL_Arduino.ino for v9 5499 - fix(fb): set DPI to correctly 5508 - fix(layer): Update calculation for overlay used memory 5504 - fix(bin_decoder): fix potential free garbage address 5509 - fix(decoder): treat ALLOCATED c-array image as draw buffer 5483 - fix(vg_lite_tvg): fix use after free when change target canvas 5497 - fix(keyboard): in the example set Arabic font if enabled 5457 - fix(codespaces): fix the issue where lv_conf.h in codespaces is not enable 5484 - fix(textarea): fix accepted chars issue on big endian systems 5479 - fix(draw_line): fix the issue where dash_dap equals 1 and cannot display properly when the line is a horizontal line 5473 - fix: removed LV_ATTRIBUTE_FAST_MEM function attribute from prototypes 5467 - fix(arm2d): apply a temporary patch to arm-2d acceleration 5466 - fix(snapshot): update the layout of the component before the screenshot 5475 - fix(vg_lite): add missing 24bit color support check 5469 - fix(display): set last_activity_time to the current time in lv_display 5463 - fix(observer): fixed lv_subject_remove_all_obj 5464 - fix(image_decoder): fix decoder not close 5437 - fix(nuttx): fix build break 5440 - fix: fix warnings with -flto on GCC 11 5433 - fix(assert): add new macro to format assert message 5453 - fix(decoder): if draw unit supports indexed image, don't add to cache 5438 - fix(bar): mask the background to fix it on value adjustment 5426 - fix(lvgl.mk): fix vg_lite_tvg.cpp not compiling 5435 - fix(ci): use the dev branch of PlatformIO 5432 - **fix(vector) : add path bounding and matrix transform functions. ** 5389

  • fix(warning): fix shadown variable warning

47750f1 - fix(thorvg): link lvgl_thorvgl with lvgl 9b09182 - fix(warning): error: no newline at end of file 9a6a194 - fix(color): treat RGB565A8 bpp same as RGB565 52426ec - fix(warning): error: a function declaration without a prototype is deprecated in all versions of C c81f654

Examples

Docs

  • docs: update README

5841 - docs: make it easy to add more other translations 5874 - docs: ignore the READMEs when building the docs 5840 - docs(st7789): updated the docs + added code example and step-by-step guide for STM32 5511 - docs(arduino): update tick setup 5832 - docs(display): use lv_display_delete_refr_timer to delete display timer 5835 - docs(lv_conf): show how to include something in lv_conf.h 5740 - docs(tick): simplify and promote lv_tick_set_cb 5781 - docs(style): output the style properties to style-props.rst 5802 - docs(changelog): mention that LV_COLOR_DEPTH 8 is not supported yet 5796 - docs(image): update align to inner_align 5721 - docs(README_Zh): remove mentions of SquareLine Studio 5640 - docs(profiler): fix my_get_cpu_cb implementation 5641 - docs(demos): remove inconsistent READMEs 5626 - docs(README): remove mentions of SquareLine Studio 5638 - docs(changelog): mention more features removed in v9 5632 - docs(micropython): update MicroPython examples in documentation 5622 - docs(contributing): fix links 5615 - docs(porting): add missing colon in porting docs 5613 - docs(contributing): update the feature development workflow 5601 - docs(tabview): fix tabview doc 5588 - docs(indev): Document the relation between LV_INDEV_MODE_EVENT and data->continue_reading 5586 - docs(pc-simulator): Document how to set up SDL manually, without IDE 5563 - docs(disp): document lv_refr_now 5480 - docs(disp): Fix pointer cast in flush_cb example 5439 - docs(font): about "base dir" 5429

CI and tests

  • test(conf): update conf and remove deprecated configs

5881 - tests(freetype): refactor code structure 5871 - ci(micropython): catch event failure in the test 5787 - ci(ref_imgs): automatically generate the missing reference image folders 5696 - ci(assets): add LV_BUILD_TEST guard 5616 - ci(codecov): disable CodeCov 5623 - test(asset): add guard to test_img_emoji_F617 5559 - ci(micropython): use the master branch 5460 - test(snapshot): add testcase for #5475 5478

Others

  • chore(cmsis-pack): prepare for v9.1.0

5917 - chore: fix header files include recursion 5844 - chore(group): avoid null pointer access 5863 - refactor(conf): rename LV_DRAW_SW_LAYER_SIMPLE_BUF_SIZE to LV_DRAW_LAYER_SIMPLE_BUF_SIZE 5798 - chore(freetype): remove unused codes 5885 - chore: fix compile time warnings 5872 - adds `extern "C"` to the header files that were missing it. 5857 - chore(stdlib): remove duplicate function declaration 5845 - chore(benchmark): add warning for probably low memory 5797 - chore(group): add assertion to avoid null pointer access 5769 - refact(Kconfig): update as per lv_conf_template.h 5780 - Fix the compilation error problem of lvgl9.x on rtthread 5794 - refact(vg_lite): abstract common pending release logic 5756 - doc(stm32): fix typo 5772 - doc(cache): add doc strings for cache APIs 5718 - chore(docs): fix typo 5738 - chore(font): remove unused defines 5716 - chore: add stride information in the image resource file 5653 - chore(draw_buf): remove unnecessary info logs 5634 - chore(cmsis-pack): catchup update 5611 - More chore work in indev files 5604 - Stride adjust in place 5423 - chore(conf): use EXTERNAL and INTERNAL macro to config libs 5046 - chore(vg_lite): use pointer to access matrix element 5591 - refactor(image): rename align to inner_align 5560 - chore(deps): bump codecov/codecov-action from 3 to 4 5567 - chore(deps): bump carlosperate/arm-none-eabi-gcc-action from 1.8.0 to 1.8.1 5565 - chore(deps): bump mymindstorm/setup-emsdk from 13 to 14 5566 - chore(deps): bump actions/cache from 3 to 4 5568 - chore(deps): bump uraimo/run-on-arch-action from 2.6.0 to 2.7.1 5569 - optionally install demos and libs as well 5387 - chore(arc): fix typo 5553 - Revert "feat(font_glyph_format): refactor draw and font format into `lv_font_glyph_format_t`" 5550 - chore(thorvg): fix warning 5535 - refactor(snapshot): use draw buffer interface 5487 - chore(vg_lite): fix typo 5525 - demo(music): add png assets 5520 - chore(indev): Cleanup before working in double and triple click support 5512 - chore(demos): Remove unused definitions 5506 - chore(obj_draw): remove duplicate invalidate 5503 - chore(widgets): add parentheses to MY_CLASS definition 5485 - chore(draw-sw-transform): remove duplicated code 5488 - chore(README): Fixed #5491 Typo 5492 - chore(vg_lite): remove 64-bytes alignment requirement 5477 - chore(refr): fix typo 5474 - chore(array): use array_front and use it like an array 5448 - chore(cache): only cache header info for file type of image 5455 - refactor(indev_scroll): refactor code 5456 - chore(draw_buf): add header magic to draw buff 5449 - chore(Kconfig): add missing profiler trace buffer size config 5436 - chore(libpng): fix warning 5431

Others

  • refactor(freetype): refactor freetype params

0c84cc0 - refactor(freetype): refactor glyph_index acquire method 0b3016c - chore(README): Fixed #5491 Typo (#5492) 9c025d3

v9.0

For Other v9.0.x releases visit the Changelog in the release/v9.0 branch .