Bug 327235

Summary: Drawing-Angle rotation regression with color-smudge brush (only?)
Product: [Applications] krita Reporter: animtim
Component: Brush enginesAssignee: Krita Bugs <krita-bugs-null>
Status: RESOLVED FIXED    
Severity: normal CC: dimula73
Priority: NOR    
Version: git master (please specify the git hash!)   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Attachments: 2.7 vs master test

Description animtim 2013-11-06 17:01:15 UTC
In current master, with drawing angle used for rotation on color-smudge brush, curved lines are now angular. They were good in 2.7.

I also checked with some pixel_brushes, it seems to be good. So I'd say only solor-smudge brush is affected.

Reproducible: Always

Steps to Reproduce:
1.Select Smudge_rake preset
2. smudge on something with a curved movement
3.see the smudge curve is angular.


Expected Results:  
smudge line should be smoothly curved.

In 2.7, the same preset is actually called Rake_smudge, and works properly.
Comment 1 animtim 2013-11-06 17:04:25 UTC
Created attachment 83380 [details]
2.7 vs master test

comparing drawing_angle rotation on color-smudge brush with 2.7 package vs latest git master.
Comment 2 Dmitry Kazakov 2013-11-22 18:38:58 UTC
Yes, it seems to happen only in Smudge Op and only in Smearing Mode.
Comment 3 Dmitry Kazakov 2013-11-26 12:16:51 UTC
Git commit 49fd9872f2cb5b6d1b9f294b8ef18716bb7b08bf by Dmitry Kazakov.
Committed on 26/11/2013 at 12:16.
Pushed by dkazakov into branch 'krita-testing-kazakov'.

Fix the subpixel precision offset problem in Color Smudge Paint Op

This patch does two changes:
1) We save not the theoretical hotspot of the lastly painted dab, but
   the real center of the dab.
2) Disables the calculation of the subpixel precision values for the dab
   in Color Smudge Op. The point is, the Color Smudge Op needs to access
   other areas of the image. And this access can be aligned only (yeah,
   since non-aligned bitBlt is not possible). So using of subpixel
   precision will 1) break alignment; 2) will make the calculation of the
   real hotspot of the dab impossible.

M  +18   -2    krita/plugins/paintops/colorsmudge/kis_colorsmudgeop.cpp
M  +12   -0    krita/plugins/paintops/libpaintop/kis_dab_cache.cpp
M  +8    -0    krita/plugins/paintops/libpaintop/kis_dab_cache.h

http://commits.kde.org/calligra/49fd9872f2cb5b6d1b9f294b8ef18716bb7b08bf
Comment 4 Dmitry Kazakov 2013-11-26 12:18:37 UTC
Git commit b81064230d7e927aa367780075fe65cb243944e7 by Dmitry Kazakov.
Committed on 26/11/2013 at 12:16.
Pushed by dkazakov into branch 'master'.

Fix the subpixel precision offset problem in Color Smudge Paint Op

This patch does two changes:
1) We save not the theoretical hotspot of the lastly painted dab, but
   the real center of the dab.
2) Disables the calculation of the subpixel precision values for the dab
   in Color Smudge Op. The point is, the Color Smudge Op needs to access
   other areas of the image. And this access can be aligned only (yeah,
   since non-aligned bitBlt is not possible). So using of subpixel
   precision will 1) break alignment; 2) will make the calculation of the
   real hotspot of the dab impossible.

M  +18   -2    krita/plugins/paintops/colorsmudge/kis_colorsmudgeop.cpp
M  +12   -0    krita/plugins/paintops/libpaintop/kis_dab_cache.cpp
M  +8    -0    krita/plugins/paintops/libpaintop/kis_dab_cache.h

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