mirror of
https://gitlab.gnome.org/GNOME/gimp.git
synced 2025-07-04 01:43:24 +00:00
core, widgets: Convert HSV/A to float
Per Pippin, the only color model that can have double precision is RGB/A. Therefore, we need to switch all others to use float instead. This patch converts the HSV and HSVA double babl formats.
This commit is contained in:
parent
2dc6f41114
commit
32d64ab1c9
11 changed files with 117 additions and 102 deletions
|
@ -305,19 +305,19 @@ context_foreground_hue_cmd_callback (GimpAction *action,
|
|||
{
|
||||
GimpContext *context;
|
||||
GeglColor *color;
|
||||
gdouble pixel[3];
|
||||
gfloat pixel[3];
|
||||
GimpActionSelectType select_type;
|
||||
return_if_no_context (context, data);
|
||||
|
||||
select_type = (GimpActionSelectType) g_variant_get_int32 (value);
|
||||
|
||||
color = gegl_color_duplicate (gimp_context_get_foreground (context));
|
||||
gegl_color_get_pixel (color, babl_format_with_space ("HSV double", NULL), pixel);
|
||||
pixel[0] = action_select_value (select_type,
|
||||
gegl_color_get_pixel (color, babl_format_with_space ("HSV float", NULL), pixel);
|
||||
pixel[0] = (gfloat) action_select_value (select_type,
|
||||
pixel[0],
|
||||
0.0, 1.0, 1.0,
|
||||
1.0 / 360.0, 0.01, 0.1, 0.0, FALSE);
|
||||
gegl_color_set_pixel (color, babl_format_with_space ("HSV double", NULL), pixel);
|
||||
gegl_color_set_pixel (color, babl_format_with_space ("HSV float", NULL), pixel);
|
||||
gimp_context_set_foreground (context, color);
|
||||
g_object_unref (color);
|
||||
}
|
||||
|
@ -329,19 +329,19 @@ context_foreground_saturation_cmd_callback (GimpAction *action,
|
|||
{
|
||||
GimpContext *context;
|
||||
GeglColor *color;
|
||||
gdouble pixel[3];
|
||||
gfloat pixel[3];
|
||||
GimpActionSelectType select_type;
|
||||
return_if_no_context (context, data);
|
||||
|
||||
select_type = (GimpActionSelectType) g_variant_get_int32 (value);
|
||||
|
||||
color = gegl_color_duplicate (gimp_context_get_foreground (context));
|
||||
gegl_color_get_pixel (color, babl_format_with_space ("HSV double", NULL), pixel);
|
||||
pixel[1] = action_select_value (select_type,
|
||||
gegl_color_get_pixel (color, babl_format_with_space ("HSV float", NULL), pixel);
|
||||
pixel[1] = (gfloat) action_select_value (select_type,
|
||||
pixel[1],
|
||||
0.0, 1.0, 1.0,
|
||||
0.01, 0.01, 0.1, 0.0, FALSE);
|
||||
gegl_color_set_pixel (color, babl_format_with_space ("HSV double", NULL), pixel);
|
||||
gegl_color_set_pixel (color, babl_format_with_space ("HSV float", NULL), pixel);
|
||||
gimp_context_set_foreground (context, color);
|
||||
g_object_unref (color);
|
||||
}
|
||||
|
@ -353,19 +353,19 @@ context_foreground_value_cmd_callback (GimpAction *action,
|
|||
{
|
||||
GimpContext *context;
|
||||
GeglColor *color;
|
||||
gdouble pixel[3];
|
||||
gfloat pixel[3];
|
||||
GimpActionSelectType select_type;
|
||||
return_if_no_context (context, data);
|
||||
|
||||
select_type = (GimpActionSelectType) g_variant_get_int32 (value);
|
||||
|
||||
color = gegl_color_duplicate (gimp_context_get_foreground (context));
|
||||
gegl_color_get_pixel (color, babl_format_with_space ("HSV double", NULL), pixel);
|
||||
pixel[2] = action_select_value (select_type,
|
||||
gegl_color_get_pixel (color, babl_format_with_space ("HSV float", NULL), pixel);
|
||||
pixel[2] = (gfloat) action_select_value (select_type,
|
||||
pixel[2],
|
||||
0.0, 1.0, 1.0,
|
||||
0.01, 0.01, 0.1, 0.0, FALSE);
|
||||
gegl_color_set_pixel (color, babl_format_with_space ("HSV double", NULL), pixel);
|
||||
gegl_color_set_pixel (color, babl_format_with_space ("HSV float", NULL), pixel);
|
||||
gimp_context_set_foreground (context, color);
|
||||
g_object_unref (color);
|
||||
}
|
||||
|
@ -377,19 +377,19 @@ context_background_hue_cmd_callback (GimpAction *action,
|
|||
{
|
||||
GimpContext *context;
|
||||
GeglColor *color;
|
||||
gdouble pixel[3];
|
||||
gfloat pixel[3];
|
||||
GimpActionSelectType select_type;
|
||||
return_if_no_context (context, data);
|
||||
|
||||
select_type = (GimpActionSelectType) g_variant_get_int32 (value);
|
||||
|
||||
color = gegl_color_duplicate (gimp_context_get_background (context));
|
||||
gegl_color_get_pixel (color, babl_format_with_space ("HSV double", NULL), pixel);
|
||||
pixel[0] = action_select_value (select_type,
|
||||
gegl_color_get_pixel (color, babl_format_with_space ("HSV float", NULL), pixel);
|
||||
pixel[0] = (gfloat) action_select_value (select_type,
|
||||
pixel[0],
|
||||
0.0, 1.0, 1.0,
|
||||
1.0 / 360.0, 0.01, 0.1, 0.0, FALSE);
|
||||
gegl_color_set_pixel (color, babl_format_with_space ("HSV double", NULL), pixel);
|
||||
gegl_color_set_pixel (color, babl_format_with_space ("HSV float", NULL), pixel);
|
||||
gimp_context_set_background (context, color);
|
||||
g_object_unref (color);
|
||||
}
|
||||
|
@ -401,19 +401,19 @@ context_background_saturation_cmd_callback (GimpAction *action,
|
|||
{
|
||||
GimpContext *context;
|
||||
GeglColor *color;
|
||||
gdouble pixel[3];
|
||||
gfloat pixel[3];
|
||||
GimpActionSelectType select_type;
|
||||
return_if_no_context (context, data);
|
||||
|
||||
select_type = (GimpActionSelectType) g_variant_get_int32 (value);
|
||||
|
||||
color = gegl_color_duplicate (gimp_context_get_background (context));
|
||||
gegl_color_get_pixel (color, babl_format_with_space ("HSV double", NULL), pixel);
|
||||
pixel[1] = action_select_value (select_type,
|
||||
gegl_color_get_pixel (color, babl_format_with_space ("HSV float", NULL), pixel);
|
||||
pixel[1] = (gfloat) action_select_value (select_type,
|
||||
pixel[1],
|
||||
0.0, 1.0, 1.0,
|
||||
0.01, 0.01, 0.1, 0.0, FALSE);
|
||||
gegl_color_set_pixel (color, babl_format_with_space ("HSV double", NULL), pixel);
|
||||
gegl_color_set_pixel (color, babl_format_with_space ("HSV float", NULL), pixel);
|
||||
gimp_context_set_background (context, color);
|
||||
g_object_unref (color);
|
||||
}
|
||||
|
@ -425,19 +425,19 @@ context_background_value_cmd_callback (GimpAction *action,
|
|||
{
|
||||
GimpContext *context;
|
||||
GeglColor *color;
|
||||
gdouble pixel[3];
|
||||
gfloat pixel[3];
|
||||
GimpActionSelectType select_type;
|
||||
return_if_no_context (context, data);
|
||||
|
||||
select_type = (GimpActionSelectType) g_variant_get_int32 (value);
|
||||
|
||||
color = gegl_color_duplicate (gimp_context_get_background (context));
|
||||
gegl_color_get_pixel (color, babl_format_with_space ("HSV double", NULL), pixel);
|
||||
pixel[2] = action_select_value (select_type,
|
||||
gegl_color_get_pixel (color, babl_format_with_space ("HSV float", NULL), pixel);
|
||||
pixel[2] = (gfloat) action_select_value (select_type,
|
||||
pixel[2],
|
||||
0.0, 1.0, 1.0,
|
||||
0.01, 0.01, 0.1, 0.0, FALSE);
|
||||
gegl_color_set_pixel (color, babl_format_with_space ("HSV double", NULL), pixel);
|
||||
gegl_color_set_pixel (color, babl_format_with_space ("HSV float", NULL), pixel);
|
||||
gimp_context_set_background (context, color);
|
||||
g_object_unref (color);
|
||||
}
|
||||
|
|
|
@ -596,11 +596,11 @@ gimp_gradient_get_color_at (GimpGradient *gradient,
|
|||
}
|
||||
else
|
||||
{
|
||||
gdouble left_hsv[3];
|
||||
gdouble right_hsv[3];
|
||||
gfloat left_hsv[3];
|
||||
gfloat right_hsv[3];
|
||||
|
||||
gegl_color_get_pixel (left_color, babl_format ("HSV double"), left_hsv);
|
||||
gegl_color_get_pixel (right_color, babl_format ("HSV double"), right_hsv);
|
||||
gegl_color_get_pixel (left_color, babl_format ("HSV float"), left_hsv);
|
||||
gegl_color_get_pixel (right_color, babl_format ("HSV float"), right_hsv);
|
||||
|
||||
left_hsv[1] = left_hsv[1] + (right_hsv[1] - left_hsv[1]) * factor;
|
||||
left_hsv[2] = left_hsv[2] + (right_hsv[2] - left_hsv[2]) * factor;
|
||||
|
@ -641,7 +641,7 @@ gimp_gradient_get_color_at (GimpGradient *gradient,
|
|||
break;
|
||||
}
|
||||
|
||||
gegl_color_set_pixel (*color, babl_format ("HSV double"), left_hsv);
|
||||
gegl_color_set_pixel (*color, babl_format ("HSV float"), left_hsv);
|
||||
}
|
||||
|
||||
/* Calculate alpha */
|
||||
|
|
|
@ -563,11 +563,11 @@ gimp_palette_load_aco (GimpContext *context,
|
|||
}
|
||||
else if (color_space == 1) /* HSV */
|
||||
{
|
||||
gdouble hsv[3] = { ((gdouble) w) / 65536.0,
|
||||
((gdouble) x) / 65536.0,
|
||||
((gdouble) y) / 65536.0};
|
||||
gfloat hsv[3] = { ((gfloat) w) / 65536.0f,
|
||||
((gfloat) x) / 65536.0f,
|
||||
((gfloat) y) / 65536.0f};
|
||||
|
||||
gegl_color_set_pixel (color, babl_format ("HSV double"), hsv);
|
||||
gegl_color_set_pixel (color, babl_format ("HSV float"), hsv);
|
||||
color_ok = TRUE;
|
||||
}
|
||||
else if (color_space == 2) /* CMYK */
|
||||
|
|
|
@ -508,14 +508,14 @@ gimp_circle_background_hsv (gdouble angle,
|
|||
gdouble distance,
|
||||
guchar *rgb)
|
||||
{
|
||||
gdouble hsv[3];
|
||||
gfloat hsv[3];
|
||||
GeglColor *color = gegl_color_new ("black");
|
||||
|
||||
hsv[0] = angle / (2.0 * G_PI);
|
||||
hsv[1] = distance;
|
||||
hsv[2] = 1 - sqrt (distance) / 4;
|
||||
|
||||
gegl_color_set_pixel (color, babl_format ("HSV double"), hsv);
|
||||
gegl_color_set_pixel (color, babl_format ("HSV float"), hsv);
|
||||
gegl_color_get_pixel (color, babl_format ("R'G'B' u8"), rgb);
|
||||
g_object_unref (color);
|
||||
}
|
||||
|
|
|
@ -1310,7 +1310,7 @@ view_set_hint (GimpGradientEditor *editor,
|
|||
GimpDataEditor *data_editor = GIMP_DATA_EDITOR (editor);
|
||||
GeglColor *color = NULL;
|
||||
gdouble rgb[4];
|
||||
gdouble hsv[3];
|
||||
gfloat hsv[3];
|
||||
gdouble xpos;
|
||||
gchar *str1;
|
||||
gchar *str2;
|
||||
|
@ -1326,7 +1326,7 @@ view_set_hint (GimpGradientEditor *editor,
|
|||
gimp_color_area_set_color (GIMP_COLOR_AREA (editor->current_color), color);
|
||||
|
||||
gegl_color_get_pixel (color, babl_format ("R'G'B'A double"), rgb);
|
||||
gegl_color_get_pixel (color, babl_format ("HSV double"), hsv);
|
||||
gegl_color_get_pixel (color, babl_format ("HSV float"), hsv);
|
||||
|
||||
str1 = g_strdup_printf (_("Position: %0.4f"), xpos);
|
||||
/* TODO: Current hints are displaying sRGB values. Ideally we'd want to update
|
||||
|
|
|
@ -1030,6 +1030,7 @@ gimp_scanner_parse_deprecated_color (GimpScanner *scanner,
|
|||
case G_TOKEN_SYMBOL:
|
||||
{
|
||||
gdouble col[4] = { 0.0, 0.0, 0.0, 1.0 };
|
||||
gdouble col_f[4] = { 0.0, 0.0, 0.0, 1.0 };
|
||||
gint n_channels = 4;
|
||||
gboolean is_hsv = FALSE;
|
||||
gint i;
|
||||
|
@ -1056,11 +1057,13 @@ gimp_scanner_parse_deprecated_color (GimpScanner *scanner,
|
|||
{
|
||||
if (! gimp_scanner_parse_float (scanner, &col[i]))
|
||||
goto finish;
|
||||
|
||||
col_f[i] = (gfloat) col[i];
|
||||
}
|
||||
|
||||
*color = gegl_color_new (NULL);
|
||||
if (is_hsv)
|
||||
gegl_color_set_pixel (*color, babl_format ("HSVA double"), col);
|
||||
gegl_color_set_pixel (*color, babl_format ("HSVA float"), col_f);
|
||||
else
|
||||
gegl_color_set_pixel (*color, babl_format ("R'G'B'A double"), col);
|
||||
|
||||
|
|
|
@ -149,7 +149,7 @@ gimp_color_scale_class_init (GimpColorScaleClass *klass)
|
|||
|
||||
fish_lch_to_rgb = babl_fish (babl_format ("CIE LCH(ab) double"),
|
||||
babl_format ("R'G'B' double"));
|
||||
fish_hsv_to_rgb = babl_fish (babl_format ("HSV double"),
|
||||
fish_hsv_to_rgb = babl_fish (babl_format ("HSV float"),
|
||||
babl_format ("R'G'B' double"));
|
||||
fish_rgb_to_cairo = babl_fish (babl_format ("R'G'B' u8"),
|
||||
babl_format ("cairo-RGB24"));
|
||||
|
@ -519,7 +519,7 @@ gimp_color_scale_set_format (GimpColorScale *scale,
|
|||
scale->priv->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 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->priv->needs_render = TRUE;
|
||||
gtk_widget_queue_draw (GTK_WIDGET (scale));
|
||||
|
@ -657,11 +657,12 @@ gimp_color_scale_render (GimpColorScale *scale)
|
|||
GimpColorScalePrivate *priv = GET_PRIVATE (scale);
|
||||
GtkRange *range = GTK_RANGE (scale);
|
||||
gdouble rgb[4];
|
||||
gdouble hsv[3];
|
||||
gfloat hsv[3];
|
||||
gdouble lch[3];
|
||||
gint multiplier = 1;
|
||||
guint x, y;
|
||||
gdouble *channel_value = NULL;
|
||||
gfloat *channel_value_f = NULL;
|
||||
gboolean from_hsv = FALSE;
|
||||
gboolean from_lch = FALSE;
|
||||
gboolean invert;
|
||||
|
@ -678,14 +679,14 @@ gimp_color_scale_render (GimpColorScale *scale)
|
|||
}
|
||||
|
||||
gegl_color_get_pixel (priv->color, babl_format_with_space ("R'G'B'A double", priv->format), rgb);
|
||||
gegl_color_get_pixel (priv->color, babl_format_with_space ("HSV double", priv->format), hsv);
|
||||
gegl_color_get_pixel (priv->color, babl_format_with_space ("HSV float", priv->format), hsv);
|
||||
gegl_color_get_pixel (priv->color, babl_format ("CIE LCH(ab) double"), lch);
|
||||
|
||||
switch (priv->channel)
|
||||
{
|
||||
case GIMP_COLOR_SELECTOR_HUE: channel_value = &hsv[0]; break;
|
||||
case GIMP_COLOR_SELECTOR_SATURATION: channel_value = &hsv[1]; break;
|
||||
case GIMP_COLOR_SELECTOR_VALUE: channel_value = &hsv[2]; break;
|
||||
case GIMP_COLOR_SELECTOR_HUE: channel_value_f = &hsv[0]; break;
|
||||
case GIMP_COLOR_SELECTOR_SATURATION: channel_value_f = &hsv[1]; break;
|
||||
case GIMP_COLOR_SELECTOR_VALUE: channel_value_f = &hsv[2]; break;
|
||||
|
||||
case GIMP_COLOR_SELECTOR_RED: channel_value = &rgb[0]; break;
|
||||
case GIMP_COLOR_SELECTOR_GREEN: channel_value = &rgb[1]; break;
|
||||
|
@ -734,7 +735,10 @@ gimp_color_scale_render (GimpColorScale *scale)
|
|||
if (invert)
|
||||
value = multiplier - value;
|
||||
|
||||
if (channel_value)
|
||||
*channel_value = value;
|
||||
else if (channel_value_f)
|
||||
*channel_value_f = (gfloat) value;
|
||||
|
||||
if (from_hsv)
|
||||
babl_process (fish_hsv_to_rgb, &hsv, &rgb, 1);
|
||||
|
@ -778,7 +782,10 @@ gimp_color_scale_render (GimpColorScale *scale)
|
|||
if (invert)
|
||||
value = multiplier - value;
|
||||
|
||||
if (channel_value)
|
||||
*channel_value = value;
|
||||
else if (channel_value_f)
|
||||
*channel_value_f = (gfloat) value;
|
||||
|
||||
if (from_hsv)
|
||||
babl_process (fish_hsv_to_rgb, &hsv, &rgb, 1);
|
||||
|
|
|
@ -803,13 +803,14 @@ gimp_color_scales_update_scales (GimpColorScales *scales,
|
|||
GimpColorSelector *selector = GIMP_COLOR_SELECTOR (scales);
|
||||
GeglColor *color = gimp_color_selector_get_color (selector);
|
||||
gdouble pixel[4];
|
||||
gfloat pixel_f[4];
|
||||
gdouble values[G_N_ELEMENTS (scale_defs)];
|
||||
gint i;
|
||||
|
||||
gegl_color_get_pixel (color, babl_format_with_space ("HSV double", scales->format), pixel);
|
||||
values[GIMP_COLOR_SELECTOR_HUE] = pixel[0] * 360.0;
|
||||
values[GIMP_COLOR_SELECTOR_SATURATION] = pixel[1] * 100.0;
|
||||
values[GIMP_COLOR_SELECTOR_VALUE] = pixel[2] * 100.0;
|
||||
gegl_color_get_pixel (color, babl_format_with_space ("HSV float", scales->format), pixel_f);
|
||||
values[GIMP_COLOR_SELECTOR_HUE] = pixel_f[0] * 360.0;
|
||||
values[GIMP_COLOR_SELECTOR_SATURATION] = pixel_f[1] * 100.0;
|
||||
values[GIMP_COLOR_SELECTOR_VALUE] = pixel_f[2] * 100.0;
|
||||
|
||||
gegl_color_get_pixel (color, babl_format_with_space ("R'G'B'A double", scales->format), pixel);
|
||||
values[GIMP_COLOR_SELECTOR_RED] = pixel[0] * 100.0;
|
||||
|
@ -887,7 +888,7 @@ gimp_color_scales_scale_changed (GtkWidget *scale,
|
|||
GeglColor *color = gimp_color_selector_get_color (selector);
|
||||
gdouble value = gimp_label_spin_get_value (GIMP_LABEL_SPIN (scale));
|
||||
gdouble lch[4];
|
||||
gdouble hsv[4];
|
||||
gfloat hsv[4];
|
||||
gdouble rgb[4];
|
||||
gint i;
|
||||
|
||||
|
@ -896,21 +897,21 @@ gimp_color_scales_scale_changed (GtkWidget *scale,
|
|||
break;
|
||||
|
||||
gegl_color_get_pixel (color, babl_format_with_space ("R'G'B'A double", scales->format), rgb);
|
||||
gegl_color_get_pixel (color, babl_format_with_space ("HSVA double", scales->format), hsv);
|
||||
gegl_color_get_pixel (color, babl_format_with_space ("HSVA float", scales->format), hsv);
|
||||
gegl_color_get_pixel (color, babl_format ("CIE LCH(ab) alpha double"), lch);
|
||||
|
||||
switch (i)
|
||||
{
|
||||
case GIMP_COLOR_SELECTOR_HUE:
|
||||
hsv[0] = value / 360.0;
|
||||
hsv[0] = value / 360.0f;
|
||||
break;
|
||||
|
||||
case GIMP_COLOR_SELECTOR_SATURATION:
|
||||
hsv[1] = value / 100.0;
|
||||
hsv[1] = value / 100.0f;
|
||||
break;
|
||||
|
||||
case GIMP_COLOR_SELECTOR_VALUE:
|
||||
hsv[2] = value / 100.0;
|
||||
hsv[2] = value / 100.0f;
|
||||
break;
|
||||
|
||||
case GIMP_COLOR_SELECTOR_RED:
|
||||
|
@ -962,7 +963,7 @@ gimp_color_scales_scale_changed (GtkWidget *scale,
|
|||
if ((i >= GIMP_COLOR_SELECTOR_HUE) &&
|
||||
(i <= GIMP_COLOR_SELECTOR_VALUE))
|
||||
{
|
||||
gegl_color_set_pixel (color, babl_format_with_space ("HSVA double", scales->format), hsv);
|
||||
gegl_color_set_pixel (color, babl_format_with_space ("HSVA float", scales->format), hsv);
|
||||
}
|
||||
else if ((i >= GIMP_COLOR_SELECTOR_LCH_LIGHTNESS) &&
|
||||
(i <= GIMP_COLOR_SELECTOR_LCH_HUE))
|
||||
|
|
|
@ -894,11 +894,12 @@ gimp_color_select_update_values (GimpColorSelect *select)
|
|||
GimpColorSelector *selector = GIMP_COLOR_SELECTOR (select);
|
||||
GeglColor *color = gimp_color_selector_get_color (selector);
|
||||
gdouble values[3];
|
||||
gfloat values_float[3];
|
||||
const Babl *rgb_format;
|
||||
const Babl *hsv_format;
|
||||
|
||||
rgb_format = babl_format_with_space ("R'G'B' double", select->format);
|
||||
hsv_format = babl_format_with_space ("HSV double", select->format);
|
||||
hsv_format = babl_format_with_space ("HSV float", select->format);
|
||||
|
||||
switch (select->z_color_fill)
|
||||
{
|
||||
|
@ -919,19 +920,22 @@ gimp_color_select_update_values (GimpColorSelect *select)
|
|||
break;
|
||||
|
||||
case COLOR_SELECT_HUE:
|
||||
values[0] = select->pos[2];
|
||||
values[1] = select->pos[0];
|
||||
values[2] = select->pos[1];
|
||||
gegl_color_set_pixel (color, hsv_format, values);
|
||||
values_float[0] = select->pos[2];
|
||||
values_float[1] = select->pos[0];
|
||||
values_float[2] = select->pos[1];
|
||||
gegl_color_set_pixel (color, hsv_format, values_float);
|
||||
break;
|
||||
case COLOR_SELECT_SATURATION:
|
||||
values[0] = select->pos[0];
|
||||
values[1] = select->pos[2];
|
||||
values[2] = select->pos[1];
|
||||
gegl_color_set_pixel (color, hsv_format, values);
|
||||
values_float[0] = select->pos[0];
|
||||
values_float[1] = select->pos[2];
|
||||
values_float[2] = select->pos[1];
|
||||
gegl_color_set_pixel (color, hsv_format, values_float);
|
||||
break;
|
||||
case COLOR_SELECT_VALUE:
|
||||
gegl_color_set_pixel (color, hsv_format, select->pos);
|
||||
values_float[0] = select->pos[0];
|
||||
values_float[1] = select->pos[1];
|
||||
values_float[2] = select->pos[2];
|
||||
gegl_color_set_pixel (color, hsv_format, values_float);
|
||||
break;
|
||||
|
||||
case COLOR_SELECT_LCH_LIGHTNESS:
|
||||
|
@ -969,10 +973,10 @@ gimp_color_select_update_pos (GimpColorSelect *select)
|
|||
GeglColor *color = gimp_color_selector_get_color (selector);
|
||||
gdouble rgb[3];
|
||||
gdouble lch[3];
|
||||
gdouble hsv[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 double", select->format), hsv);
|
||||
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);
|
||||
g_object_unref (color);
|
||||
|
||||
|
|
|
@ -415,10 +415,10 @@ read_image_palette (GimpImage *image,
|
|||
for (index = 0; index < ncolors; ++index)
|
||||
{
|
||||
GeglColor *c = colors[index];
|
||||
gdouble hsv[3];
|
||||
gfloat hsv[3];
|
||||
gchar *text = g_strdup_printf ("%d", index);
|
||||
|
||||
gegl_color_get_pixel (c, babl_format ("HSV double"), hsv);
|
||||
gegl_color_get_pixel (c, babl_format ("HSV float"), hsv);
|
||||
|
||||
reverse_order[index] = ncolors - index - 1;
|
||||
|
||||
|
|
|
@ -725,14 +725,14 @@ load_resource_1007 (const PSDimageres *res_a,
|
|||
|
||||
case PSD_CS_HSB:
|
||||
{
|
||||
gdouble hsv[3] =
|
||||
gfloat hsv[3] =
|
||||
{
|
||||
ps_color.hsv.hue / 65535.0,
|
||||
ps_color.hsv.saturation / 65535.0,
|
||||
ps_color.hsv.value / 65535.0
|
||||
ps_color.hsv.hue / 65535.0f,
|
||||
ps_color.hsv.saturation / 65535.0f,
|
||||
ps_color.hsv.value / 65535.0f
|
||||
};
|
||||
|
||||
gegl_color_set_pixel (color, babl_format ("HSV double"), hsv);
|
||||
gegl_color_set_pixel (color, babl_format ("HSV float"), hsv);
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -1461,14 +1461,14 @@ load_resource_1077 (const PSDimageres *res_a,
|
|||
|
||||
case PSD_CS_HSB:
|
||||
{
|
||||
gdouble hsv[3] =
|
||||
gfloat hsv[3] =
|
||||
{
|
||||
ps_color.hsv.hue / 65535.0,
|
||||
ps_color.hsv.saturation / 65535.0,
|
||||
ps_color.hsv.value / 65535.0
|
||||
ps_color.hsv.hue / 65535.0f,
|
||||
ps_color.hsv.saturation / 65535.0f,
|
||||
ps_color.hsv.value / 65535.0f
|
||||
};
|
||||
|
||||
gegl_color_set_pixel (color, babl_format ("HSV double"), hsv);
|
||||
gegl_color_set_pixel (color, babl_format ("HSV float"), hsv);
|
||||
}
|
||||
break;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue