summaryrefslogtreecommitdiff
path: root/fitz
diff options
context:
space:
mode:
authorTor Andersson <tor@ghostscript.com>2010-07-16 19:24:05 +0000
committerTor Andersson <tor@ghostscript.com>2010-07-16 19:24:05 +0000
commit811ec408a7d8bdf2fef7d17ee2ad903ac1eafad4 (patch)
treec4a082a241a2e782261cc45892aadc01bb0e2932 /fitz
parenta56b2d1d460f584c92196dbb6fcea989f1ef19f9 (diff)
downloadmupdf-811ec408a7d8bdf2fef7d17ee2ad903ac1eafad4.tar.xz
Set scissor after replacing dest with the transparency buffer. Pop the transparency buffer after popping the XObject clip masks.
Diffstat (limited to 'fitz')
-rw-r--r--fitz/dev_draw.c7
1 files changed, 6 insertions, 1 deletions
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);
}