summaryrefslogtreecommitdiff
path: root/src/cairo-composite-rectangles.c
diff options
context:
space:
mode:
authorAdrian Johnson <ajohnson@redneon.com>2016-07-16 14:59:43 +0930
committerAdrian Johnson <ajohnson@redneon.com>2016-07-16 15:42:23 +0930
commit190678f6444ad879847d603c3c9eaf8e9ab6887a (patch)
treeb4385cf201778129a405851bd05897d91fac9d03 /src/cairo-composite-rectangles.c
parent1a380ef5f37339583b8ab7b964025445b4fbb215 (diff)
downloadcairo-190678f6444ad879847d603c3c9eaf8e9ab6887a.tar.gz
pattern: don't round extents to 0 on vector surfaces
In this bug a Type 3 font contains a dash glyph. The dash glyph consists of an 82x2 image. The image height, when scaled to user space, is < 1 resuling in the drawing operation for the image being culled. https://bugs.freedesktop.org/show_bug.cgi?id=94615
Diffstat (limited to 'src/cairo-composite-rectangles.c')
-rw-r--r--src/cairo-composite-rectangles.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/cairo-composite-rectangles.c b/src/cairo-composite-rectangles.c
index bc6e1f357..f102eddbc 100644
--- a/src/cairo-composite-rectangles.c
+++ b/src/cairo-composite-rectangles.c
@@ -97,7 +97,8 @@ _cairo_composite_rectangles_init (cairo_composite_rectangles_t *extents,
_cairo_composite_reduce_pattern (source, &extents->source_pattern);
_cairo_pattern_get_extents (&extents->source_pattern.base,
- &extents->source);
+ &extents->source,
+ surface->is_vector);
if (extents->is_bounded & CAIRO_OPERATOR_BOUND_BY_SOURCE) {
if (! _cairo_rectangle_intersect (&extents->bounded, &extents->source))
return FALSE;
@@ -316,7 +317,7 @@ _cairo_composite_rectangles_intersect_mask_extents (cairo_composite_rectangles_t
cairo_int_status_t
_cairo_composite_rectangles_init_for_mask (cairo_composite_rectangles_t *extents,
- cairo_surface_t*surface,
+ cairo_surface_t *surface,
cairo_operator_t op,
const cairo_pattern_t *source,
const cairo_pattern_t *mask,
@@ -330,7 +331,7 @@ _cairo_composite_rectangles_init_for_mask (cairo_composite_rectangles_t *extents
extents->original_mask_pattern = mask;
_cairo_composite_reduce_pattern (mask, &extents->mask_pattern);
- _cairo_pattern_get_extents (&extents->mask_pattern.base, &extents->mask);
+ _cairo_pattern_get_extents (&extents->mask_pattern.base, &extents->mask, surface->is_vector);
return _cairo_composite_rectangles_intersect (extents, clip);
}