app/gui/info-window.c libgimpcolor/gimpcolorspace.c libgimpcolor/gimprgb.c

2003-06-13  Sven Neumann  <sven@gimp.org>

	* app/gui/info-window.c
	* libgimpcolor/gimpcolorspace.c
	* libgimpcolor/gimprgb.c
	* libgimpwidgets/gimpcolorscales.c
	* libgimpwidgets/gimpcolorselect.c: use ROUND() where appropriate.

	* libgimpwidgets/gimpcolorarea.c (gimp_color_area_render): use
	gimp_rgb_get_uchar().
This commit is contained in:
Sven Neumann 2003-06-13 16:44:21 +00:00 committed by Sven Neumann
parent 4dcb6a3757
commit aa4448db64
8 changed files with 80 additions and 75 deletions

View File

@ -1,3 +1,14 @@
2003-06-13 Sven Neumann <sven@gimp.org>
* app/gui/info-window.c
* libgimpcolor/gimpcolorspace.c
* libgimpcolor/gimprgb.c
* libgimpwidgets/gimpcolorscales.c
* libgimpwidgets/gimpcolorselect.c: use ROUND() where appropriate.
* libgimpwidgets/gimpcolorarea.c (gimp_color_area_render): use
gimp_rgb_get_uchar().
2003-06-13 Michael Natterer <mitch@gimp.org> 2003-06-13 Michael Natterer <mitch@gimp.org>
Cleaned up and improved the message system: Cleaned up and improved the message system:

View File

@ -561,13 +561,13 @@ info_window_update_extended (GimpDisplay *gdisp,
color[BLUE_PIX]); color[BLUE_PIX]);
gimp_rgb_to_hsv (&rgb, &hsv); gimp_rgb_to_hsv (&rgb, &hsv);
g_snprintf (buf, sizeof (buf), "%d", (gint) (hsv.h * 359.999 + 0.5)); g_snprintf (buf, sizeof (buf), "%d", ROUND (hsv.h * 360.0));
gtk_label_set_text (GTK_LABEL (iwd->hsv_labels[0]), buf); gtk_label_set_text (GTK_LABEL (iwd->hsv_labels[0]), buf);
g_snprintf (buf, sizeof (buf), "%d", (gint) (hsv.s * 99.999 + 0.5)); g_snprintf (buf, sizeof (buf), "%d", ROUND (hsv.s * 100.0));
gtk_label_set_text (GTK_LABEL (iwd->hsv_labels[1]), buf); gtk_label_set_text (GTK_LABEL (iwd->hsv_labels[1]), buf);
g_snprintf (buf, sizeof (buf), "%d", (gint) (hsv.v * 99.999 + 0.5)); g_snprintf (buf, sizeof (buf), "%d", ROUND (hsv.v * 100.0));
gtk_label_set_text (GTK_LABEL (iwd->hsv_labels[2]), buf); gtk_label_set_text (GTK_LABEL (iwd->hsv_labels[2]), buf);
g_free (color); g_free (color);

View File

@ -561,13 +561,13 @@ info_window_update_extended (GimpDisplay *gdisp,
color[BLUE_PIX]); color[BLUE_PIX]);
gimp_rgb_to_hsv (&rgb, &hsv); gimp_rgb_to_hsv (&rgb, &hsv);
g_snprintf (buf, sizeof (buf), "%d", (gint) (hsv.h * 359.999 + 0.5)); g_snprintf (buf, sizeof (buf), "%d", ROUND (hsv.h * 360.0));
gtk_label_set_text (GTK_LABEL (iwd->hsv_labels[0]), buf); gtk_label_set_text (GTK_LABEL (iwd->hsv_labels[0]), buf);
g_snprintf (buf, sizeof (buf), "%d", (gint) (hsv.s * 99.999 + 0.5)); g_snprintf (buf, sizeof (buf), "%d", ROUND (hsv.s * 100.0));
gtk_label_set_text (GTK_LABEL (iwd->hsv_labels[1]), buf); gtk_label_set_text (GTK_LABEL (iwd->hsv_labels[1]), buf);
g_snprintf (buf, sizeof (buf), "%d", (gint) (hsv.v * 99.999 + 0.5)); g_snprintf (buf, sizeof (buf), "%d", ROUND (hsv.v * 100.0));
gtk_label_set_text (GTK_LABEL (iwd->hsv_labels[2]), buf); gtk_label_set_text (GTK_LABEL (iwd->hsv_labels[2]), buf);
g_free (color); g_free (color);

View File

@ -454,39 +454,39 @@ gimp_hsv_to_rgb_int (gint *hue,
switch ((gint) h) switch ((gint) h)
{ {
case 0: case 0:
*hue = v * 255; *hue = ROUND (v * 255.0);
*saturation = t * 255; *saturation = ROUND (t * 255.0);
*value = p * 255; *value = ROUND (p * 255.0);
break; break;
case 1: case 1:
*hue = q * 255; *hue = ROUND (q * 255.0);
*saturation = v * 255; *saturation = ROUND (v * 255.0);
*value = p * 255; *value = ROUND (p * 255.0);
break; break;
case 2: case 2:
*hue = p * 255; *hue = ROUND (p * 255.0);
*saturation = v * 255; *saturation = ROUND (v * 255.0);
*value = t * 255; *value = ROUND (t * 255.0);
break; break;
case 3: case 3:
*hue = p * 255; *hue = ROUND (p * 255.0);
*saturation = q * 255; *saturation = ROUND (q * 255.0);
*value = v * 255; *value = ROUND (v * 255.0);
break; break;
case 4: case 4:
*hue = t * 255; *hue = ROUND (t * 255.0);
*saturation = p * 255; *saturation = ROUND (p * 255.0);
*value = v * 255; *value = ROUND (v * 255.0);
break; break;
case 5: case 5:
*hue = v * 255; *hue = ROUND (v * 255.0);
*saturation = p * 255; *saturation = ROUND (p * 255.0);
*value = q * 255; *value = ROUND (q * 255.0);
break; break;
} }
} }
@ -767,7 +767,7 @@ gimp_hsv_to_rgb4 (guchar *rgb,
} }
} }
rgb[0] = hue * 254.999 + 0.5; rgb[0] = ROUND (hue * 255.0);
rgb[1] = saturation * 254.999 + 0.5; rgb[1] = ROUND (saturation * 255.0);
rgb[2] = value * 254.999 + 0.5; rgb[2] = ROUND (value * 255.0);
} }

View File

@ -73,9 +73,9 @@ gimp_rgb_get_uchar (const GimpRGB *rgb,
{ {
g_return_if_fail (rgb != NULL); g_return_if_fail (rgb != NULL);
if (r) *r = CLAMP (rgb->r, 0.0, 1.0) * 254.999 + 0.5; if (r) *r = ROUND (CLAMP (rgb->r, 0.0, 1.0) * 255.0);
if (g) *g = CLAMP (rgb->g, 0.0, 1.0) * 254.999 + 0.5; if (g) *g = ROUND (CLAMP (rgb->g, 0.0, 1.0) * 255.0);
if (b) *b = CLAMP (rgb->b, 0.0, 1.0) * 254.999 + 0.5; if (b) *b = ROUND (CLAMP (rgb->b, 0.0, 1.0) * 255.0);
} }
void void
@ -191,7 +191,7 @@ gimp_rgb_intensity_uchar (const GimpRGB *rgb)
{ {
g_return_val_if_fail (rgb != NULL, 0); g_return_val_if_fail (rgb != NULL, 0);
return gimp_rgb_intensity (rgb) * 254.999 + 0.5; return ROUND (gimp_rgb_intensity (rgb) * 255.0);
} }
void void
@ -280,10 +280,10 @@ gimp_rgba_get_uchar (const GimpRGB *rgba,
{ {
g_return_if_fail (rgba != NULL); g_return_if_fail (rgba != NULL);
if (r) *r = CLAMP (rgba->r, 0.0, 1.0) * 254.999 + 0.5; if (r) *r = ROUND (CLAMP (rgba->r, 0.0, 1.0) * 255.0);
if (g) *g = CLAMP (rgba->g, 0.0, 1.0) * 254.999 + 0.5; if (g) *g = ROUND (CLAMP (rgba->g, 0.0, 1.0) * 255.0);
if (b) *b = CLAMP (rgba->b, 0.0, 1.0) * 254.999 + 0.5; if (b) *b = ROUND (CLAMP (rgba->b, 0.0, 1.0) * 255.0);
if (a) *a = CLAMP (rgba->a, 0.0, 1.0) * 254.999 + 0.5; if (a) *a = ROUND (CLAMP (rgba->a, 0.0, 1.0) * 255.0);
} }
void void

View File

@ -418,9 +418,7 @@ gimp_color_area_render (GimpColorArea *area)
break; break;
} }
opaque[0] = area->color.r * 255.999; gimp_rgb_get_uchar (&area->color, opaque, opaque + 1, opaque + 2);
opaque[1] = area->color.g * 255.999;
opaque[2] = area->color.b * 255.999;
if (area->color.a == 1.0 || !check_size) if (area->color.a == 1.0 || !check_size)
{ {

View File

@ -32,6 +32,7 @@
#include <gdk/gdkkeysyms.h> #include <gdk/gdkkeysyms.h>
#include "libgimpcolor/gimpcolor.h" #include "libgimpcolor/gimpcolor.h"
#include "libgimpmath/gimpmath.h"
#include "gimpwidgetstypes.h" #include "gimpwidgetstypes.h"
@ -386,13 +387,13 @@ gimp_color_scales_update_scales (GimpColorScales *scales,
selector = GIMP_COLOR_SELECTOR (scales); selector = GIMP_COLOR_SELECTOR (scales);
values[GIMP_COLOR_SELECTOR_HUE] = (gint) (selector->hsv.h * 359.999 + 0.5); values[GIMP_COLOR_SELECTOR_HUE] = ROUND (selector->hsv.h * 360.0);
values[GIMP_COLOR_SELECTOR_SATURATION] = (gint) (selector->hsv.s * 99.999 + 0.5); values[GIMP_COLOR_SELECTOR_SATURATION] = ROUND (selector->hsv.s * 100.0);
values[GIMP_COLOR_SELECTOR_VALUE] = (gint) (selector->hsv.v * 99.999 + 0.5); values[GIMP_COLOR_SELECTOR_VALUE] = ROUND (selector->hsv.v * 100.0);
values[GIMP_COLOR_SELECTOR_RED] = (gint) (selector->rgb.r * 254.999 + 0.5); values[GIMP_COLOR_SELECTOR_RED] = ROUND (selector->rgb.r * 255.0);
values[GIMP_COLOR_SELECTOR_GREEN] = (gint) (selector->rgb.g * 254.999 + 0.5); values[GIMP_COLOR_SELECTOR_GREEN] = ROUND (selector->rgb.g * 255.0);
values[GIMP_COLOR_SELECTOR_BLUE] = (gint) (selector->rgb.b * 254.999 + 0.5); values[GIMP_COLOR_SELECTOR_BLUE] = ROUND (selector->rgb.b * 255.0);
values[GIMP_COLOR_SELECTOR_ALPHA] = (gint) (selector->rgb.a * 99.999 + 0.5); values[GIMP_COLOR_SELECTOR_ALPHA] = ROUND (selector->rgb.a * 100.0);
for (i = 0; i < 7; i++) for (i = 0; i < 7; i++)
{ {

View File

@ -34,6 +34,7 @@
#include <gdk/gdkkeysyms.h> #include <gdk/gdkkeysyms.h>
#include "libgimpcolor/gimpcolor.h" #include "libgimpcolor/gimpcolor.h"
#include "libgimpmath/gimpmath.h"
#include "gimpwidgetstypes.h" #include "gimpwidgetstypes.h"
@ -621,35 +622,35 @@ gimp_color_select_update_pos (GimpColorSelect *select)
switch (select->z_color_fill) switch (select->z_color_fill)
{ {
case COLOR_SELECT_RED: case COLOR_SELECT_RED:
select->pos[0] = (gint) (selector->rgb.b * 254.999 + 0.5); select->pos[0] = ROUND (selector->rgb.b * 255.0);
select->pos[1] = (gint) (selector->rgb.g * 254.999 + 0.5); select->pos[1] = ROUND (selector->rgb.g * 255.0);
select->pos[2] = (gint) (selector->rgb.r * 254.999 + 0.5); select->pos[2] = ROUND (selector->rgb.r * 255.0);
break; break;
case COLOR_SELECT_GREEN: case COLOR_SELECT_GREEN:
select->pos[0] = (gint) (selector->rgb.b * 254.999 + 0.5); select->pos[0] = ROUND (selector->rgb.b * 255.0);
select->pos[1] = (gint) (selector->rgb.r * 254.999 + 0.5); select->pos[1] = ROUND (selector->rgb.r * 255.0);
select->pos[2] = (gint) (selector->rgb.g * 254.999 + 0.5); select->pos[2] = ROUND (selector->rgb.g * 255.0);
break; break;
case COLOR_SELECT_BLUE: case COLOR_SELECT_BLUE:
select->pos[0] = (gint) (selector->rgb.g * 254.999 + 0.5); select->pos[0] = ROUND (selector->rgb.g * 255.0);
select->pos[1] = (gint) (selector->rgb.r * 254.999 + 0.5); select->pos[1] = ROUND (selector->rgb.r * 255.0);
select->pos[2] = (gint) (selector->rgb.b * 254.999 + 0.5); select->pos[2] = ROUND (selector->rgb.b * 255.0);
break; break;
case COLOR_SELECT_HUE: case COLOR_SELECT_HUE:
select->pos[0] = (gint) (selector->hsv.v * 254.999 + 0.5); select->pos[0] = ROUND (selector->hsv.v * 255.0);
select->pos[1] = (gint) (selector->hsv.s * 254.999 + 0.5); select->pos[1] = ROUND (selector->hsv.s * 255.0);
select->pos[2] = (gint) (selector->hsv.h * 254.999 + 0.5); select->pos[2] = ROUND (selector->hsv.h * 255.0);
break; break;
case COLOR_SELECT_SATURATION: case COLOR_SELECT_SATURATION:
select->pos[0] = (gint) (selector->hsv.v * 254.999 + 0.5); select->pos[0] = ROUND (selector->hsv.v * 255.0);
select->pos[1] = (gint) (selector->hsv.h * 254.999 + 0.5); select->pos[1] = ROUND (selector->hsv.h * 255.0);
select->pos[2] = (gint) (selector->hsv.s * 254.999 + 0.5); select->pos[2] = ROUND (selector->hsv.s * 255.0);
break; break;
case COLOR_SELECT_VALUE: case COLOR_SELECT_VALUE:
select->pos[0] = (gint) (selector->hsv.s * 254.999 + 0.5); select->pos[0] = ROUND (selector->hsv.s * 255.0);
select->pos[1] = (gint) (selector->hsv.h * 254.999 + 0.5); select->pos[1] = ROUND (selector->hsv.h * 255.0);
select->pos[2] = (gint) (selector->hsv.v * 254.999 + 0.5); select->pos[2] = ROUND (selector->hsv.v * 255.0);
break; break;
default: default:
@ -743,14 +744,8 @@ gimp_color_select_xy_events (GtkWidget *widget,
select->pos[0] = (x * 255) / (XY_DEF_WIDTH - 1); select->pos[0] = (x * 255) / (XY_DEF_WIDTH - 1);
select->pos[1] = 255 - (y * 255) / (XY_DEF_HEIGHT - 1); select->pos[1] = 255 - (y * 255) / (XY_DEF_HEIGHT - 1);
if (select->pos[0] < 0) select->pos[0] = CLAMP (select->pos[0], 0, 255);
select->pos[0] = 0; select->pos[1] = CLAMP (select->pos[1], 0, 255);
if (select->pos[0] > 255)
select->pos[0] = 255;
if (select->pos[1] < 0)
select->pos[1] = 0;
if (select->pos[1] > 255)
select->pos[1] = 255;
gimp_color_select_draw_xy_marker (select, NULL); gimp_color_select_draw_xy_marker (select, NULL);
gimp_color_select_update (select, UPDATE_VALUES | UPDATE_CALLER); gimp_color_select_update (select, UPDATE_VALUES | UPDATE_CALLER);
@ -1139,7 +1134,7 @@ color_select_update_red_green (ColorSelectFill *csf)
p = csf->buffer; p = csf->buffer;
csf->y += 1; csf->y += 1;
b = (gint) (csf->rgb.b * 254.999 + 0.5); b = ROUND (csf->rgb.b * 255.0);
r = (csf->height - csf->y + 1) * 255 / csf->height; r = (csf->height - csf->y + 1) * 255 / csf->height;
if (r < 0) if (r < 0)
@ -1170,7 +1165,7 @@ color_select_update_red_blue (ColorSelectFill *csf)
p = csf->buffer; p = csf->buffer;
csf->y += 1; csf->y += 1;
g = (gint) (csf->rgb.g * 254.999 + 0.5); g = ROUND (csf->rgb.g * 255.0);
r = (csf->height - csf->y + 1) * 255 / csf->height; r = (csf->height - csf->y + 1) * 255 / csf->height;
if (r < 0) if (r < 0)
@ -1201,7 +1196,7 @@ color_select_update_green_blue (ColorSelectFill *csf)
p = csf->buffer; p = csf->buffer;
csf->y += 1; csf->y += 1;
r = (gint) (csf->rgb.r * 254.999 + 0.5); r = ROUND (csf->rgb.r * 255.0);
g = (csf->height - csf->y + 1) * 255 / csf->height; g = (csf->height - csf->y + 1) * 255 / csf->height;
if (g < 0) if (g < 0)