diff --git a/src/cairo-analysis-surface.c b/src/cairo-analysis-surface.c index 90eb3f561..057be529d 100644 --- a/src/cairo-analysis-surface.c +++ b/src/cairo-analysis-surface.c @@ -416,12 +416,16 @@ _cairo_analysis_surface_mask (void *abstract_surface, return status; is_empty = _cairo_rectangle_intersect (&extents, &source_extents); + } + + if (_cairo_operator_bounded_by_mask (op)) { + cairo_rectangle_int_t mask_extents; - status = _cairo_pattern_get_extents (mask, &source_extents); + status = _cairo_pattern_get_extents (mask, &mask_extents); if (status) return status; - is_empty = _cairo_rectangle_intersect (&extents, &source_extents); + is_empty = _cairo_rectangle_intersect (&extents, &mask_extents); } is_empty = _cairo_rectangle_intersect (&extents, &surface->current_clip); diff --git a/test/clip-operator-pdf-argb32-ref.png b/test/clip-operator-pdf-argb32-ref.png index b00cc00f7..b3ee1437d 100644 Binary files a/test/clip-operator-pdf-argb32-ref.png and b/test/clip-operator-pdf-argb32-ref.png differ diff --git a/test/clip-operator-pdf-rgb24-ref.png b/test/clip-operator-pdf-rgb24-ref.png index f9377fa08..b420f385e 100644 Binary files a/test/clip-operator-pdf-rgb24-ref.png and b/test/clip-operator-pdf-rgb24-ref.png differ diff --git a/test/operator-clear-pdf-argb32-ref.png b/test/operator-clear-pdf-argb32-ref.png index d36de27fd..06fc51e39 100644 Binary files a/test/operator-clear-pdf-argb32-ref.png and b/test/operator-clear-pdf-argb32-ref.png differ diff --git a/test/operator-clear-pdf-rgb24-ref.png b/test/operator-clear-pdf-rgb24-ref.png index 2dec75c83..55b44ad6f 100644 Binary files a/test/operator-clear-pdf-rgb24-ref.png and b/test/operator-clear-pdf-rgb24-ref.png differ diff --git a/test/operator-source-pdf-argb32-ref.png b/test/operator-source-pdf-argb32-ref.png index 821112a67..f110ff2ab 100644 Binary files a/test/operator-source-pdf-argb32-ref.png and b/test/operator-source-pdf-argb32-ref.png differ diff --git a/test/operator-source-pdf-rgb24-ref.png b/test/operator-source-pdf-rgb24-ref.png index 6faf143c1..c6b71705f 100644 Binary files a/test/operator-source-pdf-rgb24-ref.png and b/test/operator-source-pdf-rgb24-ref.png differ