summaryrefslogtreecommitdiff
path: root/src/lib/evas/canvas/evas_render.c
diff options
context:
space:
mode:
authorChunEon Park <hermet@hermet.pe.kr>2013-10-31 17:01:41 +0900
committerChunEon Park <hermet@hermet.pe.kr>2013-10-31 17:04:23 +0900
commit69077d19d71983e1c9fcd47607ebc1508207cf87 (patch)
tree765ee675c61492badbcd7cf20d6ceb84dcb0b416 /src/lib/evas/canvas/evas_render.c
parent8f97de91a346af8692d9e292a5ff73b75f820992 (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.c29
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 }