diff options
author | Adrian Johnson <ajohnson@redneon.com> | 2017-10-03 22:18:49 +1030 |
---|---|---|
committer | Adrian Johnson <ajohnson@redneon.com> | 2017-10-03 22:27:25 +1030 |
commit | bec8c7508ebc0f69266f9aebe9903539391c519b (patch) | |
tree | 385edc74711f3aecb1e9d08555c4fd2f3fde919c | |
parent | dccbed7d78d32bd3b912e8810379451dd94e6a1f (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.c | 4 |
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; |