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,
|
GimpImageBaseType new_base_type,
|
||||||
gboolean push_undo);
|
gboolean push_undo);
|
||||||
|
|
||||||
|
static const Babl * gimp_group_layer_get_format (GimpProjectable *projectable);
|
||||||
static GeglNode * gimp_group_layer_get_graph (GimpProjectable *projectable);
|
static GeglNode * gimp_group_layer_get_graph (GimpProjectable *projectable);
|
||||||
static GList * gimp_group_layer_get_layers (GimpProjectable *projectable);
|
static GList * gimp_group_layer_get_layers (GimpProjectable *projectable);
|
||||||
static gint gimp_group_layer_get_opacity_at
|
static gint gimp_group_layer_get_opacity_at
|
||||||
@ -237,7 +238,7 @@ static void
|
|||||||
gimp_projectable_iface_init (GimpProjectableInterface *iface)
|
gimp_projectable_iface_init (GimpProjectableInterface *iface)
|
||||||
{
|
{
|
||||||
iface->get_image = (GimpImage * (*) (GimpProjectable *)) gimp_item_get_image;
|
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_offset = (void (*) (GimpProjectable*, gint*, gint*)) gimp_item_get_offset;
|
||||||
iface->get_size = (void (*) (GimpProjectable*, gint*, gint*)) gimp_viewable_get_size;
|
iface->get_size = (void (*) (GimpProjectable*, gint*, gint*)) gimp_viewable_get_size;
|
||||||
iface->get_graph = gimp_group_layer_get_graph;
|
iface->get_graph = gimp_group_layer_get_graph;
|
||||||
@ -871,6 +872,26 @@ gimp_group_layer_convert_type (GimpDrawable *drawable,
|
|||||||
g_object_unref (buffer);
|
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 *
|
static GeglNode *
|
||||||
gimp_group_layer_get_graph (GimpProjectable *projectable)
|
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,
|
static void gimp_image_projectable_flush (GimpProjectable *projectable,
|
||||||
gboolean invalidate_preview);
|
gboolean invalidate_preview);
|
||||||
static GeglNode * gimp_image_get_graph (GimpProjectable *projectable);
|
static GeglNode * gimp_image_get_graph (GimpProjectable *projectable);
|
||||||
static GimpImage * gimp_image_get_image (GimpProjectable *projectable);
|
static GimpImage * gimp_image_get_image (GimpProjectable *projectable);
|
||||||
static GimpImageType gimp_image_get_image_type (GimpProjectable *projectable);
|
static const Babl * gimp_image_get_proj_format (GimpProjectable *projectable);
|
||||||
|
|
||||||
static void gimp_image_mask_update (GimpDrawable *drawable,
|
static void gimp_image_mask_update (GimpDrawable *drawable,
|
||||||
gint x,
|
gint x,
|
||||||
@ -609,7 +609,7 @@ gimp_projectable_iface_init (GimpProjectableInterface *iface)
|
|||||||
{
|
{
|
||||||
iface->flush = gimp_image_projectable_flush;
|
iface->flush = gimp_image_projectable_flush;
|
||||||
iface->get_image = gimp_image_get_image;
|
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_size = (void (*) (GimpProjectable*, gint*, gint*)) gimp_image_get_size;
|
||||||
iface->get_graph = gimp_image_get_graph;
|
iface->get_graph = gimp_image_get_graph;
|
||||||
iface->invalidate_preview = (void (*) (GimpProjectable*)) gimp_viewable_invalidate_preview;
|
iface->invalidate_preview = (void (*) (GimpProjectable*)) gimp_viewable_invalidate_preview;
|
||||||
@ -1265,15 +1265,24 @@ gimp_image_get_image (GimpProjectable *projectable)
|
|||||||
return GIMP_IMAGE (projectable);
|
return GIMP_IMAGE (projectable);
|
||||||
}
|
}
|
||||||
|
|
||||||
static GimpImageType
|
static const Babl *
|
||||||
gimp_image_get_image_type (GimpProjectable *projectable)
|
gimp_image_get_proj_format (GimpProjectable *projectable)
|
||||||
{
|
{
|
||||||
GimpImagePrivate *private = GIMP_IMAGE_GET_PRIVATE (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 *
|
static GeglNode *
|
||||||
|
@ -164,17 +164,17 @@ gimp_projectable_get_image (GimpProjectable *projectable)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
GimpImageType
|
const Babl *
|
||||||
gimp_projectable_get_image_type (GimpProjectable *projectable)
|
gimp_projectable_get_format (GimpProjectable *projectable)
|
||||||
{
|
{
|
||||||
GimpProjectableInterface *iface;
|
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);
|
iface = GIMP_PROJECTABLE_GET_INTERFACE (projectable);
|
||||||
|
|
||||||
if (iface->get_image_type)
|
if (iface->get_format)
|
||||||
return iface->get_image_type (projectable);
|
return iface->get_format (projectable);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -46,7 +46,7 @@ struct _GimpProjectableInterface
|
|||||||
|
|
||||||
/* virtual functions */
|
/* virtual functions */
|
||||||
GimpImage * (* get_image) (GimpProjectable *projectable);
|
GimpImage * (* get_image) (GimpProjectable *projectable);
|
||||||
GimpImageType (* get_image_type) (GimpProjectable *projectable);
|
const Babl * (* get_format) (GimpProjectable *projectable);
|
||||||
void (* get_offset) (GimpProjectable *projectable,
|
void (* get_offset) (GimpProjectable *projectable,
|
||||||
gint *x,
|
gint *x,
|
||||||
gint *y);
|
gint *y);
|
||||||
@ -74,7 +74,7 @@ void gimp_projectable_flush (GimpProjectable *projectable
|
|||||||
void gimp_projectable_structure_changed (GimpProjectable *projectable);
|
void gimp_projectable_structure_changed (GimpProjectable *projectable);
|
||||||
|
|
||||||
GimpImage * gimp_projectable_get_image (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,
|
void gimp_projectable_get_offset (GimpProjectable *projectable,
|
||||||
gint *x,
|
gint *x,
|
||||||
gint *y);
|
gint *y);
|
||||||
|
@ -295,23 +295,8 @@ static const Babl *
|
|||||||
gimp_projection_get_format (GimpPickable *pickable)
|
gimp_projection_get_format (GimpPickable *pickable)
|
||||||
{
|
{
|
||||||
GimpProjection *proj = GIMP_PROJECTION (pickable);
|
GimpProjection *proj = GIMP_PROJECTION (pickable);
|
||||||
GimpImageType type;
|
|
||||||
|
|
||||||
type = gimp_projectable_get_image_type (proj->projectable);
|
return gimp_projectable_get_format (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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static GeglBuffer *
|
static GeglBuffer *
|
||||||
|
Reference in New Issue
Block a user