From 98147ce0976116c87614c34a2f62f8e2d8d20f8c Mon Sep 17 00:00:00 2001 From: "jiin.moon" Date: Wed, 27 Sep 2017 17:28:59 +0900 Subject: [PATCH] evas : Improve the performance by reusing map surface Summary: If object just has update of map point without other changes included child, the map surface can be reused. Reviewers: jpeg, cedric Differential Revision: https://phab.enlightenment.org/D5181 --- src/lib/evas/canvas/evas_render.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c index fc6f8b15ff..3f1895de2d 100644 --- a/src/lib/evas/canvas/evas_render.c +++ b/src/lib/evas/canvas/evas_render.c @@ -1872,7 +1872,7 @@ evas_render_mapped(Evas_Public_Data *evas, Evas_Object *eo_obj, if (_evas_render_has_map(obj) && !_evas_render_can_map(obj)) { int sw, sh; - Eina_Bool changed = EINA_FALSE, rendered = EINA_FALSE; + Eina_Bool changed = EINA_FALSE, rendered = EINA_FALSE, pchanged = EINA_FALSE; clean_them = EINA_TRUE; @@ -1881,7 +1881,7 @@ evas_render_mapped(Evas_Public_Data *evas, Evas_Object *eo_obj, RD(level, " surf size: %ix%i\n", sw, sh); if ((sw <= 0) || (sh <= 0)) goto end; - changed = evas_object_map_update(eo_obj, off_x, off_y, sw, sh, sw, sh); + pchanged = evas_object_map_update(eo_obj, off_x, off_y, sw, sh, sw, sh); if (obj->map->surface) { @@ -1919,7 +1919,7 @@ evas_render_mapped(Evas_Public_Data *evas, Evas_Object *eo_obj, /* mark the old map as invalid, so later we don't reuse it as a * cache. */ - if (changed && obj->map->prev.map) + if (pchanged && obj->map->prev.map) { EINA_COW_WRITE_BEGIN(evas_object_map_cow, obj->map, Evas_Object_Map_Data, map_write) map_write->prev.valid_map = EINA_FALSE;