diff options
author | Robin Watts <Robin.Watts@artifex.com> | 2011-08-04 14:21:11 +0100 |
---|---|---|
committer | Robin Watts <Robin.Watts@artifex.com> | 2011-08-05 18:29:39 +0100 |
commit | 4ffa961d35b8985fd041f27737d06d9c59e41d6b (patch) | |
tree | 278ea72fc04d5b6135246bdb5d3615606a1fc6a6 /draw/draw_device.c | |
parent | b2a56e3f513626476abd55cede7efbda9104b25e (diff) | |
download | mupdf-4ffa961d35b8985fd041f27737d06d9c59e41d6b.tar.xz |
More changes to blending of groups.
In an effort to solve bug 692377, examine what ghostscript does,
and move mupdf into line with it.
Firstly, it seems that rather than collecting a pure 'shape' plane
ghostscript keeps a 'shape-with-alpha' plane. Only a tiny change is
required to move mupdf to the do the same thing, so done here.
Secondly, it seems that ghostscript 'uncomposites' the result of
non-isolated groups, before applying the blend mode. It's not clear
to me that this is entirely correct; this 'uncomposite' operation
assumes that all compositing has been done internally with the
'normal' blend mode. Nonetheless, I do the same here, and it seems
to work.
This 'uncomposite' operation may yet turn out to be a source of bugs
if I have muddled the use of premultiplied and non-premultiplied
components, but it seems to work on the testfiles I have.
Diffstat (limited to 'draw/draw_device.c')
-rw-r--r-- | draw/draw_device.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/draw/draw_device.c b/draw/draw_device.c index f3ced47d..3c1f8114 100644 --- a/draw/draw_device.c +++ b/draw/draw_device.c @@ -134,7 +134,7 @@ static void fz_knockout_begin(void *user) dev->stack[dev->top].dest = dev->dest; dev->stack[dev->top].shape = dev->shape; #ifdef DUMP_GROUP_BLENDS - dump_spaces(dev->top, "Knockout begin"); + dump_spaces(dev->top, "Knockout begin\n"); #endif dev->top++; |