app: replace GimpProjectable::get_image_type() by ::get_format()
and change semantics to returning the format it wants to be projected in, not its actual format.
This commit is contained in:
@ -140,6 +140,7 @@ static void gimp_group_layer_convert_type (GimpDrawable *drawabl
|
||||
GimpImageBaseType new_base_type,
|
||||
gboolean push_undo);
|
||||
|
||||
static const Babl * gimp_group_layer_get_format (GimpProjectable *projectable);
|
||||
static GeglNode * gimp_group_layer_get_graph (GimpProjectable *projectable);
|
||||
static GList * gimp_group_layer_get_layers (GimpProjectable *projectable);
|
||||
static gint gimp_group_layer_get_opacity_at
|
||||
@ -237,7 +238,7 @@ static void
|
||||
gimp_projectable_iface_init (GimpProjectableInterface *iface)
|
||||
{
|
||||
iface->get_image = (GimpImage * (*) (GimpProjectable *)) gimp_item_get_image;
|
||||
iface->get_image_type = (GimpImageType (*) (GimpProjectable *)) gimp_drawable_type;
|
||||
iface->get_format = gimp_group_layer_get_format;
|
||||
iface->get_offset = (void (*) (GimpProjectable*, gint*, gint*)) gimp_item_get_offset;
|
||||
iface->get_size = (void (*) (GimpProjectable*, gint*, gint*)) gimp_viewable_get_size;
|
||||
iface->get_graph = gimp_group_layer_get_graph;
|
||||
@ -871,6 +872,26 @@ gimp_group_layer_convert_type (GimpDrawable *drawable,
|
||||
g_object_unref (buffer);
|
||||
}
|
||||
|
||||
static const Babl *
|
||||
gimp_group_layer_get_format (GimpProjectable *projectable)
|
||||
{
|
||||
GimpDrawable *drawable = GIMP_DRAWABLE (projectable);
|
||||
|
||||
switch (GIMP_IMAGE_TYPE_BASE_TYPE (gimp_drawable_type (drawable)))
|
||||
{
|
||||
case GIMP_RGB:
|
||||
case GIMP_INDEXED:
|
||||
return babl_format ("R'G'B'A u8");
|
||||
|
||||
case GIMP_GRAY:
|
||||
return babl_format ("Y'A u8");
|
||||
}
|
||||
|
||||
g_assert_not_reached ();
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static GeglNode *
|
||||
gimp_group_layer_get_graph (GimpProjectable *projectable)
|
||||
{
|
||||
|
@ -175,9 +175,9 @@ static const guint8 * gimp_image_get_icc_profile (GimpColorManaged *managed,
|
||||
|
||||
static void gimp_image_projectable_flush (GimpProjectable *projectable,
|
||||
gboolean invalidate_preview);
|
||||
static GeglNode * gimp_image_get_graph (GimpProjectable *projectable);
|
||||
static GimpImage * gimp_image_get_image (GimpProjectable *projectable);
|
||||
static GimpImageType gimp_image_get_image_type (GimpProjectable *projectable);
|
||||
static GeglNode * gimp_image_get_graph (GimpProjectable *projectable);
|
||||
static GimpImage * gimp_image_get_image (GimpProjectable *projectable);
|
||||
static const Babl * gimp_image_get_proj_format (GimpProjectable *projectable);
|
||||
|
||||
static void gimp_image_mask_update (GimpDrawable *drawable,
|
||||
gint x,
|
||||
@ -609,7 +609,7 @@ gimp_projectable_iface_init (GimpProjectableInterface *iface)
|
||||
{
|
||||
iface->flush = gimp_image_projectable_flush;
|
||||
iface->get_image = gimp_image_get_image;
|
||||
iface->get_image_type = gimp_image_get_image_type;
|
||||
iface->get_format = gimp_image_get_proj_format;
|
||||
iface->get_size = (void (*) (GimpProjectable*, gint*, gint*)) gimp_image_get_size;
|
||||
iface->get_graph = gimp_image_get_graph;
|
||||
iface->invalidate_preview = (void (*) (GimpProjectable*)) gimp_viewable_invalidate_preview;
|
||||
@ -1265,15 +1265,24 @@ gimp_image_get_image (GimpProjectable *projectable)
|
||||
return GIMP_IMAGE (projectable);
|
||||
}
|
||||
|
||||
static GimpImageType
|
||||
gimp_image_get_image_type (GimpProjectable *projectable)
|
||||
static const Babl *
|
||||
gimp_image_get_proj_format (GimpProjectable *projectable)
|
||||
{
|
||||
GimpImagePrivate *private = GIMP_IMAGE_GET_PRIVATE (projectable);
|
||||
GimpImageType type;
|
||||
|
||||
type = GIMP_IMAGE_TYPE_FROM_BASE_TYPE (private->base_type);
|
||||
switch (private->base_type)
|
||||
{
|
||||
case GIMP_RGB:
|
||||
case GIMP_INDEXED:
|
||||
return babl_format ("R'G'B'A u8");
|
||||
|
||||
return GIMP_IMAGE_TYPE_WITH_ALPHA (type);
|
||||
case GIMP_GRAY:
|
||||
return babl_format ("Y'A u8");
|
||||
}
|
||||
|
||||
g_assert_not_reached ();
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static GeglNode *
|
||||
|
@ -164,17 +164,17 @@ gimp_projectable_get_image (GimpProjectable *projectable)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
GimpImageType
|
||||
gimp_projectable_get_image_type (GimpProjectable *projectable)
|
||||
const Babl *
|
||||
gimp_projectable_get_format (GimpProjectable *projectable)
|
||||
{
|
||||
GimpProjectableInterface *iface;
|
||||
|
||||
g_return_val_if_fail (GIMP_IS_PROJECTABLE (projectable), 0);
|
||||
g_return_val_if_fail (GIMP_IS_PROJECTABLE (projectable), NULL);
|
||||
|
||||
iface = GIMP_PROJECTABLE_GET_INTERFACE (projectable);
|
||||
|
||||
if (iface->get_image_type)
|
||||
return iface->get_image_type (projectable);
|
||||
if (iface->get_format)
|
||||
return iface->get_format (projectable);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -46,7 +46,7 @@ struct _GimpProjectableInterface
|
||||
|
||||
/* virtual functions */
|
||||
GimpImage * (* get_image) (GimpProjectable *projectable);
|
||||
GimpImageType (* get_image_type) (GimpProjectable *projectable);
|
||||
const Babl * (* get_format) (GimpProjectable *projectable);
|
||||
void (* get_offset) (GimpProjectable *projectable,
|
||||
gint *x,
|
||||
gint *y);
|
||||
@ -74,7 +74,7 @@ void gimp_projectable_flush (GimpProjectable *projectable
|
||||
void gimp_projectable_structure_changed (GimpProjectable *projectable);
|
||||
|
||||
GimpImage * gimp_projectable_get_image (GimpProjectable *projectable);
|
||||
GimpImageType gimp_projectable_get_image_type (GimpProjectable *projectable);
|
||||
const Babl * gimp_projectable_get_format (GimpProjectable *projectable);
|
||||
void gimp_projectable_get_offset (GimpProjectable *projectable,
|
||||
gint *x,
|
||||
gint *y);
|
||||
|
@ -295,23 +295,8 @@ static const Babl *
|
||||
gimp_projection_get_format (GimpPickable *pickable)
|
||||
{
|
||||
GimpProjection *proj = GIMP_PROJECTION (pickable);
|
||||
GimpImageType type;
|
||||
|
||||
type = gimp_projectable_get_image_type (proj->projectable);
|
||||
|
||||
switch (GIMP_IMAGE_TYPE_BASE_TYPE (type))
|
||||
{
|
||||
case GIMP_RGB:
|
||||
case GIMP_INDEXED:
|
||||
return babl_format ("R'G'B'A u8");
|
||||
|
||||
case GIMP_GRAY:
|
||||
return babl_format ("Y'A u8");
|
||||
}
|
||||
|
||||
g_assert_not_reached ();
|
||||
|
||||
return NULL;
|
||||
return gimp_projectable_get_format (proj->projectable);
|
||||
}
|
||||
|
||||
static GeglBuffer *
|
||||
|
Reference in New Issue
Block a user