feat(obj): add transform matrix attribute (#7187)
This commit is contained in:
@@ -111,6 +111,7 @@ void lv_example_msgbox_2(void);
|
||||
|
||||
void lv_example_obj_1(void);
|
||||
void lv_example_obj_2(void);
|
||||
void lv_example_obj_3(void);
|
||||
|
||||
void lv_example_roller_1(void);
|
||||
void lv_example_roller_2(void);
|
||||
|
||||
@@ -11,3 +11,8 @@ Make an object draggable
|
||||
.. lv_example:: widgets/obj/lv_example_obj_2
|
||||
:language: c
|
||||
|
||||
Transform object using a 3x3 matrix
|
||||
-----------------------------------
|
||||
|
||||
.. lv_example:: widgets/obj/lv_example_obj_3
|
||||
:language: c
|
||||
|
||||
42
examples/widgets/obj/lv_example_obj_3.c
Normal file
42
examples/widgets/obj/lv_example_obj_3.c
Normal file
@@ -0,0 +1,42 @@
|
||||
#include "../../lv_examples.h"
|
||||
#if LV_BUILD_EXAMPLES
|
||||
#if LV_DRAW_TRANSFORM_USE_MATRIX
|
||||
|
||||
static void timer_cb(lv_timer_t * timer)
|
||||
{
|
||||
lv_obj_t * obj = lv_timer_get_user_data(timer);
|
||||
|
||||
static float value = 0.1f;
|
||||
lv_matrix_t matrix;
|
||||
lv_matrix_identity(&matrix);
|
||||
lv_matrix_scale(&matrix, value, 1);
|
||||
lv_matrix_rotate(&matrix, value * 360);
|
||||
lv_obj_set_transform(obj, &matrix);
|
||||
|
||||
value += 0.01f;
|
||||
|
||||
if(value > 2.0f) {
|
||||
lv_obj_reset_transform(obj);
|
||||
value = 0.1f;
|
||||
}
|
||||
}
|
||||
|
||||
void lv_example_obj_3(void)
|
||||
{
|
||||
lv_obj_t * obj = lv_obj_create(lv_screen_active());
|
||||
lv_obj_center(obj);
|
||||
|
||||
lv_timer_create(timer_cb, 20, obj);
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
void lv_example_obj_3(void)
|
||||
{
|
||||
lv_obj_t * label = lv_label_create(lv_screen_active());
|
||||
lv_label_set_text_static(label, "LV_DRAW_TRANSFORM_USE_MATRIX is not enabled");
|
||||
lv_obj_center(label);
|
||||
}
|
||||
|
||||
#endif /*LV_DRAW_TRANSFORM_USE_MATRIX*/
|
||||
#endif /*LV_BUILD_EXAMPLES*/
|
||||
Reference in New Issue
Block a user