diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2010-09-29 13:46:02 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2010-09-29 13:57:15 +0100 |
commit | 66ace8cd33c0ebe88972f0c4d5c0effeacb1cea3 (patch) | |
tree | 15011bf5962789ef452e79076a896f75404a9663 /src/cairo-image-surface.c | |
parent | 05faebd5845c68005f5b96428952faae5a67208f (diff) |
image: The a8 in-place span compositing is only valid for SOURCE
Fixes test/a8-clear.
Reported-by: Jeremy Moles <jeremy@emperorlinux.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/cairo-image-surface.c')
-rw-r--r-- | src/cairo-image-surface.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/cairo-image-surface.c b/src/cairo-image-surface.c index 2a1c8186..491859f7 100644 --- a/src/cairo-image-surface.c +++ b/src/cairo-image-surface.c @@ -3447,10 +3447,15 @@ _composite_spans (void *closure, /* TODO: support rendering to A1 surfaces (or: go add span * compositing to pixman.) */ - if (pattern == NULL && dst_format == PIXMAN_a8) { + if (pattern == NULL && + dst_format == PIXMAN_a8 && + op == CAIRO_OPERATOR_SOURCE) + { mask = dst; dst = NULL; - } else { + } + else + { int stride = CAIRO_STRIDE_FOR_WIDTH_BPP (extents->width, 8); uint8_t *data = mask_buf; |