evas phase 1 process - shortcut objects that are pure static clips only

these objects don't actually produce - or should produce update
regions etc. etc. as the objects that are clipped should produce those.
they are not active objects. so skip them very early after just
ensuring they are in delete objects if needed.
This commit is contained in:
Carsten Haitzler 2016-11-23 13:57:27 +09:00
parent ad985e73f3
commit 1bba6d5759
1 changed files with 7 additions and 5 deletions

View File

@ -854,19 +854,21 @@ _evas_render_phase1_object_process(Phase1_Context *p1ctx,
Eina_Bool map, hmap, can_map, map_not_can_map, obj_changed, is_active;
Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
//Need pre render for the children of mapped object.
//But only when they have changed.
if (mapped_parent && (!obj->changed)) return EINA_FALSE;
obj->rect_del = EINA_FALSE;
obj->render_pre = EINA_FALSE;
if (obj->delete_me == 2)
OBJ_ARRAY_PUSH(p1ctx->delete_objects, obj);
if (obj->delete_me == 2) OBJ_ARRAY_PUSH(p1ctx->delete_objects, obj);
else if (obj->delete_me != 0) obj->delete_me++;
/* If the object will be removed, we should not cache anything during this run. */
if (obj->delete_me != 0) clean_them = EINA_TRUE;
if (obj->is_static_clip) return clean_them;
//Need pre render for the children of mapped object.
//But only when they have changed.
if (mapped_parent && (!obj->changed)) return clean_them;
/* build active object list */
evas_object_clip_recalc(obj);