Bug 323245

Summary: Mirror View causes wavy/pixelated brush strokes
Product: [Applications] krita Reporter: Sketch Stick <sketchstick>
Component: Brush enginesAssignee: Dmitry Kazakov <dimula73>
Status: RESOLVED FIXED    
Severity: normal CC: animtim, dimula73, halla
Priority: NOR    
Version: git master (please specify the git hash!)   
Target Milestone: ---   
Platform: Debian unstable   
OS: Linux   
URL: http://i.imgur.com/qTBKoHW.jpg
Latest Commit: Version Fixed In:
Attachments: mirror view precision bug screenshot

Description Sketch Stick 2013-08-06 20:00:49 UTC
Enabling Mirror View and doing a curve shows a wavy effect on the line.

Reproducible: Always

Steps to Reproduce:
1. Enable Mirror View
2. Do a curved stroke



QT Version: 4.8.5
Comment 1 Dmitry Kazakov 2013-08-07 20:12:49 UTC
Git commit ed7a9ec84efd15d6625554b0decf45b53a9950f8 by Dmitry Kazakov.
Committed on 07/08/2013 at 20:09.
Pushed by dkazakov into branch 'master'.

Fixed subpixel precision bug when the canvas or a dab is mirrored

When the dab is mirrored, the subpixel offset should be inverted.

M  +1    -1    krita/image/kis_fixed_paint_device.h
M  +47   -27   krita/plugins/paintops/libpaintop/kis_dab_cache.cpp
M  +6    -2    krita/plugins/paintops/libpaintop/kis_dab_cache.h
M  +2    -2    krita/plugins/paintops/libpaintop/kis_pressure_mirror_option.cpp
M  +8    -0    krita/plugins/paintops/libpaintop/kis_pressure_mirror_option.h

http://commits.kde.org/calligra/ed7a9ec84efd15d6625554b0decf45b53a9950f8
Comment 2 animtim 2013-09-24 08:50:14 UTC
This bug is still happening in current master!
I reported it to dmitry on irc some days ago, but only now I was about to file a new bug for it and found this one already reported..

Please re-open the bug and fix it.
Comment 3 animtim 2013-09-24 08:51:30 UTC
Created attachment 82472 [details]
mirror view precision bug screenshot
Comment 4 Dmitry Kazakov 2013-10-15 09:29:39 UTC
This bug seems to be cause by the recent fix of rotations :( I'm going to fix it soon.
Comment 5 Dmitry Kazakov 2013-10-23 07:25:52 UTC
Git commit f698a3c17151df8c08aa3c30d1389fb8f8ff77da by Dmitry Kazakov.
Committed on 23/10/2013 at 07:25.
Pushed by dkazakov into branch 'krita-wintab-kazakov'.

Fixed the subpixel precision bug when the canvas is mirrored

The problem was related to the fact that the size of the dab
changes depending on the value of the subpixel offset. This happens
due to various rounding complications. It means that if we want to keep
the hot spot of the dab unmoved, when the dab becomes mirrored, we should
change of x,y offset of the dab.

That is why the code that calculates the origin of the dab is now
moved to the KisDabCache, which handles all these complications.

M  +26   -20   krita/plugins/paintops/colorsmudge/kis_colorsmudgeop.cpp
M  +2    -2    krita/plugins/paintops/colorsmudge/kis_colorsmudgeop.h
M  +10   -19   krita/plugins/paintops/defaultpaintops/brush/kis_brushop.cpp
M  +21   -31   krita/plugins/paintops/defaultpaintops/duplicate/kis_duplicateop.cpp
M  +21   -39   krita/plugins/paintops/filterop/kis_filterop.cpp
M  +10   -22   krita/plugins/paintops/hatching/kis_hatching_paintop.cpp
M  +152  -101  krita/plugins/paintops/libpaintop/kis_dab_cache.cpp
M  +26   -21   krita/plugins/paintops/libpaintop/kis_dab_cache.h
M  +11   -7    krita/plugins/paintops/sketch/kis_sketch_paintop.cpp

http://commits.kde.org/calligra/f698a3c17151df8c08aa3c30d1389fb8f8ff77da