You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If you start using a lv_obj_t inside another lv_obj_t, then you have an issue.
If you delete the parent, the child lv_obj_t * instance will be deleted by LVGL, but the C++ wrapper object will not.
In order to have a link between both, you need to register a LV_EVENT_DELETE on every lv_obj_t * you are wrapping so you can be informed when a children is deleted too and delete the wrapper.
However, this comes with a large penalty, each object now cost a wrapper + an event handler object.
The text was updated successfully, but these errors were encountered:
I tried to use the LVGL class functions around lv_obj_class_t (see lv_obj.c, lv_label.c, etc...) to construct a C++ class. This works as long as the class doesn't use virtual functions (and has a virtual table) since LVGL assumes the position of lv_obj_t is at the first memory address (and not after the virtual function table pointer).
If you start using a lv_obj_t inside another lv_obj_t, then you have an issue.
If you delete the parent, the child lv_obj_t * instance will be deleted by LVGL, but the C++ wrapper object will not.
In order to have a link between both, you need to register a
LV_EVENT_DELETE
on everylv_obj_t *
you are wrapping so you can be informed when a children is deleted too and delete the wrapper.However, this comes with a large penalty, each object now cost a wrapper + an event handler object.
The text was updated successfully, but these errors were encountered: