mirror of
https://github.com/lvgl/lvgl.git
synced 2026-05-27 11:57:48 +08:00
fix(animimg) fix flickering and build error
This commit is contained in:
@@ -54,24 +54,12 @@ const lv_obj_class_t lv_animimg_class = {
|
|||||||
* GLOBAL FUNCTIONS
|
* GLOBAL FUNCTIONS
|
||||||
**********************/
|
**********************/
|
||||||
|
|
||||||
/**
|
|
||||||
* Create an animation image objects
|
|
||||||
* @param par pointer to an object, it will be the parent of the new animation image
|
|
||||||
* @param copy pointer to a image object, if not NULL then the new object will be copied from it
|
|
||||||
* @return pointer to the created animation image
|
|
||||||
*/
|
|
||||||
lv_obj_t * lv_animimg_create(lv_obj_t * parent)
|
lv_obj_t * lv_animimg_create(lv_obj_t * parent)
|
||||||
{
|
{
|
||||||
LV_LOG_INFO("begin")
|
LV_LOG_INFO("begin")
|
||||||
return lv_obj_create_from_class(&lv_animimg_class, parent);
|
return lv_obj_class_create_obj(&lv_animimg_class, parent, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Set the animation images source.
|
|
||||||
* @param img pointer to an animation image object
|
|
||||||
* @param dsc pointer to a series images
|
|
||||||
* @param num images' number
|
|
||||||
*/
|
|
||||||
void lv_animimg_set_src(lv_obj_t * obj, lv_img_dsc_t ** dsc, uint8_t num)
|
void lv_animimg_set_src(lv_obj_t * obj, lv_img_dsc_t ** dsc, uint8_t num)
|
||||||
{
|
{
|
||||||
lv_animimg_t * animimg = (lv_animimg_t *)obj;
|
lv_animimg_t * animimg = (lv_animimg_t *)obj;
|
||||||
@@ -80,10 +68,6 @@ void lv_animimg_set_src(lv_obj_t * obj, lv_img_dsc_t ** dsc, uint8_t num)
|
|||||||
lv_anim_set_values(&animimg->anim, 0 , num);
|
lv_anim_set_values(&animimg->anim, 0 , num);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Startup the image animation.
|
|
||||||
* @param img pointer to an animation image object
|
|
||||||
*/
|
|
||||||
void lv_animimg_start(lv_obj_t * obj)
|
void lv_animimg_start(lv_obj_t * obj)
|
||||||
{
|
{
|
||||||
lv_animimg_t * animimg = (lv_animimg_t *)obj;
|
lv_animimg_t * animimg = (lv_animimg_t *)obj;
|
||||||
@@ -94,31 +78,13 @@ void lv_animimg_start(lv_obj_t * obj)
|
|||||||
* Setter functions
|
* Setter functions
|
||||||
*====================*/
|
*====================*/
|
||||||
|
|
||||||
/**
|
|
||||||
* Set the image animation wait before repeat. unit:ms
|
|
||||||
* @param img pointer to an animation image object
|
|
||||||
*/
|
|
||||||
void lv_animimg_set_repeat_delay(lv_obj_t * obj, uint32_t delay)
|
|
||||||
{
|
|
||||||
lv_animimg_t * animimg = (lv_animimg_t *)obj;
|
|
||||||
animimg->anim.repeat_delay = delay;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set the image animation duration time. unit:ms
|
|
||||||
* @param img pointer to an animation image object
|
|
||||||
*/
|
|
||||||
void lv_animimg_set_duration(lv_obj_t * obj, uint32_t duration)
|
void lv_animimg_set_duration(lv_obj_t * obj, uint32_t duration)
|
||||||
{
|
{
|
||||||
lv_animimg_t * animimg = (lv_animimg_t *)obj;
|
lv_animimg_t * animimg = (lv_animimg_t *)obj;
|
||||||
lv_anim_set_time(&animimg->anim, duration);
|
lv_anim_set_time(&animimg->anim, duration);
|
||||||
lv_anim_set_playback_time(&animimg->anim, duration);
|
lv_anim_set_playback_delay(&animimg->anim, duration);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Set the image animation reapeatly play times.
|
|
||||||
* @param img pointer to an animation image object
|
|
||||||
*/
|
|
||||||
void lv_animimg_set_repeat_count(lv_obj_t * obj, uint16_t count)
|
void lv_animimg_set_repeat_count(lv_obj_t * obj, uint16_t count)
|
||||||
{
|
{
|
||||||
lv_animimg_t * animimg = (lv_animimg_t *)obj;
|
lv_animimg_t * animimg = (lv_animimg_t *)obj;
|
||||||
@@ -148,21 +114,9 @@ static void lv_animimg_constructor(const lv_obj_class_t * class_p, lv_obj_t * ob
|
|||||||
lv_anim_set_time(&animimg->anim, 30);
|
lv_anim_set_time(&animimg->anim, 30);
|
||||||
lv_anim_set_exec_cb(&animimg->anim, (lv_anim_exec_xcb_t)index_change);
|
lv_anim_set_exec_cb(&animimg->anim, (lv_anim_exec_xcb_t)index_change);
|
||||||
lv_anim_set_values(&animimg->anim, 0 , 1);
|
lv_anim_set_values(&animimg->anim, 0 , 1);
|
||||||
lv_anim_set_playback_time(&animimg->anim, 100);
|
|
||||||
lv_anim_set_repeat_count(&animimg->anim, LV_ANIM_REPEAT_INFINITE);
|
lv_anim_set_repeat_count(&animimg->anim, LV_ANIM_REPEAT_INFINITE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Handle the drawing related tasks of the images
|
|
||||||
* @param img pointer to an image animationobject
|
|
||||||
* @param clip_area the object will be drawn only in this area
|
|
||||||
* @param mode LV_DESIGN_COVER_CHK: only check if the object fully covers the 'mask_p' area
|
|
||||||
* (return 'true' if yes)
|
|
||||||
* LV_DESIGN_DRAW: draw the object (always return 'true')
|
|
||||||
* LV_DESIGN_DRAW_POST: drawing after every children are drawn
|
|
||||||
* @param return an element of `lv_design_res_t`
|
|
||||||
*/
|
|
||||||
|
|
||||||
static void index_change(lv_obj_t * obj, int32_t index)
|
static void index_change(lv_obj_t * obj, int32_t index)
|
||||||
{
|
{
|
||||||
lv_coord_t idx;
|
lv_coord_t idx;
|
||||||
|
|||||||
@@ -54,29 +54,10 @@ typedef uint8_t lv_animimg_part_t;
|
|||||||
*/
|
*/
|
||||||
lv_obj_t * lv_animimg_create(lv_obj_t * parent);
|
lv_obj_t * lv_animimg_create(lv_obj_t * parent);
|
||||||
|
|
||||||
/**
|
|
||||||
* Startup the image animation.
|
|
||||||
* @param img pointer to an animation image object
|
|
||||||
*/
|
|
||||||
void lv_animimg_start(lv_obj_t * obj);
|
|
||||||
|
|
||||||
|
|
||||||
/*=====================
|
/*=====================
|
||||||
* Setter functions
|
* Setter functions
|
||||||
*====================*/
|
*====================*/
|
||||||
|
|
||||||
/**
|
|
||||||
* Set the image animation duration time. unit:ms
|
|
||||||
* @param img pointer to an animation image object
|
|
||||||
*/
|
|
||||||
void lv_animimg_set_duration(lv_obj_t * img, uint32_t duration);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set the image animation wait before repeat. unit:ms
|
|
||||||
* @param img pointer to an animation image object
|
|
||||||
*/
|
|
||||||
void lv_animimg_set_repeat_delay(lv_obj_t * img, uint32_t delay);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the image animation images source.
|
* Set the image animation images source.
|
||||||
* @param img pointer to an animation image object
|
* @param img pointer to an animation image object
|
||||||
@@ -85,6 +66,18 @@ void lv_animimg_set_repeat_delay(lv_obj_t * img, uint32_t delay);
|
|||||||
*/
|
*/
|
||||||
void lv_animimg_set_src(lv_obj_t * img, lv_img_dsc_t ** dsc, uint8_t num);
|
void lv_animimg_set_src(lv_obj_t * img, lv_img_dsc_t ** dsc, uint8_t num);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Startup the image animation.
|
||||||
|
* @param img pointer to an animation image object
|
||||||
|
*/
|
||||||
|
void lv_animimg_start(lv_obj_t * obj);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the image animation duration time. unit:ms
|
||||||
|
* @param img pointer to an animation image object
|
||||||
|
*/
|
||||||
|
void lv_animimg_set_duration(lv_obj_t * img, uint32_t duration);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the image animation reapeatly play times.
|
* Set the image animation reapeatly play times.
|
||||||
* @param img pointer to an animation image object
|
* @param img pointer to an animation image object
|
||||||
|
|||||||
Reference in New Issue
Block a user