Animation (gfx_anim)
Types
gfx_anim_segment_action_t
typedef enum {
GFX_ANIM_SEGMENT_ACTION_CONTINUE = 0,
GFX_ANIM_SEGMENT_ACTION_PAUSE,
} gfx_anim_segment_action_t;
gfx_anim_src_type_t
Public animation source type.
typedef enum {
GFX_ANIM_SRC_TYPE_MEMORY = 0, /**< In-memory animation payload */
} gfx_anim_src_type_t;
gfx_anim_segment_t
Playback description for one animation segment.
typedef struct {
uint32_t start; /* inclusive start frame */
uint32_t end; /* inclusive end frame */
uint32_t fps; /* playback fps for this segment */
uint32_t play_count; /* total plays for this segment, 0 means forever */
gfx_anim_segment_action_t end_action; /* action after the last play finishes */
} gfx_anim_segment_t;
gfx_anim_src_t
Typed animation source descriptor.
typedef struct {
gfx_anim_src_type_t type; /**< Source payload type */
const void *data; /**< Type-specific payload pointer */
size_t data_len; /**< Payload length in bytes */
} gfx_anim_src_t;
Functions
gfx_anim_create()
gfx_obj_t * gfx_anim_create(gfx_disp_t *disp);
gfx_anim_set_src_desc()
Set the typed source descriptor for an animation object
esp_err_t gfx_anim_set_src_desc(gfx_obj_t *obj, const gfx_anim_src_t *src);
Parameters:
obj- Pointer to the animation objectsrc- Pointer to the typed source descriptor
Returns:
ESP_OK on success, error code otherwise
gfx_anim_set_src()
Set the source data for an animation object
esp_err_t gfx_anim_set_src(gfx_obj_t *obj, const void *src_data, size_t src_len);
Parameters:
obj- Pointer to the animation objectsrc_data- Source datasrc_len- Source data length
Returns:
ESP_OK on success, error code otherwise
gfx_anim_set_segment()
Set the segment for an animation object
esp_err_t gfx_anim_set_segment(gfx_obj_t *obj, uint32_t start, uint32_t end, uint32_t fps, bool repeat);
Parameters:
obj- Pointer to the animation objectstart- Start frame indexend- End frame indexfps- Frames per secondrepeat- Whether to repeat the animation
Returns:
ESP_OK on success, error code otherwise
gfx_anim_set_segments()
Set a segment playback plan for an animation object
esp_err_t gfx_anim_set_segments(gfx_obj_t *obj, const gfx_anim_segment_t *segments, size_t segment_count);
Parameters:
obj- Pointer to the animation objectsegments- Segment plan arraysegment_count- Number of segment entries in the array
Returns:
ESP_OK on success, error code otherwise
gfx_anim_play_left_to_tail()
Drain the remaining segment plan and block until playback finishes
esp_err_t gfx_anim_play_left_to_tail(gfx_obj_t *obj);
Parameters:
obj- Pointer to the animation object
Returns:
ESP_OK on success, ESP_ERR_NOT_FOUND if there is no remaining work, or another ESP_ERR_* code on failure
gfx_anim_start()
Start the animation
esp_err_t gfx_anim_start(gfx_obj_t *obj);
Parameters:
obj- Pointer to the animation object
Returns:
ESP_OK on success, error code otherwise
gfx_anim_stop()
Stop the animation
esp_err_t gfx_anim_stop(gfx_obj_t *obj);
Parameters:
obj- Pointer to the animation object
Returns:
ESP_OK on success, error code otherwise
gfx_anim_set_mirror()
Set mirror display for an animation object
esp_err_t gfx_anim_set_mirror(gfx_obj_t *obj, bool enabled, int16_t offset);
Parameters:
obj- Pointer to the animation objectenabled- Whether to enable mirror displayoffset- Mirror offset in pixels
Returns:
ESP_OK on success, error code otherwise
gfx_anim_set_auto_mirror()
Set auto mirror alignment for animation object
esp_err_t gfx_anim_set_auto_mirror(gfx_obj_t *obj, bool enabled);
Parameters:
obj- Animation objectenabled- Whether to enable auto mirror alignment
Returns:
ESP_OK on success, ESP_ERR_* otherwise