Details
-
Bug
-
Resolution: Unresolved
-
P4: Low
-
None
-
4.7.0, 4.7.2, 4.8.0
-
None
-
Bisected on Linux/X11, first seen on OSX.
Description
The "fix" for QTBUG-8035 was to essentially remove bezier-bezier intersection and convert them into polylines prior to intersecting.
This was to fix a bug that had a workaround attached.
But the patch broke more fundamental behaviour: that
QPainterPath p1, p2;
p.setPen( Qt::NoPen );
p.drawPath( p1 );
p.drawPath( p2 );
produced the same on-screen result as
p.drawPath( p1|p2 );
Attached test program has been used to bisect this.
It works in 4.6.3, and starts failing with the QTBUG-8035 patch.
IMO, the correct solution would be to document the numerical instability and it's workaround
(adding random noise to points) until the instability can be addressed properly,
than to introduce a regression that cannot be worked around.