forked from enlightenment/efl
evas vg: add an new interface efl_canvas_vg_container_children_direct_get()
Summary: We need an efficient method to navigate children faster. Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D10989
This commit is contained in:
parent
d79693d1a9
commit
174c593c70
|
@ -304,6 +304,12 @@ _efl_canvas_vg_container_children_get(Eo *obj EINA_UNUSED, Efl_Canvas_Vg_Contain
|
|||
return eina_list_iterator_new(pd->children);
|
||||
}
|
||||
|
||||
static const Eina_List *
|
||||
_efl_canvas_vg_container_children_direct_get(Eo *obj EINA_UNUSED, Efl_Canvas_Vg_Container_Data *pd)
|
||||
{
|
||||
return pd->children;
|
||||
}
|
||||
|
||||
static Eina_Bool
|
||||
_efl_canvas_vg_container_efl_gfx_path_interpolate(Eo *obj, Efl_Canvas_Vg_Container_Data *pd, const Efl_VG *from, const Efl_VG *to, double pos_map)
|
||||
{
|
||||
|
|
|
@ -13,6 +13,10 @@ class @beta Efl.Canvas.Vg.Container extends Efl.Canvas.Vg.Node
|
|||
[[Get all children of container]]
|
||||
return: iterator<Efl.Canvas.Vg.Node> @move @no_unused; [[Iterator to children]]
|
||||
}
|
||||
children_direct_get {
|
||||
[[Get all children of container]]
|
||||
return: const(list<Efl.Canvas.Vg.Node>) @no_unused; [[List to children]]
|
||||
}
|
||||
}
|
||||
implements {
|
||||
Efl.Object.constructor;
|
||||
|
|
|
@ -378,11 +378,11 @@ _reset_vg_tree(Efl_VG *node)
|
|||
//Hide all nodes visibility
|
||||
if (efl_isa(node, EFL_CANVAS_VG_CONTAINER_CLASS))
|
||||
{
|
||||
Eina_List *list = (Eina_List*) efl_canvas_vg_container_children_direct_get(node);
|
||||
Eina_List *list2;
|
||||
Efl_VG* child;
|
||||
Eina_Iterator *itr = efl_canvas_vg_container_children_get(node);
|
||||
EINA_ITERATOR_FOREACH(itr, child)
|
||||
EINA_LIST_FOREACH(list, list2, child)
|
||||
_reset_vg_tree(child);
|
||||
if (itr) eina_iterator_free(itr);
|
||||
}
|
||||
efl_gfx_entity_visible_set(node, EINA_FALSE);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue