Planned for v9¶
Naming and API¶
lv_style_set_size()should have separate width and height parameters
lv_img_set_src()use "type-aware" parameter. See here
[ ] Reconsider image color formats.
[ ] More consistent names:
..._cb, angle, rotation
[ ] Reconsider the use of
[ ] Update canvas API (https://github.com/lvgl/lvgl/issues/3393)
[ ] Replace
[x] Consider flat directory structure. E.g.
[ ] Rename
[ ] Consider merging
structs from the new driver API (or only some of them)
[ ] Better way to reset global variables in
[ ] New driver architecture #2720
[ ] Reconsider masks. There should be a generic high level mask API whic is independent of the drawing engine.
get_glyph_bitmapshould return an a8 bitmap that can be blended immediately.
[ ] Reconsider how themes should work. See here.
[ ] Consider to prepare LVGL to render independent areas in parallel.
[ ] Introduce a pipeline in renderer to support multi-GPUs/Accelerators, such as 2D-capable-DMAs, 2D GPUs, dedicated processor cores for 2D tasks etc.
[x] More conscious
lv_mem_buf_getas tlsf should be fast enough for normal allocations too. Fragmentation is also lower if processes can completely clean up after themselves.
[ ] Use
(u)int32_tin API where possible. Consider hardcoding
lv_array: replace linked lists with array where possible (arrays are faster and uses less memory)
[ ] Reconsider how to handle UTF-8 characters (allow different encoding too) and Bidi. Maybe create an abstraction for typesetting.
[ ] Generic
[ ] Update the
lv_img_dsc_tto support images larger than 2048x2048
[ ] More color formats: 24 bit, ARGB1555, ARGB4444 etc
[ ] Unified caching #3116 #3415
[ ] Make layouts with an
lv_layout_dsc_tinstead of registering an ID+callback. See here
[ ] Make
[ ] non-uniform scale of images: scale width and height differently
lv_img: Reconsider image sizing models (when the image size is not content): center, top-left, zoom, tile, other?
lv_tabviewReplace button matrix with real buttons for more flexibility
lv_labelreconsider label long modes. (support min/max-width/height too) #3420
[ ] Improve
Drawing and rendering¶
[ ] Allow selecting between the layered (new) and not layered (old) rendering.
[ ] Consider
animevents to replace many callbacks with one
lv_anim_time_to_speedshould work differently to remove
style_anim_speed. E.g. on large values of anim time store the speed. Besides all widgets should use the
animshould clamp the time if it's calculated from speed, e.g
lv_clamp(200, t, 2000). (maybe
Planned in general¶
[ ] Plaform independent bechmarking # 3443
[ ] Run static analyzer
[ ] Release script
[ ] Unit test for all widgets #2337
[ ] CI test for flash/RAM usage #3127
[ ] C++ binding: https://github.com/lvgl/lv_binding_cpp
[ ] Markup language #2428
[ ] Hover
Drawing and rendering¶
[ ] Different radius on each corner #2800
[ ] gradient to border/outline/shadow
[ ] multiple shadow/border
[ ] perspective
[ ] text shadow
[ ] innter shadow
[ ] ARGB image stroke/grow on the alpha map
[ ] real time blur
[ ] gradient with alpha
[ ] More grid features. E.g. repeat(auto-fill, minmax(
[ ] Scene support. See this comment
[ ] Circle layout. #2871
[ ] Variable binding. I.e create properties which can be bound to objects and those obejcts are notified on value change. Maybe based on
[ ] Consider stagger animations.
Consider direct binary font format support
Improve groups. Discussion. Reconsider focusing logic. Allow having no widget selected (on web it's possible)
Speed up font decompression
Support larger images: add support for large image #1892
Functional programming support, pure view? See here
Style components. See this comment
SVG support: integrate an SVG render library
Support dot_begin and dot_middle long modes for labels
Allow matrix input for image transformation?
Somehow let children inherit the parent's state
text on path