Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-16983

[regression, bisected] f7d61dab69308f0993c8a5f2232226d1713ac4a7 (QTBUG-8035) breaks uniting two Ellipse QPainterPaths, worked in 4.6.3

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P4: Low
    • None
    • 4.7.0, 4.7.2, 4.8.0
    • GUI: Painting
    • None
    • Bisected on Linux/X11, first seen on OSX.
    • macOS

    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.

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            rodal Samuel Rødal
            mmutz Marc Mutz
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There are no open Gerrit changes