code cleanup. (gimp_drawable_fill): use the INTENSITY() of the passed
2003-09-06 Michael Natterer <mitch@gimp.org> * app/core/gimpdrawable.c: code cleanup. (gimp_drawable_fill): use the INTENSITY() of the passed GimpRGB to fill GIMP_GRAY drawables, not just the RED_PIX. Cleanup. * app/core/gimpimage.c (gimp_image_transform_color): added assertion for src_type != GIMP_INDEXED.
This commit is contained in:

committed by
Michael Natterer

parent
a7f00f06e8
commit
31b754df21
11
ChangeLog
11
ChangeLog
@ -1,3 +1,12 @@
|
|||||||
|
2003-09-06 Michael Natterer <mitch@gimp.org>
|
||||||
|
|
||||||
|
* app/core/gimpdrawable.c: code cleanup.
|
||||||
|
(gimp_drawable_fill): use the INTENSITY() of the passed GimpRGB to
|
||||||
|
fill GIMP_GRAY drawables, not just the RED_PIX. Cleanup.
|
||||||
|
|
||||||
|
* app/core/gimpimage.c (gimp_image_transform_color):
|
||||||
|
added assertion for src_type != GIMP_INDEXED.
|
||||||
|
|
||||||
2003-09-05 Sven Neumann <sven@gimp.org>
|
2003-09-05 Sven Neumann <sven@gimp.org>
|
||||||
|
|
||||||
* app/display/gimpdisplayshell.c (gimp_display_shell_draw_grid):
|
* app/display/gimpdisplayshell.c (gimp_display_shell_draw_grid):
|
||||||
@ -22,7 +31,7 @@
|
|||||||
colors here instead of calling map_to_color().
|
colors here instead of calling map_to_color().
|
||||||
|
|
||||||
* app/core/gimpimage.[ch] (gimp_image_get_color): reordered
|
* app/core/gimpimage.[ch] (gimp_image_get_color): reordered
|
||||||
parameters src parameters are before dest parameters.
|
parameters so src parameters are before dest parameters.
|
||||||
Made the src color const.
|
Made the src color const.
|
||||||
|
|
||||||
(gimp_image_transform_color): reordered so src parameters are
|
(gimp_image_transform_color): reordered so src parameters are
|
||||||
|
@ -679,9 +679,9 @@ gimp_drawable_fill (GimpDrawable *drawable,
|
|||||||
{
|
{
|
||||||
GimpItem *item;
|
GimpItem *item;
|
||||||
GimpImage *gimage;
|
GimpImage *gimage;
|
||||||
|
GimpImageType drawable_type;
|
||||||
PixelRegion destPR;
|
PixelRegion destPR;
|
||||||
guchar c[MAX_CHANNELS];
|
guchar c[MAX_CHANNELS];
|
||||||
guchar i;
|
|
||||||
|
|
||||||
g_return_if_fail (GIMP_IS_DRAWABLE (drawable));
|
g_return_if_fail (GIMP_IS_DRAWABLE (drawable));
|
||||||
|
|
||||||
@ -690,41 +690,42 @@ gimp_drawable_fill (GimpDrawable *drawable,
|
|||||||
|
|
||||||
g_return_if_fail (gimage != NULL);
|
g_return_if_fail (gimage != NULL);
|
||||||
|
|
||||||
switch (GIMP_IMAGE_TYPE_BASE_TYPE (gimp_drawable_type (drawable)))
|
drawable_type = gimp_drawable_type (drawable);
|
||||||
{
|
|
||||||
case GIMP_RGB:
|
|
||||||
gimp_rgba_get_uchar (color,
|
gimp_rgba_get_uchar (color,
|
||||||
&c[RED_PIX],
|
&c[RED_PIX],
|
||||||
&c[GREEN_PIX],
|
&c[GREEN_PIX],
|
||||||
&c[BLUE_PIX],
|
&c[BLUE_PIX],
|
||||||
&c[ALPHA_PIX]);
|
&c[ALPHA_PIX]);
|
||||||
if (gimp_drawable_type (drawable) != GIMP_RGBA_IMAGE)
|
|
||||||
c[ALPHA_PIX] = 255;
|
switch (GIMP_IMAGE_TYPE_BASE_TYPE (drawable_type))
|
||||||
|
{
|
||||||
|
case GIMP_RGB:
|
||||||
|
if (drawable_type != GIMP_RGBA_IMAGE)
|
||||||
|
c[ALPHA_PIX] = OPAQUE_OPACITY;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GIMP_GRAY:
|
case GIMP_GRAY:
|
||||||
gimp_rgba_get_uchar (color,
|
c[GRAY_PIX] = INTENSITY (c[RED_PIX],
|
||||||
&c[GRAY_PIX],
|
c[GREEN_PIX],
|
||||||
NULL,
|
c[BLUE_PIX]);
|
||||||
NULL,
|
c[ALPHA_G_PIX] = c[ALPHA_PIX];
|
||||||
&c[ALPHA_G_PIX]);
|
|
||||||
if (gimp_drawable_type (drawable) != GIMP_GRAYA_IMAGE)
|
if (drawable_type != GIMP_GRAYA_IMAGE)
|
||||||
c[ALPHA_G_PIX] = 255;
|
c[ALPHA_G_PIX] = OPAQUE_OPACITY;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GIMP_INDEXED:
|
case GIMP_INDEXED:
|
||||||
gimp_rgb_get_uchar (color,
|
{
|
||||||
&c[RED_PIX],
|
gint index;
|
||||||
&c[GREEN_PIX],
|
|
||||||
&c[BLUE_PIX]);
|
|
||||||
gimp_image_transform_color (gimage, drawable, &i, GIMP_RGB, c);
|
gimp_image_transform_color (gimage, drawable, &i, GIMP_RGB, c);
|
||||||
c[INDEXED_PIX] = i;
|
c[INDEXED_PIX] = i;
|
||||||
if (gimp_drawable_type (drawable) == GIMP_INDEXEDA_IMAGE)
|
c[ALPHA_I_PIX] = c[ALPHA_PIX];
|
||||||
gimp_rgba_get_uchar (color,
|
|
||||||
NULL,
|
if (drawable_type != GIMP_INDEXEDA_IMAGE)
|
||||||
NULL,
|
c[ALPHA_I_PIX] = OPAQUE_OPACITY;
|
||||||
NULL,
|
}
|
||||||
&c[ALPHA_I_PIX]);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -733,11 +734,8 @@ gimp_drawable_fill (GimpDrawable *drawable,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
pixel_region_init (&destPR,
|
pixel_region_init (&destPR, gimp_drawable_data (drawable),
|
||||||
gimp_drawable_data (drawable),
|
0, 0, gimp_item_width (item), gimp_item_height (item),
|
||||||
0, 0,
|
|
||||||
gimp_item_width (item),
|
|
||||||
gimp_item_height (item),
|
|
||||||
TRUE);
|
TRUE);
|
||||||
color_region (&destPR, c);
|
color_region (&destPR, c);
|
||||||
|
|
||||||
@ -756,8 +754,6 @@ gimp_drawable_fill_by_type (GimpDrawable *drawable,
|
|||||||
|
|
||||||
g_return_if_fail (GIMP_IS_DRAWABLE (drawable));
|
g_return_if_fail (GIMP_IS_DRAWABLE (drawable));
|
||||||
|
|
||||||
color.a = GIMP_OPACITY_OPAQUE;
|
|
||||||
|
|
||||||
switch (fill_type)
|
switch (fill_type)
|
||||||
{
|
{
|
||||||
case GIMP_FOREGROUND_FILL:
|
case GIMP_FOREGROUND_FILL:
|
||||||
@ -769,7 +765,7 @@ gimp_drawable_fill_by_type (GimpDrawable *drawable,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case GIMP_WHITE_FILL:
|
case GIMP_WHITE_FILL:
|
||||||
gimp_rgb_set (&color, 1.0, 1.0, 1.0);
|
gimp_rgba_set (&color, 1.0, 1.0, 1.0, GIMP_OPACITY_OPAQUE);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GIMP_TRANSPARENT_FILL:
|
case GIMP_TRANSPARENT_FILL:
|
||||||
@ -984,10 +980,12 @@ gimp_drawable_cmap (const GimpDrawable *drawable)
|
|||||||
|
|
||||||
g_return_val_if_fail (GIMP_IS_DRAWABLE (drawable), NULL);
|
g_return_val_if_fail (GIMP_IS_DRAWABLE (drawable), NULL);
|
||||||
|
|
||||||
if (! (gimage = gimp_item_get_image (GIMP_ITEM (drawable))))
|
gimage = gimp_item_get_image (GIMP_ITEM (drawable));
|
||||||
return NULL;
|
|
||||||
|
|
||||||
|
if (gimage)
|
||||||
return gimage->cmap;
|
return gimage->cmap;
|
||||||
|
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
guchar *
|
guchar *
|
||||||
@ -995,17 +993,20 @@ gimp_drawable_get_color_at (GimpDrawable *drawable,
|
|||||||
gint x,
|
gint x,
|
||||||
gint y)
|
gint y)
|
||||||
{
|
{
|
||||||
|
GimpImage *gimage;
|
||||||
Tile *tile;
|
Tile *tile;
|
||||||
guchar *src;
|
guchar *src;
|
||||||
guchar *dest;
|
guchar *dest;
|
||||||
|
|
||||||
g_return_val_if_fail (GIMP_IS_DRAWABLE (drawable), NULL);
|
g_return_val_if_fail (GIMP_IS_DRAWABLE (drawable), NULL);
|
||||||
g_return_val_if_fail (gimp_item_get_image (GIMP_ITEM (drawable)) ||
|
|
||||||
! gimp_drawable_is_indexed (drawable), NULL);
|
gimage = gimp_item_get_image (GIMP_ITEM (drawable));
|
||||||
|
|
||||||
|
g_return_val_if_fail (GIMP_IS_IMAGE (gimage), NULL);
|
||||||
|
|
||||||
/* do not make this a g_return_if_fail() */
|
/* do not make this a g_return_if_fail() */
|
||||||
if (! (x >= 0 && x < GIMP_ITEM (drawable)->width &&
|
if (x < 0 || x >= GIMP_ITEM (drawable)->width ||
|
||||||
y >= 0 && y < GIMP_ITEM (drawable)->height))
|
y < 0 || y >= GIMP_ITEM (drawable)->height)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
dest = g_new (guchar, 5);
|
dest = g_new (guchar, 5);
|
||||||
@ -1014,13 +1015,12 @@ gimp_drawable_get_color_at (GimpDrawable *drawable,
|
|||||||
TRUE, FALSE);
|
TRUE, FALSE);
|
||||||
src = tile_data_pointer (tile, x % TILE_WIDTH, y % TILE_HEIGHT);
|
src = tile_data_pointer (tile, x % TILE_WIDTH, y % TILE_HEIGHT);
|
||||||
|
|
||||||
gimp_image_get_color (gimp_item_get_image (GIMP_ITEM (drawable)),
|
gimp_image_get_color (gimage, gimp_drawable_type (drawable), src, dest);
|
||||||
gimp_drawable_type (drawable), src, dest);
|
|
||||||
|
|
||||||
if (GIMP_IMAGE_TYPE_HAS_ALPHA (gimp_drawable_type (drawable)))
|
if (GIMP_IMAGE_TYPE_HAS_ALPHA (gimp_drawable_type (drawable)))
|
||||||
dest[3] = src[gimp_drawable_bytes (drawable) - 1];
|
dest[ALPHA_PIX] = src[gimp_drawable_bytes (drawable) - 1];
|
||||||
else
|
else
|
||||||
dest[3] = OPAQUE_OPACITY;
|
dest[ALPHA_PIX] = OPAQUE_OPACITY;
|
||||||
|
|
||||||
if (gimp_drawable_is_indexed (drawable))
|
if (gimp_drawable_is_indexed (drawable))
|
||||||
dest[4] = src[0];
|
dest[4] = src[0];
|
||||||
|
@ -1570,6 +1570,7 @@ gimp_image_transform_color (const GimpImage *dest_gimage,
|
|||||||
GimpImageType dest_type;
|
GimpImageType dest_type;
|
||||||
|
|
||||||
g_return_if_fail (GIMP_IS_IMAGE (dest_gimage));
|
g_return_if_fail (GIMP_IS_IMAGE (dest_gimage));
|
||||||
|
g_return_if_fail (src_type != GIMP_INDEXED);
|
||||||
|
|
||||||
dest_type = (dest_drawable ?
|
dest_type = (dest_drawable ?
|
||||||
gimp_drawable_type (dest_drawable) :
|
gimp_drawable_type (dest_drawable) :
|
||||||
|
Reference in New Issue
Block a user