Summary: | Weird connections among selected areas | ||
---|---|---|---|
Product: | [Applications] krita | Reporter: | acc4commissions |
Component: | Tools/Selection | Assignee: | Dmitry Kazakov <dimula73> |
Status: | RESOLVED FIXED | ||
Severity: | minor | CC: | dimula73, halla, info, tallboy258 |
Priority: | NOR | ||
Version: | nightly build (please specify the git hash!) | ||
Target Milestone: | --- | ||
Platform: | Microsoft Windows | ||
OS: | Microsoft Windows | ||
Latest Commit: | https://invent.kde.org/kde/krita/commit/8208fa254321232105a231fc517541e98c747216 | Version Fixed In: | |
Sentry Crash Report: | |||
Attachments: | file |
Description
acc4commissions
2019-10-20 05:59:44 UTC
I can confirm the issue with your test file. Surprisingly, the connections are kind of animated :-) I've tested some older appimages, and this happens from at 3.0.0. Curious that nobody else has seen it before, since 67% zoom is a default step. *** Bug 418568 has been marked as a duplicate of this bug. *** *** Bug 419240 has been marked as a duplicate of this bug. *** Git commit c15d8888c3d793a31c914ffb80a5b38a1f2846ad by Dmitry Kazakov. Committed on 08/05/2020 at 17:18. Pushed by dkazakov into branch 'master'. Fix artifacts when rendering complex selection outlines It happens because of a bug in opengl-based stroking algorithm in Qt. And it happens only when one tries to draw a path with multiple subpaths. The easiest workaround for this bug without patching Qt is to manually split a multi-subpath path into QPainterPath objects with only one subpath in each. It might happen that the resulting subpath generated by the QDashStroker will have no lines at all. It happens when further LineToElement items compare as equal to the starting MoveToElement when compared in 'float' space. In such case QTriangulatingStroker::process() skips LineTo elements and the vertexBuffer ends up with unconnected vertices, which generate unwanted triangles. Related: bug 419240 A +80 -0 3rdparty/ext_qt/0100-Fix-artifacts-when-rendering-multisubpath-dashed-QPa.patch M +5 -0 3rdparty/ext_qt/CMakeLists.txt https://invent.kde.org/kde/krita/commit/c15d8888c3d793a31c914ffb80a5b38a1f2846ad Git commit 8208fa254321232105a231fc517541e98c747216 by Dmitry Kazakov. Committed on 08/05/2020 at 17:19. Pushed by dkazakov into branch 'krita/4.3'. Fix artifacts when rendering complex selection outlines It happens because of a bug in opengl-based stroking algorithm in Qt. And it happens only when one tries to draw a path with multiple subpaths. The easiest workaround for this bug without patching Qt is to manually split a multi-subpath path into QPainterPath objects with only one subpath in each. It might happen that the resulting subpath generated by the QDashStroker will have no lines at all. It happens when further LineToElement items compare as equal to the starting MoveToElement when compared in 'float' space. In such case QTriangulatingStroker::process() skips LineTo elements and the vertexBuffer ends up with unconnected vertices, which generate unwanted triangles. Related: bug 419240 A +80 -0 3rdparty/ext_qt/0100-Fix-artifacts-when-rendering-multisubpath-dashed-QPa.patch M +5 -0 3rdparty/ext_qt/CMakeLists.txt https://invent.kde.org/kde/krita/commit/8208fa254321232105a231fc517541e98c747216 |