forked from enlightenment/efl
evas - remove excess data scope lookup during render when getting changed
getting smart changed meant another scope data get when we already had the protected data in the caller. don't do that and just pass down. saves a lot of overhead... @optimize
This commit is contained in:
parent
9aeedc5a1c
commit
2098f55ba2
|
@ -1225,9 +1225,8 @@ _efl_canvas_group_group_change(Eo *eo_obj, Evas_Smart_Data *o EINA_UNUSED)
|
|||
}
|
||||
|
||||
Eina_Bool
|
||||
evas_object_smart_changed_get(Evas_Object *eo_obj)
|
||||
evas_object_smart_changed_get(Evas_Object_Protected_Data *obj)
|
||||
{
|
||||
Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
|
||||
Eina_Bool has_map = EINA_FALSE;
|
||||
|
||||
/* If object is invisible, it's meaningless to figure out changed state
|
||||
|
@ -1263,8 +1262,8 @@ evas_object_smart_changed_get(Evas_Object *eo_obj)
|
|||
{
|
||||
Evas_Object_Protected_Data *o2;
|
||||
|
||||
EINA_INLIST_FOREACH(evas_object_smart_members_get_direct(eo_obj), o2)
|
||||
if (evas_object_smart_changed_get(o2->object)) return EINA_TRUE;
|
||||
EINA_INLIST_FOREACH(evas_object_smart_members_get_direct(obj->object), o2)
|
||||
if (evas_object_smart_changed_get(o2)) return EINA_TRUE;
|
||||
}
|
||||
|
||||
return EINA_FALSE;
|
||||
|
|
|
@ -407,7 +407,7 @@ static inline Eina_Bool
|
|||
_evas_render_object_changed_get(Evas_Object_Protected_Data *obj)
|
||||
{
|
||||
if (obj->smart.smart)
|
||||
return evas_object_smart_changed_get(obj->object);
|
||||
return evas_object_smart_changed_get(obj);
|
||||
else
|
||||
return obj->changed;
|
||||
}
|
||||
|
@ -469,7 +469,7 @@ _evas_render_phase1_direct(Evas_Public_Data *e,
|
|||
if (obj->proxy->redraw || obj->mask->redraw)
|
||||
_evas_render_prev_cur_clip_cache_add(e, obj);
|
||||
|
||||
if (!obj->smart.smart || evas_object_smart_changed_get(eo_obj))
|
||||
if (!obj->smart.smart || evas_object_smart_changed_get(obj))
|
||||
{
|
||||
/* proxy sources */
|
||||
if (obj->proxy->proxies || obj->proxy->proxy_textures)
|
||||
|
@ -1926,7 +1926,7 @@ evas_render_mapped(Evas_Public_Data *evas, Evas_Object *eo_obj,
|
|||
changed = EINA_TRUE;
|
||||
}
|
||||
|
||||
if (!changed) changed = evas_object_smart_changed_get(eo_obj);
|
||||
if (!changed) changed = evas_object_smart_changed_get(obj);
|
||||
|
||||
/* mark the old map as invalid, so later we don't reuse it as a
|
||||
* cache. */
|
||||
|
|
|
@ -1608,7 +1608,7 @@ void _evas_object_smart_clipped_smart_move_internal(Evas_Object *eo_obj, Evas_Co
|
|||
void evas_call_smarts_calculate(Evas *e);
|
||||
void evas_object_smart_bounding_box_update(Evas_Object_Protected_Data *obj);
|
||||
void evas_object_smart_need_bounding_box_update(Evas_Smart_Data *o, Evas_Object_Protected_Data *obj);
|
||||
Eina_Bool evas_object_smart_changed_get(Evas_Object *eo_obj);
|
||||
Eina_Bool evas_object_smart_changed_get(Evas_Object_Protected_Data *obj);
|
||||
void evas_object_smart_attach(Evas_Object *eo_obj, Evas_Smart *s);
|
||||
void _evas_post_event_callback_call_real(Evas *e, Evas_Public_Data* e_pd, int min_event_id);
|
||||
#define _evas_post_event_callback_call(e, pd, id) do { \
|
||||
|
|
Loading…
Reference in New Issue