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:59:15 +0000
committerJucaBlues <JucaBlues@users.sourceforge.net>2009-08-15 05:59:15 +0000
commitdb87667df0c9068024267a4de6137487904048f2 (patch)
treef9e77a6825898cc5ce2f30ee79ccf37c3414d326 /src/widgets/sp-color-notebook.cpp
parentrefactoring ICC out-of-gamut check (diff)
downloadinkscape-db87667df0c9068024267a4de6137487904048f2.tar.gz
inkscape-db87667df0c9068024267a4de6137487904048f2.zip
now gamut check works!
(bzr r8050.1.14)
Diffstat (limited to 'src/widgets/sp-color-notebook.cpp')
-rw-r--r--src/widgets/sp-color-notebook.cpp26
1 files changed, 2 insertions, 24 deletions
diff --git a/src/widgets/sp-color-notebook.cpp b/src/widgets/sp-color-notebook.cpp
index 52c78ba42..04a35e4ad 100644
--- a/src/widgets/sp-color-notebook.cpp
+++ b/src/widgets/sp-color-notebook.cpp
@@ -511,31 +511,9 @@ 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 = 0;
- static cmsHPROFILE hNULL = cmsCreateNULLProfile();
- static cmsHPROFILE hsRGB = cmsCreate_sRGBProfile();
-
Inkscape::ColorProfile* target_profile = SP_ACTIVE_DOCUMENT->profileManager->find(color.icc->colorProfile.c_str());
- if ( target_profile ) {
- 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 ) {
- guint32 val = color.toRGBA32(0);
- guchar check_color[4] = {
- SP_RGBA32_R_U(val),
- SP_RGBA32_G_U(val),
- 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);
- }
- }
+ if ( target_profile )
+ gtk_widget_set_sensitive (_box_outofgamut, target_profile->GamutCheck(color));
}