diff options
author | Tor Andersson <tor@ghostscript.com> | 2010-07-16 19:24:05 +0000 |
---|---|---|
committer | Tor Andersson <tor@ghostscript.com> | 2010-07-16 19:24:05 +0000 |
commit | 811ec408a7d8bdf2fef7d17ee2ad903ac1eafad4 (patch) | |
tree | c4a082a241a2e782261cc45892aadc01bb0e2932 /fitz/dev_draw.c | |
parent | a56b2d1d460f584c92196dbb6fcea989f1ef19f9 (diff) | |
download | mupdf-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/dev_draw.c')
-rw-r--r-- | fitz/dev_draw.c | 7 |
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); } |