app: use gegl_buffer_new() in gimp_drawable_real_replace_buffer()
not a wrapper buffer around a GimpTempBuf.
This commit is contained in:
@ -314,17 +314,14 @@ gimp_drawable_real_replace_buffer (GimpDrawable *drawable,
|
|||||||
|
|
||||||
if (mask)
|
if (mask)
|
||||||
{
|
{
|
||||||
GimpTempBuf *temp_buf;
|
|
||||||
GeglBuffer *src_buffer;
|
GeglBuffer *src_buffer;
|
||||||
GeglBuffer *dest_buffer;
|
GeglBuffer *dest_buffer;
|
||||||
|
|
||||||
src_buffer = gimp_drawable_get_buffer (GIMP_DRAWABLE (mask));
|
src_buffer = gimp_drawable_get_buffer (GIMP_DRAWABLE (mask));
|
||||||
|
|
||||||
temp_buf = gimp_temp_buf_new (width, height,
|
dest_buffer = gegl_buffer_new (GEGL_RECTANGLE (0, 0, width, height),
|
||||||
gegl_buffer_get_format (src_buffer));
|
gegl_buffer_get_format (src_buffer));
|
||||||
|
|
||||||
dest_buffer = gimp_temp_buf_create_buffer (temp_buf);
|
|
||||||
|
|
||||||
gegl_buffer_copy (src_buffer,
|
gegl_buffer_copy (src_buffer,
|
||||||
GEGL_RECTANGLE (x + offset_x, y + offset_y,
|
GEGL_RECTANGLE (x + offset_x, y + offset_y,
|
||||||
width, height),
|
width, height),
|
||||||
@ -335,30 +332,21 @@ gimp_drawable_real_replace_buffer (GimpDrawable *drawable,
|
|||||||
dest_buffer, GEGL_RECTANGLE (0, 0, width, height),
|
dest_buffer, GEGL_RECTANGLE (0, 0, width, height),
|
||||||
1.0);
|
1.0);
|
||||||
|
|
||||||
gimp_gegl_replace (buffer,
|
gimp_gegl_replace (buffer, buffer_region,
|
||||||
buffer_region,
|
drawable_buffer, GEGL_RECTANGLE (x, y, width, height),
|
||||||
drawable_buffer,
|
dest_buffer, GEGL_RECTANGLE (0, 0, width, height),
|
||||||
GEGL_RECTANGLE (x, y, width, height),
|
drawable_buffer, GEGL_RECTANGLE (x, y, width, height),
|
||||||
dest_buffer,
|
|
||||||
GEGL_RECTANGLE (0, 0, width, height),
|
|
||||||
drawable_buffer,
|
|
||||||
GEGL_RECTANGLE (x, y, width, height),
|
|
||||||
opacity * 255.999,
|
opacity * 255.999,
|
||||||
active_components);
|
active_components);
|
||||||
|
|
||||||
g_object_unref (dest_buffer);
|
g_object_unref (dest_buffer);
|
||||||
gimp_temp_buf_unref (temp_buf);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gimp_gegl_replace (buffer,
|
gimp_gegl_replace (buffer, buffer_region,
|
||||||
buffer_region,
|
drawable_buffer, GEGL_RECTANGLE (x, y, width, height),
|
||||||
drawable_buffer,
|
mask_buffer, mask_buffer_region,
|
||||||
GEGL_RECTANGLE (x, y, width, height),
|
drawable_buffer, GEGL_RECTANGLE (x, y, width, height),
|
||||||
mask_buffer,
|
|
||||||
mask_buffer_region,
|
|
||||||
drawable_buffer,
|
|
||||||
GEGL_RECTANGLE (x, y, width, height),
|
|
||||||
opacity * 255.999,
|
opacity * 255.999,
|
||||||
active_components);
|
active_components);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user