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
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
v9.0
For Other v9.0.x releases visit the Changelog in the release/v9.0 branch .