canvas/philip/tests/2d.path.stroke.overlap.html passes with Qt-4.6.0, but fails with Qt-4.6.2 and Qt-4.7.0. --- /home/webkitbuildbot/slaves/release32bit-4.7.0/buildslave/qt-linux-32-release-qt470/build/layout-test-results/canvas/philip/tests/2d.path.stroke.overlap-expected.txt 2010-06-09 03:27:09.907399661 -0700 +++ /home/webkitbuildbot/slaves/release32bit-4.7.0/buildslave/qt-linux-32-release-qt470/build/layout-test-results/canvas/philip/tests/2d.path.stroke.overlap-actual.txt 2010-06-09 03:27:09.903399630 -0700 @@ -5,4 +5,4 @@ Actual output: Expected output: -Passed +Failed assertion: got pixel [0,191,0,255] at (50,25), expected [0,127,0,255] +/- 1
Skipped by http://trac.webkit.org/changeset/60890 until fix to make buildbots happy after update to Qt-4.6.2.
http://trac.webkit.org/changeset/60890 might have broken GTK Linux 32-bit Debug The following changes are on the blame list: http://trac.webkit.org/changeset/60890 http://trac.webkit.org/changeset/60891 http://trac.webkit.org/changeset/60892
(In reply to comment #2) > http://trac.webkit.org/changeset/60890 might have broken GTK Linux 32-bit Debug > The following changes are on the blame list: > http://trac.webkit.org/changeset/60890 > http://trac.webkit.org/changeset/60891 > http://trac.webkit.org/changeset/60892 no, we are innocent now. :)
Still valid bug with Qt 4.8 and Qt 5 WK1 and WK2.
I'll investigate it.
(In reply to comment #5) > I'll investigate it. According to spec: "As a result of how the algorithm to trace a path is defined, overlapping parts of the paths in one stroke operation are treated as if _their union_ was what was painted." We are not handling like that, but we are painting the intersection darker, thus the failure on it. It came out that the problem is how the function QPainter::strokePath works, I'm still trying to figure out a great solution for it.
Created attachment 143148 [details] Patch Hey No'am, could you take a look?
Comment on attachment 143148 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=143148&action=review > Source/WebCore/platform/graphics/qt/GraphicsContextQt.cpp:575 > + QPainterPath stroke = pathStroker.createStroke(platformPath); > + p->fillPath(stroke, shadowPen.brush()); You repeat this sequence about 5 times, please put it in some static function.
Created attachment 143318 [details] Patch
Comment on attachment 143318 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=143318&action=review > Source/WebCore/platform/graphics/qt/GraphicsContextQt.cpp:531 > +inline static void fillPathStroke(QPainter* painter, QPainterPathStroker& pathStroker, QPainterPath& platformPath, const QBrush& brush) shouldn't platformPath be a const reference?
Created attachment 143326 [details] Patch
Comment on attachment 143326 [details] Patch Clearing flags on attachment: 143326 Committed r118020: <http://trac.webkit.org/changeset/118020>
All reviewed patches have been landed. Closing bug.