Bug 273918

Summary: The channel docker is broken
Product: [Applications] krita Reporter: pentalis
Component: DockersAssignee: Dmitry Kazakov <dimula73>
Status: RESOLVED FIXED    
Severity: normal CC: animtim, halla
Priority: NOR    
Version: git master (please specify the git hash!)   
Target Milestone: ---   
Platform: Unlisted Binaries   
OS: Linux   
Latest Commit: Version Fixed In:

Description pentalis 2011-05-23 01:14:48 UTC
Tested with a CMYK image:
---Open the channel docker.
---Deselect the magenta channel.
---Everything will look more magenta instead of less, that's the exact opposite of what it should do.

Happens with all channels, fix ASAP
Comment 1 animtim 2011-05-27 20:38:18 UTC
Fun,  I've just noticed something about the buggy enabled/disabled channels: right after converting a rgb file to cmyk, disabling channels works right.. but after save/reload it the bug is back.
Comment 2 Halla Rempt 2012-02-19 14:33:09 UTC
I don't think it's the recomposition that's wrong, there must be some place still where the order of channels isn't initialized correctly.
Comment 3 Halla Rempt 2012-02-29 12:49:13 UTC
Might be related to 254784
Comment 4 Dmitry Kazakov 2012-10-27 14:14:07 UTC
Git commit b3558ce7cc17330f3f921c61fbff36d25d989073 by Dmitry Kazakov.
Committed on 27/10/2012 at 13:38.
Pushed by dkazakov into branch 'master'.

Fixed composite ops to handle destination with zero alpha properly

When alpha is zero the color channels do not matter. That is
(1,2,3,0) and (4,5,6,0) are completely the same colors. Our composite
ops knew about it but they didn't handle it properly when some channels
were disabled by the channelFlags. Now the channel is zeroed if it is
disabled and alpha mask of the pixel flipped to non-zero value.

M  +18   -6    libs/pigment/compositeops/KoCompositeOpAlphaBase.h
M  +5    -0    libs/pigment/compositeops/KoCompositeOpBase.h
M  +56   -0    libs/pigment/tests/KoRgbU8ColorSpaceTester.cpp
M  +1    -0    libs/pigment/tests/KoRgbU8ColorSpaceTester.h

http://commits.kde.org/calligra/b3558ce7cc17330f3f921c61fbff36d25d989073
Comment 5 Jarosław Staniek 2012-10-31 11:35:16 UTC
Git commit e98c9aa6276a9c68c291a188469bf2d3427590ef by Jaroslaw Staniek, on behalf of Dmitry Kazakov.
Committed on 27/10/2012 at 13:38.
Pushed by staniek into branch 'kexi-altertable-staniek'.

Fixed composite ops to handle destination with zero alpha properly

When alpha is zero the color channels do not matter. That is
(1,2,3,0) and (4,5,6,0) are completely the same colors. Our composite
ops knew about it but they didn't handle it properly when some channels
were disabled by the channelFlags. Now the channel is zeroed if it is
disabled and alpha mask of the pixel flipped to non-zero value.

M  +18   -6    libs/pigment/compositeops/KoCompositeOpAlphaBase.h
M  +5    -0    libs/pigment/compositeops/KoCompositeOpBase.h
M  +56   -0    libs/pigment/tests/KoRgbU8ColorSpaceTester.cpp
M  +1    -0    libs/pigment/tests/KoRgbU8ColorSpaceTester.h

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