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

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

      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.

        1. main.cpp
          0.6 kB
          Marc Mutz
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

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

              Created:
              Updated:

                There are no open Gerrit changes