summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AUTHORS1
-rw-r--r--src/cairo-svg-surface.c9
2 files changed, 6 insertions, 4 deletions
diff --git a/AUTHORS b/AUTHORS
index bdde62a31..ef14e3aec 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -4,6 +4,7 @@ Shawn T. Amundson <amundson@gtk.org> Build fix
Olivier Andrieu <oliv__a@users.sourceforge.net> PNG backend
Peter Dennis Bartok <peter@novonyx.com> Bug fix for clipping
Dave Beckett <dajobe@debian.org> Build fixes, Debian packaging
+Kai-Uwe Behrmann <ku.b@gmx.de> SVG bug fixes
Christian Biesinger <cbiesinger@web.de> BeOS backend
Billy Biggs <vektor@dumbterm.net> Pixman code merge. Optimization. Fixes for subtle rendering bugs.
Hans Breuer <hans@breuer.org> win32 bug fixes, build fixes, and improvements
diff --git a/src/cairo-svg-surface.c b/src/cairo-svg-surface.c
index 63b0bfb44..e8567bcb5 100644
--- a/src/cairo-svg-surface.c
+++ b/src/cairo-svg-surface.c
@@ -1938,6 +1938,7 @@ _cairo_svg_surface_emit_paint (cairo_output_stream_t *output,
cairo_svg_surface_t *surface,
cairo_operator_t op,
cairo_pattern_t *source,
+ cairo_pattern_t *mask_source,
const char *extra_attributes)
{
cairo_status_t status;
@@ -1948,7 +1949,7 @@ _cairo_svg_surface_emit_paint (cairo_output_stream_t *output,
surface,
(cairo_surface_pattern_t *) source,
invalid_pattern_id,
- NULL,
+ mask_source ? &mask_source->matrix :NULL,
extra_attributes);
_cairo_output_stream_printf (output,
@@ -2031,7 +2032,7 @@ _cairo_svg_surface_paint (void *abstract_surface,
}
}
- return _cairo_svg_surface_emit_paint (surface->xml_node, surface, op, source, NULL);
+ return _cairo_svg_surface_emit_paint (surface->xml_node, surface, op, source, 0, NULL);
}
static cairo_int_status_t
@@ -2077,7 +2078,7 @@ _cairo_svg_surface_mask (void *abstract_surface,
"%s",
mask_id,
discard_filter ? "" : " <g filter=\"url(#alpha)\">\n");
- status = _cairo_svg_surface_emit_paint (mask_stream, surface, op, mask, NULL);
+ status = _cairo_svg_surface_emit_paint (mask_stream, surface, op, mask, source, NULL);
if (status) {
cairo_status_t ignore = _cairo_output_stream_destroy (mask_stream);
return status;
@@ -2096,7 +2097,7 @@ _cairo_svg_surface_mask (void *abstract_surface,
snprintf (buffer, sizeof buffer, "mask=\"url(#mask%d)\"",
mask_id);
- status = _cairo_svg_surface_emit_paint (surface->xml_node, surface, op, source, buffer);
+ status = _cairo_svg_surface_emit_paint (surface->xml_node, surface, op, source, 0, buffer);
if (status)
return status;