diff options
author | ChunEon Park <hermet@hermet.pe.kr> | 2013-10-31 17:01:41 +0900 |
---|---|---|
committer | ChunEon Park <hermet@hermet.pe.kr> | 2013-10-31 17:04:23 +0900 |
commit | 69077d19d71983e1c9fcd47607ebc1508207cf87 (patch) | |
tree | 765ee675c61492badbcd7cf20d6ceb84dcb0b416 /src/lib/evas/canvas/evas_render.c | |
parent | 8f97de91a346af8692d9e292a5ff73b75f820992 (diff) |
evas/proxy - decide the proxy updation in the main render process.
because the proxy updation is decided in the proxy rendering time,
it couldn't be updated at the time if the source is changed before.
Diffstat (limited to '')
-rw-r--r-- | src/lib/evas/canvas/evas_render.c | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c index 2ceca4da56..3b14c28bda 100644 --- a/src/lib/evas/canvas/evas_render.c +++ b/src/lib/evas/canvas/evas_render.c | |||
@@ -293,25 +293,34 @@ _evas_render_phase1_direct(Evas_Public_Data *e, | |||
293 | unsigned int i; | 293 | unsigned int i; |
294 | Eina_List *l; | 294 | Eina_List *l; |
295 | Evas_Object *eo_proxy; | 295 | Evas_Object *eo_proxy; |
296 | Eina_Bool changed; | ||
296 | 297 | ||
297 | RD(" [--- PHASE 1 DIRECT\n"); | 298 | RD(" [--- PHASE 1 DIRECT\n"); |
298 | for (i = 0; i < active_objects->count; i++) | 299 | for (i = 0; i < active_objects->count; i++) |
299 | { | 300 | { |
300 | Evas_Object_Protected_Data *obj = eina_array_data_get(active_objects, i); | 301 | Evas_Object_Protected_Data *obj = |
302 | eina_array_data_get(active_objects, i); | ||
301 | 303 | ||
302 | if (obj->changed) | 304 | if (obj->changed) evas_object_clip_recalc(obj); |
305 | if (!obj->proxy->proxies) continue; | ||
306 | |||
307 | if (obj->smart.smart) | ||
308 | changed = evas_object_smart_changed_get(obj->object); | ||
309 | else changed = obj->changed; | ||
310 | |||
311 | if (changed) | ||
303 | { | 312 | { |
304 | /* Flag need redraw on proxy too */ | 313 | /* Flag need redraw on proxy too */ |
305 | evas_object_clip_recalc(obj); | ||
306 | EINA_LIST_FOREACH(obj->proxy->proxies, l, eo_proxy) | 314 | EINA_LIST_FOREACH(obj->proxy->proxies, l, eo_proxy) |
307 | { | 315 | { |
308 | Evas_Object_Protected_Data *proxy; | 316 | Evas_Object_Protected_Data *proxy; |
309 | 317 | proxy = eo_data_scope_get(eo_proxy, EVAS_OBJ_CLASS); | |
310 | proxy = eo_data_scope_get(eo_proxy, EVAS_OBJ_CLASS); | 318 | |
311 | 319 | EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, proxy->proxy, | |
312 | EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, proxy->proxy, Evas_Object_Proxy_Data, proxy_write) | 320 | Evas_Object_Proxy_Data, proxy_write) |
313 | proxy_write->redraw = EINA_TRUE; | 321 | proxy_write->redraw = EINA_TRUE; |
314 | EINA_COW_WRITE_END(evas_object_proxy_cow, proxy->proxy, proxy_write); | 322 | EINA_COW_WRITE_END(evas_object_proxy_cow, proxy->proxy, |
323 | proxy_write); | ||
315 | } | 324 | } |
316 | } | 325 | } |
317 | } | 326 | } |