app: use gegl_buffer_set_format() to "cast" a dest buffers format
in order to extract a src buffer's components
This commit is contained in:
@ -1646,7 +1646,6 @@ gimp_channel_new_from_alpha (GimpImage *image,
|
|||||||
const GimpRGB *color)
|
const GimpRGB *color)
|
||||||
{
|
{
|
||||||
GimpChannel *channel;
|
GimpChannel *channel;
|
||||||
TileManager *dest_tiles;
|
|
||||||
GeglBuffer *dest_buffer;
|
GeglBuffer *dest_buffer;
|
||||||
gint width;
|
gint width;
|
||||||
gint height;
|
gint height;
|
||||||
@ -1662,14 +1661,12 @@ gimp_channel_new_from_alpha (GimpImage *image,
|
|||||||
|
|
||||||
gimp_channel_clear (channel, NULL, FALSE);
|
gimp_channel_clear (channel, NULL, FALSE);
|
||||||
|
|
||||||
dest_tiles = gimp_drawable_get_tiles (GIMP_DRAWABLE (channel));
|
dest_buffer = gimp_drawable_get_buffer (GIMP_DRAWABLE (channel));
|
||||||
dest_buffer = gimp_tile_manager_create_buffer (dest_tiles,
|
|
||||||
babl_format ("A u8"));
|
|
||||||
|
|
||||||
|
gegl_buffer_set_format (dest_buffer, babl_format ("A u8"));
|
||||||
gegl_buffer_copy (gimp_drawable_get_buffer (drawable), NULL,
|
gegl_buffer_copy (gimp_drawable_get_buffer (drawable), NULL,
|
||||||
dest_buffer, NULL);
|
dest_buffer, NULL);
|
||||||
|
gegl_buffer_set_format (dest_buffer, NULL);
|
||||||
g_object_unref (dest_buffer);
|
|
||||||
|
|
||||||
channel->bounds_known = FALSE;
|
channel->bounds_known = FALSE;
|
||||||
|
|
||||||
@ -1685,7 +1682,6 @@ gimp_channel_new_from_component (GimpImage *image,
|
|||||||
GimpProjection *projection;
|
GimpProjection *projection;
|
||||||
GimpChannel *channel;
|
GimpChannel *channel;
|
||||||
GeglBuffer *src_buffer;
|
GeglBuffer *src_buffer;
|
||||||
TileManager *dest_tiles;
|
|
||||||
GeglBuffer *dest_buffer;
|
GeglBuffer *dest_buffer;
|
||||||
gint width;
|
gint width;
|
||||||
gint height;
|
gint height;
|
||||||
@ -1707,12 +1703,11 @@ gimp_channel_new_from_component (GimpImage *image,
|
|||||||
|
|
||||||
channel = gimp_channel_new (image, width, height, name, color);
|
channel = gimp_channel_new (image, width, height, name, color);
|
||||||
|
|
||||||
dest_tiles = gimp_drawable_get_tiles (GIMP_DRAWABLE (channel));
|
dest_buffer = gimp_drawable_get_buffer (GIMP_DRAWABLE (channel));
|
||||||
dest_buffer = gimp_tile_manager_create_buffer (dest_tiles, format);
|
|
||||||
|
|
||||||
|
gegl_buffer_set_format (dest_buffer, format);
|
||||||
gegl_buffer_copy (src_buffer, NULL, dest_buffer, NULL);
|
gegl_buffer_copy (src_buffer, NULL, dest_buffer, NULL);
|
||||||
|
gegl_buffer_set_format (dest_buffer, NULL);
|
||||||
g_object_unref (dest_buffer);
|
|
||||||
|
|
||||||
return channel;
|
return channel;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user