- December 4: Feature stop, start updating the docs and testing
- December 18: Release candidate version and call to test
- January 15: Release v9.0
- ☑️ 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
- ☑️ 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 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
float
support. 4648 - ☑️ 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.
- 🔲 Platform independent benchmarking #3443
- 🔲 Run static analyzer
- 🔲 Release script
- 🔲 Unit test for all widgets #2337
- 🔲 CI test for flash/RAM usage #3127
- 🔲 Add more feature to key presses (long press, release, etc).
- 🔲 lv_image_set_src() use “type-aware” parameter and rework image decoders. (see here)
- 🔲 C binding
- 🔲 Markup language #2428
- 🔲 Hover
- 🔲 Global states in selectors. E.g. LV_STATE_PRESSED | SMALL_SCREEN like media quarry in CSS
- 🔲 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
- 🔲 Perspective
- 🔲 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.
- 🔲 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
- 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
- Support dot_begin and dot_middle long modes for labels
- Allow matrix input for image transformation?
- Radial/skew/conic gradient
- Somehow let children inherit the parent's state
- Text on path