libgimpwidgets: return the formats from gimp_widget_get_color_transform()

Turn the src_format and dest_formats into "const Babl **" and make
them return the actually used formats. Change the lcms display module
accordingly.
This commit is contained in:
Michael Natterer 2015-05-11 00:42:23 +02:00
parent 4d9cf01965
commit 394bc25be1
3 changed files with 35 additions and 30 deletions

View File

@ -499,11 +499,11 @@ get_display_profile (GtkWidget *widget,
}
GimpColorTransform
gimp_widget_get_color_transform (GtkWidget *widget,
GimpColorManaged *managed,
GimpColorConfig *config,
const Babl *src_format,
const Babl *dest_format)
gimp_widget_get_color_transform (GtkWidget *widget,
GimpColorManaged *managed,
GimpColorConfig *config,
const Babl **src_format,
const Babl **dest_format)
{
GimpColorTransform transform = NULL;
GimpColorProfile src_profile = NULL;
@ -534,8 +534,8 @@ gimp_widget_get_color_transform (GtkWidget *widget,
break;
}
src_format = gimp_lcms_get_format (src_format, &lcms_src_format);
dest_format = gimp_lcms_get_format (dest_format, &lcms_dest_format);
*src_format = gimp_lcms_get_format (*src_format, &lcms_src_format);
*dest_format = gimp_lcms_get_format (*dest_format, &lcms_dest_format);
if (proof_profile)
{

View File

@ -30,29 +30,29 @@ G_BEGIN_DECLS
/* For information look into the C source or the html documentation */
GtkWidget * gimp_table_attach_aligned (GtkTable *table,
gint column,
gint row,
const gchar *label_text,
gfloat xalign,
gfloat yalign,
GtkWidget *widget,
gint colspan,
gboolean left_align);
GtkWidget * gimp_table_attach_aligned (GtkTable *table,
gint column,
gint row,
const gchar *label_text,
gfloat xalign,
gfloat yalign,
GtkWidget *widget,
gint colspan,
gboolean left_align);
void gimp_label_set_attributes (GtkLabel *label,
void gimp_label_set_attributes (GtkLabel *label,
...);
gint gimp_widget_get_monitor (GtkWidget *widget);
gint gimp_get_monitor_at_pointer (GdkScreen **screen);
gint gimp_widget_get_monitor (GtkWidget *widget);
gint gimp_get_monitor_at_pointer (GdkScreen **screen);
GimpColorProfile gimp_widget_get_color_profile (GtkWidget *widget);
GimpColorProfile gimp_widget_get_color_profile (GtkWidget *widget);
GimpColorTransform gimp_widget_get_color_transform (GtkWidget *widget,
GimpColorManaged *managed,
GimpColorConfig *config,
const Babl *src_format,
const Babl *dest_format);
GimpColorTransform gimp_widget_get_color_transform (GtkWidget *widget,
GimpColorManaged *managed,
GimpColorConfig *config,
const Babl **src_format,
const Babl **dest_format);
G_END_DECLS

View File

@ -60,9 +60,11 @@ typedef struct _CdisplayLcmsClass CdisplayLcmsClass;
struct _CdisplayLcms
{
GimpColorDisplay parent_instance;
GimpColorDisplay parent_instance;
GimpColorTransform transform;
GimpColorTransform transform;
const Babl *src_format;
const Babl *dest_format;
};
struct _CdisplayLcmsClass
@ -240,7 +242,7 @@ cdisplay_lcms_convert_buffer (GimpColorDisplay *display,
return;
iter = gegl_buffer_iterator_new (buffer, area, 0,
babl_format ("R'G'B'A float"),
lcms->src_format,
GEGL_ACCESS_READWRITE, GEGL_ABYSS_NONE);
while (gegl_buffer_iterator_next (iter))
@ -274,11 +276,14 @@ cdisplay_lcms_changed (GimpColorDisplay *display)
if (GTK_IS_WIDGET (managed))
widget = gtk_widget_get_toplevel (GTK_WIDGET (managed));
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,
babl_format ("R'G'B'A float"),
babl_format ("R'G'B'A float"));
&lcms->src_format,
&lcms->dest_format);
}
static GimpColorProfile