lvgl icon indicating copy to clipboard operation
lvgl copied to clipboard

v9.4 planning

Open kisvegabor opened this issue 5 months ago • 14 comments

For this release let's set up clear schedule upfront and execute feature freeze and the release accordingly:

  • September 15, 2025: Start the feature freeze period (merge only critical fixes)
  • October 1, 2025: Release v9.4

Planned features:

  • [ ] OpenGL 3D renderer (gltf) support
  • [ ] Finalize XML support

Ideas:

  • [ ] Gstreamer
  • [ ] Blur

To improve:

  • [ ] Improve the docs (add description for caching, vector API, etc)
  • [ ] SVG
  • [ ] lv_menu with groups

Please comment about any ideas that you would like to see in LVGL v9.4

kisvegabor avatar Jun 17 '25 11:06 kisvegabor

  • integrate gstreamer for linux
  • is something like the gaussian blur still on the list? I saw it on the list for 9.3 so maybe for 9.4?

krembed avatar Jun 17 '25 12:06 krembed

More stable SVG support, as SVG in 9.3 it is hardly working. And seems to be low priority.

SVG could be a killer feature.

wijnsema avatar Jun 17 '25 19:06 wijnsema

May I suggest something that would solve menu navigation with keypad input devices? https://forum.lvgl.io/t/create-a-lv-menu-that-responds-to-keypad-input/20081

jeanthom avatar Jun 18 '25 11:06 jeanthom

Thank you! I added all these!

@wijnsema

More stable SVG support, as SVG in 9.3 it is hardly working. And seems to be low priority. @etag4048 is planing to work on it. What is the main issue that you see?

kisvegabor avatar Jun 18 '25 13:06 kisvegabor

What is the main issue that you see?

I cannot get it to work at all actually, see #8405

@itavero got it working but rendering is not correct,

Also, compiler flags needed are not enforced/documented.

wijnsema avatar Jun 18 '25 14:06 wijnsema

@itavero got it working but rendering is not correct,

See #8426 and #8442

itavero avatar Jun 18 '25 14:06 itavero

How to achieve this chart effect in LVGL 9? Could you provide an example?

Image

lizhaoming634 avatar Jun 18 '25 16:06 lizhaoming634

There will be a clear integration of LVGL and freeRTOS, with examples for versions 9.3 and 9.4? Something really working, besides this

https://docs.lvgl.io/master/details/integration/chip/stm32.html#freertos-example

Preferably for ESP32 microcontroller🙂

brightproject avatar Jun 18 '25 18:06 brightproject

If there are any outstanding bugs, I would think these should be a priority so new projects can feel safe to start with 9.3/9.4....

vwheeler63 avatar Jun 18 '25 20:06 vwheeler63

@kisvegabor I created https://github.com/lvgl/lvgl/issues/8455 to track the menu navigation issue

jeanthom avatar Jun 19 '25 10:06 jeanthom

@kisvegabor Do we have plans to support html widget? It is more friendly to large amounts of text layout rendering.

onecoolx avatar Jun 20 '25 03:06 onecoolx

@onecoolx I agree that we should achieve large amount of clean text rendering, it's a very good idea. However HTML - I am not a big fan of. IMHO it's way too complex for LVGL which is supposed to be light and versatile :) HTML is not light nor versatile. I believe we should go 'old school' on this and use SGML instead. https://www.tei-c.org/Vault/GL/P3/SG.htm no attributes - no headaches. XML/HTML is LR+4. if we only need to render text, so using only entities things like h1 h2, b should suffice and if we can apply styles to each entity it would be already very useful and a cool feature.

Are we building a web browser out of LVGL :) ? I hope not...

To achieve good text rendering we may have to consider to use Harfbuzz for text shaping, we also need to figure out how to properly scale Freetype outlines. Retrieving the outlines in font units and then scaling and doing grid-fitting properly not 128px. The current Freetype integration is a very good start but let's test it with more fonts and more sizes. It requires time to really understand digital typography...

etag4048 avatar Jun 20 '25 16:06 etag4048

I think that 9.4 and 9.5 should focus on making LVGL more robust.

etag4048 avatar Jun 20 '25 16:06 etag4048

A lot of features were added, let's perfect them first.

etag4048 avatar Jun 20 '25 16:06 etag4048

Make the scale label gap configurable. Currently, it is a hardcoded constant.

alexriegler12 avatar Jun 20 '25 19:06 alexriegler12

@onecoolx I agree that we should achieve large amount of clean text rendering, it's a very good idea. However HTML - I am not a big fan of. IMHO it's way too complex for LVGL which is supposed to be light and versatile :) HTML is not light nor versatile. I believe we should go 'old school' on this and use SGML instead. https://www.tei-c.org/Vault/GL/P3/SG.htm no attributes - no headaches. XML/HTML is LR+4. if we only need to render text, so using only entities things like h1 h2, b should suffice and if we can apply styles to each entity it would be already very useful and a cool feature.

Are we building a web browser out of LVGL :) ? I hope not...

To achieve good text rendering we may have to consider to use Harfbuzz for text shaping, we also need to figure out how to properly scale Freetype outlines. Retrieving the outlines in font units and then scaling and doing grid-fitting properly not 128px. The current Freetype integration is a very good start but let's test it with more fonts and more sizes. It requires time to really understand digital typography...

Yes, you are right. A full-featured browser is a huge and complex project. I have worked on it for many years and know how complex it is. But we may not need a full-featured browser, we just need to be able to do text layout in a simple way. There are some very small, lightweight browsers that may achieve this goal, such as "dillo".

https://dillo.org/ https://github.com/dillo-browser/dillo

onecoolx avatar Jun 22 '25 07:06 onecoolx

@onecoolx With our XML support we are one step closer to HTML support too. Converting HTML to LVGL-XML seems quite feasible. Our main focus is on the editor/XML now, so a direct HTML support is not on the roadmap for now. 🙁

@etag4048 I agree that we need to pay attention to

  • further improve docs
  • teach people that we have many cool new features (svg, rle, lz4 compression, XML, vector fonts, or even subjects)
  • add even more tests to catch performance regression

kisvegabor avatar Jun 23 '25 18:06 kisvegabor

Text rendering and update_layout are very time-consuming tasks for me. It would be great if we could improve them in V9.4. :smile:

yushuailong avatar Jun 24 '25 13:06 yushuailong

@kisvegabor According to the discussion in #8218. I have tried the MEMFS feature in LVGL. it seems that MEMFS only support font. do we have plan to support images?

ZongchunYu avatar Jun 25 '25 08:06 ZongchunYu

@kisvegabor can we get rid of SimSun font in the repo? It was "marked" as deprecated in the last release. If so I'll send a PR :^)

faxe1008 avatar Jun 25 '25 14:06 faxe1008

It is on progress but it should be good to mention: VGLite draw unit unification

uLipe avatar Jun 25 '25 18:06 uLipe

It could be cool and very usefull to upgrade keyboard, button matrix popover...

Pop-overs currently are merely a visual effect and don't allow selecting additional characters such as accented characters yet.

👍

alhyene avatar Jun 28 '25 08:06 alhyene

Complete dmabuf support for wayland

AndreCostaaa avatar Jun 29 '25 06:06 AndreCostaaa

With regards to SVG, I think there also still room for improvement with regards to the amount of memory it needs to load/render a file from the file system. Currently it loads the entire file into RAM before doing anything with it.

As mentioned in my forum post, I think it would be great if we could have more of a "streaming" approach (e.g. read parts of the file as it is being processed).

With regards to the aforementioned issues I had with SVG: both are cleared up now, however, I think there's still two improvement points there:

  • LVGL should not compile if LV_USE_VECTOR_GRAPHIC == 1, but there's no backend to do the rendering (in my case if LV_USE_THORVG_INTERNAL is not set). Currently it compiles and runs without any warning, but it does not work, which is confusing.
  • The SVG interpreter should have better logging. E.g. in case it finds path data it cannot process correctly, it should write something in the logs about it. I spend quite some hours figuring out why a few paths of the SVG I supplied did not render correctly.

itavero avatar Jul 03 '25 09:07 itavero

Can the lv_table be modified to add the functionality of freezing the first row?

Since the table is quite long, when scrolling to the bottom, the header row (usually containing titles) becomes hidden, making it difficult to view intuitively. Therefore, we request the addition of a header row freezing feature.

IAMMX avatar Jul 04 '25 01:07 IAMMX

Can the lv_table be modified to add the functionality of freezing the first row?

I just started to add it and then realized why it's not added yet. 😅 The same effect be realized if you add a simple one-row-table on to of the real one. Could this trick work for you?

If so we can a just add an example.

kisvegabor avatar Jul 10 '25 11:07 kisvegabor

The same effect be realized if you add a simple one-row-table on to of the real one. Could this trick work for you?

I think it would be best to implement this feature by adding an API, such as lv_table_freeze_first_row.

IAMMX avatar Jul 11 '25 00:07 IAMMX

Image

@kisvegabor Could you provide the updated code for implementing the effects currently demonstrated on the Demos page

lizhaoming634 avatar Jul 11 '25 08:07 lizhaoming634

Hi @lizhaoming634 The widgets demo code is available here https://github.com/lvgl/lvgl/tree/master/demos/widgets

AndreCostaaa avatar Jul 14 '25 05:07 AndreCostaaa

Hi @lizhaoming634 The widgets demo code is available here https://github.com/lvgl/lvgl/tree/master/demos/widgets

Image Thanks for the demo link! I've tried the latest widgets demo code, but my output doesn't look identical to the web version. Could you please take a look? Left side is my rendering, right side is the expected web result

lizhaoming634 avatar Jul 14 '25 09:07 lizhaoming634