app: change gimp_image_get_format() to take a base_type and a with_alpha boolean
which kills almost all remaining use of GimpImageType.
This commit is contained in:
@ -42,10 +42,8 @@ gimp_drawable_convert_rgb (GimpDrawable *drawable,
|
||||
g_return_if_fail (GIMP_IS_IMAGE (dest_image));
|
||||
g_return_if_fail (! gimp_drawable_is_rgb (drawable));
|
||||
|
||||
if (gimp_drawable_has_alpha (drawable))
|
||||
format = gimp_image_get_format (dest_image, GIMP_RGBA_IMAGE);
|
||||
else
|
||||
format = gimp_image_get_format (dest_image, GIMP_RGB_IMAGE);
|
||||
format = gimp_image_get_format (dest_image, GIMP_RGB,
|
||||
gimp_drawable_has_alpha (drawable));
|
||||
|
||||
dest_buffer =
|
||||
gimp_gegl_buffer_new (GEGL_RECTANGLE (0, 0,
|
||||
@ -72,10 +70,8 @@ gimp_drawable_convert_grayscale (GimpDrawable *drawable,
|
||||
g_return_if_fail (GIMP_IS_IMAGE (dest_image));
|
||||
g_return_if_fail (! gimp_drawable_is_gray (drawable));
|
||||
|
||||
if (gimp_drawable_has_alpha (drawable))
|
||||
format = gimp_image_get_format (dest_image, GIMP_GRAYA_IMAGE);
|
||||
else
|
||||
format = gimp_image_get_format (dest_image, GIMP_GRAY_IMAGE);
|
||||
format = gimp_image_get_format (dest_image, GIMP_GRAY,
|
||||
gimp_drawable_has_alpha (drawable));
|
||||
|
||||
dest_buffer =
|
||||
gimp_gegl_buffer_new (GEGL_RECTANGLE (0, 0,
|
||||
@ -102,10 +98,8 @@ gimp_drawable_convert_indexed (GimpDrawable *drawable,
|
||||
g_return_if_fail (GIMP_IS_IMAGE (dest_image));
|
||||
g_return_if_fail (! gimp_drawable_is_indexed (drawable));
|
||||
|
||||
if (gimp_drawable_has_alpha (drawable))
|
||||
format = gimp_image_get_format (dest_image, GIMP_INDEXEDA_IMAGE);
|
||||
else
|
||||
format = gimp_image_get_format (dest_image, GIMP_INDEXED_IMAGE);
|
||||
format = gimp_image_get_format (dest_image, GIMP_INDEXED,
|
||||
gimp_drawable_has_alpha (drawable));
|
||||
|
||||
dest_buffer =
|
||||
gimp_gegl_buffer_new (GEGL_RECTANGLE (0, 0,
|
||||
|
@ -1598,8 +1598,9 @@ gimp_drawable_get_format_with_alpha (const GimpDrawable *drawable)
|
||||
{
|
||||
g_return_val_if_fail (GIMP_IS_DRAWABLE (drawable), NULL);
|
||||
|
||||
return gimp_image_get_format_with_alpha (gimp_item_get_image (GIMP_ITEM (drawable)),
|
||||
gimp_drawable_type (drawable));
|
||||
return gimp_image_get_format (gimp_item_get_image (GIMP_ITEM (drawable)),
|
||||
gimp_drawable_get_base_type (drawable),
|
||||
TRUE);
|
||||
}
|
||||
|
||||
const Babl *
|
||||
@ -1607,8 +1608,9 @@ gimp_drawable_get_format_without_alpha (const GimpDrawable *drawable)
|
||||
{
|
||||
g_return_val_if_fail (GIMP_IS_DRAWABLE (drawable), NULL);
|
||||
|
||||
return gimp_image_get_format_without_alpha (gimp_item_get_image (GIMP_ITEM (drawable)),
|
||||
gimp_drawable_type (drawable));
|
||||
return gimp_image_get_format (gimp_item_get_image (GIMP_ITEM (drawable)),
|
||||
gimp_drawable_get_base_type (drawable),
|
||||
FALSE);
|
||||
}
|
||||
|
||||
gboolean
|
||||
|
@ -1475,75 +1475,13 @@ gimp_image_get_combination_mode (GimpImageType dest_type,
|
||||
}
|
||||
|
||||
const Babl *
|
||||
gimp_image_get_format (const GimpImage *image,
|
||||
GimpImageType type)
|
||||
gimp_image_get_format (const GimpImage *image,
|
||||
GimpImageBaseType base_type,
|
||||
gboolean with_alpha)
|
||||
{
|
||||
g_return_val_if_fail (GIMP_IS_IMAGE (image), NULL);
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case GIMP_RGB_IMAGE: return babl_format ("R'G'B' u8");
|
||||
case GIMP_RGBA_IMAGE: return babl_format ("R'G'B'A u8");
|
||||
case GIMP_GRAY_IMAGE: return babl_format ("Y' u8");
|
||||
case GIMP_GRAYA_IMAGE: return babl_format ("Y'A u8");
|
||||
case GIMP_INDEXED_IMAGE: return gimp_image_colormap_get_rgb_format (image);
|
||||
case GIMP_INDEXEDA_IMAGE: return gimp_image_colormap_get_rgba_format (image);
|
||||
}
|
||||
|
||||
g_warn_if_reached ();
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
const Babl *
|
||||
gimp_image_get_format_with_alpha (const GimpImage *image,
|
||||
GimpImageType type)
|
||||
{
|
||||
g_return_val_if_fail (GIMP_IS_IMAGE (image), NULL);
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case GIMP_RGB_IMAGE:
|
||||
case GIMP_RGBA_IMAGE: return babl_format ("R'G'B'A u8");
|
||||
case GIMP_GRAY_IMAGE:
|
||||
case GIMP_GRAYA_IMAGE: return babl_format ("Y'A u8");
|
||||
case GIMP_INDEXED_IMAGE:
|
||||
case GIMP_INDEXEDA_IMAGE: return gimp_image_colormap_get_rgba_format (image);
|
||||
}
|
||||
|
||||
g_warn_if_reached ();
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
const Babl *
|
||||
gimp_image_get_format_without_alpha (const GimpImage *image,
|
||||
GimpImageType type)
|
||||
{
|
||||
g_return_val_if_fail (GIMP_IS_IMAGE (image), NULL);
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case GIMP_RGB_IMAGE:
|
||||
case GIMP_RGBA_IMAGE: return babl_format ("R'G'B' u8");
|
||||
case GIMP_GRAY_IMAGE:
|
||||
case GIMP_GRAYA_IMAGE: return babl_format ("Y' u8");
|
||||
case GIMP_INDEXED_IMAGE:
|
||||
case GIMP_INDEXEDA_IMAGE: return gimp_image_colormap_get_rgb_format (image);
|
||||
}
|
||||
|
||||
g_warn_if_reached ();
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
const Babl *
|
||||
gimp_image_get_layer_format (const GimpImage *image,
|
||||
gboolean with_alpha)
|
||||
{
|
||||
g_return_val_if_fail (GIMP_IS_IMAGE (image), NULL);
|
||||
|
||||
switch (GIMP_IMAGE_GET_PRIVATE (image)->base_type)
|
||||
switch (base_type)
|
||||
{
|
||||
case GIMP_RGB:
|
||||
if (with_alpha)
|
||||
@ -1567,6 +1505,17 @@ gimp_image_get_layer_format (const GimpImage *image,
|
||||
g_return_val_if_reached (NULL);
|
||||
}
|
||||
|
||||
const Babl *
|
||||
gimp_image_get_layer_format (const GimpImage *image,
|
||||
gboolean with_alpha)
|
||||
{
|
||||
g_return_val_if_fail (GIMP_IS_IMAGE (image), NULL);
|
||||
|
||||
return gimp_image_get_format (image,
|
||||
GIMP_IMAGE_GET_PRIVATE (image)->base_type,
|
||||
with_alpha);
|
||||
}
|
||||
|
||||
const Babl *
|
||||
gimp_image_get_channel_format (const GimpImage *image)
|
||||
{
|
||||
|
@ -112,17 +112,13 @@ GimpImageBaseType gimp_image_base_type (const GimpImage *image);
|
||||
CombinationMode gimp_image_get_combination_mode (GimpImageType dest_type,
|
||||
gint src_bytes);
|
||||
|
||||
const Babl * gimp_image_get_format (const GimpImage *image,
|
||||
GimpImageType type);
|
||||
const Babl * gimp_image_get_format_with_alpha (const GimpImage *image,
|
||||
GimpImageType type);
|
||||
const Babl * gimp_image_get_format_without_alpha (const GimpImage *image,
|
||||
GimpImageType type);
|
||||
|
||||
const Babl * gimp_image_get_layer_format (const GimpImage *image,
|
||||
const Babl * gimp_image_get_format (const GimpImage *image,
|
||||
GimpImageBaseType base_type,
|
||||
gboolean with_alpha);
|
||||
const Babl * gimp_image_get_channel_format (const GimpImage *image);
|
||||
const Babl * gimp_image_get_mask_format (const GimpImage *image);
|
||||
const Babl * gimp_image_get_layer_format (const GimpImage *image,
|
||||
gboolean with_alpha);
|
||||
const Babl * gimp_image_get_channel_format (const GimpImage *image);
|
||||
const Babl * gimp_image_get_mask_format (const GimpImage *image);
|
||||
|
||||
gint gimp_image_get_ID (const GimpImage *image);
|
||||
GimpImage * gimp_image_get_by_ID (Gimp *gimp,
|
||||
|
@ -1387,9 +1387,8 @@ gimp_layer_create_mask (const GimpLayer *layer,
|
||||
if (! gimp_drawable_is_gray (drawable))
|
||||
{
|
||||
const Babl *copy_format =
|
||||
gimp_image_get_format (image,
|
||||
gimp_drawable_has_alpha (drawable) ?
|
||||
GIMP_GRAYA_IMAGE : GIMP_GRAY_IMAGE);
|
||||
gimp_image_get_format (image, GIMP_GRAY,
|
||||
gimp_drawable_has_alpha (drawable));
|
||||
|
||||
src_buffer =
|
||||
gimp_gegl_buffer_new (GEGL_RECTANGLE (0, 0,
|
||||
|
@ -35,6 +35,7 @@
|
||||
#include "core/gimpdynamicsoutput.h"
|
||||
#include "core/gimpgradient.h"
|
||||
#include "core/gimpimage.h"
|
||||
#include "core/gimptempbuf.h"
|
||||
|
||||
#include "gimppaintbrush.h"
|
||||
#include "gimppaintoptions.h"
|
||||
|
@ -75,8 +75,12 @@ layer_new_invoker (GimpProcedure *procedure,
|
||||
|
||||
if (success)
|
||||
{
|
||||
gboolean has_alpha = (type == GIMP_RGBA_IMAGE ||
|
||||
type == GIMP_GRAYA_IMAGE ||
|
||||
type == GIMP_INDEXEDA_IMAGE);
|
||||
|
||||
layer = gimp_layer_new (image, width, height,
|
||||
gimp_image_get_format (image, type),
|
||||
gimp_image_get_layer_format (image, has_alpha),
|
||||
name, opacity / 100.0, mode);
|
||||
|
||||
if (! layer)
|
||||
|
@ -1089,6 +1089,7 @@ xcf_load_layer (XcfInfo *info,
|
||||
gint width;
|
||||
gint height;
|
||||
gint type;
|
||||
gboolean has_alpha;
|
||||
gboolean is_fs_drawable;
|
||||
gchar *name;
|
||||
|
||||
@ -1103,9 +1104,13 @@ xcf_load_layer (XcfInfo *info,
|
||||
info->cp += xcf_read_int32 (info->fp, (guint32 *) &type, 1);
|
||||
info->cp += xcf_read_string (info->fp, &name, 1);
|
||||
|
||||
has_alpha = (type == GIMP_RGBA_IMAGE ||
|
||||
type == GIMP_GRAYA_IMAGE ||
|
||||
type == GIMP_INDEXEDA_IMAGE);
|
||||
|
||||
/* create a new layer */
|
||||
layer = gimp_layer_new (image, width, height,
|
||||
gimp_image_get_format (image, type),
|
||||
gimp_image_get_layer_format (image, has_alpha),
|
||||
name, 255, GIMP_NORMAL_MODE);
|
||||
g_free (name);
|
||||
if (! layer)
|
||||
|
@ -55,8 +55,12 @@ HELP
|
||||
%invoke = (
|
||||
code => <<'CODE'
|
||||
{
|
||||
gboolean has_alpha = (type == GIMP_RGBA_IMAGE ||
|
||||
type == GIMP_GRAYA_IMAGE ||
|
||||
type == GIMP_INDEXEDA_IMAGE);
|
||||
|
||||
layer = gimp_layer_new (image, width, height,
|
||||
gimp_image_get_format (image, type),
|
||||
gimp_image_get_layer_format (image, has_alpha),
|
||||
name, opacity / 100.0, mode);
|
||||
|
||||
if (! layer)
|
||||
|
Reference in New Issue
Block a user