[cairo-commit] src/cairo-path-bounds.c

Adrian Johnson ajohnson at kemper.freedesktop.org
Tue Oct 3 11:58:29 UTC 2017


 src/cairo-path-bounds.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit bec8c7508ebc0f69266f9aebe9903539391c519b
Author: Adrian Johnson <ajohnson at redneon.com>
Date:   Tue Oct 3 22:18:49 2017 +1030

    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

diff --git a/src/cairo-path-bounds.c b/src/cairo-path-bounds.c
index 624b3cb4..ac85f27b 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;


More information about the cairo-commit mailing list