December 4: Feature stop, start updating the docs and testing
December 18: Release candidate version and call to test
January 15: Release v9.0
Naming and API
☑️ lv_style_set_size() should have separate width and height parameters
☑️ Reconsider image color formats.
☑️ More consistent names:remove/clear/delete/del, offset/ofs, add/create/register, id/idx/index, middle/mid/center, img/image, txt/text, opa/opacity/alpha, scr/screen, disp, display, finished/complete/completed/ready, buf/buffer, ..._cb, angle/rotation, zoom/scale, has, is, enable
☑️ Update canvas API LINK
☑️ LV_STYLE_PROP_INHERIT -> LV_STYLE_PROP_FLAG_INHERITABLE LINK
☑️ Replace disp_drv->direct_mode/full_refresh with enum.
☑️ Consider flat directory structure. E.g. extra/widgets to widgets
☑️ Use uint32_t and int32_t in APIs where possible. Consider hardcoding int32_t as int32_t.
☑️ To define a new stdlib API use defines LV_USE_CUSTOM_... and let the user implement lv_... functions somewhere (instead of defining the name of the custom functions) (see here)
☑️ Gradient with alpha
☑️ Consider merging lv_disp_drv_t, lv_disp_t, lv_disp_draw_buf_t, lv_draw_ctx_t struct's from the new driver API (or only some of them)
☑️ New driver architecture #2720
☑️ Reconsider masks. There should be a generic high level mask API which is independent of the drawing engine. #4059
☑️ get_glyph_bitmap should return an a8 bitmap that can be blended immediately. (see here)
☑️ Make LVGL render independent areas in parallel. #4016
☑️ Drop lv_mem_buf_get as tlsf should be fast enough for normal allocations too. Fragmentation is also lower if processes can completely clean up after themselves.
☑️ More color formats: 24 bit, ARGB1555, ARGB4444 etc (see here)
☑️ Unified caching #3116 #3415
☑️ Variable binding. I.e create properties which can be bound to objects and those objects are notified on value change. Maybe based on lv_msg?
🔲 Add GPU abstraction for display rotation
☑️ Replace the read_line_cb of the image decoders with get_area_cb
☑️ Limit the image caching size in bytes instead of image count
☑️ lv_draw_buf for unified stride, buffer and cache invalidation management. 4241
☑️ Add vector graphics support via ThorVG
🔲 SVG support: integrate an SVG render library 4388
☑️ Introduce optional
☑️ Introduce support layer for 3D GPUs (OpenGL, SDL, Vulkan, etc). 4622
☑️ non-uniform scale of images: scale width and height differently
🔲 Scroll anim settings should come from styles to allow customization
☑️ Universal scale widget/support
☑️ lv_img: Reconsider image sizing models (when the image size is not content): center, top-left, zoom, tile, other?
☑️ lv_tabview Replace button matrix with real buttons for more flexibility (see here and #4043)
☑️ Disabled widgets should absorb indev actions without sending events. #3860
☑️ lv_anim_time_to_speed should work differently to remove style_anim_speed. E.g. on large values of anim time store the speed. Besides all widgets should use the style_anim property. anim should clamp the time if it's calculated from speed, e.g lv_clamp(200, t, 2000). (maybe a->min_time/max_time).
🔲 Use dedicated lv_anim_custom_exec_cb_t. See here.
Planned in general
🔲 Platform independent benchmarking #3443
🔲 Run static analyzer
🔲 Release script
🔲 Unit test for all widgets #2337
🔲 CI test for flash/RAM usage #3127
🔲 Global states in selectors. E.g. LV_STATE_PRESSED | SMALL_SCREEN like media quarry in CSS
Drawing and rendering
🔲 SW: Line drawing with image rotation
🔲 SW: Arc drawing from small squares (16x16?) to detect transparent or solid parts
🔲 SW: Rounded rectangle drawing from small squares (16x16?) to detect transparent or solid parts
🔲 Different radius on each corner #2800
🔲 Gradient to border/outline/shadow
🔲 Multiple shadow/border
🔲 Text shadow
🔲 Innter shadow
🔲 ARGB image stroke/grow on the alpha map
🔲 Real time blur
🔲 lv_bar, lv_arc: handle max < min for fill direction swapping #4039
🔲 lv_bar, lv_slider, lv_arc: make possible to move the knob only inside the background (see here)
🔲 Improve lv_label_align_t #1656
🔲 lv_label reconsider label long modes. (support min/max-width/height too) #3420
🔲 lv_roller make it more flexible #4009
🔲 em, ch, vw/vh units
🔲 aspect-ratio as size
🔲 More grid features. E.g. repeat(auto-fill, minmax( px, 1fr))
🔲 Named grid cells to allow updating layouts without touching the children (like CSS grid-template-areas)
🔲 Scene support. See this comment
🔲 Circle layout. #2871
🔲 Consider stagger animations.
🔲 Add custom indev type. See [here](https://github.com/lvgl/lvgl/issues/3298#issuecomment-1616706654).
🔲 Automatically recalculate the layout if a coordinate is obtained using lv_obj_get_width/height/x/y/etc
Reconsider how themes should work.
Better way to reset global variables in lv_deinit() #3385
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 textshaping.
Consider direct binary font format support
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
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