summaryrefslogtreecommitdiff
path: root/legacy
diff options
context:
space:
mode:
authorCarsten Haitzler <raster@rasterman.com>2011-03-31 10:26:42 +0000
committerCarsten Haitzler <raster@rasterman.com>2011-03-31 10:26:42 +0000
commit1c3bfd1a22bb9c2327bd58ce62def1c462743a7b (patch)
tree3b3d690c751cc661b5e7818a6068d9e3ce52bde8 /legacy
parent4155a7df00751bec738a08051fe7efad2b2f3e6f (diff)
FIX: fix render bug when rendering to buffer canvases due to lost
clipper. SVN revision: 58223
Diffstat (limited to 'legacy')
-rw-r--r--legacy/evas/src/lib/canvas/evas_render.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/legacy/evas/src/lib/canvas/evas_render.c b/legacy/evas/src/lib/canvas/evas_render.c
index b7629c991f..56bfa9d1e8 100644
--- a/legacy/evas/src/lib/canvas/evas_render.c
+++ b/legacy/evas/src/lib/canvas/evas_render.c
@@ -669,7 +669,8 @@ chlist(Evas_Object *obj, int i)
669 669
670static Eina_Bool 670static Eina_Bool
671evas_render_mapped(Evas *e, Evas_Object *obj, void *context, void *surface, 671evas_render_mapped(Evas *e, Evas_Object *obj, void *context, void *surface,
672 int off_x, int off_y, int mapped 672 int off_x, int off_y, int mapped,
673 int ecx, int ecy, int ecw, int ech
673#ifdef REND_DGB 674#ifdef REND_DGB
674 , int level 675 , int level
675#endif 676#endif
@@ -862,7 +863,8 @@ evas_render_mapped(Evas *e, Evas_Object *obj, void *context, void *surface,
862 { 863 {
863 clean_them |= evas_render_mapped(e, obj2, ctx, 864 clean_them |= evas_render_mapped(e, obj2, ctx,
864 obj->cur.map->surface, 865 obj->cur.map->surface,
865 off_x2, off_y2, 1 866 off_x2, off_y2, 1,
867 ecx, ecy, ecw, ech
866#ifdef REND_DGB 868#ifdef REND_DGB
867 , level + 1 869 , level + 1
868#endif 870#endif
@@ -951,6 +953,10 @@ evas_render_mapped(Evas *e, Evas_Object *obj, void *context, void *surface,
951 } 953 }
952 } 954 }
953 } 955 }
956 if (surface == e->engine.data.output)
957 e->engine.func->context_clip_clip(e->engine.data.output,
958 e->engine.data.context,
959 ecx, ecy, ecw, ech);
954 if (obj->cur.cache.clip.visible) 960 if (obj->cur.cache.clip.visible)
955 obj->layer->evas->engine.func->image_map_draw 961 obj->layer->evas->engine.func->image_map_draw
956 (e->engine.data.output, e->engine.data.context, surface, 962 (e->engine.data.output, e->engine.data.context, surface,
@@ -976,7 +982,8 @@ evas_render_mapped(Evas *e, Evas_Object *obj, void *context, void *surface,
976 { 982 {
977 clean_them |= evas_render_mapped(e, obj2, ctx, 983 clean_them |= evas_render_mapped(e, obj2, ctx,
978 surface, 984 surface,
979 off_x, off_y, 1 985 off_x, off_y, 1,
986 ecx, ecy, ecw, ech
980#ifdef REND_DGB 987#ifdef REND_DGB
981 , level + 1 988 , level + 1
982#endif 989#endif
@@ -1065,6 +1072,9 @@ evas_render_mapped(Evas *e, Evas_Object *obj, void *context, void *surface,
1065 e->engine.func->context_clip_set(e->engine.data.output, 1072 e->engine.func->context_clip_set(e->engine.data.output,
1066 e->engine.data.context, 1073 e->engine.data.context,
1067 x + off_x, y + off_y, w, h); 1074 x + off_x, y + off_y, w, h);
1075 e->engine.func->context_clip_clip(e->engine.data.output,
1076 e->engine.data.context,
1077 ecx, ecy, ecw, ech);
1068 } 1078 }
1069 1079
1070 RDI(level); 1080 RDI(level);
@@ -1373,7 +1383,8 @@ evas_render_updates_internal(Evas *e,
1373 } 1383 }
1374#endif 1384#endif
1375 clean_them |= evas_render_mapped(e, obj, e->engine.data.context, 1385 clean_them |= evas_render_mapped(e, obj, e->engine.data.context,
1376 surface, off_x, off_y, 0 1386 surface, off_x, off_y, 0,
1387 cx, cy, cw, ch
1377#ifdef REND_DGB 1388#ifdef REND_DGB
1378 , 1 1389 , 1
1379#endif 1390#endif