Esempio n. 1
0
static void
cdisplay_lcms_changed (GimpColorDisplay *display)
{
  CdisplayLcms     *lcms   = CDISPLAY_LCMS (display);
  GtkWidget        *widget = NULL;
  GimpColorConfig  *config;
  GimpColorManaged *managed;
  GimpColorProfile *src_profile;

  if (lcms->transform)
    {
      g_object_unref (lcms->transform);
      lcms->transform = NULL;
    }

  config  = gimp_color_display_get_config (display);
  managed = gimp_color_display_get_managed (display);

  if (! config || ! managed)
    return;

  if (GTK_IS_WIDGET (managed))
    widget = gtk_widget_get_toplevel (GTK_WIDGET (managed));

  src_profile = gimp_color_managed_get_color_profile (managed);

  lcms->transform =
    gimp_widget_get_color_transform (widget,
                                     config, src_profile,
                                     babl_format ("R'G'B'A float"),
                                     babl_format ("R'G'B'A float"));
}
Esempio n. 2
0
static void
gimp_view_renderer_transform_create (GimpViewRenderer *renderer,
                                     GtkWidget        *widget,
                                     GeglBuffer       *src_buffer,
                                     GeglBuffer       *dest_buffer)
{
  if (GIMP_IS_COLOR_MANAGED (renderer->viewable))
    {
      GimpColorManaged *managed  = GIMP_COLOR_MANAGED (renderer->viewable);
      GimpPickable     *pickable = GIMP_PICKABLE (renderer->viewable);
      GimpColorProfile *profile;

      profile = gimp_color_managed_get_color_profile (managed);

      if (profile)
        {
          GimpImage       *image  = gimp_pickable_get_image (pickable);
          GimpColorConfig *config = image->gimp->config->color_management;

          renderer->profile_src_format  = gegl_buffer_get_format (src_buffer);
          renderer->profile_dest_format = gegl_buffer_get_format (dest_buffer);

          renderer->profile_transform =
            gimp_widget_get_color_transform (widget, config,
                                             profile,
                                             &renderer->profile_src_format,
                                             &renderer->profile_dest_format);
        }
    }
}
Esempio n. 3
0
static void
gimp_fg_bg_view_create_transform (GimpFgBgView *view)
{
  if (view->color_config)
    {
      static GimpColorProfile *profile = NULL;

      if (G_UNLIKELY (! profile))
        profile = gimp_color_profile_new_rgb_srgb ();

      view->transform =
        gimp_widget_get_color_transform (GTK_WIDGET (view),
                                         view->color_config,
                                         profile,
                                         babl_format ("R'G'B'A double"),
                                         babl_format ("R'G'B'A double"));
    }
}