[gs-commits] mupdf/master - 0_6-186-g303890d - Set scissor after replacing dest with the transparency buffer. Pop the transparency buffer after popping the XObject clip masks.
Tor Andersson
tor at ghostscript.com
Sat Jul 17 01:47:52 UTC 2010
commit 303890de53fe374e756062f6e4f1762f1b40f069
Author: Tor Andersson <tor at ghostscript.com>
Date: Fri Jul 16 19:24:05 2010 +0000
Set scissor after replacing dest with the transparency buffer. Pop the transparency buffer after popping the XObject clip masks.
Ignore-this: e59efa1e1eefc81fc26d5df566c3c75a
darcs-hash:20100716192405-f546f-071285c615eef818ed453b47598d603254eccf76.gz
2 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/fitz/dev_draw.c b/fitz/dev_draw.c
index 2855017..3148360 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);
}
diff --git a/mupdf/pdf_interpret.c b/mupdf/pdf_interpret.c
index f89f9ac..710b52d 100644
--- a/mupdf/pdf_interpret.c
+++ b/mupdf/pdf_interpret.c
@@ -193,9 +193,6 @@ pdf_runxobject(pdf_csi *csi, fz_obj *resources, pdf_xobject *xobj)
if (error)
return fz_rethrow(error, "cannot interpret XObject stream");
- if (xobj->transparency)
- csi->dev->endgroup(csi->dev->user);
-
csi->topctm = oldtopctm;
while (oldtop < csi->gtop)
@@ -203,6 +200,9 @@ pdf_runxobject(pdf_csi *csi, fz_obj *resources, pdf_xobject *xobj)
pdf_grestore(csi);
+ if (xobj->transparency)
+ csi->dev->endgroup(csi->dev->user);
+
return fz_okay;
}
--
git/hooks/post-receive
More information about the gs-commits
mailing list