lvgl/docs/ROADMAP.md
2021-06-28 15:16:20 +02:00

4.1 KiB

Roadmap

This is a summary for planned new features and a collection of ideas. This list indicates only the current intention and it can be changed.

v8.1

Features

  • Unit testing (gtest?). See #1658
  • Benchmarking (gem5 or qemu?). See #1660
  • lv_snapshot: buffer a widget and all of its children into an image. The source widget can be on a different screen too. The resulting image can be transformed.
  • High level GPU support. See #2058

New features

  • merge MicroPython examples
  • add a "Try out yourself" button to the Micropython examples

Discuss

  • CPP binding
  • Plugins. In v8 core and extra widgets are separated. With the new flexible events, the behavior of the widgets can be modified in a modular way. E.g. a plugin to add faded area to a line chart (as in the widgets demo)

Docs

  • Display the Micropytohn examples too.
  • Add a link to the example C and py files
  • List of all examples on a page. All in iframes grouped by category (e.g. flex, style, button)

Others

  • Add automatic rebuild to get binary directly. Similarly to STM32F746 project.
  • Implement release scripts. I've added a basic specification here, but we should discuss it.
  • Unit test for the core widgets

v8.2

  • Optimize line and circle drawing and masking
  • Handle stride. See #1858
  • Support LV_STATE_HOVERED

Ideas

  • Reconsider color format management for run time color format setting, and custom color format usage. (Also RGB888)
  • Make gradients more versatile
  • Make image transformations more versatile
  • Switch to RGBA colors in styles
  • Consider direct binary font format support
  • Simplify groups. Discussion is here.
  • Use generate-changelog to automatically generate changelog
  • lv_mem_alloc_aligned(size, align)
  • Text node. See #1701
  • CPP binding. See Forum
  • Optimize font decompression
  • Need coverage report for tests
  • Need static analyze (via coverity.io or somehing else)
  • Support dot_begin and dot_middle long modes for labels
  • Add new label alignment modes. #1656
  • Support larger images: #1892

v8

  • Create an extra folder for complex widgets
    • It makes the core LVGL leaner
    • In extra we can have a lot and specific widgets
    • Good place for contributions
  • New scrolling:
    • See feat/new-scroll branch and #1614) issue.
    • Remove lv_page and support scrolling on lv_obj
    • Support "elastic" scrolling when scrolled in
    • Support scroll chaining among any objects types (not only lv_pagess)
    • Remove lv_drag. Similar effect can be achieved by setting the position in LV_EVENT_PRESSING
    • Add snapping
    • Add snap stop to scroll max 1 snap point
    • Already working
  • New layouts:
    • See #1615 issue
    • CSS Grid-like layout support
    • CSS Flexbox-like layout support
    • Remove lv_cont and support layouts on lv_obj
  • Simplified File system interface (feat/new_fs_api branch) to make porting easier
    • Work in progress
  • Remove the align parameter from lv_canvas_draw_text
  • Remove the copy parameter from create functions
  • Optimize and simplifie styles #1832
  • Use a more generic inheritenace #1919
  • Allow adding multiple events to an obejct