diff options
Diffstat (limited to 'src/cairo-svg-surface.c')
-rw-r--r-- | src/cairo-svg-surface.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/cairo-svg-surface.c b/src/cairo-svg-surface.c index 26ae3d9d..6277af18 100644 --- a/src/cairo-svg-surface.c +++ b/src/cairo-svg-surface.c @@ -2262,9 +2262,13 @@ _cairo_svg_surface_mask (void *abstract_surface, if (_cairo_status_is_error (source_status)) return source_status; - mask_status = _cairo_svg_surface_analyze_operation (surface, op, mask); - if (_cairo_status_is_error (mask_status)) - return mask_status; + if (mask->has_component_alpha) { + mask_status = CAIRO_INT_STATUS_UNSUPPORTED; + } else { + mask_status = _cairo_svg_surface_analyze_operation (surface, op, mask); + if (_cairo_status_is_error (mask_status)) + return mask_status; + } return _cairo_analysis_surface_merge_status (source_status, mask_status); |