linuxOS_AP06/app/lvgl_demo/gallery/anims/stiker.c
2025-06-03 12:28:32 +08:00

52 lines
1.1 KiB
C

#include "gallery.h"
#ifdef USE_OPENGL
void anim_stiker_start(lv_anim_t *a);
void anim_stiker(void *var, int32_t v);
void anim_stiker_end(lv_anim_t *a);
static void anim_stiker_render(void)
{
lv_gl_set_fb(obj_fb);
lv_gl_tex_clear(obj_fb->base.tex, 0.0, 0.0, 0.0, 1.0);
lv_gl_obj_render(obj_img1);
lv_gl_obj_render(obj_img0);
/* render to screen */
lv_gl_set_fb(NULL);
lv_gl_obj_render(obj_fb);
}
void anim_stiker_start(lv_anim_t *a)
{
printf("%s\n", __func__);
common_anim_start();
lv_gl_set_render_cb(anim_stiker_render);
obj_img0->base.r.x = 0;
obj_img0->base.r.y = 0;
lv_gl_obj_move(obj_img0, obj_fb);
lv_obj_invalidate(lv_layer_top());
}
void anim_stiker(void *var, int32_t v)
{
lv_slider_set_value(slider, v, LV_ANIM_ON);
obj_img0->base.r.x = obj_img0->base.w * (v % 4);
obj_img0->base.r.y = obj_img0->base.h * (v / 4);
lv_gl_obj_move(obj_img0, obj_fb);
lv_obj_invalidate(lv_layer_top());
}
void anim_stiker_end(lv_anim_t *a)
{
animing = 0;
lv_slider_set_range(slider, 0, 100);
lv_slider_set_value(slider, 0, LV_ANIM_ON);
}
#endif