app: add gimp_gegl_buffer_dup() which creates a TileManager backed dup

This commit is contained in:
Michael Natterer
2012-03-21 18:58:17 +01:00
parent 9b0634bbd4
commit cab21271fa
2 changed files with 21 additions and 0 deletions

View File

@ -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)

View File

@ -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);