From 811ec408a7d8bdf2fef7d17ee2ad903ac1eafad4 Mon Sep 17 00:00:00 2001 From: Tor Andersson Date: Fri, 16 Jul 2010 19:24:05 +0000 Subject: Set scissor after replacing dest with the transparency buffer. Pop the transparency buffer after popping the XObject clip masks. --- fitz/dev_draw.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'fitz') diff --git a/fitz/dev_draw.c b/fitz/dev_draw.c index 28550174..3148360e 100644 --- a/fitz/dev_draw.c +++ b/fitz/dev_draw.c @@ -27,6 +27,7 @@ struct fz_drawdevice_s struct { fz_pixmap *dest; fz_blendmode blendmode; + fz_bbox scissor; } groupstack[MAXCLIP]; int grouptop; }; @@ -840,8 +841,11 @@ fz_drawbegingroup(void *user, fz_rect rect, int isolated, int knockout, fz_blend fz_clearpixmap(dest, 0); dev->groupstack[dev->grouptop].blendmode = blendmode; + dev->groupstack[dev->grouptop].scissor = dev->scissor; dev->groupstack[dev->grouptop].dest = dev->dest; dev->grouptop++; + + dev->scissor = bbox; dev->dest = dest; } @@ -855,8 +859,9 @@ fz_drawendgroup(void *user) if (dev->grouptop > 0) { dev->grouptop--; - dev->dest = dev->groupstack[dev->grouptop].dest; blendmode = dev->groupstack[dev->grouptop].blendmode; + dev->dest = dev->groupstack[dev->grouptop].dest; + dev->scissor = dev->groupstack[dev->grouptop].scissor; fz_blendpixmaps(group, dev->dest, blendmode); } -- cgit v1.2.3