summaryrefslogtreecommitdiff
path: root/legacy/evas
diff options
context:
space:
mode:
authorCedric BAIL <cedric.bail@free.fr>2012-07-24 04:27:17 +0000
committerCedric BAIL <cedric.bail@free.fr>2012-07-24 04:27:17 +0000
commit58827ba3b6908b548d06f1ab139f6a2c358e527d (patch)
treec336847df49e01d8d1baeba6472ebff3076c2fc6 /legacy/evas
parent843255a1752bd90ab08f3388689cc9c0e3ba6703 (diff)
evas: handle proxy with the right context.
SVN revision: 74340
Diffstat (limited to '')
-rw-r--r--legacy/evas/ChangeLog4
-rw-r--r--legacy/evas/NEWS1
-rw-r--r--legacy/evas/src/lib/canvas/evas_render.c27
3 files changed, 17 insertions, 15 deletions
diff --git a/legacy/evas/ChangeLog b/legacy/evas/ChangeLog
index 0a0a24130e..a0c175a294 100644
--- a/legacy/evas/ChangeLog
+++ b/legacy/evas/ChangeLog
@@ -913,3 +913,7 @@
913 913
914 * Fixed evas_gl resource list have cleared properly when it is released 914 * Fixed evas_gl resource list have cleared properly when it is released
915 so it would be no problem when it is reinitialized in one same process. 915 so it would be no problem when it is reinitialized in one same process.
916
9172012-07-24 Cedric Bail
918
919 * Handle Proxy with the right context.
diff --git a/legacy/evas/NEWS b/legacy/evas/NEWS
index 1d4e76008d..dfe8024952 100644
--- a/legacy/evas/NEWS
+++ b/legacy/evas/NEWS
@@ -24,6 +24,7 @@ Fixes:
24 * Fix garbage left by mapped smart object when they fly away from the canvas. 24 * Fix garbage left by mapped smart object when they fly away from the canvas.
25 * Fix map life cycle. 25 * Fix map life cycle.
26 * Don't crash when calling evas_object_smart_type_check without type. 26 * Don't crash when calling evas_object_smart_type_check without type.
27 * Handle proxy with the right context.
27 28
28Removal: 29Removal:
29 * Remove EVAS_FRAME_QUEUING, EVAS_SLI, METRIC_CACHE and WORD_CACHE. 30 * Remove EVAS_FRAME_QUEUING, EVAS_SLI, METRIC_CACHE and WORD_CACHE.
diff --git a/legacy/evas/src/lib/canvas/evas_render.c b/legacy/evas/src/lib/canvas/evas_render.c
index dbd6b4ee65..9f82117ac3 100644
--- a/legacy/evas/src/lib/canvas/evas_render.c
+++ b/legacy/evas/src/lib/canvas/evas_render.c
@@ -168,11 +168,8 @@ _evas_render_phase1_direct(Evas *e,
168 { 168 {
169 /* Flag need redraw on proxy too */ 169 /* Flag need redraw on proxy too */
170 evas_object_clip_recalc(obj); 170 evas_object_clip_recalc(obj);
171 if (obj->proxy.proxies) 171 EINA_LIST_FOREACH(obj->proxy.proxies, l, proxy)
172 { 172 proxy->proxy.redraw = EINA_TRUE;
173 EINA_LIST_FOREACH(obj->proxy.proxies, l, proxy)
174 proxy->proxy.redraw = EINA_TRUE;
175 }
176 } 173 }
177 } 174 }
178 for (i = 0; i < render_objects->count; i++) 175 for (i = 0; i < render_objects->count; i++)
@@ -186,6 +183,8 @@ _evas_render_phase1_direct(Evas *e,
186 /* Flag need redraw on proxy too */ 183 /* Flag need redraw on proxy too */
187 evas_object_clip_recalc(obj); 184 evas_object_clip_recalc(obj);
188 obj->func->render_pre(obj); 185 obj->func->render_pre(obj);
186 if (obj->proxy.redraw)
187 _evas_render_prev_cur_clip_cache_add(e, obj);
189 if (obj->proxy.proxies) 188 if (obj->proxy.proxies)
190 { 189 {
191 obj->proxy.redraw = EINA_TRUE; 190 obj->proxy.redraw = EINA_TRUE;
@@ -195,8 +194,6 @@ _evas_render_phase1_direct(Evas *e,
195 _evas_render_prev_cur_clip_cache_add(e, proxy); 194 _evas_render_prev_cur_clip_cache_add(e, proxy);
196 } 195 }
197 } 196 }
198 else if (obj->proxy.redraw)
199 _evas_render_prev_cur_clip_cache_add(e, obj);
200 197
201 RD(" pre-render-done smart:%p|%p [%p, %i] | [%p, %i] has_map:%i had_map:%i\n", 198 RD(" pre-render-done smart:%p|%p [%p, %i] | [%p, %i] has_map:%i had_map:%i\n",
202 obj->smart.smart, 199 obj->smart.smart,
@@ -993,7 +990,7 @@ evas_render_mapped(Evas *e, Evas_Object *obj, void *context, void *surface,
993 0, 0, obj->cur.map->surface_w, obj->cur.map->surface_h); 990 0, 0, obj->cur.map->surface_w, obj->cur.map->surface_h);
994 } 991 }
995 e->engine.func->context_clip_unset(e->engine.data.output, 992 e->engine.func->context_clip_unset(e->engine.data.output,
996 e->engine.data.context); 993 context);
997 if (obj->cur.map->surface) 994 if (obj->cur.map->surface)
998 { 995 {
999 if (obj->smart.smart) 996 if (obj->smart.smart)
@@ -1018,7 +1015,7 @@ evas_render_mapped(Evas *e, Evas_Object *obj, void *context, void *surface,
1018 obj->cur.clipper->cur.cache.clip.w, 1015 obj->cur.clipper->cur.cache.clip.w,
1019 obj->cur.clipper->cur.cache.clip.h); 1016 obj->cur.clipper->cur.cache.clip.h);
1020 e->engine.func->context_clip_set(e->engine.data.output, 1017 e->engine.func->context_clip_set(e->engine.data.output,
1021 e->engine.data.context, 1018 context,
1022 x + off_x, y + off_y, w, h); 1019 x + off_x, y + off_y, w, h);
1023 } 1020 }
1024 } 1021 }
@@ -1039,21 +1036,21 @@ evas_render_mapped(Evas *e, Evas_Object *obj, void *context, void *surface,
1039 obj->cur.clipper->cur.cache.clip.w, 1036 obj->cur.clipper->cur.cache.clip.w,
1040 obj->cur.clipper->cur.cache.clip.h); 1037 obj->cur.clipper->cur.cache.clip.h);
1041 e->engine.func->context_clip_set(e->engine.data.output, 1038 e->engine.func->context_clip_set(e->engine.data.output,
1042 e->engine.data.context, 1039 context,
1043 x + off_x, y + off_y, w, h); 1040 x + off_x, y + off_y, w, h);
1044 } 1041 }
1045 } 1042 }
1046 } 1043 }
1047// if (surface == e->engine.data.output) 1044// if (surface == e->engine.data.output)
1048 e->engine.func->context_clip_clip(e->engine.data.output, 1045 e->engine.func->context_clip_clip(e->engine.data.output,
1049 e->engine.data.context, 1046 context,
1050 ecx, ecy, ecw, ech); 1047 ecx, ecy, ecw, ech);
1051 if (obj->cur.cache.clip.visible) 1048 if (obj->cur.cache.clip.visible)
1052 { 1049 {
1053 obj->layer->evas->engine.func->context_multiplier_unset 1050 obj->layer->evas->engine.func->context_multiplier_unset
1054 (e->engine.data.output, e->engine.data.context); 1051 (e->engine.data.output, context);
1055 obj->layer->evas->engine.func->image_map_draw 1052 obj->layer->evas->engine.func->image_map_draw
1056 (e->engine.data.output, e->engine.data.context, surface, 1053 (e->engine.data.output, context, surface,
1057 obj->cur.map->surface, obj->spans, 1054 obj->cur.map->surface, obj->spans,
1058 obj->cur.map->smooth, 0); 1055 obj->cur.map->smooth, 0);
1059 } 1056 }
@@ -1170,10 +1167,10 @@ evas_render_mapped(Evas *e, Evas_Object *obj, void *context, void *surface,
1170 obj->cur.clipper->cur.cache.clip.w, 1167 obj->cur.clipper->cur.cache.clip.w,
1171 obj->cur.clipper->cur.cache.clip.h); 1168 obj->cur.clipper->cur.cache.clip.h);
1172 e->engine.func->context_clip_set(e->engine.data.output, 1169 e->engine.func->context_clip_set(e->engine.data.output,
1173 e->engine.data.context, 1170 context,
1174 x + off_x, y + off_y, w, h); 1171 x + off_x, y + off_y, w, h);
1175 e->engine.func->context_clip_clip(e->engine.data.output, 1172 e->engine.func->context_clip_clip(e->engine.data.output,
1176 e->engine.data.context, 1173 context,
1177 ecx, ecy, ecw, ech); 1174 ecx, ecy, ecw, ech);
1178 } 1175 }
1179 1176