Change Log

v9.5.0 18 February 2026

LVGL v9.5.0 continues expanding MPU capabilities while maintaining the lightness and efficiency that make LVGL viable on resource-constrained MCUs. This release adds native blur and drop shadow rendering, a rewritten Wayland driver with EGL support, complete OpenGL rendering via NanoVG, and significant 3D rendering improvements.

Main Features

  • Blur and Drop Shadow. Native software blur and drop shadow support work on all targets without requiring a GPU. Drop shadows add depth to overlays and cards; blur enables frosted-glass effects and background dimming. Learn more.

  • Wayland Driver Rewrite. Complete rewrite with SHM backend supporting double-buffered direct mode rendering and a new EGL backend for hardware-accelerated OpenGL. Learn more.

  • NanoVG Rendering Backend. Complete OpenGL draw unit providing GPU-accelerated vector rendering, anti-aliased shapes, and compositing. Auto-initializes when OpenGL context is available. Learn more.

  • Bézier Curved Charts. New LV_CHART_TYPE_CURVE draws smooth Bézier curves between data points. Requires LV_USE_VECTOR_GRAPHICS and a compatible draw unit (VGLite, NanoVG or Software with ThorVG). Learn more.

GPU Acceleration & Performance

  • RISC-V Vector Extension Support. SIMD acceleration for software rendering on RISC-V platforms with V extension support. Speeds up blending operations. Enable with LV_USE_DRAW_SW_ASM set to LV_DRAW_SW_ASM_RISCV_V.

  • SDL EGL Support. SDL now supports EGL rendering backend, completing EGL coverage across SDL, Wayland, DRM, and GLFW for consistent hardware acceleration.

  • OpenGL Improvements. Matrix transformations, RGBA-only texture format, GLSL 330 support, and scissor optimization for opaque fills.

3D Rendering

  • Runtime glTF Manipulation. Read and modify glTF model nodes at runtime including scale, rotation, translation, and animation state for dynamic 3D scenes.

  • Raycasting Utilities. New API for 3D-to-2D coordinate conversion and ray-object intersection testing, enabling touch interaction with 3D objects.

  • Cross-Platform 3D Support. With EGL now available across all major Linux backends (SDL, Wayland, DRM, GLFW), 3D rendering is fully supported on all platforms.

Style & Theme System

  • LV_STATE_ALT. New widget state for simple dark/light mode switching without managing separate theme trees.

  • Theme Management API. New functions: lv_obj_remove_theme, lv_obj_bind_style_prop, and full theme create/copy/delete API for multi-theme applications and data-driven style binding.

Widgets & Property Interface

  • Property Interface Rollout. Arc, bar, switch, checkbox, LED, line, scale, spinbox, spinner, table, tabview, buttonmatrix, span, menu, and chart now expose uniform property interface for data binding.

  • Input Handling. Key remapping at indev level, configurable gesture thresholds, LV_OBJ_FLAG_RADIO_BUTTON for radio groups, and keypad events emitted without assigned group.

Media Support

  • GStreamer Audio-Free Sources. Supports video sources without audio tracks, enabling camera stream embedding in LVGL applications.

  • WebP Decoder. Native WebP image decoding support added alongside existing JPEG, PNG, and GIF support.

Breaking Changes

  • Wayland Client-Side Decorations Removed. Rewritten driver no longer supports client-side window decorations. Use LVGL widgets (e.g., lv_win) for window chrome.

  • XML Engine Removed. XML UI engine development continues outside the main repository. Separate announcement forthcoming.

Deprecations

  • lv_fragment deprecated. Will be removed in a future release. Plan migration for view lifecycle management.

  • lv_wayland_display_close_cb_t deprecated. Use LV_EVENT_DELETE on display returned by lv_wayland_window_create instead.

New Features

  • feat(opengl): throw error if both draw nanovg and opengles draw units are enabled 9719

  • feat(gltf): upgrade fastgltf with latest fixes 9727

  • feat(obj): add back support for user flags 9711

  • feat(style): add lv_obj_remove_theme 9692

  • feat(text): skip leading spaces after line wrap 9639

  • feat(draw/opengl): support dynamic video textures in OpenGLES 9704

  • feat(drm/egl): auto infer drm egl config from use_opengles 9671

  • feat(gstreamer): send event on end of stream 9634

  • feat(display): send screen load events to display 9600

  • feat(chart): add curved type 9564

  • feat(indev): emit events for keypad without assigned group 9656

  • feat(style): add LV_STATE_ALT for simple dark/light switching 9691

  • feat(svg): simplify node attributes inheritance introduce in #9424 9690

  • feat(NemaGFX): Add nema libs for cortex M7 and M55 9374

  • feat(ibl_sampler): fallback to default env image and remove unnecessary allocation 9675

  • feat(msgbox): add support for formatted text 9583

  • feat(obj): allow null class names if obj_name isn't set 9653

  • feat(opengl): add matrix transformations to opengles rendering 9654

  • feat(ppa): make the PPA burst length configurable 9612

  • feat(nanovg): add draw 3D support 9571

  • feat(xml): remove the XML parser and loader 9565

  • feat(indev): add api to set gesture thresholds 9641

  • feat(sdl): add EGL support 9462

  • feat(calendar): add 2026 to header 9630

  • feat(draw): make lv_draw_mask_rect_dsc_t public 9454

  • feat(line): allow defining an array of point in the draw task 9269

  • feat(svg): support inheriting node attributes 9424

  • feat(wayland): add display rotation support for the shm backend 9386

  • feat(svg): support inline styles 9423

  • feat(draw): add RISCV V extension for software draw 9504

  • feat(canvas): add api to skip canvas invalidation when setting pixel 9592

  • feat(wayland): add egl support 9398

  • feat(gstreamer): add support for sources with no audio 9551

  • feat(drm/egl): add nanovg support 9542

  • feat(arclabel): support lv_arclabel_get_text_angle to get real rendered text size in degree 9546

  • feat(opengl): auto initialize nanovg draw unit 9543

  • feat(vg_lite): add support for special format 9464

  • feat(dropshadow): add drop shadow support 9331

  • feat(draw): add nanovg rendering backend 8865

  • feat(vg_lite_tvg): add VG_LITE_BLEND_DST_IN emulation support 9528

  • feat(display): add rotate point method 9513

  • feat(arclabel): support overflow mode 9484

  • feat(demos): allow specifying parent for widgets and music demos 9444

  • feat(fragment): deprecate lv_fragment 9460

  • feat(xml): add slot support 9193

  • feat(jpeg): add support for orientation and CMYK 9296

  • feat(opengl): add glsl version 330 support 9384

  • feat(group): add user_data getter and setter 9466

  • feat(core): add external data and destructor feature 9112

  • feat(glfw): remove glew dependency and use glad instead 9319

  • feat(obj): add LV_OBJ_FLAG_RADIO_BUTTON to easily create radio buttons 9328

  • feat(obj): add scroll x and scroll y properties 9346

  • feat(slider): add min_value and max_value setter 9433

  • feat(scale): update needles when scale is transformed 9340

  • feat(opengl): use only rgba format textures 9304

  • feat(nuttx): add mock to the NuttX driver for compilation testing 9419

  • feat(xml): add imagebutton support to XML 9381

  • feat(gltf): make linear_output optional to enable tonemapping and gamma adjustment 9260

  • feat(test): add lv_xml_test_run_to and lv_test_screenshot_result_t 9189

  • feat(file_explorer): allow hiding the back button 9202

  • feat(obj): allow setting child size to LV_PCT() of LV_SIZE_CONTENT parent by using the size of fixed/clamped children to set parent size 9243

  • feat(drm): add return type to set_file 9365

  • feat(fbdev): add return type to set_file 9364

  • feat(array): add remove_unordered function 9339

  • feat(gltf): allow modifying model's nodes at runtime 9142

  • feat(wayland): rewrite driver 9195

  • feat(blur): add blur support 9223

  • feat(examples/ffmpeg_player): specify default decoder 9218

  • feat(xml): support selector with local styles 9184

  • feat(fs): support multiple littlefs filesystems 8868

  • feat(obj): support `LV_SIZE_CONTENT` and `LV_PCT` min width/height in combination with flex grow 8685

  • feat(scripts/check_gcov_coverage): add analysis of specified file paths 9264

  • feat(gltf): support sharing the background environment across multiple objects 9009

  • feat(theme): add api to create, copy and delete themes 9167

  • feat(example/style): convert old transform demo to an example 9050

  • feat(xml): add color percentage support to animations 9209

  • feat(benchmark): show warnings for typical mistakes 9171

  • feat(style): add lv_obj_bind_style_prop 9173

  • feat(scripts): add automatic gcovr code coverage analysis 9227

  • feat(timer): resume timer handler after attribute changes 9205

  • feat(image_decoder): add webp decoder 9175

  • feat(translate): support translation tags in tabview and list 9079

  • feat(libpng): optimize the details of performance measurement 9179

  • feat(image_decoder): add performance measurement 9178

  • feat(vg_lite): add dynamic input parameter printing control 9180

  • feat(indev): implement key remapping (#8455) 8981

  • feat(keyboard): add definitions for control mode buttons 9101

  • feat(gltf): gltf view raycasting and 3d point to screen point conversion 9143

  • feat(gltf): use alternate blending mode for glTF views 9115

  • feat(ffmpeg_player): add set_decoder 9122

  • feat(xml): add lv_spinner 9091

  • feat(translation): const-correct arrays of strings 9147

  • feat(fs): add read file with alloc API 9109

  • feat(gif): use gif draw raw mode to support stride mode 9121

  • feat(class): ensure classes have names 9097

  • feat(example/scroll): convert old scroll demo to an example 9049

  • feat(spinbox): add property interface support 0290020

  • feat(bar): add property interface support 0bd6422

  • feat(arc): add property API support 09b3143

  • feat(chart): add property interface support 7801fd2

  • feat(scale): add property interface support 54487a9

  • feat(span): add property interface support 8a2b610

  • feat(spinner): add property interface support bb76fd2

  • feat(tabview): add property interface support 492770e

  • feat(dropdown): static and non-static setter for text af5c3f1

  • feat(table): add property interface support f66cc41

  • feat(menu): add property interface support 8bf6952

  • feat(buttonmatrix): add property interface support 847cc0c

  • feat(led): add property interface support 43f35a2

  • feat(line): add property interface support 5ac2ca4

  • feat(switch): add property interface support 0fb0f37

  • feat(checkbox): add property interface support 7f924a3

  • feat(textarea): static and non-static setter for accepted_chars e20517a

  • feat(dave2d): always invalidate cache when using Renesas RZA 9d14a04

  • feat(draw_buf): add missing D-Cache flush d703c3a

  • feat(draw_buf_convert): add missing profiler 4016f35

Performance

  • perf(draw/opengl): use glScissor for opaque fills 9222

  • perf(label): make LAYOUT_COMPLETED a display event 9215

  • perf(vg_lite): add bitmap font cache for non-aligned fonts 9343

  • perf(line): check that line has at least 2 points before drawing 9185

  • perf(gltf): optimize gltf material negotiation 9038

  • perf(opengl): remove long delay when destroying shader programs 9037

  • perf(label): reduce lv_label_refr_text calls 9041

Fixes

  • fix(blur): render non-backdrop blur when the main rendering is done 9752

  • fix(refr): flag when all tasks are added to screen layers 9739

  • fix(cmake): declare `fatfs` as private dependencies 9742

  • fix(wayland/g2d): fix busy buffer warnings 9730

  • fix(draw/g2d): disable image rendering 9729

  • fix(NemaGFX): Add back support for indexed images 9714

  • fix(core): add missing includes for external data feature 9715

  • fix(freetype): check if ctx is null before deleting font 9728

  • fix(opengl): correctly apply matrix transforms 9726

  • fix(wayland): read and flush compositor events on a timer 9720

  • fix(wayland/shm): damage surface before returning if not last flush 9721

  • fix(thorvg): ensure height is always positive 9712

  • fix(indev): only reset last point and it's movement only if no previous object existed 9707

  • fix(uefi): add missing trailing newline to driver headers 9710

  • fix(gles): transpose lv_matrix_t before uploading to shader 9703

  • fix(flex): use min size when item is set to grow and parent is LV_SIZE_CONTENT 8806

  • fix(gltf): flip vertically by default 9694

  • fix(draw/opengles): red/blue channel swap in fill operations 9693

  • fix(LTDC): warn when rotating and DRAW_SW is disabled 9670

  • fix(arc): handle indicator padding for knob position and arc invalidation area 9302

  • fix(dave2d): fix several rendering issues (mostly restore the original alpha) 9566

  • fix(draw/helium): include lv_conf_internal to avoid C declarations 9658

  • fix(fbdev): use display offset and clip area to display area 9668

  • fix(draw/line): fix buffer overflow when point is outside display area 9669

  • fix(gltf): avoid resetting value_changed node attribute 9674

  • fix(gltf): remove designated initializers causing warnings 9676

  • fix(gltf/data): add missing extern "C" to header file 9679

  • fix(ibl_sampler): restore gl state and add missing ressources deletion 9678

  • fix(stdlib): wrong variable name when mem_add_junk is enabled 9677

  • fix(fbdev): add missing errno.h include 9673

  • fix(image): add transform support for AL88 color format images 9627

  • fix(svg): set stride in decoder info to prevent warning 9657

  • fix(g2d): fix hardware version check with LV_USE_PXP 9644

  • fix(run_tests.sh): fix gcov versions mismatch issue 9652

  • fix(image): incorrect L8 image alpha channel to ARGB8888 blend 9645

  • fix(draw/arc): add missing lv_draw.h include 9640

  • fix(gstreamer): empty frame queue on destruction 9633

  • fix(lovyan_gfx): resolve double rotation in touch coordinates 9628

  • fix(property): remove LV_PROPERTY_TEXTAREA_INSERT_REPLACE (#9606) 9625

  • fix(property): fix reading style property returns uninitialized if non-local 9234

  • fix(blur): fix regression causing VS compiler error 9620

  • fix(obj_pos): alignment is not reversed when switching from LTR to RTL 9616

  • fix(dropdown): symbol property behaves like IMGSRC instead of TEXT 9608

  • fix(drm): set stride for draw buffers 9609

  • fix(textarea): scroll to position when style changes 9407

  • fix(grid): negative width of the object with column span in the grid using RTL 9596

  • fix(obj_pos): incorrect x coordinate in rtl mode 9598

  • fix(draw/sw): add missing LV_PROFILER_DRAW_END 9601

  • fix(wayland/egl): fix config selector for nanovg 9603

  • fix(opengl): fallback to RGB for desktop GL 9588

  • fix(gltf): add missing LV_RESULT_INVALID check 9580

  • fix(gltf): fix memory leaks caused by incomplete resource cleanup 9579

  • fix(opengles_shader): fix index out of bounds 9573

  • fix(gltf): fix unused-function warning 9576

  • fix(gltf): fix heap use after free caused by timer not being deleted 9574

  • fix(widget/span): undefined lv_subject_t if LV_USE_OBSERVER undefined 9577

  • fix(glfw): add gl_rgb565 fallback definition 9575

  • fix(egl): add missing ctx null check 9572

  • fix: remove unused code and fix code signature warning 9570

  • fix(lodepng): fix memory leak when cache addition fails 9569

  • fix(draw_sw): remove unused code in `lv_draw_sw_blend_to_a8.c` 9567

  • fix: format specifier warning in font manager 9549

  • fix(test): add missing malloc check to screenshot compare 9541

  • fix(xml): pass raw # if there's no constant name 9418

  • fix(drm/egl): red and blue channel swap with RGB565 9461

  • fix(arclabel): fix arclabel opa set 9483

  • fix(refr): restore layer opacity and recolor properties when layer area retrieval fails 9521

  • fix(vg_lite): fix the missing handling of rotated vector fonts g->ofs_x 9519

  • fix(vg_lite): workaround vg_lite_blit_rect offset x/y hardware bug 9522

  • fix(draw_sw_line): fix horizontal line incorrect dash length 9501

  • fix(draw): support RGB565_SWAPPED in software blur 9512

  • fix(wayland): fix touch support by correctly setting driver data 9486

  • fix(vg_lite): fix incomplete coordinate calculation when converting scissor_area to bounding_box_area 9511

  • fix(vg_lite): wait for vg_lite_tvg finish before drawing the mask 9489

  • fix(anim): ignore large apparent animation duration 9280

  • fix(arclabel): fix arclabel arc length calc in recolor mode 9467

  • fix(image_header_cache): fix dump iter selection error 9465

  • fix(arclabel): fix arc length calculating precise 9457

  • fix(opengl): compilation error when using glfw 9459

  • fix(image_cache): fix image cache dump memory leaks 9448

  • fix(conf_internal): explicitly disable the glTF demo when build_demo is disabled 9408

  • fix(gltf): remove fastgltf memory mapped file feature check 9422

  • fix(gltf): correct argument type to match declaration 9421

  • fix(gltf): add declaration for loading model from bytes 9420

  • fix(demo): fix compiler warning of unused variable c 9370

  • fix(flex): fix rounding may leave unused space on track with flex_grow 9217

  • fix(gstreamer): fix buffer map memory leak 9378

  • fix(draw/dma2d): correct cache handling 9366

  • fix(gltf): stride mismatch issue 9385

  • fix(gltf): force depth mask for transparent items used with refractive materials 9396

  • fix(tabview): re-set tab bar size after changing its position 9399

  • fix(demo): fix compiler warnings regarding the use of LV_UNUSED 9403

  • fix(tiny_ttf): release entry for correct cache 9429

  • fix(cache): entry alloc 9427

  • fix(xml): allow animating bg_image_opa in XML timelines 9425

  • fix(opengles): fix the memory leak when the shader manager is destroyed (#9439) 9440

  • fix(rb): make compare result type a 32bit integer 9442

  • fix(draw_buf):change the align log level to INFO 9428

  • fix(gltf): correctly handle matrices for animation and cameras 9273

  • fix(nuttx): fix profiler build break 9417

  • fix(blur): fix VS compiler error 9391

  • fix(freetype): set pixel size before kerning calculation (#9367) 9388

  • fix(xml): fix compile warning of uninitialized value 9368

  • fix(gif): compatibility issue when logging uint32_t variables 9349

  • fix(display): always have a solid background with non-alpha color formats 9380

  • fix(demo): make the Log out and Invite button not overlap on 480 hor. res. 9383

  • fix(roller): transformed roller click location 9212

  • fix(screen): double free when loading screens 9276

  • fix(ime): restrict to lowercase input to avoid overflow 9320

  • fix(spinbox): fix stack corruption 9256

  • fix(binfont_loader): add include to include missing function from API page 9344

  • fix(ESP): fix esp toolchain format specifier edge case 9336

  • fix(EVE): update lv_font_fmt_txt.h include path 9337

  • fix(gif): fix negative loop count handling 9241

  • fix(sdl): do not dereferencing nullptr in lv_sdl_mouse_handler if an invalid windows id (0) has been received 9299

  • fix(label): skip label draw if width is negative 9297

  • fix(indev): send LV_EVENT_KEY as indev event 9208

  • fix(glfw): fix deinitialization order to prevent segfault 9220

  • fix(draw/sw): remove param from draw_sw_mask_rect 9288

  • fix(property): fix return type of LV_PROPERTY_OBJ_SCROLL_END 9203

  • fix(property): fix some non-integer style property types 9245

  • fix(indev): ensure timer triggers when elapsed time meets threshold 9275

  • fix(gif): add disposal handle to fix gif display error 9213

  • fix(scripts/check_gcov_coverage): skip statistics for non-executable lines 9239

  • fix(vg_lite): add a path print length limit 9248

  • fix(NemaGFX): update lv_font_fmt_txt.h include path 9235

  • fix(draw/ppa): fix build and rendering issues 9162

  • fix(widgets): make animations on state change more consistent 9174

  • fix(workflows): fix commit ID error in push events mode 9231

  • fix(gif): add missing D-cache flush 9228

  • fix(label): lv_label_mark_need_refr_text not invalidate area 9176

  • fix(ffmpeg_player): increase align to 32 9166

  • fix(driver/st_ltdc): Add missing lv_os_private.h include 9191

  • fix(LTDC): add cache cleaning 9192

  • fix(fbdev): Implement proper cleanup from deletion event in FBDEV 9169

  • fix(example): correct lv_example_chart_5 display 9177

  • fix(canvas): correct RGB565 pixel offset in lv_canvas_get_px 9188

  • fix(ffmpeg): for nv12 pix_fmt 9131

  • fix(opengles): update fb address after reshaping texture 9134

  • fix(obj_tree): fixes exact object name match 9150

  • fix(gltf): fix indexation of model binds and and a new uniform scale bind 9102

  • fix(fs): set data to NULL if read file failed 9156

  • fix(keyboard): remove and add state to text area instead of keyboard 9105

  • fix(indev): Abort sending Keypad INDEV_ACT events following invalid return 9135

  • fix(xml): correclty use integer format specifier 9133

  • fix(test): fix memory leak on failed screenshot compare 9088

  • fix(scale): incorrect decrement in lv_scale_set_line_needle_value loop 9081

  • fix(vg_lite): fix warning if LV_LOG option is closed 9094

  • fix(flex): fix crash with flex_grow on screen 9090

  • fix(drm): fix drm driver memory leaks 31e4138

  • fix(gltf): convert baseColorFactor to sRGB for more accurate mid-range colors bdb7099

  • fix(workflows): skip the coverage analysis if it's not a pull request b9cdc4a

  • fix(dave2d): fix leftover typo from #8725 abec5b7

Examples

Docs

  • docs(draw_descriptors): fix examples missing code 9745

  • docs(draw/sdl): add missing draw_sw requirement 9747

  • docs(renesas): update link in docs to Renesas plugin v1.0.1 9735

  • docs(overview): remove conflict marker 9733

  • docs(wayland): remove server side window decorations promise 9708

  • docs(README): document how to work with :c:macro: role limitation 9700

  • docs(integration): make the integration more effective and informative 9507

  • docs(win): fix link list in API section 9697

  • docs(style_api_gen): add missing * to style API documentation 9684

  • docs(animation): clarify constraint in animations 9686

  • docs(style API): add API documentation to `style_api_gen.py` 9637

  • docs(macros): fix many macro links to API docs 9533

  • docs(buttonmatrix): fix event name typo 9635

  • docs(rt-thread): update BSP list and place the table and links in a form that is easier to maintain 9611

  • docs: add missing xml redirects 9593

  • docs(canvas): clarify buffer allocation details 9563

  • docs(links): fixed broken external links 9525

  • docs(display): mention palette in example flush_cb 9534

  • docs(API): link api pages to source code header files 9456

  • docs(clipping): document how clipping works in drawing 9446

  • docs(editor): Zephyr integration guide. 9360

  • docs(ICOP): add docs for board manufacturer ICOP 9413

  • docs(color): fix unexpected API page links 9338

  • docs(layers): clarify how to control Widget layering 9379

  • docs(display_controllers): fix erroneous doc cross-references 9382

  • docs(examples): fix erroneous example headings 9355

  • docs(3dtexture): fix web link with syntax error 9357

  • docs(base_widget.rst): add `obj` example to docs 9356

  • docs(custom.css): fix 2 CSS color issues 9330

  • docs(examples): add back show c code button in widget pages 9354

  • docs(redirects): add redirect for renesas XML integration page 9345

  • docs(examples): make `example_list.py` robust 9317

  • docs(wayland): remove mention of custom timer handler 9329

  • docs(redirects): add redirects from URLs in prev READMEs 9322

  • docs(redirects): add redirect for prev getting_started page 9321

  • docs(build.py): add changes needed with removal of details/ and intro/ dirs 9315

  • docs(color_format): add rgb565 swapped format info 9310

  • docs(directory structure): simplify by removing details/ and intro/ dirs 9313

  • docs(examples): fix libs/, others/ and porting/ missing from examples page. 9291

  • docs(images): remove outdated information and reorganize image docs 9221

  • docs(config): improve documentation in config template 9251

  • docs(examples): make example pathing more robust 9308

  • docs(README): fix typo 9286

  • docs(libpng): fix documentation typo 9290

  • docs(examples/grad): fix missing source code in gradient examples 9289

  • docs(Widget Tree): provide data lost from end of doc 9158

  • docs(README): add instructions for new documentation features 9149

  • docs(editor): Arduino usage guide 9104

  • docs(torizon): update torizon os docs to work with latest LVGL 9095

  • docs(Guides): add structure to TOC for Guides section 9281

  • docs(tinyttf): remove file loading in the examples 9266

  • docs(editor): Add brief section on installing e2 Studio plugin to the docs 9257

  • docs(Renesas): Add Renesas RZ/G3E and RA8D2 to docs 9253

  • docs(threading): simplify and add work-queue concept to Threading doc 9106

  • docs(xml): add Renesas Eclipse / E2Studio docs 9216

  • docs(debugging): proofread debugging section 9163

  • docs(style): add table width enhancements and bold + italic + underline support 9124

  • docs: factor out repeated substitution definitions 9125

  • docs(macro api links): fix links to macros in API pages 9161

  • docs(mipi): clarify generic MIPI with example code 9099

  • docs: move ext links to include dir 9128

  • docs: fix enumerator expansion upon API page links 9114

  • docs(misc): remove last warnings from doc-build with skip_api argument 9119

  • docs(misc): fix typos, grammar and add missing function links to api pages 9126

  • docs(gif): fix outdated content about using GIFs as C arrays 9093

CI and tests

  • test(vector): add more draw vector test case 9524

  • test(pinyin): update ref images 9610

  • test: fix missing EOL warnings 9548

  • test(svg): add svg file testcase 9535

  • ci(release): add steps to prepare and upload lite package 9443

  • test(canvas): add RGB565 pixel read test 9516

  • test(canvas): add canvas test case and fix the null pointer access crash in the draw buffer 9478

  • test(slider): add slider test case 9477

  • test(async): add async test case 9475

  • test(utils): add utils test case 9474

  • test(palette): add palette test case 9473

  • test(ll): add ll test case 9472

  • test(color): add color test case 9471

  • test(circle_buf): add circle buffer test case 9470

  • test(area): add area test case 9469

  • test(arc): add arc test case 9476

  • test(fs): add fs test case and add fs mock 9479

  • test(snapshot): add snapshot test case 9481

  • test(image): add image test case 9480

  • test(math): fix lv_pow failure to handle negative numbers exp and add full-feature coverage test 9450

  • test(ime_pinyin): fix crash and memory leak and add full-feature coverage test 9434

  • test(cache): add cache_entry_alloc 9438

  • test(menu): fix double free and add full-feature coverage test 9432

  • test(tick): add tick test case 9416

  • test: update demo widgets ref image 9358

  • ci: deploy doc builds to release folders 9352

  • ci(deps): bump actions/checkout from 5 to 6 9334

  • ci(deps): bump JamesIves/github-pages-deploy-action from 4.7.3 to 4.7.4 9333

  • ci(tests): retain the gcov report for coverage analysis 9274

  • test(draw_buf): add draw buf premultiply test 9259

  • test(display): improve lv_display test coverage 9110

  • test(demo_widgets): add screenshot comparison 9111

  • test(theme): improve theme test coverage 9116

  • test(mem): improve memory test coverage 9117

  • test(vector): add demo vector graphic test 9130

  • test(array): improve lv_array test coverage 9108

  • test(indev): merge indev testcase 9071

Others

  • feat(env): always use the C library when building for QNX 9738

  • revert(canvas): remove api to skip canvas invalidation when setting pixel 9751

  • chore(cmsis-pack): Prepare for v9.5.0 9748

  • build(esp): only add fatfs component if use_fs_fatfs is enabled 9746

  • chore(font_gen): replace os.system with subprocess.run 9689

  • build(deps): bump dawidd6/action-download-artifact from 12 to 14 9666

  • build(deps): bump JamesIves/github-pages-deploy-action from 4.7.6 to 4.8.0 9667

  • chore(ppa): update cache alignment error message for 128-byte lines 9526

  • chore(gif): move GIF Widget to widgets/ directory 9617

  • chore(docs): lock sphinx version to 8.2.3 9626

  • chore(msgbox): fix the incorrect return value docs 9584

  • chore: fix warning of span testcase 9547

  • refactor(opengles): set texture id to layer head on disp creation 9397

  • chore(CODEOWNERS): add @FASTSHIFT to default owners 9531

  • refactor(canvas): clarify parameter names for lv_canvas_copy_buf 9414

  • build(cmake): check if demos and examples exist 9510

  • build(esp): add missing lv_demos.c source file to esp build process 9517

  • chore(tests): clean up erroneously submitted temporary files 9515

  • refactor(gif): add new API and add full testcase 9452

  • chore: add codeowners 9458

  • build(deps): bump actions/upload-artifact from 5 to 6 9495

  • build(deps): bump JamesIves/github-pages-deploy-action from 4.7.4 to 4.7.6 9496

  • build(deps): bump dawidd6/action-download-artifact from 11 to 12 9497

  • build(deps): bump actions/cache from 4 to 5 9498

  • build(Kconfig): auto select LV_USE_GENERIC_MIPI 9491

  • chore(image_converter): add AL88 color format support 9453

  • build(kconfig): make log level selection more readable 9409

  • build(test): ffmpeg compile error on macOS 9371

  • chore: fix compile warnings 9369

  • refactor(obj_property): use LV_ARRAYLEN for LV_OBJ_SET_PROPERTY_ARRAY 9395

  • refactor(indev): remove the unused last_obj field from lv_indev_t 9219

  • chore(lvglgdb): show classp name if lv_class name is not set 9376

  • chore(vg_lite): minimize the header file inclusion 9361

  • chore(lvglgdb): fix TypeError in lv_obj.py while dump specify object 9375

  • chore: update version to v9.5.0-dev 9350

  • chore(lv_conf_internal): replace the tab and add automatic checks 9323

  • chore: update version to v9.4.0-dev 9316

  • chore(tests/unity): fix the case discrepancy in the size_t comparison macro definition 9318

  • chore: fix changelog generator to be compatible with reST 9168

  • build(Kconfig): add missing support_rgb565_swapped config 9282

  • chore(scripts/run_tests): remove redundant apt list commands 9226

  • refactor(draw_buf): add inline tag for draw buffer flag functions 9229

  • chore(test_conf): fix build break if webp library not installed 9225

  • refactor(canvas): remove draw_sw include 9204

  • refactor(arc): remove redundant code 9198

  • refactor: reorganize the others folder 9164

  • build(deps): bump actions/upload-artifact from 4 to 5 9182

  • Make scroll animation timing configurable via defines 9160

  • build(kconfig): add 3d texture and gltf configs 9132

  • chore(gdb): add initial project configuration and installation instructions for lvglgdb 9145

  • chore(gdb): support rb/cache associate debug obj and commands 9089

  • chore(scripts): remove rz-g2l-evkit from port updater as it still uses v8.3 9092

  • chore(vg_lite): correct spelling of 'high' in color key structure 9087

  • chore(gdb): add gdb cmd for nuttx drivers to support multi-instance 9068

  • chore(widgets): use helper for properties in class 7193931

  • chore(property): add macro to help property definitions 55aa15d

  • Revert "fix(workflows): fix commit ID error in push events mode (#9231)" cafeb18