forked from enlightenment/efl
evas vg: code refactoring.
capsulate vector file data from efl canvas vg. hide vector file data structure, capsulate it, cut off the dependency by vector object. yet it has evas_cache_entry interface.
This commit is contained in:
parent
093e32a0fb
commit
072f5a2fa0
|
@ -276,32 +276,25 @@ _efl_canvas_vg_object_efl_file_file_set(Eo *obj, Efl_Canvas_Vg_Object_Data *pd,
|
|||
EOLIAN static void
|
||||
_efl_canvas_vg_object_efl_file_file_get(const Eo *obj EINA_UNUSED, Efl_Canvas_Vg_Object_Data *pd, const char **file, const char **key)
|
||||
{
|
||||
if (file) *file = NULL;
|
||||
if (key) *key = NULL;
|
||||
|
||||
if (pd->vg_entry)
|
||||
{
|
||||
if (file) *file = pd->vg_entry->file;
|
||||
if (key) *key = pd->vg_entry->key;
|
||||
if (key) *key = pd->vg_entry->key;
|
||||
}
|
||||
}
|
||||
|
||||
EOLIAN static Eina_Bool
|
||||
_efl_canvas_vg_object_efl_file_save(const Eo *obj, Efl_Canvas_Vg_Object_Data *pd, const char *file, const char *key, const char *flags)
|
||||
{
|
||||
Vg_File_Data tmp = {};
|
||||
Vg_File_Data *info = &tmp;
|
||||
if (pd->vg_entry)
|
||||
return evas_cache_vg_entry_file_save(pd->vg_entry, file, key, flags);
|
||||
|
||||
if (pd->vg_entry && pd->vg_entry->file)
|
||||
{
|
||||
info = evas_cache_vg_file_info(pd->vg_entry->file, pd->vg_entry->key);
|
||||
}
|
||||
else
|
||||
{
|
||||
info->view_box.x = 0;
|
||||
info->view_box.y = 0;
|
||||
evas_object_geometry_get(obj, NULL, NULL, &info->view_box.w, &info->view_box.h);
|
||||
info->root = pd->root;
|
||||
info->preserve_aspect = EINA_FALSE;
|
||||
}
|
||||
return evas_vg_save_to_file(info, file, key, flags);
|
||||
Evas_Coord w, h;
|
||||
evas_object_geometry_get(obj, NULL, NULL, &w, &h);
|
||||
return evas_cache_vg_file_save(pd->root, w, h, file, key, flags);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -103,10 +103,9 @@ void evas_cache_vg_shutdown(void);
|
|||
Vg_Cache_Entry* evas_cache_vg_entry_find(const char *file, const char *key, int w, int h);
|
||||
Efl_VG* evas_cache_vg_tree_get(Vg_Cache_Entry *svg_entry);
|
||||
void evas_cache_vg_entry_del(Vg_Cache_Entry *svg_entry);
|
||||
Vg_File_Data * evas_cache_vg_file_info(const char *file, const char *key);
|
||||
|
||||
Eina_Bool evas_vg_save_to_file(Vg_File_Data *evg_data, const char *file, const char *key, const char *flags);
|
||||
|
||||
Vg_File_Data * evas_cache_vg_file_open(const char *file, const char *key);
|
||||
Eina_Bool evas_cache_vg_file_save(Efl_VG *root, int w, int h, const char *file, const char *key, const char *flags);
|
||||
Eina_Bool evas_cache_vg_entry_file_save(Vg_Cache_Entry *vg_entry, const char *file, const char *key, const char *flags);
|
||||
void efl_canvas_vg_node_root_set(Efl_VG *node, Efl_VG *vg_obj);
|
||||
|
||||
static inline Efl_Canvas_Vg_Node_Data *
|
||||
|
|
|
@ -153,8 +153,8 @@ _evas_cache_vg_entry_free_cb(void *data)
|
|||
free(vg_entry);
|
||||
}
|
||||
|
||||
Eina_Bool
|
||||
evas_vg_save_to_file(Vg_File_Data *vfd, const char *file, const char *key, const char *flags)
|
||||
static Eina_Bool
|
||||
_vg_file_save(Vg_File_Data *vfd, const char *file, const char *key, const char *flags)
|
||||
{
|
||||
Evas_Module *em;
|
||||
Evas_Vg_Save_Func *saver;
|
||||
|
@ -227,7 +227,7 @@ evas_cache_vg_shutdown(void)
|
|||
}
|
||||
|
||||
Vg_File_Data *
|
||||
evas_cache_vg_file_info(const char *file, const char *key)
|
||||
evas_cache_vg_file_open(const char *file, const char *key)
|
||||
{
|
||||
Vg_File_Data *vfd;
|
||||
Eina_Strbuf *hash_key;
|
||||
|
@ -300,7 +300,7 @@ _evas_cache_vg_tree_update(Vg_Cache_Entry *vg_entry)
|
|||
return;
|
||||
}
|
||||
|
||||
vfd = evas_cache_vg_file_info(vg_entry->file, vg_entry->key);
|
||||
vfd = evas_cache_vg_file_open(vg_entry->file, vg_entry->key);
|
||||
|
||||
vg_entry->root = _evas_vg_dup_vg_tree(vfd, vg_entry->w, vg_entry->h);
|
||||
eina_stringshare_del(vg_entry->file);
|
||||
|
@ -363,3 +363,30 @@ evas_cache_vg_entry_del(Vg_Cache_Entry *vg_entry)
|
|||
// FIXME implement delete logic (LRU)
|
||||
}
|
||||
|
||||
Eina_Bool
|
||||
evas_cache_vg_entry_file_save(Vg_Cache_Entry *vg_entry, const char *file, const char *key,
|
||||
const char *flags)
|
||||
{
|
||||
Vg_File_Data *vfd =
|
||||
evas_cache_vg_file_open(vg_entry->file, vg_entry->key);
|
||||
|
||||
if (!vfd) return EINA_FALSE;
|
||||
|
||||
return _vg_file_save(vfd, file, key, flags);
|
||||
}
|
||||
|
||||
Eina_Bool
|
||||
evas_cache_vg_file_save(Efl_VG *root, int w, int h, const char *file, const char *key,
|
||||
const char *flags)
|
||||
{
|
||||
Vg_File_Data vfd = {};
|
||||
|
||||
if (!root) return EINA_FALSE;
|
||||
|
||||
vfd.view_box.x = w;
|
||||
vfd.view_box.y = h;
|
||||
vfd.root = root;
|
||||
vfd.preserve_aspect = EINA_FALSE;
|
||||
|
||||
return _vg_file_save(&vfd, file, key, flags);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue