raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=1bba6d5759d859d0db9ad5b5556883044d3a1b11
commit 1bba6d5759d859d0db9ad5b5556883044d3a1b11 Author: Carsten Haitzler (Rasterman) <[email protected]> Date: Wed Nov 23 13:57:27 2016 +0900 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. --- src/lib/evas/canvas/evas_render.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c index 66b5bee..bc136c3 100644 --- a/src/lib/evas/canvas/evas_render.c +++ b/src/lib/evas/canvas/evas_render.c @@ -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); --
