summaryrefslogtreecommitdiff
path: root/src/cairo-image-surface.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2010-09-29 13:46:02 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2010-09-29 13:57:15 +0100
commit66ace8cd33c0ebe88972f0c4d5c0effeacb1cea3 (patch)
tree15011bf5962789ef452e79076a896f75404a9663 /src/cairo-image-surface.c
parent05faebd5845c68005f5b96428952faae5a67208f (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.c9
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;