diff options
author | ChunEon Park <hermet@hermet.pe.kr> | 2013-11-18 16:10:55 +0900 |
---|---|---|
committer | ChunEon Park <hermet@hermet.pe.kr> | 2013-11-18 16:12:30 +0900 |
commit | 5cefa00d0ad0f542ac53d38cbce4495884b09136 (patch) | |
tree | e68df237ef8862aece138c1871682a8fede7f756 | |
parent | 1500338a8d56d530b0a7e2ba30f55e08b50eaffe (diff) |
evas/render - optimize proxy rendering.
redraw proxy if the source is smart object and it's changed visually.
-rw-r--r-- | src/lib/evas/canvas/evas_render.c | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c index 7e0b16b6e8..4a3a4e1df0 100644 --- a/src/lib/evas/canvas/evas_render.c +++ b/src/lib/evas/canvas/evas_render.c | |||
@@ -345,15 +345,22 @@ _evas_render_phase1_direct(Evas_Public_Data *e, | |||
345 | _evas_render_prev_cur_clip_cache_add(e, obj); | 345 | _evas_render_prev_cur_clip_cache_add(e, obj); |
346 | if (obj->proxy->proxies) | 346 | if (obj->proxy->proxies) |
347 | { | 347 | { |
348 | EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, obj->proxy, Evas_Object_Proxy_Data, proxy_write) | 348 | if (obj->smart.smart && evas_object_smart_changed_get(eo_obj)) |
349 | proxy_write->redraw = EINA_TRUE; | ||
350 | EINA_COW_WRITE_END(evas_object_proxy_cow, obj->proxy, proxy_write); | ||
351 | |||
352 | EINA_LIST_FOREACH(obj->proxy->proxies, l, eo_proxy) | ||
353 | { | 349 | { |
354 | Evas_Object_Protected_Data *proxy = eo_data_scope_get(eo_proxy, EVAS_OBJ_CLASS); | 350 | EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, obj->proxy, |
355 | proxy->func->render_pre(eo_proxy, proxy, proxy->private_data); | 351 | Evas_Object_Proxy_Data, proxy_write) |
356 | _evas_render_prev_cur_clip_cache_add(e, proxy); | 352 | proxy_write->redraw = EINA_TRUE; |
353 | EINA_COW_WRITE_END(evas_object_proxy_cow, obj->proxy, | ||
354 | proxy_write); | ||
355 | |||
356 | EINA_LIST_FOREACH(obj->proxy->proxies, l, eo_proxy) | ||
357 | { | ||
358 | Evas_Object_Protected_Data *proxy = | ||
359 | eo_data_scope_get(eo_proxy, EVAS_OBJ_CLASS); | ||
360 | proxy->func->render_pre(eo_proxy, | ||
361 | proxy, proxy->private_data); | ||
362 | _evas_render_prev_cur_clip_cache_add(e, proxy); | ||
363 | } | ||
357 | } | 364 | } |
358 | } | 365 | } |
359 | 366 | ||