[cairo-commit] Branch '1.10' - src/cairo-image-surface.c
Uli Schlachter
psychon at kemper.freedesktop.org
Sat Apr 2 02:24:45 PDT 2011
src/cairo-image-surface.c | 5 +++++
1 file changed, 5 insertions(+)
New commits:
commit cd07704183a3b907b389f553f046920dea547890
Author: Uli Schlachter <psychon at znc.in>
Date: Mon Mar 21 18:46:32 2011 +0100
image: Don't use the fast path if it's wrong
Fixes the original report from:
http://lists.cairographics.org/archives/cairo/2011-March/021827.html
I tested this code path with all operators and "source" is the only one which
causes issues with rendering outside of the boxes.
Possibly fixes: https://bugs.freedesktop.org/show_bug.cgi?id=35407
Signed-off-by: Uli Schlachter <psychon at znc.in>
diff --git a/src/cairo-image-surface.c b/src/cairo-image-surface.c
index fcc832e..7c56f16 100644
--- a/src/cairo-image-surface.c
+++ b/src/cairo-image-surface.c
@@ -2828,6 +2828,11 @@ _composite_unaligned_boxes (cairo_image_surface_t *dst,
const struct _cairo_boxes_chunk *chunk;
int i, src_x, src_y;
+ /* The below code breaks for operator source. This can best be seen with
+ * multiple boxes where black is drawn to dst outside of the boxes. */
+ if (op == CAIRO_OPERATOR_SOURCE)
+ return CAIRO_INT_STATUS_UNSUPPORTED;
+
i = CAIRO_STRIDE_FOR_WIDTH_BPP (extents->bounded.width, 8) * extents->bounded.height;
if ((unsigned) i <= sizeof (buf)) {
mask = pixman_image_create_bits (PIXMAN_a8,
More information about the cairo-commit
mailing list