Bug 318882

Summary: implement indirect painting mode for masks
Product: [Applications] krita Reporter: vanyossi <ghevan>
Component: Brush enginesAssignee: Krita Bugs <krita-bugs-null>
Status: RESOLVED FIXED    
Severity: normal CC: dimula73, finticemo, halla, unusualcows
Priority: NOR    
Version: git master (please specify the git hash!)   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: layer mask with experimental brush painting over it.
[ ^ screenshot of the bug ]

Description vanyossi 2013-04-25 22:18:07 UTC
Experimental brush paints over jagged/blocky edges when using it inside a transparency mask

Reproducible: Always

Steps to Reproduce:
1. Add to layers solid colors (for testing)
2. Top layer add a transparency mask
3. Paint on transparency mask using experimental brush
Actual Results:  
Blocky / overly pixelated edge resembling somewhat the stroke you made

Expected Results:  
Smooth figure resembling exaclty what you drew

It only happens on this brush engine on transparency masks, as far as I can. Adjusting brush settings does not change the output at all
Comment 1 vanyossi 2013-04-25 22:19:27 UTC
Created attachment 79451 [details]
layer mask with experimental brush painting over it.

I attach a test file with a mask and some brush strokes on the mask.
Comment 2 Halla Rempt 2013-05-18 08:26:40 UTC
I am not too surprised. I guess the experiment brush cannot handle the fake gray+a thing for masks that we got recently.
Comment 3 Dmitry Kazakov 2013-05-18 08:47:04 UTC
It's not the graya thing. The experiment brush works only on the nodes having IndirectPaintingSupport, which is not the case of masks currently. 

We have two options: either to implement IndirectPaintingSupport for masks or fix the Exp. Brush. I guess, the former option is better, because I heard painters asking for Wash Mode for painting masks, because the BuildUp one seems unnatural for them.
Comment 4 Halla Rempt 2013-05-18 08:55:23 UTC
Ah, okay. And yes, I agree -- having indirect painting mode for masks is pretty important.
Comment 5 David REVOY 2014-05-01 12:30:30 UTC
Created attachment 86390 [details]
[ ^ screenshot of the bug ]

I was about to report the same ( for 2.9pre-alpha), nice to see it already reported and confirmed.
Comment 6 Halla Rempt 2015-01-29 13:01:07 UTC
Git commit 4b36c257a28d482c93dae8c8c5f229dccbaa4acb by Boudewijn Rempt.
Committed on 29/01/2015 at 12:53.
Pushed by rempt into branch 'calligra/2.9'.

This also fixes bug 318882, artefacts when using the
shape brush with the multihand tool.

M  +3    -3    krita/image/kis_indirect_painting_support.cpp
M  +3    -3    krita/image/kis_indirect_painting_support.h
M  +1    -0    krita/image/kis_mask.cc
M  +2    -1    krita/image/kis_mask.h
M  +0    -1    krita/plugins/paintops/experiment/kis_experiment_paintop.cpp

http://commits.kde.org/calligra/4b36c257a28d482c93dae8c8c5f229dccbaa4acb
Comment 7 Halla Rempt 2015-01-29 13:01:08 UTC
Git commit 4b36c257a28d482c93dae8c8c5f229dccbaa4acb by Boudewijn Rempt.
Committed on 29/01/2015 at 12:53.
Pushed by rempt into branch 'calligra/2.9'.

This also fixes bug 318882, artefacts when using the
shape brush with the multihand tool.

M  +3    -3    krita/image/kis_indirect_painting_support.cpp
M  +3    -3    krita/image/kis_indirect_painting_support.h
M  +1    -0    krita/image/kis_mask.cc
M  +2    -1    krita/image/kis_mask.h
M  +0    -1    krita/plugins/paintops/experiment/kis_experiment_paintop.cpp

http://commits.kde.org/calligra/4b36c257a28d482c93dae8c8c5f229dccbaa4acb
Comment 8 Halla Rempt 2015-02-04 20:06:24 UTC
Okay, it's _not_ indirect painting support -- and it's the same issue as 318488.
Comment 9 Halla Rempt 2015-02-04 20:06:40 UTC
*** Bug 318488 has been marked as a duplicate of this bug. ***
Comment 10 Halla Rempt 2015-02-04 20:15:42 UTC
Git commit be51bd9b206a58250dbd3d11cb9ca4908498b7f4 by Boudewijn Rempt.
Committed on 04/02/2015 at 20:14.
Pushed by rempt into branch 'calligra/2.9'.

Break mirrored/mask use of the shape brush again
Related: bug 318488

Even though masks now support indirect painting, this isn't enough to
solve these two bugs. However, using another composite op than composite
copy breaks the general usecase of the brush.

M  +1    -0    krita/plugins/paintops/experiment/kis_experiment_paintop.cpp

http://commits.kde.org/calligra/be51bd9b206a58250dbd3d11cb9ca4908498b7f4
Comment 11 Halla Rempt 2015-02-06 15:15:07 UTC
Git commit 9e7bae94cdd5dd3ac440f00f45254cc6e3be5881 by Boudewijn Rempt.
Committed on 04/02/2015 at 20:14.
Pushed by rempt into branch 'master'.

Break mirrored/mask use of the shape brush again
Related: bug 318488

Even though masks now support indirect painting, this isn't enough to
solve these two bugs. However, using another composite op than composite
copy breaks the general usecase of the brush.

M  +1    -0    krita/plugins/paintops/experiment/kis_experiment_paintop.cpp

http://commits.kde.org/calligra/9e7bae94cdd5dd3ac440f00f45254cc6e3be5881
Comment 12 Halla Rempt 2016-04-14 18:41:09 UTC
*** Bug 361771 has been marked as a duplicate of this bug. ***
Comment 13 Dmitry Kazakov 2016-10-19 09:06:37 UTC
Fixed now in http://commits.kde.org/krita/9cf0a76bfb77ec014f0a29688b00475de6934b1f