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:
@@ -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;
|
||||
|
Reference in New Issue
Block a user