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
[x] Reconsider image color formats.
[ ] More consistent names:
..._cb, angle, rotation
[ ] Reconsider the use of
[x] Update canvas API (https://github.com/lvgl/lvgl/issues/3393)
[x] Consider flat directory structure. E.g.
[ ] Use
int32_tin APIs where possible. Consider hardcoding
[ ] To define a new stdlib API use defines
LV_USE_CUSTO_...and let the user implement
lv_...functions somewhere (instead of defining the name of the custom functions)
[x] Consider merging
structs from the new driver API (or only some of them)
[ ] Better way to reset global variables in
[x] New driver architecture #2720
draw_ctx->buffer_convert? See here. Also remove 16 SWAPPED color format? See here.
[ ] 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.
[ ] Make LVGL 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.
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
[x] 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
[ ] Condider using
lv_color32_ton APIs to support e.g. alpha gradient.
[ ] Make
[ ] non-uniform scale of images: scale width and height differently
[ ] Scroll anim settings should come from styles to allow customization
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
lv_rollermake it more flexible #4009
[ ] Universal scale widget/support (see here and #4043)
[ ] Improve
[ ] Disabled widgets should absorb indev actions without sending events. #3860
Drawing and rendering¶
[ ] Automatically recalculate the layout if a coordinte is get with
[ ] 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
[ ] Use dedicated
lv_anim_custom_exec_cb_t. See here.
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
[ ] Global states in selectors. E.g.
LV_STATE_PRESSED | SMALL_SCREENlike media quarry in CSS
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
lv_arc: handle max < min for fill direction swapping #4039
[ ] More grid features. E.g. repeat(auto-fill, minmax(
[ ] Named grid cells to allow updating layouts without touching the children (like CSS
[ ] 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). Keep editing state in
lv_obj_t(See here). Support slider left knob focusing (see here)
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