[gimp] modules, libgimpwidgets: use gimp_color_managed_get_color_profile()



commit d3e11c5b2c58e2057eb7dd1c59547f1cfa7466ee
Author: Michael Natterer <mitch gimp org>
Date:   Wed May 27 12:53:46 2015 +0200

    modules, libgimpwidgets: use gimp_color_managed_get_color_profile()
    
    which always returns a profile, instead of code that uses the ICC
    blob and falls back to GimpColorConfig's profile, then falls back
    to the built-in profiles.

 libgimpwidgets/gimpwidgetsutils.c |   27 +--------------------
 modules/display-filter-lcms.c     |   47 ++++++------------------------------
 2 files changed, 9 insertions(+), 65 deletions(-)
---
diff --git a/libgimpwidgets/gimpwidgetsutils.c b/libgimpwidgets/gimpwidgetsutils.c
index 6396a60..a3341d4 100644
--- a/libgimpwidgets/gimpwidgetsutils.c
+++ b/libgimpwidgets/gimpwidgetsutils.c
@@ -460,31 +460,6 @@ gimp_widget_get_color_profile (GtkWidget *widget)
 }
 
 static GimpColorProfile
-get_rgb_profile (GimpColorManaged *managed,
-                 GimpColorConfig  *config)
-{
-  GimpColorProfile  profile = NULL;
-  const guint8     *data;
-  gsize             len;
-
-  data = gimp_color_managed_get_icc_profile (managed, &len);
-
-  if (data)
-    profile = gimp_lcms_profile_open_from_data (data, len, NULL);
-
-  if (profile && ! gimp_lcms_profile_is_rgb (profile))
-    {
-      gimp_lcms_profile_close (profile);
-      profile = NULL;
-    }
-
-  if (! profile)
-    profile = gimp_color_config_get_rgb_profile (config, NULL);
-
-  return profile;
-}
-
-static GimpColorProfile
 get_display_profile (GtkWidget       *widget,
                      GimpColorConfig *config)
 {
@@ -530,7 +505,7 @@ gimp_widget_get_color_transform (GtkWidget         *widget,
       /*  fallthru  */
 
     case GIMP_COLOR_MANAGEMENT_DISPLAY:
-      src_profile  = get_rgb_profile (managed, config);
+      src_profile  = gimp_color_managed_get_color_profile (managed);
       dest_profile = get_display_profile (widget, config);
       break;
     }
diff --git a/modules/display-filter-lcms.c b/modules/display-filter-lcms.c
index b75ab80..8fc7c19 100644
--- a/modules/display-filter-lcms.c
+++ b/modules/display-filter-lcms.c
@@ -83,7 +83,6 @@ static void             cdisplay_lcms_convert_buffer       (GimpColorDisplay *di
                                                             GeglRectangle    *area);
 static void             cdisplay_lcms_changed              (GimpColorDisplay *display);
 
-static GimpColorProfile cdisplay_lcms_get_rgb_profile      (CdisplayLcms     *lcms);
 static GimpColorProfile cdisplay_lcms_get_display_profile  (CdisplayLcms     *lcms);
 
 static void             cdisplay_lcms_attach_labelled      (GtkTable         *table,
@@ -279,42 +278,10 @@ cdisplay_lcms_changed (GimpColorDisplay *display)
   lcms->src_format  = babl_format ("R'G'B'A float");
   lcms->dest_format = babl_format ("R'G'B'A float");
 
-  lcms->transform =
-    gimp_widget_get_color_transform (widget,
-                                     managed, config,
-                                     &lcms->src_format,
-                                     &lcms->dest_format);
-}
-
-static GimpColorProfile
-cdisplay_lcms_get_rgb_profile (CdisplayLcms *lcms)
-{
-  GimpColorConfig  *config;
-  GimpColorManaged *managed;
-  GimpColorProfile  profile = NULL;
-
-  config  = gimp_color_display_get_config (GIMP_COLOR_DISPLAY (lcms));
-  managed = gimp_color_display_get_managed (GIMP_COLOR_DISPLAY (lcms));
-
-  if (managed)
-    {
-      gsize         len;
-      const guint8 *data = gimp_color_managed_get_icc_profile (managed, &len);
-
-      if (data)
-        profile = cmsOpenProfileFromMem ((gpointer) data, len);
-
-      if (profile && ! gimp_lcms_profile_is_rgb (profile))
-        {
-          gimp_lcms_profile_close (profile);
-          profile = NULL;
-        }
-    }
-
-  if (! profile)
-    profile = gimp_color_config_get_rgb_profile (config, NULL);
-
-  return profile;
+  lcms->transform = gimp_widget_get_color_transform (widget,
+                                                     managed, config,
+                                                     &lcms->src_format,
+                                                     &lcms->dest_format);
 }
 
 static GimpColorProfile
@@ -372,12 +339,14 @@ cdisplay_lcms_update_profile_label (CdisplayLcms *lcms,
                                     const gchar  *name)
 {
   GimpColorConfig  *config;
+  GimpColorManaged *managed;
   GtkWidget        *label;
   GimpColorProfile  profile = NULL;
   gchar            *text;
   gchar            *tooltip;
 
-  config = gimp_color_display_get_config (GIMP_COLOR_DISPLAY (lcms));
+  config  = gimp_color_display_get_config (GIMP_COLOR_DISPLAY (lcms));
+  managed = gimp_color_display_get_managed (GIMP_COLOR_DISPLAY (lcms));
 
   label = g_object_get_data (G_OBJECT (lcms), name);
 
@@ -386,7 +355,7 @@ cdisplay_lcms_update_profile_label (CdisplayLcms *lcms,
 
   if (strcmp (name, "rgb-profile") == 0)
     {
-      profile = cdisplay_lcms_get_rgb_profile (lcms);
+      profile = gimp_color_managed_get_color_profile (managed);
     }
   else if (g_str_has_prefix (name, "display-profile"))
     {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]