[中文]

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 .