libgimpwidgets: Convert CIE LCH(ab) babl format to float

This patch converts the
few instances of CIE LCH(ab) double
to float to match babl's precision.
This commit is contained in:
Alx Sa 2024-08-08 19:25:07 +00:00
parent ddfb4d4f73
commit 3833ab2b1d
3 changed files with 42 additions and 42 deletions

View File

@ -139,7 +139,7 @@ gimp_color_scale_class_init (GimpColorScaleClass *klass)
gtk_widget_class_set_css_name (widget_class, "GimpColorScale");
fish_lch_to_rgb = babl_fish (babl_format ("CIE LCH(ab) double"),
fish_lch_to_rgb = babl_fish (babl_format ("CIE LCH(ab) float"),
babl_format ("R'G'B' double"));
fish_hsv_to_rgb = babl_fish (babl_format ("HSV float"),
babl_format ("R'G'B' double"));
@ -503,10 +503,10 @@ gimp_color_scale_set_format (GimpColorScale *scale,
if (scale->format != format)
{
scale->format = format;
fish_lch_to_rgb = babl_fish (babl_format ("CIE LCH(ab) double"),
babl_format_with_space ("R'G'B' double", format));
fish_hsv_to_rgb = babl_fish (babl_format_with_space ("HSV float", format),
babl_format_with_space ("R'G'B' double", format));
fish_lch_to_rgb = babl_fish (babl_format ("CIE LCH(ab) float"),
babl_format_with_space ("R'G'B' double", format));
fish_hsv_to_rgb = babl_fish (babl_format_with_space ("HSV float", format),
babl_format_with_space ("R'G'B' double", format));
scale->needs_render = TRUE;
gtk_widget_queue_draw (GTK_WIDGET (scale));
}
@ -632,7 +632,7 @@ gimp_color_scale_render (GimpColorScale *scale)
GtkRange *range = GTK_RANGE (scale);
gdouble rgb[4];
gfloat hsv[3];
gdouble lch[3];
gfloat lch[3];
gint multiplier = 1;
guint x, y;
gdouble *channel_value = NULL;
@ -654,7 +654,7 @@ gimp_color_scale_render (GimpColorScale *scale)
gegl_color_get_pixel (scale->color, babl_format_with_space ("R'G'B'A double", scale->format), rgb);
gegl_color_get_pixel (scale->color, babl_format_with_space ("HSV float", scale->format), hsv);
gegl_color_get_pixel (scale->color, babl_format ("CIE LCH(ab) double"), lch);
gegl_color_get_pixel (scale->color, babl_format ("CIE LCH(ab) float"), lch);
switch (scale->channel)
{
@ -667,9 +667,9 @@ gimp_color_scale_render (GimpColorScale *scale)
case GIMP_COLOR_SELECTOR_BLUE: channel_value = &rgb[2]; break;
case GIMP_COLOR_SELECTOR_ALPHA: channel_value = &rgb[3]; break;
case GIMP_COLOR_SELECTOR_LCH_LIGHTNESS: channel_value = &lch[0]; break;
case GIMP_COLOR_SELECTOR_LCH_CHROMA: channel_value = &lch[1]; break;
case GIMP_COLOR_SELECTOR_LCH_HUE: channel_value = &lch[2]; break;
case GIMP_COLOR_SELECTOR_LCH_LIGHTNESS: channel_value_f = &lch[0]; break;
case GIMP_COLOR_SELECTOR_LCH_CHROMA: channel_value_f = &lch[1]; break;
case GIMP_COLOR_SELECTOR_LCH_HUE: channel_value_f = &lch[2]; break;
}
switch (scale->channel)

View File

@ -832,10 +832,10 @@ gimp_color_scales_update_scales (GimpColorScales *scales,
values[GIMP_COLOR_SELECTOR_BLUE_U8] = pixel[2] * 255.0;
values[GIMP_COLOR_SELECTOR_ALPHA_U8] = pixel[3] * 255.0;
gegl_color_get_pixel (color, babl_format ("CIE LCH(ab) double"), pixel);
values[GIMP_COLOR_SELECTOR_LCH_LIGHTNESS] = pixel[0];
values[GIMP_COLOR_SELECTOR_LCH_CHROMA] = pixel[1];
values[GIMP_COLOR_SELECTOR_LCH_HUE] = pixel[2];
gegl_color_get_pixel (color, babl_format ("CIE LCH(ab) float"), pixel_f);
values[GIMP_COLOR_SELECTOR_LCH_LIGHTNESS] = pixel_f[0];
values[GIMP_COLOR_SELECTOR_LCH_CHROMA] = pixel_f[1];
values[GIMP_COLOR_SELECTOR_LCH_HUE] = pixel_f[2];
for (i = 0; i < G_N_ELEMENTS (scale_defs); i++)
{

View File

@ -347,9 +347,9 @@ gimp_color_select_class_init (GimpColorSelectClass *klass)
gtk_widget_class_set_css_name (GTK_WIDGET_CLASS (klass), "GimpColorSelect");
fish_lch_to_rgb = babl_fish (babl_format ("CIE LCH(ab) double"),
fish_lch_to_rgb = babl_fish (babl_format ("CIE LCH(ab) float"),
babl_format ("R'G'B' double"));
fish_lch_to_rgb_u8 = babl_fish (babl_format ("CIE LCH(ab) double"),
fish_lch_to_rgb_u8 = babl_fish (babl_format ("CIE LCH(ab) float"),
babl_format ("R'G'B' u8"));
rgbf_format = babl_format ("R'G'B' float");
rgbu_format = babl_format ("R'G'B' u8");
@ -681,9 +681,9 @@ gimp_color_select_set_format (GimpColorSelector *selector,
rgbf_format = babl_format_with_space ("R'G'B' float", format);
rgbu_format = babl_format_with_space ("R'G'B' u8", format);
hsvf_format = babl_format_with_space ("HSV float", format);
fish_lch_to_rgb = babl_fish (babl_format ("CIE LCH(ab) double"),
fish_lch_to_rgb = babl_fish (babl_format ("CIE LCH(ab) float"),
babl_format_with_space ("R'G'B' double", format));
fish_lch_to_rgb_u8 = babl_fish (babl_format ("CIE LCH(ab) double"),
fish_lch_to_rgb_u8 = babl_fish (babl_format ("CIE LCH(ab) float"),
babl_format_with_space ("R'G'B' u8", format));
if (format == NULL || babl_format_get_space (format) == babl_space ("sRGB"))
@ -806,7 +806,7 @@ gimp_color_select_simulation (GimpColorSelector *selector,
if (format)
{
softproof_format = format;
fish_lch_to_softproof = babl_fish (babl_format ("CIE LCH(ab) double"), format);
fish_lch_to_softproof = babl_fish (babl_format ("CIE LCH(ab) float"), format);
if (babl_format_get_space (format) == babl_space ("sRGB"))
{
@ -939,22 +939,22 @@ gimp_color_select_update_values (GimpColorSelect *select)
break;
case COLOR_SELECT_LCH_LIGHTNESS:
values[0] = select->pos[2] * 100.0;
values[1] = select->pos[1] * 200.0;
values[2] = select->pos[0] * 360.0;
gegl_color_set_pixel (color, babl_format ("CIE LCH(ab) double"), values);
values_float[0] = select->pos[2] * 100.0;
values_float[1] = select->pos[1] * 200.0;
values_float[2] = select->pos[0] * 360.0;
gegl_color_set_pixel (color, babl_format ("CIE LCH(ab) float"), values);
break;
case COLOR_SELECT_LCH_CHROMA:
values[0] = select->pos[1] * 100.0;
values[1] = select->pos[2] * 200.0;
values[2] = select->pos[0] * 360.0;
gegl_color_set_pixel (color, babl_format ("CIE LCH(ab) double"), values);
values_float[0] = select->pos[1] * 100.0;
values_float[1] = select->pos[2] * 200.0;
values_float[2] = select->pos[0] * 360.0;
gegl_color_set_pixel (color, babl_format ("CIE LCH(ab) float"), values);
break;
case COLOR_SELECT_LCH_HUE:
values[0] = select->pos[1] * 100.0;
values[1] = select->pos[0] * 200.0;
values[2] = select->pos[2] * 360.0;
gegl_color_set_pixel (color, babl_format ("CIE LCH(ab) double"), values);
values_float[0] = select->pos[1] * 100.0;
values_float[1] = select->pos[0] * 200.0;
values_float[2] = select->pos[2] * 360.0;
gegl_color_set_pixel (color, babl_format ("CIE LCH(ab) float"), values);
break;
default:
@ -971,13 +971,13 @@ gimp_color_select_update_pos (GimpColorSelect *select)
{
GimpColorSelector *selector = GIMP_COLOR_SELECTOR (select);
GeglColor *color = gimp_color_selector_get_color (selector);
gdouble rgb[3];
gfloat rgb[3];
gdouble lch[3];
gfloat hsv[3];
gegl_color_get_pixel (color, babl_format_with_space ("R'G'B' double", select->format), rgb);
gegl_color_get_pixel (color, babl_format_with_space ("HSV float", select->format), hsv);
gegl_color_get_pixel (color, babl_format ("CIE LCH(ab) double"), lch);
gegl_color_get_pixel (color, babl_format ("CIE LCH(ab) float"), lch);
g_object_unref (color);
switch (select->z_color_fill)
@ -1602,7 +1602,7 @@ static void
color_select_render_lch_lightness (ColorSelectFill *csf)
{
guchar *p = csf->buffer;
gdouble lch[4] = { 0.0, 0.0, 0.0, 1.0 };
gfloat lch[4] = { 0.0, 0.0, 0.0, 1.0 };
guchar rgb[3];
gint i;
@ -1621,7 +1621,7 @@ static void
color_select_render_lch_chroma (ColorSelectFill *csf)
{
guchar *p = csf->buffer;
gdouble lch[4] = { 80.0, 0.0, 0.0, 1.0 };
gfloat lch[4] = { 80.0, 0.0, 0.0, 1.0 };
guchar rgb[3];
gint i;
@ -1640,7 +1640,7 @@ static void
color_select_render_lch_hue (ColorSelectFill *csf)
{
guchar *p = csf->buffer;
gdouble lch[4] = { 80.0, 200.0, 0.0, 1.0 };
gfloat lch[4] = { 80.0, 200.0, 0.0, 1.0 };
guchar rgb[3];
gint i;
@ -1895,7 +1895,7 @@ color_select_render_lch_chroma_lightness (ColorSelectFill *csf)
{
GeglColor *c = NULL;
guchar *p = csf->buffer;
gdouble lch[3];
gfloat lch[3];
c = gegl_color_new (NULL);
@ -1906,7 +1906,7 @@ color_select_render_lch_chroma_lightness (ColorSelectFill *csf)
{
lch[1] = i * 200.0 / csf->width;
gegl_color_set_pixel (c, babl_format ("CIE LCH(ab) double"), lch);
gegl_color_set_pixel (c, babl_format ("CIE LCH(ab) float"), lch);
if (gimp_color_is_out_of_gamut (c, babl_format_get_space (rgbf_format)) ||
(softproof_format &&
@ -1932,7 +1932,7 @@ color_select_render_lch_hue_lightness (ColorSelectFill *csf)
{
GeglColor *c = NULL;
guchar *p = csf->buffer;
gdouble lch[3];
gfloat lch[3];
c = gegl_color_new (NULL);
@ -1943,7 +1943,7 @@ color_select_render_lch_hue_lightness (ColorSelectFill *csf)
{
lch[2] = i * 360.0 / csf->width;
gegl_color_set_pixel (c, babl_format ("CIE LCH(ab) double"), lch);
gegl_color_set_pixel (c, babl_format ("CIE LCH(ab) float"), lch);
if (gimp_color_is_out_of_gamut (c, babl_format_get_space (rgbf_format)) ||
(softproof_format &&
@ -1969,7 +1969,7 @@ color_select_render_lch_hue_chroma (ColorSelectFill *csf)
{
GeglColor *c = NULL;
guchar *p = csf->buffer;
gdouble lch[3];
gfloat lch[3];
gint i;
c = gegl_color_new (NULL);
@ -1981,7 +1981,7 @@ color_select_render_lch_hue_chroma (ColorSelectFill *csf)
{
lch[2] = i * 360.0 / csf->width;
gegl_color_set_pixel (c, babl_format ("CIE LCH(ab) double"), lch);
gegl_color_set_pixel (c, babl_format ("CIE LCH(ab) float"), lch);
if (gimp_color_is_out_of_gamut (c, babl_format_get_space (rgbf_format)) ||
(softproof_format &&