mirror of
https://gitlab.gnome.org/GNOME/gimp.git
synced 2025-10-05 21:02:42 +02:00
Merge branch 'fix_big_drawables_crash' into 'master'
libgimpcolor: create gegl buffers with gegl_buffer_new instead of gegl_buffer_linear_new_from_data Closes #14970 See merge request GNOME/gimp!2486
This commit is contained in:
@@ -176,8 +176,8 @@ GeglBuffer *
|
||||
gimp_cairo_surface_create_buffer (cairo_surface_t *surface,
|
||||
const Babl *format)
|
||||
{
|
||||
gint width;
|
||||
gint height;
|
||||
GeglBuffer *buffer;
|
||||
GeglRectangle extent = {0};
|
||||
|
||||
g_return_val_if_fail (surface != NULL, NULL);
|
||||
g_return_val_if_fail (cairo_surface_get_type (surface) ==
|
||||
@@ -188,14 +188,12 @@ gimp_cairo_surface_create_buffer (cairo_surface_t *surface,
|
||||
|
||||
if (format == NULL)
|
||||
format = gimp_cairo_surface_get_format (surface);
|
||||
width = cairo_image_surface_get_width (surface);
|
||||
height = cairo_image_surface_get_height (surface);
|
||||
extent.width = cairo_image_surface_get_width (surface);
|
||||
extent.height = cairo_image_surface_get_height (surface);
|
||||
|
||||
return
|
||||
gegl_buffer_linear_new_from_data (cairo_image_surface_get_data (surface),
|
||||
format,
|
||||
GEGL_RECTANGLE (0, 0, width, height),
|
||||
cairo_image_surface_get_stride (surface),
|
||||
(GDestroyNotify) cairo_surface_destroy,
|
||||
cairo_surface_reference (surface));
|
||||
buffer = gegl_buffer_new (&extent, format);
|
||||
|
||||
gegl_buffer_set (buffer, &extent, 0, format, cairo_image_surface_get_data (surface), cairo_image_surface_get_stride (surface));
|
||||
|
||||
return buffer;
|
||||
}
|
||||
|
Reference in New Issue
Block a user