summaryrefslogtreecommitdiffstats
path: root/src/widgets/sp-color-notebook.cpp
diff options
context:
space:
mode:
authorFelipe Corr??a da Silva Sanches <juca@members.fsf.org>2009-08-15 05:25:49 +0000
committerJucaBlues <JucaBlues@users.sourceforge.net>2009-08-15 05:25:49 +0000
commitffbf2cca9e54383050bf9bdfbef82ec4b8ccd0ad (patch)
treeea999a48ebdb07bdc7ba1a14c1a76d7e8d47e82b /src/widgets/sp-color-notebook.cpp
parentInitial draft of the out-of-gamut check. It is not working yet. I will contin... (diff)
downloadinkscape-ffbf2cca9e54383050bf9bdfbef82ec4b8ccd0ad.tar.gz
inkscape-ffbf2cca9e54383050bf9bdfbef82ec4b8ccd0ad.zip
refactoring ICC out-of-gamut check
(bzr r8050.1.13)
Diffstat (limited to 'src/widgets/sp-color-notebook.cpp')
-rw-r--r--src/widgets/sp-color-notebook.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/widgets/sp-color-notebook.cpp b/src/widgets/sp-color-notebook.cpp
index 5eb44c2cb..52c78ba42 100644
--- a/src/widgets/sp-color-notebook.cpp
+++ b/src/widgets/sp-color-notebook.cpp
@@ -511,15 +511,13 @@ void ColorNotebook::_updateRgbaEntry( const SPColor& color, gfloat alpha )
/* update out-of-gamut icon */
gtk_widget_set_sensitive (_box_outofgamut, false);
if (color.icc){
- BYTE outofgamut;
- cmsSetAlarmCodes(255, 255, 255);
+ BYTE outofgamut = 0;
static cmsHPROFILE hNULL = cmsCreateNULLProfile();
static cmsHPROFILE hsRGB = cmsCreate_sRGBProfile();
- cmsHTRANSFORM trans;
Inkscape::ColorProfile* target_profile = SP_ACTIVE_DOCUMENT->profileManager->find(color.icc->colorProfile.c_str());
if ( target_profile ) {
- trans = cmsCreateProofingTransform(hsRGB, TYPE_RGB_DBL, hNULL, TYPE_GRAY_8, target_profile->profHandle,
+ cmsHTRANSFORM trans = cmsCreateProofingTransform(hsRGB, TYPE_RGBA_8, hNULL, TYPE_GRAY_8, target_profile->profHandle,
INTENT_RELATIVE_COLORIMETRIC, INTENT_RELATIVE_COLORIMETRIC, (cmsFLAGS_GAMUTCHECK|cmsFLAGS_SOFTPROOFING));
if ( trans ) {
@@ -530,7 +528,11 @@ void ColorNotebook::_updateRgbaEntry( const SPColor& color, gfloat alpha )
SP_RGBA32_B_U(val),
255};
+ int alarm_r, alarm_g, alarm_b;
+ cmsGetAlarmCodes(&alarm_r, &alarm_g, &alarm_b);
+ cmsSetAlarmCodes(255, 255, 255);
cmsDoTransform(trans, &check_color, &outofgamut, 1);
+ cmsSetAlarmCodes(alarm_r, alarm_g, alarm_b);
gtk_widget_set_sensitive (_box_outofgamut, outofgamut == 255);
}
}