3D Texture (lv_3dtexture)
3D texture widgets are used to embed an external 3D graphics library's "texture" primitive into an LVGL UI.
Overview
3D texture widgets are used to embed an external 3D graphics library's "texture" primitive into an LVGL UI.
Parts and Styles
The size should be set to the actual size of the texture primitive. The opacity may also be changed.
Usage
Requires a draw unit to be enabled which can draw the
LV_DRAW_TASK_TYPE_3D draw task type.
OpenGL is the first supported 3D graphics back-end. The following must be enabled.
-
LV_USE_3DTEXTURE -
LV_USE_OPENGLES -
LV_USE_DRAW_OPENGLES
See LVGL's OpenGLES driver docs to create a window and a display texture.
The lv_example_3dtexture <https://github.com/lvgl/lv_example_3dtexture> repository is a
demonstration of how to use the 3dtexture widget to load glTF models with OpenGL
and display them in LVGL.
lv_obj_t * tex = lv_3dtexture_create(parent);
/* Render something to the texture. You can replace it with your code. */
lv_3dtexture_id_t gltf_texture = render_gltf_model_to_opengl_texture(path, w, h, color);
lv_3dtexture_set_src(tex, gltf_texture);
lv_obj_set_size(tex, w, h);
lv_obj_set_style_opa(tex, opa, 0);The real type of lv_3dtexture_id_t depends on the active 3D graphics back-end.
With OpenGL, the type is unsigned int.
Events
3D Texture has no special event handling.
Example
See the lv_example_3dtexture repo.
API
How is this guide?
Last updated on