summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Johnson <ajohnson@redneon.com>2017-10-03 22:18:49 +1030
committerAdrian Johnson <ajohnson@redneon.com>2017-10-03 22:27:25 +1030
commitbec8c7508ebc0f69266f9aebe9903539391c519b (patch)
tree385edc74711f3aecb1e9d08555c4fd2f3fde919c
parentdccbed7d78d32bd3b912e8810379451dd94e6a1f (diff)
Prevent curved strokes in small ctms from being culled from vector surfaces
The combination of both curved strokes and ignoring the ctm in the thin line check caused some fill-strokes in this test case to be culled. Modify the thin line check to take the ctm into account and increase the minimum width to 1 point to prevent curved lines such as tiny dots from being culled. https://bugs.freedesktop.org/show_bug.cgi?id=103071
-rw-r--r--src/cairo-path-bounds.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/cairo-path-bounds.c b/src/cairo-path-bounds.c
index 624b3cb4d..ac85f27be 100644
--- a/src/cairo-path-bounds.c
+++ b/src/cairo-path-bounds.c
@@ -200,8 +200,8 @@ _cairo_path_fixed_stroke_extents (const cairo_path_fixed_t *path,
cairo_stroke_style_t style;
/* When calculating extents for vector surfaces, ensure lines thinner
- * than the fixed point resolution are not optimized away. */
- double min_line_width = _cairo_fixed_to_double (CAIRO_FIXED_EPSILON*2);
+ * than one point are not optimized away. */
+ double min_line_width = _cairo_matrix_transformed_circle_major_axis (ctm_inverse, 1.0);
if (stroke_style->line_width < min_line_width)
{
style = *stroke_style;