Skip to content

Conversation

@jefdriesen
Copy link

This PR upgrades the bindings to LVGL 9.2.

The main remaining issue is in the chart widget. The axes are missing because in LVGL 9 they have been removed from the chart widget and replaced with the scale widget. The result is that charts will be drawn without any axes.

Since LVGL v9, the drivers are integrated in the main LVGL library and
the drivers submodule is no longer needed.
The only header file left in the deps directory is the lv_conf.h header
file, and that one is already detected by means of the LV_CONF_PATH and
LVGL_PATH. Removing the hardcoded path also makes it easier to use an
externally build LVGL library with its own config file.
Replace the config file with the template config file from LVGL 9.2.0
and split the simulator and device configuration into two separate
files.
The previous commit replaced the customized options with the default
values. Restore the relevant changes again.
Re-work the HAL code to the new LVGL driver api.
In the new LVGL v9 api, the name of many symbols has changed, some
structs are made opaque with helper functions to access their contents,
some datatypes changed from 16 to 32bit, etc.
In LVGL v9, the axes of the chart component are a separate widget
(lv_scale), and are no longer part of the chart widget itself. Since
there is no direct replacement present, those chart related api calls
have been disabled, until a better solution is available.

The result is that charts will be drawn without any axes. Fixing this
issue will require some future work.
Modern C++ compilers no longer allow implicit conversion from integer to
enum values. Since the lv_obj_flag_t enum is intended to be used as a
bit flag, combining several values with the OR operator results in an
integer and not a enum value. Hence the compilation fails with an error:

  error: invalid conversion from ‘int’ to ‘lv_obj_flag_t’ [-fpermissive]
Some of the magic values in the LVGL library changed from 16 to 32 bit
values. This mismatch caused several rendering issues because the magic
values were suddenly interpreted as (large) normal numbers.
@derekstavis
Copy link
Collaborator

This is 🔥 and unblocks enabling custom fonts. I will review and test the changes and put some thought into the chart issue

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants