1
1
mirror of https://gitlab.gnome.org/GNOME/gimp.git synced 2025-10-06 01:12:40 +02:00

app: handle buffers with arbitrary origin in gimp_layer_new_from_gegl_buffer()

... by translating the layer according to the buffer's origin.
This commit is contained in:
Ell
2019-09-19 19:39:29 +03:00
parent 71f42f6675
commit 6ef21ed1f0

View File

@@ -130,7 +130,8 @@ gimp_layer_new_from_gegl_buffer (GeglBuffer *buffer,
GimpLayerMode mode,
GimpColorProfile *buffer_profile)
{
GimpLayer *layer;
GimpLayer *layer;
const GeglRectangle *extent;
g_return_val_if_fail (GEGL_IS_BUFFER (buffer), NULL);
g_return_val_if_fail (GIMP_IS_IMAGE (dest_image), NULL);
@@ -138,15 +139,19 @@ gimp_layer_new_from_gegl_buffer (GeglBuffer *buffer,
g_return_val_if_fail (buffer_profile == NULL ||
GIMP_IS_COLOR_PROFILE (buffer_profile), NULL);
extent = gegl_buffer_get_extent (buffer);
/* do *not* use the buffer's format because this function gets
* buffers of any format passed, and converts them
*/
layer = gimp_layer_new (dest_image,
gegl_buffer_get_width (buffer),
gegl_buffer_get_height (buffer),
extent->width, extent->height,
format,
name, opacity, mode);
if (extent->x != 0 || extent->y != 0)
gimp_item_translate (GIMP_ITEM (layer), extent->x, extent->y, FALSE);
gimp_layer_new_convert_buffer (layer, buffer, buffer_profile, NULL);
return layer;