Bug 7965

Summary: cairo_fill_extents gives bogus results for perfectly horizontal paths
Product: cairo Reporter: Gustavo J. A. M. Carneiro <gjc>
Component: generalAssignee: Carl Worth <cworth>
Status: RESOLVED FIXED QA Contact: cairo-bugs mailing list <cairo-bugs>
Severity: blocker    
Priority: high    
Version: 1.2.5   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: test program

Description Gustavo J. A. M. Carneiro 2006-08-23 05:11:10 UTC
In my test program, which draws a perfectly horizontal path, and then prints
stroke and fill extents:

fill: x1=32767,000000 y1=32767,000000 x2=-32768,000000 y2=-32768,000000
stroke: x1=-10,000000 y1=170,000000 x2=760,000000 y2=190,000000

It gives bogus results for the fill extents, as you can see.  If the path is not
perfectly horizontal then the fill extents get sane values.
Comment 1 Gustavo J. A. M. Carneiro 2006-08-23 05:12:04 UTC
Created attachment 6656 [details]
test program
Comment 2 Behdad Esfahbod 2007-02-20 16:16:58 UTC
Gustavo,

Can you put your test case under a license like GPL please?   Just say so and I'll take care of the rest.
Comment 3 Behdad Esfahbod 2007-02-20 16:24:47 UTC
And also can you confirm that this is fixed in 1.3.14?
Comment 4 Behdad Esfahbod 2007-02-20 16:37:10 UTC
This was fixed in:

commit a8ca155f83098c02fb8d3acc57b0492d5b753d54
Author: Robert O'Callahan <robert@ocallahan.org>
Date:   Mon Sep 25 23:16:54 2006 -0700

    Fix stroke/fill extents bounding boxes
    
    Correctly return the transformed bounding box for stroke/fill extents,
    instead of just transforming the two corners separately.



When you license your test case, I'll add it to cairo's test suite to make sure we never regress.  Thanks.
Comment 5 Gustavo J. A. M. Carneiro 2007-02-21 02:20:33 UTC
Sure, make my test case GPL or whatever you want :)
Comment 6 Behdad Esfahbod 2007-02-21 08:49:43 UTC
Actually I found out about get-path-extents test and just added another case to that.  Thanks.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.