From 1bba6d5759d859d0db9ad5b5556883044d3a1b11 Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Wed, 23 Nov 2016 13:57:27 +0900 Subject: [PATCH] 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 66b5beebd8..bc136c3566 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);