Created attachment 132441 [details] Screenshot showing the mirroring tool effects for different brushes SUMMARY Right now Mirroring Tool allows you to set up the mirror line with subpixel precision, however the tool itself doesn't work with subpixel precision. It effectively either works as if it was placed before or after the pixel, depending on where exactly it's placed. STEPS TO REPRODUCE 1. Try to move the mirroring tool into 1/4 and later 3/4 of the pixel. 2. Try to paint (you can use Pixel Art brushes or any Pixel Brush; Quick Brush Engine will work in a different way). OBSERVED RESULT Mirroring tool does allow for subpixel placement, but it doesn't take that placement into account and still uses imaginary placement between pixels. EXPECTED RESULT Mirroring tool snaps to placements between pixels, showing that subpixel precision is not possible. ADDITIONAL INFORMATION When fixing this bug, please take a note of bug 427829 which is a wish to make mirroring tool work with specifically half-pixel precision (not all subpixel, just half). SOFTWARE/OS VERSIONS Krita Version: 4.4.0 Languages: en_US, en, en_US, en, en_US, en, pl_PL, pl, pl_PL, pl Hidpi: true Qt Version (compiled): 5.12.9 Version (loaded): 5.12.9
Hello, I often use this mirroring function. Any idea when it will be solved? How will I know when it has been fixed? Will I receive a notice through this thread?
romopua@gmail.com by commenting, you added yourself to the CC list (you can also do that without commenting by adding yourself to the CC on top of the bug report), so you will get an email about any comment and change of the status of the bug report. No idea when it will be solved, I would like to fix that but I don't have time now, still working on resources.
Git commit 6daaab5efe1356f72510dc8535d1c387e16a8d5c by Agata Cacko. Committed on 09/08/2021 at 17:52. Pushed by tymond into branch 'master'. Add KritaUtils::mirrorX for QPointF precision Before this commit, KritaUtils only had functions to mirror with the axis having only integer precision. This commit adds functions that can mirror with the point with float precision. That allows using them for mirroring axis in the middle of the pixel. M +41 -0 libs/image/krita_utils.cpp M +4 -0 libs/image/krita_utils.h https://invent.kde.org/graphics/krita/commit/6daaab5efe1356f72510dc8535d1c387e16a8d5c
Git commit 9a9e1c61b5acf5afa21901a71cd710bd8732e9c3 by Agata Cacko. Committed on 09/08/2021 at 17:56. Pushed by tymond into branch 'master'. Implement 0.5 pixel mirror precision for KisPainter Before this commit, brush engines using the KisPainter, would only use mirroring with integer/non-subpixel precision. This commit ensures they use the subpixel precision, which allows to use them with half-pixel precision. M +5 -5 libs/image/kis_painter.cc https://invent.kde.org/graphics/krita/commit/9a9e1c61b5acf5afa21901a71cd710bd8732e9c3
Git commit 25469219a1ad834de5bde169aca1f0527efa5db1 by Agata Cacko. Committed on 09/08/2021 at 17:58. Pushed by tymond into branch 'master'. Fix mirroring of Quick Engine brushes Before this commit, the mirroring of Quick Engine brushes was incorrect (different from how other brushes behaved). That was because of the -0.5 pixel fix to align the outline with the result. It was added before the mirrored points were calculated, resulting in a wrong points. This commit ensures that the -0.5 fix is applied only when painting, which fixes the mirroring. M +12 -6 plugins/paintops/roundmarker/kis_roundmarkerop.cpp https://invent.kde.org/graphics/krita/commit/25469219a1ad834de5bde169aca1f0527efa5db1