github lvgl/lvgl v4.0.0
[v4.0.0] New style system, font anti-aliasing, optimizations, clearer architecture, bug fixes

latest releases: v9.1.0, v8.4.0, v8.4...
6 years ago

A new major version is released with a lot new functions and improvements. The Littlev Graphics Library follows the rules of Semantic versioning. According to it a major release has to be done if the API is changed. Now the API of the graphics library is really changed to achieve a clearer and more effective architecture.

New website

A brand new website is created besides the new release. Please check it out: www.gl.littlev.hu

Draw Speed Optimizations

Optimization of Low Level drawing functions:

  • Faster rectangle fill
  • Faster letter draw
  • Faster image draw
  • Faster image draw with anti-aliasing
  • Faster filtering during anti-aliasing

Font Anti-aliasing

Font anti-aliasing is introduced for microcontrollers with moderate resources and/or GUIs with a lot of animations, movements. It uses much less CPU power then the already existing Full screen anti-aliasing.

The good thing is font anti-aliasing can be used with Real drawing as well. It means you need only a simple frame buffer to use anti-aliased letters. Keep in mind the Littlev Graphics Library doesn't need to use double buffering to deal with animations, transparency or anti-aliasing. It uses only optionally few kB work memory for every high level effects.

Simplified Style System

Formerly all object type was a unique style type (e.g. lv_labels_t). Now a common style type lv_style_t is used. It describes style properties for:

  • Backgrounds
  • Letters,
  • Images
  • Lines

at once.

It highly simplifies of using styles because you can use the same style for example a rectangle and a label. All object types will uses the style properties which are relevant for itself.

The new style system gives the opportunity to inherit styles from parents by settings the object's style to NULL.
In other words if you specify the style of a container object and create labels and/or images on it with NULL (inherited) styles the objects will use the parent's style. Why is it useful? Because you only have to create one style with great colors (background color, gradient color, text color, image recolor etc.), set is or container and just create objects on it without thinking about styles.

Learn more about the style here: http://www.gl.littlev.hu/objects#style

#Applications
To make Applications more flexible and useful the Phantom application is created. It is able to send/ receive data to/from the Applications.

It creates the opportunity to use Applications individually. For example if you need a terminal you can run a full featured Terminal application and send/receive adta with a Phantom application.

Click here to learn more about the applications: http://www.gl.littlev.hu/applications

Architectural Updates, Object Type Updates, Bug Fixes

  • Simplified HAL (Hardware Abstraction Layer)
  • New repository with an example HAL: https://github.com/littlevgl/hal
  • Instead of built-in icons Symbol fonts are added. The uses much less memory
  • Object dependencies are decreased hence the modularity is increased
  • Simplified object type inheritance because of the simplified style system
  • Function and object attribute renames happend to increase consistency
  • lv_misc moved to the Misc. Library as gfx
  • New object functionalities thanks to the new style system
  • Bug Fixes

Migrating LittlevGL v3.x to v4.0

  1. Rewrite your styles to lv_style_t variables
  2. Solve the minor issues because of renamed functions
  3. Test your GUI.

Feature Plans

  • External GUI control via serial port
  • New applications: WiFi, Music player etc
  • New object types according needs

Don't miss a new lvgl release

NewReleases is sending notifications on new releases.