Bug 288716 - 16 and 32 bits float : No way to select high range colors with current color selectors
Summary: 16 and 32 bits float : No way to select high range colors with current color ...
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: Color Selectors (other bugs)
Version First Reported In: git master (please specify the git hash!)
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: ---
Assignee: Halla Rempt
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-12-11 12:55 UTC by animtim
Modified: 2014-06-20 10:31 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description animtim 2011-12-11 12:55:35 UTC
Version:           svn trunk (using KDE 4.5.5) 
OS:                Linux

Current color selectors don't allow to select high range colors in 16/32 bits float files, though selecting such colors from canvas works.

Reproducible: Always

Steps to Reproduce:
-Open SquaresSwirls.exr from the test files in this archive: http://download.savannah.nongnu.org/releases/openexr/openexr-images-1.7.0.tar.gz
-move exposure to -10
-Select pure white on any color selector and paint with it using an opaque brush: it still ooks black at -10 exposure.
-Now pick the white color inside the bottom-right swirl, and paint with it: there it's ok.


Expected Results:  
color selectors should adapt to color mode and depth in 16/32 bits float files (and maybe be sensitive to exposure setting as well, this can be discussed)
Comment 1 Halla Rempt 2011-12-18 13:35:23 UTC
Ack
Comment 2 Cyrille Berger 2012-01-28 11:26:17 UTC
The way the colour selector works for high dynamic range is:

* you select the exposure you want to modify
* and the colour of the selector is converted so that it looks on the canvas like in the colour selector at the given exposure

I guess we could also have an exposure selector in the colour selector, but I think it makes more sense the way it is now. However bug 288714 makes it a bit complicated right now to understand how it works.
Comment 3 animtim 2012-06-03 11:22:06 UTC
"* you select the exposure you want to modify
 * and the colour of the selector is converted so that it looks on the canvas like in the colour selector at the given exposure"

I think here is the problem, here moving the exposure doesn't make any change on the color selector.
Comment 4 Halla Rempt 2012-08-28 14:22:12 UTC
This is actually worse now, since the original method doesn't work atm.
Comment 5 Dmitry Kazakov 2014-04-11 09:32:46 UTC
There are two other incarnations of this bug:

1) Disable OCIO. Select any color, paint with it. The painted stroke will look different.
2)  Enable OCIO. Set Exposure to 0.0, Gamma to 2.2. This is the only configuration, when the color in the color selector coincides with the one of the painted stroke.
Comment 6 Dmitry Kazakov 2014-04-11 10:27:20 UTC
Case 1) happens because in KisOpenGLImageTextures::tilesColorSpace() F16 and F32 branches do not use m_monitorProfile. I guess this is a bug. Will investigate further.
Comment 7 Dmitry Kazakov 2014-04-11 10:38:54 UTC
Another bug: F16 colorspace'd images do not work in non-openGL mode. The user should be at least warned about that.
Comment 8 Dmitry Kazakov 2014-04-11 10:41:21 UTC
(forgot to add: F16 images do not work with OCIO enabled and openGL disabled)
Comment 9 Dmitry Kazakov 2014-04-23 12:27:03 UTC
Git commit 4a02f4dc3e7c539d09de6869b6a318639eacb14c by Dmitry Kazakov.
Committed on 17/04/2014 at 08:55.
Pushed by dkazakov into branch 'krita-testing-kazakov'.

Delegate color correction in KisMinimanShadeSelector to a separate class

KisDisplayColorConverter is now in charge of all the color-related stuff
inside of the color selector.

Now it is only left to port other selectors to use it :)

M  +1    -0    krita/plugins/extensions/dockers/advancedcolorselector/CMakeLists.txt
A  +63   -0    krita/plugins/extensions/dockers/advancedcolorselector/kis_acs_types.h     [License: GPL (v2+)]
M  +1    -1    krita/plugins/extensions/dockers/advancedcolorselector/kis_color_patches.cpp
M  +4    -2    krita/plugins/extensions/dockers/advancedcolorselector/kis_color_patches.h
M  +10   -23   krita/plugins/extensions/dockers/advancedcolorselector/kis_color_selector.cpp
M  +1    -1    krita/plugins/extensions/dockers/advancedcolorselector/kis_color_selector.h
M  +81   -78   krita/plugins/extensions/dockers/advancedcolorselector/kis_color_selector_base.cpp
M  +23   -7    krita/plugins/extensions/dockers/advancedcolorselector/kis_color_selector_base.h
A  +88   -0    krita/plugins/extensions/dockers/advancedcolorselector/kis_color_selector_base_proxy.cpp     [License: GPL (v2+)]
A  +90   -0    krita/plugins/extensions/dockers/advancedcolorselector/kis_color_selector_base_proxy.h     [License: GPL (v2+)]
M  +21   -5    krita/plugins/extensions/dockers/advancedcolorselector/kis_minimal_shade_selector.cpp
M  +10   -3    krita/plugins/extensions/dockers/advancedcolorselector/kis_minimal_shade_selector.h
M  +2    -4    krita/plugins/extensions/dockers/advancedcolorselector/kis_my_paint_shade_selector.cpp
M  +58   -55   krita/plugins/extensions/dockers/advancedcolorselector/kis_shade_selector_line.cpp
M  +17   -7    krita/plugins/extensions/dockers/advancedcolorselector/kis_shade_selector_line.h
M  +12   -2    krita/plugins/extensions/dockers/advancedcolorselector/kis_shade_selector_line_combo_box.cpp
M  +3    -0    krita/plugins/extensions/dockers/advancedcolorselector/kis_shade_selector_line_combo_box.h
M  +26   -17   krita/plugins/extensions/dockers/advancedcolorselector/kis_shade_selector_line_combo_box_popup.cpp
M  +4    -0    krita/plugins/extensions/dockers/advancedcolorselector/kis_shade_selector_line_combo_box_popup.h
M  +1    -0    krita/sketch/CMakeLists.txt
M  +50   -70   krita/sketch/ColorSelectorItem.cpp
M  +1    -0    krita/ui/CMakeLists.txt
M  +31   -43   krita/ui/canvas/kis_canvas2.cpp
M  +1    -5    krita/ui/canvas/kis_canvas2.h
A  +137  -0    krita/ui/canvas/kis_display_color_converter.cpp     [License: GPL (v2+)]
A  +74   -0    krita/ui/canvas/kis_display_color_converter.h     [License: GPL (v2+)]
M  +6    -0    krita/ui/canvas/kis_display_filter.h
M  +2    -2    krita/ui/opengl/kis_opengl_image_textures.cpp
M  +2    -2    krita/ui/opengl/kis_opengl_image_textures.h

http://commits.kde.org/calligra/4a02f4dc3e7c539d09de6869b6a318639eacb14c