summaryrefslogtreecommitdiff
path: root/src/cairo-svg-surface.c
diff options
context:
space:
mode:
authorAnton Danilkin <afdw@yandex.ru>2021-04-11 22:42:23 +0200
committerAnton Danilkin <afdw@yandex.ru>2021-04-11 23:59:47 +0200
commitc91afd777a8260931d2c19b9c19679cf3ae6bfe9 (patch)
treea32c8c654388fd6992a721480d27cb9d717cd843 /src/cairo-svg-surface.c
parentd44bb67c7ffd0d42a29ecb37de0de4b768131ab8 (diff)
downloadcairo-c91afd777a8260931d2c19b9c19679cf3ae6bfe9.tar.gz
Do not use parent_matrix in the mask operation
Diffstat (limited to 'src/cairo-svg-surface.c')
-rw-r--r--src/cairo-svg-surface.c22
1 files changed, 10 insertions, 12 deletions
diff --git a/src/cairo-svg-surface.c b/src/cairo-svg-surface.c
index 2e8f63fae..a54464738 100644
--- a/src/cairo-svg-surface.c
+++ b/src/cairo-svg-surface.c
@@ -2652,8 +2652,7 @@ _cairo_svg_surface_get_extents (void *abstract_surface,
static cairo_status_t
_cairo_svg_surface_emit_paint (cairo_output_stream_t *output,
cairo_svg_surface_t *surface,
- const cairo_pattern_t *source,
- const cairo_pattern_t *mask_source)
+ const cairo_pattern_t *source)
{
cairo_status_t status;
@@ -2662,7 +2661,7 @@ _cairo_svg_surface_emit_paint (cairo_output_stream_t *output,
surface,
(cairo_surface_pattern_t *) source,
invalid_pattern_id,
- mask_source ? &mask_source->matrix : NULL);
+ NULL);
}
surface->paint_used = TRUE;
@@ -2803,7 +2802,7 @@ _cairo_svg_surface_do_operator (cairo_output_stream_t *output,
CAIRO_SVG_FILTER_ADD,
lerped_source_compositing_group_id,
lerped_destination_compositing_group_id));
- status = _cairo_svg_surface_emit_paint (surface->xml_node, surface, &_cairo_pattern_black.base, NULL);
+ status = _cairo_svg_surface_emit_paint (surface->xml_node, surface, &_cairo_pattern_black.base);
if (unlikely (status)) {
return status;
}
@@ -2868,7 +2867,7 @@ _cairo_svg_surface_do_operator (cairo_output_stream_t *output,
(void) _cairo_output_stream_destroy (mask_stream);
return status;
}
- status = _cairo_svg_surface_emit_paint (document->xml_node_defs, surface, &_cairo_pattern_white.base, NULL);
+ status = _cairo_svg_surface_emit_paint (document->xml_node_defs, surface, &_cairo_pattern_white.base);
if (unlikely (status)) {
(void) _cairo_output_stream_destroy (destination_stream);
(void) _cairo_output_stream_destroy (source_stream);
@@ -3100,7 +3099,7 @@ _cairo_svg_surface_do_operator (cairo_output_stream_t *output,
"filter=\"url(#filter-%d)\" mask=\"url(#mask-%d)\">\n",
filter_id,
positive_lerp_mask_id);
- status = _cairo_svg_surface_emit_paint (document->xml_node_defs, surface, &_cairo_pattern_black.base, NULL);
+ status = _cairo_svg_surface_emit_paint (document->xml_node_defs, surface, &_cairo_pattern_black.base);
if (unlikely (status)) {
return status;
}
@@ -3122,7 +3121,7 @@ _cairo_svg_surface_do_operator (cairo_output_stream_t *output,
CAIRO_SVG_FILTER_ADD,
lerped_operation_compositing_group_id,
lerped_destination_compositing_group_id));
- status = _cairo_svg_surface_emit_paint (surface->xml_node, surface, &_cairo_pattern_black.base, NULL);
+ status = _cairo_svg_surface_emit_paint (surface->xml_node, surface, &_cairo_pattern_black.base);
if (unlikely (status)) {
return status;
}
@@ -3149,8 +3148,7 @@ _cairo_svg_surface_do_operator (cairo_output_stream_t *output,
cairo_output_stream_t *source_stream = _cairo_memory_stream_create (); \
status = _cairo_svg_surface_emit_paint (source_stream, \
surface, \
- SOURCE, \
- NULL); \
+ SOURCE); \
if (unlikely (status)) { \
(void) _cairo_output_stream_destroy (source_stream); \
(void) _cairo_output_stream_destroy (mask_stream); \
@@ -3172,7 +3170,7 @@ _cairo_svg_surface_paint_impl (cairo_output_stream_t *output,
cairo_svg_surface_t *surface,
const cairo_pattern_t *source)
{
- return _cairo_svg_surface_emit_paint (output, surface, source, NULL);
+ return _cairo_svg_surface_emit_paint (output, surface, source);
}
static cairo_int_status_t
@@ -3239,7 +3237,7 @@ _cairo_svg_surface_mask_impl (cairo_output_stream_t *output,
_cairo_output_stream_printf (temporary_stream,
"<g filter=\"url(#filter-%s)\">\n",
_cairo_svg_surface_emit_static_filter (document, CAIRO_SVG_FILTER_REMOVE_COLOR));
- status = _cairo_svg_surface_emit_paint (temporary_stream, surface, mask, source);
+ status = _cairo_svg_surface_emit_paint (temporary_stream, surface, mask);
if (unlikely (status)) {
(void) _cairo_output_stream_destroy (temporary_stream);
return status;
@@ -3258,7 +3256,7 @@ _cairo_svg_surface_mask_impl (cairo_output_stream_t *output,
"<g mask=\"url(#mask-%d)\">\n",
mask_id);
- status = _cairo_svg_surface_emit_paint (output, surface, source, NULL);
+ status = _cairo_svg_surface_emit_paint (output, surface, source);
if (unlikely (status)) {
return status;
}