Change Log

v9.4.0 16 October 2025

LVGL v9.4.0 brings significant performance improvements, expanded GPU support, and new capabilities for modern embedded and MPU platforms.

Main Features

  • glTF + 3D Support. Load your glTF 3D models directly into LVGL UIs for rich, immersive interfaces. Learn more.

  • XML support for LVGL Pro. Describe your UI declaratively and load it at runtime without having to recompile firmware. Try it out with the newest LVGL Pro Editor. Learn More <https://pro.lvgl.io/>__

GPU Acceleration

  • EVE GPU Renderer Support. Offload rendering to external EVE chips via SPI, freeing up your MCU's CPU for other tasks. Learn More.

  • ESP PPA Hardware Accelerator. Achieve 30% faster render times and 30% reduced CPU usage on the new ESP32-P4 with native hardware acceleration. Learn More.

  • NemaGFX Vector Graphic. Render SVGs and vector graphics natively on ST's NeoChrom and other NemaGFX compatible GPUs. Learn More.

  • Unified VGLite Renderer. Single driver supporting all platforms with a consistent feature set. Learn More <https://docs.lvgl.io/master/details/integration/chip_vendors/nxp/vg_lite_gpu.html>

  • Dave2D Renderer improvements. Lower CPU usage on Renesas and Alif platforms with optimized Dave2D integration. Learn More <https://docs.lvgl.io/master/details/integration/chip_vendors/renesas/built_in_drivers.html#dave2d>

MPU Features

  • GStreamer Support. Play videos and multimedia content directly within LVGL UIs with full GStreamer codec support. Learn more.

  • DRM + EGL Driver. High-performance Linux display rendering with native DRM and OpenGL ES (EGL) support for embedded displays capable of rendering glTF models. Learn more.

  • ARM NEON Optimization. Up to 33% faster software rendering with on platforms that support NEON SIMD support. Learn More.

Other Features

  • Faster GIF Library. No changes required, just upgrade LVGL and your GIFs will render faster. Learn More.

  • FrogFS support. Pack directory trees into a single "blob" and load them at runtime. Learn More.

Documentation

Alongside these features, we've thoroughly reorganized and proofread the entire documentation suite, and included numerous new driver guides and platform integrations to better serve our partners and the embedded community.

New Features

  • feat(EVE): allow disabling write buffering 9072

  • feat(opengl): support glsl version 100 for default shader 9029

  • feat(subject): add back subject increment events 9057

  • feat(xml): add scrollbar modes 9058

  • feat(test): reintroduce lv_text_get_size without attributes 9036

  • feat(theme): re-initialize the theme on resolution change 9048

  • feat(g2d): add rgb565, png, tiled images and rotation support 8848

  • feat(gltf): replace default gltf env image with a more generic solution 9045

  • feat(drivers): NV3007 driver & docs 9021

  • feat(sysmon): add cpu proc usage when using monitor log mode 9010

  • feat(drm): add ability to select display mode 8992

  • feat(osal): enable linux specific features with os_none 8989

  • feat(egl/gltf): add gltf support with EGL 8980

  • feat(draw): support image colorkey 8628

  • feat(NemaGFX): add vector draw task support 8938

  • feat(chart): add cursor removal method 8952

  • feat(lv_global): move user_data to the top of lv_global_t 8908

  • feat(sdl): Add SDL_Window accessor function to retrieve window from lv_display_t 8886

  • feat(kconfig_verify): add space indentation check 8962

  • feat(xml): add spinbox support 8957

  • feat(EVE): support fonts with a stride alignment 8937

  • feat(xml): support &lt;include_timeline&gt; 8902

  • feat(display): deprecate lv_display_set_antialiasing 8958

  • feat(roller): function to get option string 8730

  • feat(xml): add subject_toggle_event and move the limits to subjects from increment event 8930

  • feat(qrcode): add new set_data helper function 8950

  • feat(draw/sw): add neon support for rgb888 and xrgb8888 8933

  • feat(XML/fsdrv): add frogfs and XML load from blob 8870

  • feat(xml): add new step tests click_on and set_language 8931

  • feat(label): implement api to bind a translation tag to a label 8948

  • feat(vglite): refactor driver config and remove NXP VGLite draw unit 8911

  • feat(pxp): add PXP support for tiled images 8846

  • feat(translation): add language changed event 8882

  • feat(profiler): add posix porting 8924

  • feat(EVE): support bitmaps larger than 511x511 8732

  • feat(XML): XML load from directory 8774

  • feat(wayland): remove deprecated WL_SHELL 8877

  • feat(api_mapping): add ability to disable api mapping 8745

  • feat(xml): add qrcode support in XML 8904

  • feat(draw/dave2d): remove todos 8896

  • feat(opengl): add support for creating an LVGL OpenGL texture display from an existing texture 8837

  • feat(grad): make complex gradients available regardless of whether draw_sw support is enabled 8834

  • feat(event): add ability to delete display and indev on event 8893

  • feat(draw): add event_cb in draw unit 8891

  • feat(sdl): add set_window_size 8809

  • feat(xml): add rotation in arc xml parser 8899

  • feat(style): add `lv_style_merge` and appropriate tests 8680

  • feat(wayland): Restore the touchscreen support 8785

  • feat(gstreamer): add gstreamer support 8757

  • feat(gltf): allow compiling gltf with EGL 8833

  • feat(tests): add lv_deinit test 8789

  • feat(draw_buf): add MVE & NEON support of alpha premultiply 8712

  • feat(OpenGL): add EGL support 8677

  • feat(osal): add lv_sleep_ms interface and implementation. 8805

  • feat(display): add ability to get current screen being loaded 8746

  • feat(display): initial lovyan integration 8630

  • feat(draw): vg_lite: add initial support for the VGLite HAL 8795

  • feat(opengles): add performance measurement points 8776

  • feat(NemaGFX): Support complex gradients: linear, radial 8696

  • feat(tests): add lcd driver test 8759

  • feat(wayland/dmabuf): add window decorations support 8406

  • feat(draw/dave2d): improve performance using block processing 8725

  • feat(vglite): add vglite kernel driver 8734

  • feat(gltf): add gltf support 8643

  • feat(workflows): add gcover report 8750

  • feat(EVE): add asset pre-upload functions 8710

  • feat(draw_buf): make buf_copy overwritable for GPU 8693

  • feat(draw/sw): add neon 64bit support for rgb565 blending operations 8590

  • feat(font_manager): check resource leak before removing source 8613

  • feat(evdev): allow adopting existing fd 8556

  • feat(chart): add stacked chart support 8573

  • feat(xml): add animation support 8599

  • feat(nuttx_profiler): support trace to file 8674

  • feat(vg_lite): added compatibility with NXP platforms 8642

  • feat(EVE): Add EVE draw unit 8211

  • feat(scripts): add display & drawbuf dump 8645

  • feat(sysmon): add API to start or stop sysmon and dump FPS info 8533

  • feat(obj): allow `LV_SIZE_CONTENT` for min and max width/height 8448

  • feat(NemaGFX): encoded images 8523

  • feat(cache): implement dynamic array with second chance algorithm class 8433

  • feat(font): Remove SimSun Font 8550

  • feat(svg): add SVG2 special path command 'A' support. 8574

  • feat(label): support passing variadic list as param 8322

  • feat(demo): separate the widgets demo into multiple files 8507

  • feat(xml): add lv_xml_set_default_asset_path 8549

  • feat(xml): add float support to subject change events 8535

  • feat(nuttx) : add mouse capabilities to applications 8425

  • feat(state): Add state trickle down 8499

  • feat(events): add event trickle mechanism to propagate events to children 8415

  • feat(chart): support custom LV_EVENT_REFR_EXT_DRAW_SIZE 8268

  • feat(osal/linux): add function which provides cpu usage of the app itself 8340

  • feat(dma2d): enable the DMA2D clock for STM32L4 series 8429

  • feat(anim): call start callback when animation restarts 8403

  • feat(DMA2D): encoded images 8470

  • feat(translation): add translation support 8255

  • feat(xml): add testing support for XMLs 8327

  • feat(observer): add float subject type 8388

  • feat(dma2d): improve DMA2D Compatibility 8293

  • feat(assert): refactoring LV_ASSERT_HANDLER handling 8434

  • feat(anim): add vsync mode 8087

  • feat(drivers): add NXP ELCDIF initial display support 8349

  • feat(draw/ppa): add initial Pixel Processing Accelerator infrastructure for ESP 8270

  • feat(vg_lite): add tile image support 8226

  • feat(draw): Optimize struct alignment 8409

  • feat(vg_lite): support tiled image 8355

  • feat(tiny_ttf): add kerning cache 8320

  • feat(xml): make &lt;style&gt; and &lt;bind&gt; properties child tags instead of props 02b079f

  • feat(observer): add subject set and increment functions 3ecd37e

  • feat(arc_label): add new widget arc label support 5f28038

  • feat(obj): add screen_create/load_event API and XML support a762e20

  • feat(observer): add lv_obj_bind_style 104ede5

  • feat(xml): add remove_style and remove_style_all support 3951ea4

  • feat(arc_label): support recolor feature 78e3375

  • feat(scale): add lv_scale_bind_section_min/max_value 7aaeb66

  • feat(span): add lv_spangroup_bind_span_text and lv_spangroup_set_span_text_fmt 03c4870

  • feat(xml): add lv_switch 250bc8b

  • feat(scripts): add fully automatic test + environment installation verification script 6fbdb7f

  • feat(arc_label): support vertical align feature cb22319

  • feat(examples): add arc label example 5e8add3

  • feat(draw): Use Espresssif PPA driver in non-blocking mode, also tune the DMA2D burst size for performance on PPA side f3e0056

  • feat(image): add data binding to image src d33320b

  • feat(xml): add grid support 92a51f0

  • feat(bar): add data binding to the bar 9bddc81

  • feat(arc_label): support horizontal align feature bcfc2ab

  • feat(qrcode): support qrcode quiet zone feature 0b71f7d

  • feat(tabview): support getting tab buttons by index fbc8dbe

  • feat(xml): add support for scroll snapping 40158e4

  • feat(arc_label): support text offset fc83651

  • feat(build.py): add documentation section to quickly orient new users on where data flows. e818acf

  • feat(xml): qrcode support quiet_zone property 98423e6

  • feat(arc_label): support text letter space 33bb46f

  • feat(arc_label): support text direction of counter clockwise f55fee8

  • feat(arc_label): support more calculate accuracy 1dc268e

  • feat(custom.css): add `lvgl-figure-caption` class back... ebcd244

  • feat(arc_label): support radius percentage mode 7cdc1ef

  • feat(xml): review the types used for style properties 96e4f8f

  • feat: make enum type names consistent with value prefixes 82cd8ad

  • feat: remove line from `requirements.txt` that is not actually required to build docs 452878f

Performance

  • perf(EVE): buffered writes 9051

  • perf(egl): improve egl performance 8966

  • perf(GIF): Faster GIF library drop-in replacement 8743

  • perf(tests): remove duplicate vg-lite compilation 8841

  • perf(test_perf): increase the refresh rate to 60 FPS 8751

  • perf(vg_lite): optimize GPU fill rendering performance 8609

  • perf(vg_lite): optimize the memory usage and search speed of grad item 8474

  • perf(snapshot): render from the top object when taking snapshot. 8424

  • perf(text): reduce the get glyph function call 8364

  • perf(draw): only dispatch refreshing disp 8305

  • perf(arc_label): optimization enhancement of arc label algorithm b49bba5

Fixes

  • fix(windows): correctly calculate Windows window-size 9060

  • fix(g2d): properly check and free an item from the map 9065

  • fix(DMA2D): fix non-async mode build failure 9069

  • fix(vg_lite_driver): general fixes at the vglite driver and vglite draw unit link 9063

  • fix(label): ignore empty translation tags 9062

  • fix(examples): fix format specifier warning 9066

  • fix(g2d): fix compilation error with G2D version &lt;2.3.0 9061

  • fix(chart): fix division by zero if div. line count is 1 9064

  • fix(dma2d): enable dma2d clock for STM32N6 9044

  • fix(indev): fix off by one error resulting in elastic scroll when disabled 9047

  • fix(anim): play animations from their current progress 9052

  • fix(draw_sw): sw vector graphic partial mode fix y_offset 9006

  • fix(wayland): correctly get driver data in lv_wayland_assign_physical_display 9017

  • fix(draw/neon): disable function using an invalid intrinsic on arm32 9019

  • fix(OpenGL/DRM): fix misc info logs 9027

  • fix(draw/vglite): update the wait interrupt function to use the lv_sync_wait instead of the FreeRTOS Semaphore specifc API 9007

  • fix(draw): fix render issue when triangle overhangs by sorting points 9002

  • fix(table): remove free calls to user data 8881

  • fix(wayland): bind driver data to display's driver data instead of user data 8991

  • fix(wayland): multiple windows fix and wl_output support 8923

  • fix(assert): revert asserting in `lv_assert_handler` function 8976

  • fix(file_explorer): fix mem leak when sorting by file kind 8935

  • fix(themes): add malloc assert checks 8977

  • fix(drm/egl): correctly match egl config in config select cb 8978

  • fix(sdl): support UTF-8 characters in the keyboard 8906

  • fix(xml): add the missing parsing of min/max subject limits 8971

  • fix(wayland): bind draw buffers to the window instead of the shm_context 8878

  • fix(draw_buf): check range for draw buffer when accessing pixel 8907

  • fix(opengles): add missing variable declaration 8969

  • fix(menu): larger bitfield for enum value needed on Windows 8965

  • fix(gdb/draw_buf): validate and correct expected data size for pixel buffer 8944

  • fix(EVE): align the dummy buf to 4 bytes 8953

  • fix(vg_lite): change log level from info to warning for unsupported gradient features 8947

  • fix(fbdev): fix stride, bounds checking, and partial flushes in direct render mode in flush callback 8914

  • fix(vg_lite): replace FLT_MIN to -FLT_MAX 8940

  • fix(matrix): fix matrix transformation area coordinate error 8928

  • fix(vector): rename and enhance rectangle path function with xywh parameters 8934

  • fix(msgbox): remove superflous dependency check 8916

  • fix(sysmon): division by zero error 8918

  • fix(flex): fix alignment issue when using rtl in flex layout 8929

  • fix(vector): adjust image stride handling in fill pattern and add test case 8815

  • fix(vg_lite): fix build break after LV_USE_VECTOR_GRAPHIC is turned off 8912

  • fix(keyboard): add missing dependency checks 8917

  • fix(wayland): fix stride calculation when iterating over drawbuf 8915

  • fix(kconfig): add TinyTTF cache count setting support 8919

  • fix(memfs): use string only in lv_fs_path_ex_t for better compatibility 8571

  • fix(os): make lv_lock/unlock public as they should be used by the users 8889

  • fix(menu): allow using menu section as parent of menu container 8884

  • fix(xml): fix grid support 8888

  • fix(font): fix stride calculation of fonts 8887

  • fix(label): make long dot mode compatible with static text 8823

  • fix(opengles): fix memory leak when shader compilation fails 8854

  • fix(sysmon): handle LV_SYSMON_PROC_IDLE_AVAILABLE disabled in lv_linux 8871

  • fix(profiler): remove macro for external usage 8894

  • fix(span): opt span ellipsis more precise in omitting text 8864

  • fix(file_explorer): ensure current_path is null-terminated after appending '/' 8797

  • fix(gdb): use stride to get actual buffer width for display dump 8853

  • fix(draw/dave2d): prevent deadlock by avoid to flush the GPU buffer when empty. 8869

  • fix(fbdev): fix segfault when using display rotation 8850

  • fix(dmabuf): flicker when the buffers are swapped for new frame 8563

  • fix(label): issue when setting fmt text with long mode dots 8781

  • fix(vglite): arc_path calculation overflow on VGLite 8847

  • fix(draw/dave2d): redefine fixed point macros 8859

  • fix(xml): fix multiple delimiter handling in lv_xml_split_str 8858

  • fix(svg): fix stroke dash style not restore bug. 8844

  • fix(draw/sw): check that malloc doesn't return a NULL pointer 8756

  • fix(wayland): throw error when using dmabuf without 2 draw buffers 8744

  • fix(span): fix text width calculations and improve ellipsis handling 8821

  • fix(tjpgd): Fixed memory leak if opening JPEG image failed. 8707

  • fix(sdl): The default size is fixed 8808

  • fix(opengl): fix multiple issues with shader manipulation 8832

  • fix(draw/convert): fix duplicate c declaration symbol during docs build 8827

  • fix(indev_gesture): fix memory leak when deleting indev 8814

  • fix(cache): make the cache module private 8793

  • fix(gltf): add missing initialization call for viewer attribute 8807

  • fix(label): preserve recolor state across line wrapping 8755

  • fix(draw/dma2d): fix freezing in async mode. 8765

  • fix(draw/pxp): fix alignment issue on cache flush. 8764

  • fix(profiler): fix crash during lv_deinit 8788

  • fix(freetype): fix crash during lv_deinit 8787

  • fix(lodepng): check that src is not null before calling memcpy 8791

  • fix(jpeg): fix to use source stride when copy jpeg 8778

  • fix(style): format error in log call 8754

  • fix(test_span): remove the reference before deleting the font 8753

  • fix(event): don't try to trickle to deleted widgets 8777

  • fix(vg_lite): fix rotated vector font clipping error 8739

  • fix(EVE): rounded arcs with transparency 8767

  • fix(image): reset img when src_type is unknow or info is wrong 8716

  • fix(image_decoder): fix memory leaks caused by multi-core rendering 8735

  • fix(image): fix unused var warning when LV_LOG_WARN isn't available 8591

  • fix(tests): fix gcovr report generation failure 8727

  • fix(canvas): add the missing D-Cache flush 8736

  • fix(test_cache): fix access to freed stack variables 8717

  • fix(draw_span): add missing line_space attribute to dsc and remaining_len check 8718

  • fix(drivers): fix compile error for st ltdc 8704

  • fix(scale): initialize label size if text is NULL 8699

  • fix(evdev): add support for multi-touch 8173

  • fix(SVG): fix SVG decoder memory leak. close decoder 8658

  • fix(eve): fix image double ended clipping in EVE 8675

  • fix(xmls): fixed division lines in Chart XML API 8681

  • fix(EVE): fix EVE build break 8672

  • fix(vg_lite): remove the 16px width limit for image tile drawing mode 8661

  • fix(vg_lite_tvg): fix matrix calculation inconsistency with hardware behavior 8666

  • fix(vg_lite): always use phy_clip_area as the scissor area 8669

  • fix(indev): always assign data-&gt;point to the primary point instead of… 8596

  • fix(draw):fix lv_matrix_transform_point 8667

  • fix(demos/widgets): add missing aligned font resource declarations 8647

  • fix(vg_lite): fix incorrect handling of ARGB8888_PREMULTIPLIED 8610

  • fix(vg_lite_tvg): fix incorrect stride handling 8648

  • fix(textarea): fill letter space with selection bg color. 8238

  • fix(msgbox): fix memory leak and correct LV_ASSERT_MALLOC parameters 8624

  • fix(textarea): label scroll to the cursor pos when textarea size change 8548

  • fix(scripts): Union syntax compatible with Python 3.8 8641

  • fix(font loader): overflow error when calculating ids size 8617

  • fix(svg): cast char to unsigned preventing char subscription errors 8619

  • fix(example/label): make animation repeat indefinitely 8621

  • fix(tabview): emit LV_EVENT_VALUE_CHANGED on header-button taps 8537

  • fix(dropdown): support aligning the dropdown button's text 8601

  • fix(mem): change variable attribute location 8593

  • fix(grid): fix uninitialized var warnings 8592

  • fix(dropdown): check for NULL in dropdown label before dereferencing 8543

  • fix(xml): set correct param type for subject_set_string_event 8595

  • fix(xml): add missing type for lv_arc start/end angles 8580

  • fix(xml): specify element type="void" for event/screen events 8577

  • fix(xml): fix incorrect prop names in lv_arc 8562

  • fix(label): fix label clip overflow 8557

  • fix(NemaGFX): non-grad triangle coords 8524

  • fix(draw_vector): ensure vector_graphic can be used if it's enabled 8522

  • fix(svg): add log for unsupport path command. 8545

  • fix(xml): add missing subject_set_float_event to the schema 8538

  • fix(lv_example_bar_7): make bar fit in 320x240 box for webpage 8525

  • fix(xml): fix scale section props 8528

  • fix(draw/g2d): use image stride if it's set 8503

  • fix(snapshot): not all children rendered during snapshot 8479

  • fix(indev): set the timestamp only if it was not set in the read_cb 8501

  • fix(wayland): call display_flush_ready on intermediate frames 8471

  • fix(examples): wrap logging code with LV_USE_LOG to avoid unused variable warnings 8377

  • fix(g2d): calculate stride because it may not be set in the image descriptor 8483

  • fix: include v9.2 api map to avoid breaking changes 8490

  • fix(vg_lite): fix grad item not fully initialized 8486

  • fix(draw/sw_mask): fix potential buffer overflow 8478

  • fix(lv_deinit): only call xml test call when both LV_USE_XML and LV_USE_TEST are enabled 8482

  • fix(indev): decouple scroll momentum decay from indev read loop (#6832) 7794

  • fix(draw_sw): fix ARGB8888PM case where the color of dest and src is the same but opa is different. 8454

  • fix(wayland): Avoid premultiplication at the driver level if LVGL is already rendering in pre-multiplied alpha. 8456

  • fix(dropdown): handle the case where options are null lv_dropdown_add_option 8338

  • fix(xml): handle LV_STATE_USER_1-4 8451

  • fix(assert): fix lv_assert_handler function static analyze complain 8447

  • fix(blend/helium): eliminate duplicate function declarations 8402

  • fix(draw): Fix unused function warning for blending 8414

  • fix(bin_decoder): don't flush cache in case of `use_directly` 8411

  • fix(svg): fix some svg issues. 8378

  • fix(span): fix correct text length calculation 8368

  • fix(uefi): include configuration header instead of full LVGL header 8380

  • fix(sdl): add malloc check after reallocating memory 8369

  • fix(draw_vector): fix the unprocessed layer opa in vector rendering 8294

  • fix(kconfig): Fix depends clauses for LV_USE_OS 8392

  • fix(thorvg): fix compilation on thread-less platforms 8373

  • fix(thorvg): include alloca on zephyr 8381

  • fix(xml): fix screen names and extended component names b441ec3

  • fix(custom.js): fix to correctly deal with when... 45e4041

  • fix(xml): make all obj elements type=void 8de083e

  • fix(xml): minor fixes in parsers dea37bd

  • fix(custom.js): fix examples code-folding issue... 706715f

  • fix(xml): find constants in styles in the global scope 84acb67

  • fix(arc_label): fix the pointer overflow issue in 32-bit mode 059eb4a

  • fix(grid): ignore grids without row or column descriptors 38000e8

  • fix(xml): process 'align' style property ec0e3cf

  • fix(xml): fix prop order of subject_set_* f7dc114

  • fix(xml): fix wrong tag names for subject events 8599e9b

  • fix(xml_animation): use lv_obj_find_child_by_name instead of lv_obj_get_child_by_name 876dacb

  • fix(scripts/prerequisites-apt): corrected freetype version number for verification dccab75

  • fix(properties.py): fix to comply with adjustments 3a4cf38

  • fix: add `brotli` module required for `fonttools` to... 4c6624b

  • fix(obj xml): fix typo in style_shadow_width 42a391d

  • fix(texarea xml): rename placeholder to placeholder_text 3f41172

  • fix(xml): fix event_cb parser typo (trigger_str -&gt; trigger) 244f9cc

  • fix(scripts/prerequisites-apt): add missing libsdl2-dev:i386 installation c0d08d8

  • fix(keyboard xml): add number mode 248192f

  • fix(xml): add missing lv_xml_widget.h include 6ff3cee

  • fix(xml): fix better handling broken components 592df6b

  • fix(docs): fix docs build for arclabel example building f40e0e5

Examples

  • examples(scale): Compass style rotating scale 8445

Docs

  • docs(xml): fix the descripton of how to initialize the UI from C 9070

  • docs(README): remove outdated content and add new features 9023

  • docs(xml): Fix array type description count to 3 (#9013) 9028

  • docs: update the esp docs indentation at the FS section. 9031

  • docs(editor): improve installation and figma docs 8998

  • docs(drivers): fix broken links 9022

  • docs(espressif): fix indentation at file system reconfigure project. 9024

  • docs(xml/events): rename page to avoid confusion when searching documentation 8995

  • docs(flags): add chapter explaining how to add/remove multiple flags 9000

  • docs(events): add explanation about lv_event_get_target_obj warning and tips 8996

  • docs(xml): add missing licence files 8984

  • docs(editor): add missing intro pages and minor tweaks 8983

  • docs: split indev, style, and widget basics to multiple pages 8943

  • docs(editor): add XML and C integration guides and minor refactoring 8954

  • docs(xml): add help texts in XMLs 8961

  • docs(pc): add the missing PC simulator docs 8824

  • docs(editor): add cli docs 8970

  • docs(snapshot): complementary color format 8780

  • docs(xml): add online share docs 8973

  • docs(editor): add docs specific to editor 8972

  • docs(style): update font sizes and weights for improved readability 8968

  • docs(events): fix grammatical issue 8782

  • docs (frameworks): PlatformIO 8942

  • docs(xml): add placeholder for editor docs 8910

  • docs(misc): fix doc issues described in issue #8839 8857

  • docs(timer/indev): add example section about indev interrupts resuming the indev timer 8843

  • docs(opengl): add opengl overview page 8838

  • docs(xml): reorganize and add better descriptions 8818

  • docs(espressif): update esp32 documentation 8830

  • docs(Kconfig): clarify comments about driver-identifier letter 8851

  • docs(misc): fix multiple formatting errors and typos 8738

  • docs(misc): fix formatting errors, typos and missing reference 8748

  • docs(style): fix arrows in code blocks 8819

  • docs: fix indev.rst typo 8721

  • docs(xml): next set of XML-doc refinements 8740

  • docs(STM32): simplify and rewrite 8768

  • docs(mipi): align return type of callbacks in documentation with code 8803

  • docs(integration): reorganize the files 8701

  • docs(wayland): use correct window create function name 8731

  • docs: miscellaneous improvements 8552

  • docs(image.rst): remove reference to True Color which was removed in v9.0 8700

  • docs(misc): fix several issues: 8714

  • docs(keyboard): fix typos and unify comments 8391

  • docs(misc): fix several issues 8698

  • docs(api_doc_builder.py): fix frail assumptions in API-page generation 8694

  • docs(xml): results of minor amount of proofreading 8604

  • docs(drivers): Update st7796.rst URL 8687

  • docs(image): document the fact that indexed data is stored as argb8888 8620

  • docs: update docs styling 8585

  • docs(custom.css): fix text color on view-on-github example buttons 8652

  • docs(custom.css): Fix field list items being jammed together 8639

  • docs: remove outdated references to LV_ZOOM_IMAGE_NONE 8632

  • docs(LTDC): Clarify LTDC framebuffer address meaning 8615

  • docs(list formatting): fix erroneous list formatting 8602

  • docs(readme): fix broken links 8605

  • docs(style): fix definition-list indentation 8616

  • docs(intro): improve initial presentation of LVGL... 8597

  • docs(renesas): mention relevant information about FSP 6.0 8572

  • docs: fix wording in display event, viewe and renesas 8546

  • docs(home): fix links 8560

  • docs(intro): reorganize and simplify 8389

  • docs: remove outdated doc material 8520

  • docs(xml): restructure and extend the XML docs 8495

  • docs(Renesas): Add Renesas RA8P1 docs 8509

  • docs(readme): add Hebrew language section to documentation 8345

  • docs(wayland): add missing documentation about its config options 8476

  • docs: fix spacing between same-level sections and h4 and link colors 8443

  • docs(lv_conf): fix links 8462

  • docs(1-level TOC styling): multiple fixes... 8431

  • docs: Fix several typos and punctuation 8427

  • docs(calendar): fix typo 8413

  • docs(boards): Add Viewe Knob Display links 8461

  • docs(doc-build warnings): fix warnings caused by LV_FORMAT_ATTRIBUTE 8384

  • docs(xml): add license for the XML format 8438

  • docs(observer): fix typo in parameter description 8372

  • docs(custom.css): partially address code-highlighting problem... 8374

  • docs(CHANGELOG.rst): fix link to SVG support page 8356

  • docs(CHANGELOG.rst) replace `kisvegabor/lvgl_upstream` with... 9cf1e38

  • docs: generate changelog 05d8b9e

  • docs: Lot of smaller improvements based on feedback 2b9592e

  • docs(custom.js): The custom.js file now contains the version selector controller JavaScript and other methods that were previously directly added to the main layout. 8541a11

  • docs(custom.css): enhance styling and add custom CSS variables 4f843e8

  • docs(data_binding): move the data binding docs to to the given widget's page f6f6570

  • docs: add dynamic announcements from remote .JSON 77cfa87

  • docs(furo): convert to furo theme... 2129d37

  • docs: Enhance sidebar, remove jQuery dependency 5b3d6d8

  • docs(misc): eliminate several Sphinx warnings b74ac71

  • docs(Sphinx Warnings): add name to anonymous enums to... 55ab01e

  • docs(icons.html): Update SVG icons for improved accessibility and consistency a13113b

  • docs(arc_label): add arc label docs 8487b4c

  • docs: fixed several problems... 4533d29

  • docs(misc): minor improvements to: 450a390

  • docs(doxygen_xml.py): exclude files that... e92ce1f

  • docs(enum-naming): adjustments per conversation with Gábor 5bc21a4

  • docs(logo): update dark and light logos 44a369a

  • docs(custom.css): format field lists 45575c0

  • docs(observer): fix minor typos 0594775

  • docs(API/index.rst): eliminate Sphinx warnings when... 0829150

  • docs(data_binding): fix typos db71f48

  • docs(CHANGELOG.rst): fix parsing error on 8 boldface strings 82ff3c2

  • docs(custom.css): Refactor link color variables for improved theming consistency f725034

  • docs(observer): fix subject name in the example 8003908

  • docs(properties.py): fix several problems... f3370d0

  • docs(index.rst): Add `hide-toc` furo theme prop to hide sidebar on the homepage and remove main header image. af2c420

  • docs(style): add example values to lv_style_selector_t 6bcdf3c

  • docs(observer): minor grammar corrections 989ac6c

  • docs: (custom.css): add caption feature and... 6f26b71

  • docs(build.py): make Sphinx exit with status 1 when new warnings show up ef4aa46

  • docs(os/index.rst): put TOC back in apha sequence c994e5c

  • docs(custom.css): Fix theme toggle button label color bc4b55c

  • docs(Makefile): fix typo for Linux sphinx-build after intermediate directory created 79e55d4

  • docs(lv_obj.h): make enum name consistent with enumerators 3d1b533

  • docs(lv_obj.h): make enum name consistent with enumerators ffb29b0

  • docs(lv_svg.h): fix build of `lv_svg.c` cb76aaa

  • docs(image.rst): fix doc-gen warning 70f8c52

  • docs(unneeded): eliminate unneeded docs.... d2d2acc

CI and tests

  • ci(release_updater): some release_updater fixes and conf.defaults deprecated configs are non-fatal 9076

  • ci(release_updater): fix 2 port updater URLs 9074

  • ci(pio): fix the PlatformIO publisher action 9073

  • ci(docs): fix docs ci by fetching lvgl in default gh workspace folder 9053

  • ci(docs): fix docs CI. use the action's checked-out repo for emscripten 9020

  • test(docker): add compatibility to tests' dockerfile for arm platforms 9015

  • ci(docs): fix examples build error when not rebased fully 8880

  • ci(test): generate the I1 test images with pngquant 2.17 8892

  • test(bin_decoder): add lv_bin_decoder test case 8867

  • ci(stalebot): increase stale and close times to 60 and 14 days 8840

  • ci(hw/comment): gracefully exit workflow if triggered by another label 8828

  • test(images): update test images according to LVGLImage script 8790

  • ci(install): add cmake installation workflow 8794

  • tests: add LV_DRAW_BUF_STRIDE_ALIGN = 1 test 8804

  • test: fix syntax warning by using invalid escape sequence '.' 8792

  • ci(deps): bump actions/checkout from 4 to 5 8796

  • ci:(port_updater): add more CI port updater urls 8686

  • tests: rename makefile directory to makefiles. 8646

  • ci: add hardware performance test workflow 8567

  • ci: find and edit existing comment for benchmark results 8531

  • ci: disable benchmark results comment if there's no diff 8515

  • ci: emulated perf workflow 7949

  • ci(lv_templ): fix filename template mismatches and add CI 8326

  • test(perf): add perf test framework 8064

  • test(arc_label): add arc_label test cases 9cf663e

  • test(qrcode): add qrcode quiet zone test bdcb291

  • ci: enable LV_USE_OBJ_NAME as it's required for some XML features 297aeae

  • ci(hw): add missing fontconfig lib dependency for ejlv f5fe4f2

  • ci: correctly pull the latest results in case it's a PR ac36b29

  • ci(perf/build/hw): remove checkout step from workflow 7081b45

  • ci(hw): increase job timeout 826d167

  • ci(build/hw): disable relunctant hw builds on pushes to master f6198e6

  • ci: update lv_perf image version to a more stable version 29eac60

  • ci(perf/hw): correctly pass github token to command 0b6cab8

  • ci: generate a release body for the benchmark results pre-release ea86afd

Others

  • chore(cmsis-pack) update cmsis-pack for the last PRs of v9.4.0 9077

  • chore(cmsis-pack): Update for v.9.4.0 8945

  • chore(conf): remove redundant thorvg definition 9067

  • chore: fix examples not showing on docs by fixing path to examplelist.c 9059

  • refactor(style): remove dead code 9040

  • build(cmake): fix MSVC exports for shared/static libraries on Windows 9026

  • build(kconfig): add missing argb8888 premultiplied setting 8997

  • chore(deps): bump actions/setup-python from 5 to 6 8985

  • chore(deps): bump actions/stale from 9 to 10 8986

  • chore(deps): bump actions/checkout from 4 to 5 8987

  • chore(deps): bump actions/github-script from 7 to 8 8988

  • chore(font): add missing special characters to aligned fonts 8975

  • chore(xml): add API docs to lv_xml_update_from_data 8967

  • chore: fix lv_font_montserrat_14_aligned.c include 8951

  • refactor(opengles): mainline usage of shader manager in opengl driver 8836

  • refactor(gdb): lv_global supports lazy loading and refactors some structures and formats. 8939

  • refactor(vector): clean up the API of vector drawing 8922

  • chore(xml): add guards around widget parsers 8932

  • refactor(gdb): re-structure lvglgdb module 8920

  • chore(tests): fix typo in qrcode test 8900

  • chore(lvconf_gen): generate empty lv_conf.h if it doesn't exist 8885

  • chore(repo_updater): add missing boards to the repo updater 8856

  • refactor(sysmon): polish the UI with LV_SYSMON_PROC_IDLE_AVAILABLE 8519

  • chore(kconfig): add missing LV_OS_SDL2 option to LV_USE_OS 8831

  • refactor(opengl): move opengl shader manager to opengles driver 8829

  • chore(font): replace arial with liberationsans 8784

  • scripts: add the frdm-mcxn-947 to the branch updater script 8752

  • chore: remove multiple semicolons 8723

  • Fixes bug where multiple events with same callback couldn't be removed in single call. 8706

  • chore(deps): bump dawidd6/action-download-artifact from 9 to 11 8654

  • build(zephyr): remove zephyr env cmake 8695

  • chore(stale): ping maintainers on stale bot comments 8683

  • chore(indev): explain why the timer is resumed on press in event driven mode 8660

  • chore(configopts): add support for LV_*_USE_* defines 8575

  • refactor(text): use struct to pass params to lv_text_* and lv_font_* functions 8500

  • chore(examples/scroll): remove unnecessary chinese comments that cause VC compilation failure 8668

  • Revert "feat(vg_lite): adapt premultiply src over blend mode (#6062)" 8649

  • chore(lv_tree): Code reorganization for lv_tree.h 8583

  • refactor(lv_part_t/lv_state_t): refactor to align types with prototypes 8511

  • refactor(draw): use better names in lv_draw_task_state_t and handle queued vs in_progress 8512

  • Replace legacy v9.0 call 8633

  • build(cmake): only set project name if lvgl's cmakelists is root 8588

  • chore(test/perf): add ability to debug perf tests 8569

  • build(preprocess): replace `which` with shutil.which to provide a cross-platform compatible solution to find pcpp 8530

  • build(esp): fix lvgl components requirements 8527

  • chore(deps): bump dawidd6/action-download-artifact from 9 to 11 8513

  • chore: use filename to better match mpk and json files 8518

  • chore: fix typos again 8295

  • chore(version): update version numbers to v9.4.0-dev 8498

  • refactor(themes): Improved consistency between styles 8346

  • chore(xml): fix mismatches between lv_obj elements and their XML schema 8485

  • chore(api_doc_builder): fix TOC ordering on API pages. 8421

  • chore(NemaGFX): add NemaPVG lib binaries 8430

  • chore(refr): advance send LV_EVENT_RENDER_START 8457

  • chore(lvglimage): fix indexed image premultiply error 8367

  • chore(api_doc_builder): fix regex for unix systems 8342

  • chore(image): reduce warning level for src being NULL 8394

  • refactor(drm): rename config allowing us to link with GBM automatically 8203

  • refactor(xml): use single properties and introduce the prop-paramX syntax 3e61613

  • refactor(observer): move bindings to the related widgets 26fd3e7

  • chore(arc_label): rename arc_label to arclabel 9489759

  • initial commit 1906242

  • chore(doc-build): adjustments after discussion with André. 6d546a8

  • chore: minor fixed in XML and observer related codes b4c9d2e

  • chore(xml): memzero malloced memoried for consitent behavior 584bac6

  • chore: minor formatting and optimizations b946eb6

  • refactor(arc_label): improve angle calculations and type safety 6cbf36a

  • chore(observer): add _event suffix to add_subject_set/increment bd9e9d2

  • chore(arc_label): documentation, formatting, redundant code fixes cb593b3

  • chore(xml): make element access="bind" -&gt; "custom" for more flexibility a134a56

  • revert: revert examples 272da82

  • chore(doc-build warnings): struct adjustments to work around Breathe bug 5d7b2e7

  • chore: update version 07271d5

  • chore(lv_obj.h): fix per discussion 6639c31