[cairo] Fix for bug 45009

Søren Sandmann sandmann at cs.au.dk
Wed Jan 25 12:06:01 PST 2012


Hi,

The following patch reverts 259d46168c0f2, which was a change that made
trapezoids like this one invalid:

   ---------------------------------------------- top


        \                          
         \                        /
         left                  right
            \                   /
             \                 


   ---------------------------------------------- bottom

where top is stricly above the edges or bottom is strictly below.

The problem with trapezoids like that is that if the edges are close to
horizontal, then the trapezoid can very easily overflow, and there are
cases in the test suite where this happens. It is also somewhat
difficult to accurately compute a damage rectangle for them.

Unfortunately, the Bentley-Ottmann algorithm in cairo apparently does
generate such trapezoids, and ignoring them causes obvious graphical
glitches (see https://bugs.freedesktop.org/show_bug.cgi?id=45009), so
unless someone has a better idea, the patch will have to be reverted.

Comments appreciated.


Thanks,
Soren


More information about the cairo mailing list