app: add gimp_gegl_buffer_dup() which creates a TileManager backed dup
This commit is contained in:
@ -218,6 +218,25 @@ gimp_gegl_buffer_new (const GeglRectangle *rect,
|
||||
return buffer;
|
||||
}
|
||||
|
||||
GeglBuffer *
|
||||
gimp_gegl_buffer_dup (GeglBuffer *buffer)
|
||||
{
|
||||
const Babl *format = gegl_buffer_get_format (buffer);
|
||||
TileManager *tiles;
|
||||
GeglBuffer *dup;
|
||||
|
||||
tiles = tile_manager_new (gegl_buffer_get_width (buffer),
|
||||
gegl_buffer_get_height (buffer),
|
||||
babl_format_get_bytes_per_pixel (format));
|
||||
|
||||
dup = gimp_tile_manager_create_buffer (tiles, format);
|
||||
tile_manager_unref (tiles);
|
||||
|
||||
gegl_buffer_copy (buffer, NULL, dup, NULL);
|
||||
|
||||
return dup;
|
||||
}
|
||||
|
||||
GeglBuffer *
|
||||
gimp_tile_manager_create_buffer (TileManager *tm,
|
||||
const Babl *format)
|
||||
|
@ -35,6 +35,8 @@ const gchar * gimp_interpolation_to_gegl_filter (GimpInterpolationType interpo
|
||||
|
||||
GeglBuffer * gimp_gegl_buffer_new (const GeglRectangle *rect,
|
||||
const Babl *format);
|
||||
GeglBuffer * gimp_gegl_buffer_dup (GeglBuffer *buffer);
|
||||
|
||||
GeglBuffer * gimp_tile_manager_create_buffer (TileManager *tm,
|
||||
const Babl *format);
|
||||
TileManager * gimp_gegl_buffer_get_tiles (GeglBuffer *buffer);
|
||||
|
Reference in New Issue
Block a user