forked from enlightenment/efl
evas_cache_vg : Implements sector_get/set internal APIs
Summary: These APIs to get and set frames for a specific section in vg animation. get API looks for a sector by name in the markerlist of VG_File_Data. Then return start and end frames. Depends on D10504 Test Plan: N/A Reviewers: Hermet, smohanty, kimcinoo Reviewed By: Hermet Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D10505
This commit is contained in:
parent
ddaa5d1e6e
commit
93551ca58e
|
@ -151,6 +151,8 @@ Vg_File_Data * evas_cache_vg_file_open(const Eina_File *file, const
|
|||
Eina_Bool evas_cache_vg_file_save(Efl_VG *root, int w, int h, const char *file, const char *key, const Efl_File_Save_Info *info);
|
||||
Eina_Bool evas_cache_vg_entry_file_save(Vg_Cache_Entry *vg_entry, const char *file, const char *key, const Efl_File_Save_Info *info);
|
||||
double evas_cache_vg_anim_duration_get(const Vg_Cache_Entry *vg_entry);
|
||||
Eina_Bool evas_cache_vg_anim_sector_set(const Vg_Cache_Entry* vg_entry, const char *name, int startframe, int endframe);
|
||||
Eina_Bool evas_cache_vg_anim_sector_get(const Vg_Cache_Entry* vg_entry, const char *name, int* startframe, int* endframe);
|
||||
unsigned int evas_cache_vg_anim_frame_count_get(const Vg_Cache_Entry *vg_entry);
|
||||
Eina_Size2D evas_cache_vg_entry_default_size_get(const Vg_Cache_Entry *vg_entry);
|
||||
void efl_canvas_vg_node_vg_obj_set(Efl_VG *node, Efl_VG *vg_obj, Efl_Canvas_Vg_Object_Data *vd);
|
||||
|
|
|
@ -433,6 +433,58 @@ evas_cache_vg_anim_frame_count_get(const Vg_Cache_Entry* vg_entry)
|
|||
return vfd->anim_data->frame_cnt;
|
||||
}
|
||||
|
||||
Eina_Bool
|
||||
evas_cache_vg_anim_sector_set(const Vg_Cache_Entry* vg_entry, const char *name, int startframe, int endframe)
|
||||
{
|
||||
if (!vg_entry) return EINA_FALSE;
|
||||
if (!vg_entry->vfd->anim_data) return EINA_FALSE;
|
||||
if (!vg_entry->vfd->anim_data->markers) return EINA_FALSE;
|
||||
if (!name) return EINA_FALSE;
|
||||
|
||||
Vg_File_Anim_Data_Marker *marker;
|
||||
Vg_File_Anim_Data_Marker new_marker;
|
||||
int i = 0;
|
||||
|
||||
EINA_INARRAY_FOREACH(vg_entry->vfd->anim_data->markers, marker)
|
||||
{
|
||||
if (!strcmp(marker->name, name))
|
||||
{
|
||||
marker->startframe = startframe;
|
||||
marker->endframe = endframe;
|
||||
return EINA_TRUE;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
|
||||
new_marker.name = eina_stringshare_add(name);
|
||||
new_marker.startframe = startframe;
|
||||
new_marker.endframe = endframe;
|
||||
eina_inarray_push(vg_entry->vfd->anim_data->markers, &new_marker);
|
||||
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
Eina_Bool
|
||||
evas_cache_vg_anim_sector_get(const Vg_Cache_Entry* vg_entry, const char *name, int* startframe, int* endframe)
|
||||
{
|
||||
if (!vg_entry) return EINA_FALSE;
|
||||
if (!vg_entry->vfd->anim_data) return EINA_FALSE;
|
||||
if (!vg_entry->vfd->anim_data->markers) return EINA_FALSE;
|
||||
if (!name) return EINA_FALSE;
|
||||
|
||||
Vg_File_Anim_Data_Marker *marker;
|
||||
EINA_INARRAY_FOREACH(vg_entry->vfd->anim_data->markers, marker)
|
||||
{
|
||||
if (!strcmp(marker->name, name))
|
||||
{
|
||||
if (startframe) *startframe = marker->startframe;
|
||||
if (endframe) *endframe = marker->endframe;
|
||||
return EINA_TRUE;
|
||||
}
|
||||
}
|
||||
return EINA_FALSE;
|
||||
}
|
||||
|
||||
Efl_VG*
|
||||
evas_cache_vg_tree_get(Vg_Cache_Entry *vg_entry, unsigned int frame_num)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue