From d05b9905cf3ea2a9203c499f25f8e8e742195a55 Mon Sep 17 00:00:00 2001 From: Johannes Date: Tue, 5 Mar 2019 11:15:06 +0100 Subject: [PATCH] gimp: remove patch for gegl-0.4.14 fixes #9379 --- srcpkgs/gimp/patches/fix-gegl.patch | 2151 --------------------------- srcpkgs/gimp/template | 2 +- 2 files changed, 1 insertion(+), 2152 deletions(-) delete mode 100644 srcpkgs/gimp/patches/fix-gegl.patch diff --git a/srcpkgs/gimp/patches/fix-gegl.patch b/srcpkgs/gimp/patches/fix-gegl.patch deleted file mode 100644 index aba210c5de..0000000000 --- a/srcpkgs/gimp/patches/fix-gegl.patch +++ /dev/null @@ -1,2151 +0,0 @@ -diff --git a/app/core/gimpdrawable-transform.c b/app/core/gimpdrawable-transform.c -index 350b1b8f4d..f26bbe3a58 100644 ---- app/core/gimpdrawable-transform.c -+++ app/core/gimpdrawable-transform.c -@@ -15,6 +15,8 @@ - * along with this program. If not, see . - */ - -+#define GEGL_ITERATOR2_API -+ - #include "config.h" - - #include -@@ -271,33 +273,33 @@ gimp_drawable_transform_buffer_flip (GimpDrawable *drawable, - dest_rect.height = new_height; - - iter = gegl_buffer_iterator_new (new_buffer, &dest_rect, 0, NULL, -- GEGL_BUFFER_WRITE, GEGL_ABYSS_NONE); -+ GEGL_BUFFER_WRITE, GEGL_ABYSS_NONE, 1); - - switch (flip_type) - { - case GIMP_ORIENTATION_HORIZONTAL: - while (gegl_buffer_iterator_next (iter)) - { -- gint stride = iter->roi[0].width * bpp; -+ gint stride = iter->items[0].roi.width * bpp; - -- src_rect = iter->roi[0]; -+ src_rect = iter->items[0].roi; - - src_rect.x = (orig_x + orig_width) - -- (iter->roi[0].x - dest_rect.x) - -- iter->roi[0].width; -+ (iter->items[0].roi.x - dest_rect.x) - -+ iter->items[0].roi.width; - -- gegl_buffer_get (orig_buffer, &src_rect, 1.0, NULL, iter->data[0], -+ gegl_buffer_get (orig_buffer, &src_rect, 1.0, NULL, iter->items[0].data, - stride, GEGL_ABYSS_NONE); - -- for (y = 0; y < iter->roi[0].height; y++) -+ for (y = 0; y < iter->items[0].roi.height; y++) - { -- guint8 *left = iter->data[0]; -- guint8 *right = iter->data[0]; -+ guint8 *left = iter->items[0].data; -+ guint8 *right = iter->items[0].data; - - left += y * stride; -- right += y * stride + (iter->roi[0].width - 1) * bpp; -+ right += y * stride + (iter->items[0].roi.width - 1) * bpp; - -- for (x = 0; x < iter->roi[0].width / 2; x++) -+ for (x = 0; x < iter->items[0].roi.width / 2; x++) - { - guint8 temp[bpp]; - -@@ -315,26 +317,26 @@ gimp_drawable_transform_buffer_flip (GimpDrawable *drawable, - case GIMP_ORIENTATION_VERTICAL: - while (gegl_buffer_iterator_next (iter)) - { -- gint stride = iter->roi[0].width * bpp; -+ gint stride = iter->items[0].roi.width * bpp; - -- src_rect = iter->roi[0]; -+ src_rect = iter->items[0].roi; - - src_rect.y = (orig_y + orig_height) - -- (iter->roi[0].y - dest_rect.y) - -- iter->roi[0].height; -+ (iter->items[0].roi.y - dest_rect.y) - -+ iter->items[0].roi.height; - -- gegl_buffer_get (orig_buffer, &src_rect, 1.0, NULL, iter->data[0], -+ gegl_buffer_get (orig_buffer, &src_rect, 1.0, NULL, iter->items[0].data, - stride, GEGL_ABYSS_NONE); - -- for (x = 0; x < iter->roi[0].width; x++) -+ for (x = 0; x < iter->items[0].roi.width; x++) - { -- guint8 *top = iter->data[0]; -- guint8 *bottom = iter->data[0]; -+ guint8 *top = iter->items[0].data; -+ guint8 *bottom = iter->items[0].data; - - top += x * bpp; -- bottom += x * bpp + (iter->roi[0].height - 1) * stride; -+ bottom += x * bpp + (iter->items[0].roi.height - 1) * stride; - -- for (y = 0; y < iter->roi[0].height / 2; y++) -+ for (y = 0; y < iter->items[0].roi.height / 2; y++) - { - guint8 temp[bpp]; - -diff --git a/app/core/gimphistogram.c b/app/core/gimphistogram.c -index 109dffa201..4188e5ce05 100644 ---- app/core/gimphistogram.c -+++ app/core/gimphistogram.c -@@ -17,6 +17,8 @@ - * along with this program. If not, see . - */ - -+#define GEGL_ITERATOR2_API -+ - #include "config.h" - - #include -@@ -984,7 +986,7 @@ gimp_histogram_calculate_area (const GeglRectangle *area, - - iter = gegl_buffer_iterator_new (context->buffer, area, 0, - data->format, -- GEGL_ACCESS_READ, GEGL_ABYSS_NONE); -+ GEGL_ACCESS_READ, GEGL_ABYSS_NONE, 2); - - if (context->mask) - { -@@ -1020,7 +1022,7 @@ gimp_histogram_calculate_area (const GeglRectangle *area, - - while (gegl_buffer_iterator_next (iter)) - { -- const gfloat *data = iter->data[0]; -+ const gfloat *data = iter->items[0].data; - gint length = iter->length; - gfloat max; - gfloat luminance; -@@ -1029,7 +1031,7 @@ gimp_histogram_calculate_area (const GeglRectangle *area, - - if (context->mask) - { -- const gfloat *mask_data = iter->data[1]; -+ const gfloat *mask_data = iter->items[1].data; - - switch (n_components) - { -diff --git a/app/core/gimpimage-convert-indexed.c b/app/core/gimpimage-convert-indexed.c -index d41d20c150..476a35fa3e 100644 ---- app/core/gimpimage-convert-indexed.c -+++ app/core/gimpimage-convert-indexed.c -@@ -136,6 +136,7 @@ - - #include - #include -+#define GEGL_ITERATOR2_API - #include - - #include "libgimpcolor/gimpcolor.h" -@@ -699,11 +700,11 @@ remap_indexed_layer (GimpLayer *layer, - - iter = gegl_buffer_iterator_new (gimp_drawable_get_buffer (GIMP_DRAWABLE (layer)), - NULL, 0, NULL, -- GEGL_ACCESS_READWRITE, GEGL_ABYSS_NONE); -+ GEGL_ACCESS_READWRITE, GEGL_ABYSS_NONE, 1); - - while (gegl_buffer_iterator_next (iter)) - { -- guchar *data = iter->data[0]; -+ guchar *data = iter->items[0].data; - gint length = iter->length; - - if (has_alpha) -@@ -1125,11 +1126,11 @@ generate_histogram_gray (CFHistogram histogram, - - iter = gegl_buffer_iterator_new (gimp_drawable_get_buffer (GIMP_DRAWABLE (layer)), - NULL, 0, format, -- GEGL_ACCESS_READ, GEGL_ABYSS_NONE); -+ GEGL_ACCESS_READ, GEGL_ABYSS_NONE, 1); - - while (gegl_buffer_iterator_next (iter)) - { -- const guchar *data = iter->data[0]; -+ const guchar *data = iter->items[0].data; - gint length = iter->length; - - if (has_alpha) -@@ -1192,15 +1193,15 @@ generate_histogram_rgb (CFHistogram histogram, - - iter = gegl_buffer_iterator_new (gimp_drawable_get_buffer (GIMP_DRAWABLE (layer)), - NULL, 0, format, -- GEGL_ACCESS_READ, GEGL_ABYSS_NONE); -- roi = &iter->roi[0]; -+ GEGL_ACCESS_READ, GEGL_ABYSS_NONE, 1); -+ roi = &iter->items[0].roi; - - if (progress) - gimp_progress_set_value (progress, 0.0); - - while (gegl_buffer_iterator_next (iter)) - { -- const guchar *data = iter->data[0]; -+ const guchar *data = iter->items[0].data; - gint length = iter->length; - - total_size += length; -@@ -2846,8 +2847,8 @@ median_cut_pass2_no_dither_gray (QuantizeObj *quantobj, - - iter = gegl_buffer_iterator_new (gimp_drawable_get_buffer (GIMP_DRAWABLE (layer)), - NULL, 0, NULL, -- GEGL_ACCESS_READ, GEGL_ABYSS_NONE); -- src_roi = &iter->roi[0]; -+ GEGL_ACCESS_READ, GEGL_ABYSS_NONE, 2); -+ src_roi = &iter->items[0].roi; - - gegl_buffer_iterator_add (iter, new_buffer, - NULL, 0, NULL, -@@ -2855,8 +2856,8 @@ median_cut_pass2_no_dither_gray (QuantizeObj *quantobj, - - while (gegl_buffer_iterator_next (iter)) - { -- const guchar *src = iter->data[0]; -- guchar *dest = iter->data[1]; -+ const guchar *src = iter->items[0].data; -+ guchar *dest = iter->items[1].data; - gint row; - - for (row = 0; row < src_roi->height; row++) -@@ -2952,8 +2953,8 @@ median_cut_pass2_fixed_dither_gray (QuantizeObj *quantobj, - - iter = gegl_buffer_iterator_new (gimp_drawable_get_buffer (GIMP_DRAWABLE (layer)), - NULL, 0, NULL, -- GEGL_ACCESS_READ, GEGL_ABYSS_NONE); -- src_roi = &iter->roi[0]; -+ GEGL_ACCESS_READ, GEGL_ABYSS_NONE, 2); -+ src_roi = &iter->items[0].roi; - - gegl_buffer_iterator_add (iter, new_buffer, - NULL, 0, NULL, -@@ -2961,8 +2962,8 @@ median_cut_pass2_fixed_dither_gray (QuantizeObj *quantobj, - - while (gegl_buffer_iterator_next (iter)) - { -- const guchar *src = iter->data[0]; -- guchar *dest = iter->data[1]; -+ const guchar *src = iter->items[0].data; -+ guchar *dest = iter->items[1].data; - gint row; - - for (row = 0; row < src_roi->height; row++) -@@ -3131,8 +3132,8 @@ median_cut_pass2_no_dither_rgb (QuantizeObj *quantobj, - - iter = gegl_buffer_iterator_new (gimp_drawable_get_buffer (GIMP_DRAWABLE (layer)), - NULL, 0, NULL, -- GEGL_ACCESS_READ, GEGL_ABYSS_NONE); -- src_roi = &iter->roi[0]; -+ GEGL_ACCESS_READ, GEGL_ABYSS_NONE, 2); -+ src_roi = &iter->items[0].roi; - - gegl_buffer_iterator_add (iter, new_buffer, - NULL, 0, NULL, -@@ -3143,8 +3144,8 @@ median_cut_pass2_no_dither_rgb (QuantizeObj *quantobj, - - while (gegl_buffer_iterator_next (iter)) - { -- const guchar *src = iter->data[0]; -- guchar *dest = iter->data[1]; -+ const guchar *src = iter->items[0].data; -+ guchar *dest = iter->items[1].data; - gint row; - - total_size += src_roi->height * src_roi->width; -@@ -3264,8 +3265,8 @@ median_cut_pass2_fixed_dither_rgb (QuantizeObj *quantobj, - - iter = gegl_buffer_iterator_new (gimp_drawable_get_buffer (GIMP_DRAWABLE (layer)), - NULL, 0, NULL, -- GEGL_ACCESS_READ, GEGL_ABYSS_NONE); -- src_roi = &iter->roi[0]; -+ GEGL_ACCESS_READ, GEGL_ABYSS_NONE, 2); -+ src_roi = &iter->items[0].roi; - - gegl_buffer_iterator_add (iter, new_buffer, - NULL, 0, NULL, -@@ -3276,8 +3277,8 @@ median_cut_pass2_fixed_dither_rgb (QuantizeObj *quantobj, - - while (gegl_buffer_iterator_next (iter)) - { -- const guchar *src = iter->data[0]; -- guchar *dest = iter->data[1]; -+ const guchar *src = iter->items[0].data; -+ guchar *dest = iter->items[1].data; - gint row; - - total_size += src_roi->height * src_roi->width; -@@ -3478,8 +3479,8 @@ median_cut_pass2_nodestruct_dither_rgb (QuantizeObj *quantobj, - - iter = gegl_buffer_iterator_new (gimp_drawable_get_buffer (GIMP_DRAWABLE (layer)), - NULL, 0, NULL, -- GEGL_ACCESS_READ, GEGL_ABYSS_NONE); -- src_roi = &iter->roi[0]; -+ GEGL_ACCESS_READ, GEGL_ABYSS_NONE, 2); -+ src_roi = &iter->items[0].roi; - - gegl_buffer_iterator_add (iter, new_buffer, - NULL, 0, NULL, -@@ -3487,8 +3488,8 @@ median_cut_pass2_nodestruct_dither_rgb (QuantizeObj *quantobj, - - while (gegl_buffer_iterator_next (iter)) - { -- const guchar *src = iter->data[0]; -- guchar *dest = iter->data[1]; -+ const guchar *src = iter->items[0].data; -+ guchar *dest = iter->items[1].data; - gint row; - - for (row = 0; row < src_roi->height; row++) -diff --git a/app/core/gimppalette-import.c b/app/core/gimppalette-import.c -index 6cee2ccc33..23c107f3f8 100644 ---- app/core/gimppalette-import.c -+++ app/core/gimppalette-import.c -@@ -18,6 +18,7 @@ - #include "config.h" - - #include -+#define GEGL_ITERATOR2_API - #include - #include - -@@ -291,7 +292,7 @@ gimp_palette_import_extract (GimpImage *image, - format = babl_format ("R'G'B'A u8"); - - iter = gegl_buffer_iterator_new (buffer, &rect, 0, format, -- GEGL_ACCESS_READ, GEGL_ABYSS_NONE); -+ GEGL_ACCESS_READ, GEGL_ABYSS_NONE, 2); - bpp = babl_format_get_bytes_per_pixel (format); - - if (selection_only && -@@ -307,18 +308,18 @@ gimp_palette_import_extract (GimpImage *image, - - gegl_buffer_iterator_add (iter, buffer, &rect, 0, format, - GEGL_ACCESS_READ, GEGL_ABYSS_NONE); -- mask_roi = &iter->roi[1]; -+ mask_roi = &iter->items[1].roi; - mask_bpp = babl_format_get_bytes_per_pixel (format); - } - - while (gegl_buffer_iterator_next (iter)) - { -- const guchar *data = iter->data[0]; -+ const guchar *data = iter->items[0].data; - const guchar *mask_data = NULL; - gint length = iter->length; - - if (mask_roi) -- mask_data = iter->data[1]; -+ mask_data = iter->items[1].data; - - while (length--) - { -diff --git a/app/core/gimppickable-contiguous-region.c b/app/core/gimppickable-contiguous-region.c -index 3d625b53db..27f071820c 100644 ---- app/core/gimppickable-contiguous-region.c -+++ app/core/gimppickable-contiguous-region.c -@@ -20,6 +20,7 @@ - #include - - #include -+#define GEGL_ITERATOR2_API - #include - #include - -@@ -218,7 +219,7 @@ gimp_pickable_contiguous_region_by_color (GimpPickable *pickable, - - iter = gegl_buffer_iterator_new (src_buffer, - NULL, 0, format, -- GEGL_ACCESS_READ, GEGL_ABYSS_NONE); -+ GEGL_ACCESS_READ, GEGL_ABYSS_NONE, 2); - - gegl_buffer_iterator_add (iter, mask_buffer, - NULL, 0, babl_format ("Y float"), -@@ -226,8 +227,8 @@ gimp_pickable_contiguous_region_by_color (GimpPickable *pickable, - - while (gegl_buffer_iterator_next (iter)) - { -- const gfloat *src = iter->data[0]; -- gfloat *dest = iter->data[1]; -+ const gfloat *src = iter->items[0].data; -+ gfloat *dest = iter->items[1].data; - gint count = iter->length; - - while (count--) -diff --git a/app/core/gimpscanconvert.c b/app/core/gimpscanconvert.c -index 742bb0e27b..108c0e1a47 100644 ---- app/core/gimpscanconvert.c -+++ app/core/gimpscanconvert.c -@@ -20,6 +20,7 @@ - #include - - #include -+#define GEGL_ITERATOR2_API - #include - - #include -@@ -528,12 +529,12 @@ gimp_scan_convert_render_full (GimpScanConvert *sc, - bpp = babl_format_get_bytes_per_pixel (format); - - iter = gegl_buffer_iterator_new (buffer, NULL, 0, format, -- GEGL_ACCESS_READWRITE, GEGL_ABYSS_NONE); -- roi = &iter->roi[0]; -+ GEGL_ACCESS_READWRITE, GEGL_ABYSS_NONE, 1); -+ roi = &iter->items[0].roi; - - while (gegl_buffer_iterator_next (iter)) - { -- guchar *data = iter->data[0]; -+ guchar *data = iter->items[0].data; - guchar *tmp_buf = NULL; - const gint stride = cairo_format_stride_for_width (CAIRO_FORMAT_A8, - roi->width); -diff --git a/app/gegl/gimp-gegl-loops.cc b/app/gegl/gimp-gegl-loops.cc -index f123edc7a0..cdb8c5785a 100644 ---- app/gegl/gimp-gegl-loops.cc -+++ app/gegl/gimp-gegl-loops.cc -@@ -24,6 +24,7 @@ - - #include - #include -+#define GEGL_ITERATOR2_API - #include - - extern "C" -@@ -174,22 +175,22 @@ gimp_gegl_convolve (GeglBuffer *src_buffer, - - /* Set up dest iterator */ - dest_iter = gegl_buffer_iterator_new (dest_buffer, dest_area, 0, dest_format, -- GEGL_ACCESS_WRITE, GEGL_ABYSS_NONE); -+ GEGL_ACCESS_WRITE, GEGL_ABYSS_NONE, 1); - - while (gegl_buffer_iterator_next (dest_iter)) - { - /* Convolve the src image using the convolution kernel, writing - * to dest Convolve is not tile-enabled--use accordingly - */ -- gfloat *dest = (gfloat *) dest_iter->data[0]; -+ gfloat *dest = (gfloat *) dest_iter->items[0].data; - const gint x1 = 0; - const gint y1 = 0; - const gint x2 = src_rect->width - 1; - const gint y2 = src_rect->height - 1; -- const gint dest_x1 = dest_iter->roi[0].x; -- const gint dest_y1 = dest_iter->roi[0].y; -- const gint dest_x2 = dest_iter->roi[0].x + dest_iter->roi[0].width; -- const gint dest_y2 = dest_iter->roi[0].y + dest_iter->roi[0].height; -+ const gint dest_x1 = dest_iter->items[0].roi.x; -+ const gint dest_y1 = dest_iter->items[0].roi.y; -+ const gint dest_x2 = dest_iter->items[0].roi.x + dest_iter->items[0].roi.width; -+ const gint dest_y2 = dest_iter->items[0].roi.y + dest_iter->items[0].roi.height; - gint x, y; - - for (y = dest_y1; y < dest_y2; y++) -@@ -280,7 +281,7 @@ gimp_gegl_convolve (GeglBuffer *src_buffer, - } - } - -- dest += dest_iter->roi[0].width * dest_components; -+ dest += dest_iter->items[0].roi.width * dest_components; - } - } - }); -@@ -325,7 +326,7 @@ gimp_gegl_dodgeburn (GeglBuffer *src_buffer, - - iter = gegl_buffer_iterator_new (src_buffer, src_area, 0, - babl_format ("R'G'B'A float"), -- GEGL_ACCESS_READ, GEGL_ABYSS_NONE); -+ GEGL_ACCESS_READ, GEGL_ABYSS_NONE, 2); - - gegl_buffer_iterator_add (iter, dest_buffer, dest_area, 0, - babl_format ("R'G'B'A float"), -@@ -340,8 +341,8 @@ gimp_gegl_dodgeburn (GeglBuffer *src_buffer, - - while (gegl_buffer_iterator_next (iter)) - { -- gfloat *src = (gfloat *) iter->data[0]; -- gfloat *dest = (gfloat *) iter->data[1]; -+ gfloat *src = (gfloat *) iter->items[0].data; -+ gfloat *dest = (gfloat *) iter->items[1].data; - gint count = iter->length; - - while (count--) -@@ -363,8 +364,8 @@ gimp_gegl_dodgeburn (GeglBuffer *src_buffer, - - while (gegl_buffer_iterator_next (iter)) - { -- gfloat *src = (gfloat *) iter->data[0]; -- gfloat *dest = (gfloat *) iter->data[1]; -+ gfloat *src = (gfloat *) iter->items[0].data; -+ gfloat *dest = (gfloat *) iter->items[1].data; - gint count = iter->length; - - while (count--) -@@ -386,8 +387,8 @@ gimp_gegl_dodgeburn (GeglBuffer *src_buffer, - - while (gegl_buffer_iterator_next (iter)) - { -- gfloat *src = (gfloat *) iter->data[0]; -- gfloat *dest = (gfloat *) iter->data[1]; -+ gfloat *src = (gfloat *) iter->items[0].data; -+ gfloat *dest = (gfloat *) iter->items[1].data; - gint count = iter->length; - - while (count--) -@@ -560,7 +561,7 @@ gimp_gegl_smudge_with_paint (GeglBuffer *accum_buffer, - - iter = gegl_buffer_iterator_new (accum_buffer, accum_area, 0, - babl_format ("RGBA float"), -- GEGL_ACCESS_READWRITE, GEGL_ABYSS_NONE); -+ GEGL_ACCESS_READWRITE, GEGL_ABYSS_NONE, 3); - - gegl_buffer_iterator_add (iter, canvas_buffer, canvas_area, 0, - babl_format ("RGBA float"), -@@ -576,9 +577,9 @@ gimp_gegl_smudge_with_paint (GeglBuffer *accum_buffer, - - while (gegl_buffer_iterator_next (iter)) - { -- gfloat *accum = (gfloat *) iter->data[0]; -- const gfloat *canvas = (const gfloat *) iter->data[1]; -- gfloat *paint = (gfloat *) iter->data[2]; -+ gfloat *accum = (gfloat *) iter->items[0].data; -+ const gfloat *canvas = (const gfloat *) iter->items[1].data; -+ gfloat *paint = (gfloat *) iter->items[2].data; - gint count = iter->length; - - #if COMPILE_SSE2_INTRINISICS -@@ -628,7 +629,7 @@ gimp_gegl_apply_mask (GeglBuffer *mask_buffer, - - iter = gegl_buffer_iterator_new (mask_buffer, mask_area, 0, - babl_format ("Y float"), -- GEGL_ACCESS_READ, GEGL_ABYSS_NONE); -+ GEGL_ACCESS_READ, GEGL_ABYSS_NONE, 2); - - gegl_buffer_iterator_add (iter, dest_buffer, dest_area, 0, - babl_format ("RGBA float"), -@@ -636,8 +637,8 @@ gimp_gegl_apply_mask (GeglBuffer *mask_buffer, - - while (gegl_buffer_iterator_next (iter)) - { -- const gfloat *mask = (const gfloat *) iter->data[0]; -- gfloat *dest = (gfloat *) iter->data[1]; -+ const gfloat *mask = (const gfloat *) iter->items[0].data; -+ gfloat *dest = (gfloat *) iter->items[1].data; - gint count = iter->length; - - while (count--) -@@ -673,7 +674,7 @@ gimp_gegl_combine_mask (GeglBuffer *mask_buffer, - - iter = gegl_buffer_iterator_new (mask_buffer, mask_area, 0, - babl_format ("Y float"), -- GEGL_ACCESS_READ, GEGL_ABYSS_NONE); -+ GEGL_ACCESS_READ, GEGL_ABYSS_NONE, 2); - - gegl_buffer_iterator_add (iter, dest_buffer, dest_area, 0, - babl_format ("Y float"), -@@ -681,8 +682,8 @@ gimp_gegl_combine_mask (GeglBuffer *mask_buffer, - - while (gegl_buffer_iterator_next (iter)) - { -- const gfloat *mask = (const gfloat *) iter->data[0]; -- gfloat *dest = (gfloat *) iter->data[1]; -+ const gfloat *mask = (const gfloat *) iter->items[0].data; -+ gfloat *dest = (gfloat *) iter->items[1].data; - gint count = iter->length; - - while (count--) -@@ -719,7 +720,7 @@ gimp_gegl_combine_mask_weird (GeglBuffer *mask_buffer, - - iter = gegl_buffer_iterator_new (mask_buffer, mask_area, 0, - babl_format ("Y float"), -- GEGL_ACCESS_READ, GEGL_ABYSS_NONE); -+ GEGL_ACCESS_READ, GEGL_ABYSS_NONE, 2); - - gegl_buffer_iterator_add (iter, dest_buffer, dest_area, 0, - babl_format ("Y float"), -@@ -727,8 +728,8 @@ gimp_gegl_combine_mask_weird (GeglBuffer *mask_buffer, - - while (gegl_buffer_iterator_next (iter)) - { -- const gfloat *mask = (const gfloat *) iter->data[0]; -- gfloat *dest = (gfloat *) iter->data[1]; -+ const gfloat *mask = (const gfloat *) iter->items[0].data; -+ gfloat *dest = (gfloat *) iter->items[1].data; - gint count = iter->length; - - if (stipple) -@@ -791,7 +792,7 @@ gimp_gegl_replace (GeglBuffer *top_buffer, - - iter = gegl_buffer_iterator_new (top_buffer, top_area, 0, - babl_format ("RGBA float"), -- GEGL_ACCESS_READ, GEGL_ABYSS_NONE); -+ GEGL_ACCESS_READ, GEGL_ABYSS_NONE, 4); - - gegl_buffer_iterator_add (iter, bottom_buffer, bottom_area, 0, - babl_format ("RGBA float"), -@@ -807,10 +808,10 @@ gimp_gegl_replace (GeglBuffer *top_buffer, - - while (gegl_buffer_iterator_next (iter)) - { -- const gfloat *top = (const gfloat *) iter->data[0]; -- const gfloat *bottom = (const gfloat *) iter->data[1]; -- const gfloat *mask = (const gfloat *) iter->data[2]; -- gfloat *dest = (gfloat *) iter->data[3]; -+ const gfloat *top = (const gfloat *) iter->items[0].data; -+ const gfloat *bottom = (const gfloat *) iter->items[1].data; -+ const gfloat *mask = (const gfloat *) iter->items[2].data; -+ gfloat *dest = (gfloat *) iter->items[3].data; - gint count = iter->length; - - while (count--) -@@ -905,7 +906,7 @@ gimp_gegl_index_to_mask (GeglBuffer *indexed_buffer, - - iter = gegl_buffer_iterator_new (indexed_buffer, indexed_area, 0, - indexed_format, -- GEGL_ACCESS_READ, GEGL_ABYSS_NONE); -+ GEGL_ACCESS_READ, GEGL_ABYSS_NONE, 2); - - gegl_buffer_iterator_add (iter, mask_buffer, mask_area, 0, - babl_format ("Y float"), -@@ -913,8 +914,8 @@ gimp_gegl_index_to_mask (GeglBuffer *indexed_buffer, - - while (gegl_buffer_iterator_next (iter)) - { -- const guchar *indexed = (const guchar *) iter->data[0]; -- gfloat *mask = (gfloat *) iter->data[1]; -+ const guchar *indexed = (const guchar *) iter->items[0].data; -+ gfloat *mask = (gfloat *) iter->items[1].data; - gint count = iter->length; - - while (count--) -@@ -1063,11 +1064,11 @@ gimp_gegl_average_color (GeglBuffer *buffer, - gint n = 0; - - iter = gegl_buffer_iterator_new (buffer, area, 0, average_format, -- GEGL_BUFFER_READ, abyss_policy); -+ GEGL_BUFFER_READ, abyss_policy, 1); - - while (gegl_buffer_iterator_next (iter)) - { -- const gfloat *p = (const gfloat *) iter->data[0]; -+ const gfloat *p = (const gfloat *) iter->items[0].data; - gint i; - - for (i = 0; i < iter->length; i++) -diff --git a/app/gegl/gimp-gegl-mask-combine.c b/app/gegl/gimp-gegl-mask-combine.c -index abedf61de9..9ab093fe8c 100644 ---- app/gegl/gimp-gegl-mask-combine.c -+++ app/gegl/gimp-gegl-mask-combine.c -@@ -20,6 +20,7 @@ - #include - - #include -+#define GEGL_ITERATOR2_API - #include - - #include "libgimpbase/gimpbase.h" -@@ -205,12 +206,12 @@ gimp_gegl_mask_combine_ellipse_rect (GeglBuffer *mask, - iter = gegl_buffer_iterator_new (mask, - GEGL_RECTANGLE (x0, y0, width, height), 0, - babl_format ("Y float"), -- GEGL_ACCESS_READWRITE, GEGL_ABYSS_NONE); -- roi = &iter->roi[0]; -+ GEGL_ACCESS_READWRITE, GEGL_ABYSS_NONE, 1); -+ roi = &iter->items[0].roi; - - while (gegl_buffer_iterator_next (iter)) - { -- gfloat *data = iter->data[0]; -+ gfloat *data = iter->items[0].data; - gint py; - - for (py = roi->y; -@@ -411,7 +412,7 @@ gimp_gegl_mask_combine_buffer (GeglBuffer *mask, - - iter = gegl_buffer_iterator_new (mask, &rect, 0, - mask_format, -- GEGL_ACCESS_READWRITE, GEGL_ABYSS_NONE); -+ GEGL_ACCESS_READWRITE, GEGL_ABYSS_NONE, 2); - - rect.x -= off_x; - rect.y -= off_y; -@@ -443,8 +444,8 @@ gimp_gegl_mask_combine_buffer (GeglBuffer *mask, - case GIMP_CHANNEL_OP_REPLACE: - while (gegl_buffer_iterator_next (iter)) - { -- gfloat *mask_data = iter->data[0]; -- const gfloat *add_on_data = iter->data[1]; -+ gfloat *mask_data = iter->items[0].data; -+ const gfloat *add_on_data = iter->items[1].data; - gint count = iter->length; - - while (count--) -@@ -462,8 +463,8 @@ gimp_gegl_mask_combine_buffer (GeglBuffer *mask, - case GIMP_CHANNEL_OP_SUBTRACT: - while (gegl_buffer_iterator_next (iter)) - { -- gfloat *mask_data = iter->data[0]; -- const gfloat *add_on_data = iter->data[1]; -+ gfloat *mask_data = iter->items[0].data; -+ const gfloat *add_on_data = iter->items[1].data; - gint count = iter->length; - - while (count--) -@@ -482,8 +483,8 @@ gimp_gegl_mask_combine_buffer (GeglBuffer *mask, - case GIMP_CHANNEL_OP_INTERSECT: - while (gegl_buffer_iterator_next (iter)) - { -- gfloat *mask_data = iter->data[0]; -- const gfloat *add_on_data = iter->data[1]; -+ gfloat *mask_data = iter->items[0].data; -+ const gfloat *add_on_data = iter->items[1].data; - gint count = iter->length; - - while (count--) -diff --git a/app/gegl/gimp-gegl-mask.c b/app/gegl/gimp-gegl-mask.c -index f14638b264..4dad33315c 100644 ---- app/gegl/gimp-gegl-mask.c -+++ app/gegl/gimp-gegl-mask.c -@@ -17,6 +17,7 @@ - - #include "config.h" - -+#define GEGL_ITERATOR2_API - #include - - #include "gimp-gegl-types.h" -@@ -48,12 +49,12 @@ gimp_gegl_mask_bounds (GeglBuffer *buffer, - ty2 = 0; - - iter = gegl_buffer_iterator_new (buffer, NULL, 0, babl_format ("Y float"), -- GEGL_ACCESS_READ, GEGL_ABYSS_NONE); -- roi = &iter->roi[0]; -+ GEGL_ACCESS_READ, GEGL_ABYSS_NONE, 1); -+ roi = &iter->items[0].roi; - - while (gegl_buffer_iterator_next (iter)) - { -- gfloat *data = iter->data[0]; -+ gfloat *data = iter->items[0].data; - gfloat *data1 = data; - gint ex = roi->x + roi->width; - gint ey = roi->y + roi->height; -@@ -138,11 +139,11 @@ gimp_gegl_mask_is_empty (GeglBuffer *buffer) - g_return_val_if_fail (GEGL_IS_BUFFER (buffer), FALSE); - - iter = gegl_buffer_iterator_new (buffer, NULL, 0, babl_format ("Y float"), -- GEGL_ACCESS_READ, GEGL_ABYSS_NONE); -+ GEGL_ACCESS_READ, GEGL_ABYSS_NONE, 1); - - while (gegl_buffer_iterator_next (iter)) - { -- gfloat *data = iter->data[0]; -+ gfloat *data = iter->items[0].data; - gint i; - - for (i = 0; i < iter->length; i++) -diff --git a/app/operations/gimpoperationbuffersourcevalidate.c b/app/operations/gimpoperationbuffersourcevalidate.c -index 85a87ecd8b..40b16871e4 100644 ---- app/operations/gimpoperationbuffersourcevalidate.c -+++ app/operations/gimpoperationbuffersourcevalidate.c -@@ -18,6 +18,7 @@ - * along with this program. If not, see . - */ - -+#define GEGL_ITERATOR2_API - #include "config.h" - - #include -@@ -317,7 +318,7 @@ gimp_operation_buffer_source_validate_process (GeglOperation *operation, - rect.height), - level, NULL, - GEGL_BUFFER_READ, -- GEGL_ABYSS_NONE); -+ GEGL_ABYSS_NONE, 1); - - while (gegl_buffer_iterator_next (iter)); - } -diff --git a/app/operations/gimpoperationcagecoefcalc.c b/app/operations/gimpoperationcagecoefcalc.c -index 30e7f49681..66e7527341 100644 ---- app/operations/gimpoperationcagecoefcalc.c -+++ app/operations/gimpoperationcagecoefcalc.c -@@ -20,6 +20,7 @@ - #include "config.h" - - #include -+#define GEGL_ITERATOR2_API - #include - - #include "libgimpmath/gimpmath.h" -@@ -212,17 +213,17 @@ gimp_operation_cage_coef_calc_process (GeglOperation *operation, - n_cage_vertices = gimp_cage_config_get_n_points (config); - - it = gegl_buffer_iterator_new (output, roi, 0, format, -- GEGL_ACCESS_READWRITE, GEGL_ABYSS_NONE); -+ GEGL_ACCESS_READWRITE, GEGL_ABYSS_NONE, 1); - - while (gegl_buffer_iterator_next (it)) - { - /* iterate inside the roi */ - gint n_pixels = it->length; -- gint x = it->roi->x; /* initial x */ -- gint y = it->roi->y; /* and y coordinates */ -+ gint x = it->items[0].roi.x; /* initial x */ -+ gint y = it->items[0].roi.y; /* and y coordinates */ - gint j; - -- gfloat *coef = it->data[0]; -+ gfloat *coef = it->items[0].data; - - while(n_pixels--) - { -@@ -282,9 +283,9 @@ gimp_operation_cage_coef_calc_process (GeglOperation *operation, - - /* update x and y coordinates */ - x++; -- if (x >= (it->roi->x + it->roi->width)) -+ if (x >= (it->items[0].roi.x + it->items[0].roi.width)) - { -- x = it->roi->x; -+ x = it->items[0].roi.x; - y++; - } - } -diff --git a/app/operations/gimpoperationcagetransform.c b/app/operations/gimpoperationcagetransform.c -index f0467d5088..d2267c8bfa 100644 ---- app/operations/gimpoperationcagetransform.c -+++ app/operations/gimpoperationcagetransform.c -@@ -20,6 +20,7 @@ - #include "config.h" - - #include -+#define GEGL_ITERATOR2_API - #include - #include - -@@ -234,7 +235,7 @@ gimp_operation_cage_transform_process (GeglOperation *operation, - - /* pre-fill the out buffer with no-displacement coordinate */ - it = gegl_buffer_iterator_new (out_buf, roi, 0, NULL, -- GEGL_ACCESS_WRITE, GEGL_ABYSS_NONE); -+ GEGL_ACCESS_WRITE, GEGL_ABYSS_NONE, 1); - cage_bb = gimp_cage_config_get_bounding_box (config); - - point = &(g_array_index (config->cage_points, GimpCagePoint, 0)); -@@ -247,10 +248,10 @@ gimp_operation_cage_transform_process (GeglOperation *operation, - { - /* iterate inside the roi */ - gint n_pixels = it->length; -- gfloat *output = it->data[0]; -+ gfloat *output = it->items[0].data; - -- x = it->roi->x; /* initial x */ -- y = it->roi->y; /* and y coordinates */ -+ x = it->items[0].roi.x; /* initial x */ -+ y = it->items[0].roi.y; /* and y coordinates */ - - while (n_pixels--) - { -@@ -280,9 +281,9 @@ gimp_operation_cage_transform_process (GeglOperation *operation, - - /* update x and y coordinates */ - x++; -- if (x >= (it->roi->x + it->roi->width)) -+ if (x >= (it->items[0].roi.x + it->items[0].roi.width)) - { -- x = it->roi->x; -+ x = it->items[0].roi.x; - y++; - } - } -diff --git a/app/operations/gimpoperationgradient.c b/app/operations/gimpoperationgradient.c -index 889d8f8656..ec3a0164c7 100644 ---- app/operations/gimpoperationgradient.c -+++ app/operations/gimpoperationgradient.c -@@ -23,6 +23,7 @@ - #include "config.h" - - #include -+#define GEGL_ITERATOR2_API - #include - #include - -@@ -1130,15 +1131,15 @@ gimp_operation_gradient_process (GeglOperation *operation, - - iter = gegl_buffer_iterator_new (output, result, 0, - babl_format ("R'G'B'A float"), -- GEGL_ACCESS_WRITE, GEGL_ABYSS_NONE); -- roi = &iter->roi[0]; -+ GEGL_ACCESS_WRITE, GEGL_ABYSS_NONE, 1); -+ roi = &iter->items[0].roi; - - if (self->dither) - seed = g_rand_new (); - - while (gegl_buffer_iterator_next (iter)) - { -- gfloat *dest = iter->data[0]; -+ gfloat *dest = iter->items[0].data; - gint endx = roi->x + roi->width; - gint endy = roi->y + roi->height; - gint x, y; -diff --git a/app/operations/gimpoperationmaskcomponents.c b/app/operations/gimpoperationmaskcomponents.c -index 1c9425c410..8a8756cb7a 100644 ---- app/operations/gimpoperationmaskcomponents.c -+++ app/operations/gimpoperationmaskcomponents.c -@@ -81,7 +81,7 @@ gimp_operation_mask_components_class_init (GimpOperationMaskComponentsClass *kla - NULL); - - operation_class->prepare = gimp_operation_mask_components_prepare; -- operation_class->process = gimp_operation_mask_components_parent_process; -+ //operation_class->process = gimp_operation_mask_components_parent_process; - - point_class->process = gimp_operation_mask_components_process; - -@@ -172,7 +172,7 @@ gimp_operation_mask_components_parent_process (GeglOperation *operation, - gint level) - { - GimpOperationMaskComponents *self = GIMP_OPERATION_MASK_COMPONENTS (operation); -- -+#if 0 - if (self->mask == 0) - { - GObject *input = gegl_operation_context_get_object (context, "input"); -@@ -189,7 +189,7 @@ gimp_operation_mask_components_parent_process (GeglOperation *operation, - - return TRUE; - } -- -+#endif - return GEGL_OPERATION_CLASS (parent_class)->process (operation, context, - output_prop, result, - level); -@@ -211,10 +211,24 @@ gimp_operation_mask_components_process (GeglOperation *operation, - GimpComponentMask mask = self->mask; - static const gfloat nothing[] = { 0.0, 0.0, 0.0, 1.0 }; - -- if (! aux) -- aux = (gfloat *) nothing; -+#if 0 -+ if (self->mask == 0) -+ { -+ if (in_buf != out_buf) -+ memcpy (out_buf, in_buf, sizeof (float) * 4 * samples); -+ } -+ else if (self->mask == GIMP_COMPONENT_MASK_ALL && aux_buf) -+ { -+ if (aux_buf != out_buf) -+ memcpy (out_buf, aux_buf, sizeof (float) * 4 * samples); -+ } -+ else -+#endif -+ { -+ if (! aux) -+ aux = (gfloat *) nothing; - -- while (samples--) -+ while (samples--) - { - dest[RED] = (mask & GIMP_COMPONENT_MASK_RED) ? aux[RED] : src[RED]; - dest[GREEN] = (mask & GIMP_COMPONENT_MASK_GREEN) ? aux[GREEN] : src[GREEN]; -@@ -228,6 +242,7 @@ gimp_operation_mask_components_process (GeglOperation *operation, - - dest += 4; - } -+ } - - return TRUE; - } -diff --git a/app/paint/gimpbrushcore.c b/app/paint/gimpbrushcore.c -index e5076f723a..d46ecba72a 100644 ---- app/paint/gimpbrushcore.c -+++ app/paint/gimpbrushcore.c -@@ -20,6 +20,7 @@ - #include - - #include -+#define GEGL_ITERATOR2_API - #include - - #include "libgimpmath/gimpmath.h" -@@ -1283,7 +1284,7 @@ gimp_brush_core_color_area_with_pixmap (GimpBrushCore *core, - pixmap_format = gimp_temp_buf_get_format (pixmap_mask); - - iter = gegl_buffer_iterator_new (area, NULL, 0, area_format, -- GEGL_ACCESS_WRITE, GEGL_ABYSS_NONE); -+ GEGL_ACCESS_WRITE, GEGL_ABYSS_NONE, 1); - - if (mode == GIMP_BRUSH_SOFT && brush_mask) - { -@@ -1306,11 +1307,11 @@ gimp_brush_core_color_area_with_pixmap (GimpBrushCore *core, - brush_mask = NULL; - } - -- roi = &iter->roi[0]; -+ roi = &iter->items[0].roi; - - while (gegl_buffer_iterator_next (iter)) - { -- gfloat *d = iter->data[0]; -+ gfloat *d = iter->items[0].data; - gint y; - - for (y = 0; y < roi->height; y++) -diff --git a/app/paint/gimpheal.c b/app/paint/gimpheal.c -index 0c2a0f3c0a..140baf0504 100644 ---- app/paint/gimpheal.c -+++ app/paint/gimpheal.c -@@ -25,6 +25,7 @@ - #include - - #include -+#define GEGL_ITERATOR2_API - #include - - #include "libgimpbase/gimpbase.h" -@@ -205,7 +206,7 @@ gimp_heal_sub (GeglBuffer *top_buffer, - g_return_if_reached (); - - iter = gegl_buffer_iterator_new (top_buffer, top_rect, 0, format, -- GEGL_ACCESS_READ, GEGL_ABYSS_NONE); -+ GEGL_ACCESS_READ, GEGL_ABYSS_NONE, 3); - - gegl_buffer_iterator_add (iter, bottom_buffer, bottom_rect, 0, format, - GEGL_ACCESS_READ, GEGL_ABYSS_NONE); -@@ -216,9 +217,9 @@ gimp_heal_sub (GeglBuffer *top_buffer, - - while (gegl_buffer_iterator_next (iter)) - { -- gfloat *t = iter->data[0]; -- gfloat *b = iter->data[1]; -- gfloat *r = iter->data[2]; -+ gfloat *t = iter->items[0].data; -+ gfloat *b = iter->items[1].data; -+ gfloat *r = iter->items[2].data; - gint length = iter->length * n_components; - - while (length--) -@@ -250,7 +251,7 @@ gimp_heal_add (GeglBuffer *first_buffer, - iter = gegl_buffer_iterator_new (first_buffer, first_rect, 0, - babl_format_n (babl_type ("float"), - n_components), -- GEGL_ACCESS_READ, GEGL_ABYSS_NONE); -+ GEGL_ACCESS_READ, GEGL_ABYSS_NONE, 3); - - gegl_buffer_iterator_add (iter, second_buffer, second_rect, 0, format, - GEGL_ACCESS_READ, GEGL_ABYSS_NONE); -@@ -260,9 +261,9 @@ gimp_heal_add (GeglBuffer *first_buffer, - - while (gegl_buffer_iterator_next (iter)) - { -- gfloat *f = iter->data[0]; -- gfloat *s = iter->data[1]; -- gfloat *r = iter->data[2]; -+ gfloat *f = iter->items[0].data; -+ gfloat *s = iter->items[1].data; -+ gfloat *r = iter->items[2].data; - gint length = iter->length * n_components; - - while (length--) -diff --git a/app/paint/gimpink.c b/app/paint/gimpink.c -index ce4e018b21..7531ece643 100644 ---- app/paint/gimpink.c -+++ app/paint/gimpink.c -@@ -20,6 +20,7 @@ - #include - - #include -+#define GEGL_ITERATOR2_API - #include - - #include "libgimpmath/gimpmath.h" -@@ -748,12 +749,12 @@ render_blob (GeglBuffer *buffer, - GeglRectangle *roi; - - iter = gegl_buffer_iterator_new (buffer, rect, 0, babl_format ("Y float"), -- GEGL_ACCESS_READWRITE, GEGL_ABYSS_NONE); -- roi = &iter->roi[0]; -+ GEGL_ACCESS_READWRITE, GEGL_ABYSS_NONE, 1); -+ roi = &iter->items[0].roi; - - while (gegl_buffer_iterator_next (iter)) - { -- gfloat *d = iter->data[0]; -+ gfloat *d = iter->items[0].data; - gint h = roi->height; - gint y; - -diff --git a/app/paint/gimpmybrushsurface.c b/app/paint/gimpmybrushsurface.c -index b9970d4c6c..dece18ae1d 100644 ---- app/paint/gimpmybrushsurface.c -+++ app/paint/gimpmybrushsurface.c -@@ -16,7 +16,7 @@ - */ - - #include "config.h" -- -+#define GEGL_ITERATOR2_API - #include - - #include -@@ -266,7 +266,7 @@ gimp_mypaint_surface_get_color (MyPaintSurface *base_surface, - GeglBufferIterator *iter = gegl_buffer_iterator_new (surface->buffer, &dabRect, 0, - babl_format ("R'aG'aB'aA float"), - GEGL_BUFFER_READ, -- GEGL_ABYSS_CLAMP); -+ GEGL_ABYSS_CLAMP, 2); - if (surface->paint_mask) - { - GeglRectangle mask_roi = dabRect; -@@ -279,19 +279,19 @@ gimp_mypaint_surface_get_color (MyPaintSurface *base_surface, - - while (gegl_buffer_iterator_next (iter)) - { -- float *pixel = (float *)iter->data[0]; -+ float *pixel = (float *)iter->items[0].data; - float *mask; - int iy, ix; - - if (surface->paint_mask) -- mask = iter->data[1]; -+ mask = iter->items[1].data; - else - mask = NULL; - -- for (iy = iter->roi[0].y; iy < iter->roi[0].y + iter->roi[0].height; iy++) -+ for (iy = iter->items[0].roi.y; iy < iter->items[0].roi.y + iter->items[0].roi.height; iy++) - { - float yy = (iy + 0.5f - y); -- for (ix = iter->roi[0].x; ix < iter->roi[0].x + iter->roi[0].width; ix++) -+ for (ix = iter->items[0].roi.x; ix < iter->items[0].roi.x + iter->items[0].roi.width; ix++) - { - /* pixel_weight == a standard dab with hardness = 0.5, aspect_ratio = 1.0, and angle = 0.0 */ - float xx = (ix + 0.5f - x); -@@ -390,7 +390,7 @@ gimp_mypaint_surface_draw_dab (MyPaintSurface *base_surface, - iter = gegl_buffer_iterator_new (surface->buffer, &dabRect, 0, - babl_format ("R'G'B'A float"), - GEGL_BUFFER_READWRITE, -- GEGL_ABYSS_NONE); -+ GEGL_ABYSS_NONE, 2); - if (surface->paint_mask) - { - GeglRectangle mask_roi = dabRect; -@@ -403,18 +403,18 @@ gimp_mypaint_surface_draw_dab (MyPaintSurface *base_surface, - - while (gegl_buffer_iterator_next (iter)) - { -- float *pixel = (float *)iter->data[0]; -+ float *pixel = (float *)iter->items[0].data; - float *mask; - int iy, ix; - - if (surface->paint_mask) -- mask = iter->data[1]; -+ mask = iter->items[1].data; - else - mask = NULL; - -- for (iy = iter->roi[0].y; iy < iter->roi[0].y + iter->roi[0].height; iy++) -+ for (iy = iter->items[0].roi.y; iy < iter->items[0].roi.y + iter->items[0].roi.height; iy++) - { -- for (ix = iter->roi[0].x; ix < iter->roi[0].x + iter->roi[0].width; ix++) -+ for (ix = iter->items[0].roi.x; ix < iter->items[0].roi.x + iter->items[0].roi.width; ix++) - { - float rr, base_alpha, alpha, dst_alpha, r, g, b, a; - if (radius < 3.0f) -diff --git a/app/paint/gimppaintcore-loops.cc b/app/paint/gimppaintcore-loops.cc -index f7fdee0a4f..383a7e2ad8 100644 ---- app/paint/gimppaintcore-loops.cc -+++ app/paint/gimppaintcore-loops.cc -@@ -16,7 +16,7 @@ - */ - - #include "config.h" -- -+#define GEGL_ITERATOR2_API - #include - #include - -@@ -641,7 +641,7 @@ struct CombinePaintMaskToCanvasMaskToPaintBufAlpha : - base_type::init_step (params, state, iter, roi, area); - - state->canvas_pixel = -- (gfloat *) iter->data[base_type::canvas_buffer_iterator]; -+ (gfloat *) iter->items[base_type::canvas_buffer_iterator].data; - } - - template -@@ -656,14 +656,14 @@ struct CombinePaintMaskToCanvasMaskToPaintBufAlpha : - base_type::process_row (params, state, iter, roi, area, y); - - gint mask_offset = (y - roi->y) * this->mask_stride + -- (iter->roi[0].x - roi->x); -+ (iter->items[0].roi.x - roi->x); - const mask_type *mask_pixel = &this->mask_data[mask_offset]; - gint paint_offset = (y - roi->y) * this->paint_stride + -- (iter->roi[0].x - roi->x) * 4; -+ (iter->items[0].roi.x - roi->x) * 4; - gfloat *paint_pixel = &this->paint_data[paint_offset]; - gint x; - -- for (x = 0; x < iter->roi[0].width; x++) -+ for (x = 0; x < iter->items[0].roi.width; x++) - { - if (base_type::stipple) - { -@@ -738,7 +738,7 @@ struct CombinePaintMaskToCanvasMask : - base_type::init_step (params, state, iter, roi, area); - - state->canvas_pixel = -- (gfloat *) iter->data[base_type::canvas_buffer_iterator]; -+ (gfloat *) iter->items[base_type::canvas_buffer_iterator].data; - } - - template -@@ -753,11 +753,11 @@ struct CombinePaintMaskToCanvasMask : - base_type::process_row (params, state, iter, roi, area, y); - - gint mask_offset = (y - roi->y) * this->mask_stride + -- (iter->roi[0].x - roi->x); -+ (iter->items[0].roi.x - roi->x); - const mask_type *mask_pixel = &this->mask_data[mask_offset]; - gint x; - -- for (x = 0; x < iter->roi[0].width; x++) -+ for (x = 0; x < iter->items[0].roi.width; x++) - { - if (base_type::stipple) - { -@@ -826,7 +826,7 @@ struct CanvasBufferToPaintBufAlpha : CanvasBufferIteratorcanvas_pixel = -- (const gfloat *) iter->data[base_type::canvas_buffer_iterator]; -+ (const gfloat *) iter->items[base_type::canvas_buffer_iterator].data; - } - - template -@@ -842,12 +842,12 @@ struct CanvasBufferToPaintBufAlpha : CanvasBufferIteratory) * this->paint_stride + -- (iter->roi[0].x - roi->x) * 4; -+ gint paint_offset = (y - roi->y) * this->paint_stride + -+ (iter->items[0].roi.x - roi->x) * 4; - gfloat *paint_pixel = &this->paint_data[paint_offset]; - gint x; - -- for (x = 0; x < iter->roi[0].width; x++) -+ for (x = 0; x < iter->items[0].roi.width; x++) - { - paint_pixel[3] *= *state->canvas_pixel; - -@@ -906,15 +906,15 @@ struct PaintMaskToPaintBuffer : Base - { - Base::process_row (params, state, iter, roi, area, y); - -- gint paint_offset = (y - roi->y) * this->paint_stride + -- (iter->roi[0].x - roi->x) * 4; -+ gint paint_offset = (y - roi->y) * this->paint_stride + -+ (iter->items[0].roi.x - roi->x) * 4; - gfloat *paint_pixel = &this->paint_data[paint_offset]; -- gint mask_offset = (y - roi->y) * this->mask_stride + -- (iter->roi[0].x - roi->x); -+ gint mask_offset = (y - roi->y) * this->mask_stride + -+ (iter->items[0].roi.x - roi->x); - const mask_type *mask_pixel = &this->mask_data[mask_offset]; - gint x; - -- for (x = 0; x < iter->roi[0].width; x++) -+ for (x = 0; x < iter->items[0].roi.width; x++) - { - paint_pixel[3] *= value_to_float (*mask_pixel) * params->paint_opacity; - -@@ -1024,19 +1024,19 @@ struct DoLayerBlend : Base - { - Base::init_step (params, state, iter, roi, area); - -- state->out_pixel = (gfloat *) iter->data[iterator_base + 0]; -- state->in_pixel = (gfloat *) iter->data[iterator_base + 1]; -+ state->out_pixel = (gfloat *) iter->items[iterator_base + 0].data; -+ state->in_pixel = (gfloat *) iter->items[iterator_base + 1].data; - state->mask_pixel = NULL; - - state->paint_pixel = this->paint_data + -- (iter->roi[0].y - roi->y) * this->paint_stride + -- (iter->roi[0].x - roi->x) * 4; -+ (iter->items[0].roi.y - roi->y) * this->paint_stride + -+ (iter->items[0].roi.x - roi->x) * 4; - - if (params->mask_buffer) -- state->mask_pixel = (gfloat *) iter->data[iterator_base + 2]; -+ state->mask_pixel = (gfloat *) iter->items[iterator_base + 2].data; - -- state->process_roi.x = iter->roi[0].x; -- state->process_roi.width = iter->roi[0].width; -+ state->process_roi.x = iter->items[0].roi.x; -+ state->process_roi.width = iter->items[0].roi.width; - state->process_roi.height = 1; - } - -@@ -1058,14 +1058,14 @@ struct DoLayerBlend : Base - state->paint_pixel, - state->mask_pixel, - state->out_pixel, -- iter->roi[0].width, -+ iter->items[0].roi.width, - &state->process_roi, - 0); - -- state->in_pixel += iter->roi[0].width * 4; -- state->out_pixel += iter->roi[0].width * 4; -+ state->in_pixel += iter->items[0].roi.width * 4; -+ state->out_pixel += iter->items[0].roi.width * 4; - if (params->mask_buffer) -- state->mask_pixel += iter->roi[0].width; -+ state->mask_pixel += iter->items[0].roi.width; - state->paint_pixel += this->paint_stride; - } - }; -@@ -1130,7 +1130,7 @@ gimp_paint_core_loops_process (const GimpPaintCoreLoopsParams *params, - { - GeglBufferIterator *iter; - -- iter = gegl_buffer_iterator_empty_new (); -+ iter = gegl_buffer_iterator_empty_new (4); - - algorithm.init (params, &state, iter, &roi, area); - -@@ -1138,28 +1138,28 @@ gimp_paint_core_loops_process (const GimpPaintCoreLoopsParams *params, - { - algorithm.init_step (params, &state, iter, &roi, area); - -- for (y = 0; y < iter->roi[0].height; y++) -+ for (y = 0; y < iter->items[0].roi.height; y++) - { - algorithm.process_row (params, &state, - iter, &roi, area, -- iter->roi[0].y + y); -+ iter->items[0].roi.y + y); - } - } - } - else - { -- GeglBufferIterator iter; -+ GeglBufferIterator iter[2]; - -- iter.roi[0] = *area; -+ iter[0].items[0].roi = *area; - -- algorithm.init (params, &state, &iter, &roi, area); -- algorithm.init_step (params, &state, &iter, &roi, area); -+ algorithm.init (params, &state, &iter[0], &roi, area); -+ algorithm.init_step (params, &state, &iter[0], &roi, area); - -- for (y = 0; y < iter.roi[0].height; y++) -+ for (y = 0; y < iter[0].items[0].roi.height; y++) - { - algorithm.process_row (params, &state, -- &iter, &roi, area, -- iter.roi[0].y + y); -+ &iter[0], &roi, area, -+ iter[0].items[0].roi.y + y); - } - } - }); -@@ -1346,7 +1346,7 @@ mask_components_onto (GeglBuffer *src_buffer, - - iter = gegl_buffer_iterator_new (dst_buffer, area, 0, - iterator_format, -- GEGL_ACCESS_WRITE, GEGL_ABYSS_NONE); -+ GEGL_ACCESS_WRITE, GEGL_ABYSS_NONE, 3); - - gegl_buffer_iterator_add (iter, src_buffer, area, 0, - iterator_format, -@@ -1358,9 +1358,9 @@ mask_components_onto (GeglBuffer *src_buffer, - - while (gegl_buffer_iterator_next (iter)) - { -- gfloat *dest = (gfloat *)iter->data[0]; -- gfloat *src = (gfloat *)iter->data[1]; -- gfloat *aux = (gfloat *)iter->data[2]; -+ gfloat *dest = (gfloat *)iter->items[0].data; -+ gfloat *src = (gfloat *)iter->items[1].data; -+ gfloat *aux = (gfloat *)iter->items[2].data; - glong samples = iter->length; - - while (samples--) -diff --git a/app/tools/gimpiscissorstool.c b/app/tools/gimpiscissorstool.c -index abfec2aaf6..67fb62f7ee 100644 ---- app/tools/gimpiscissorstool.c -+++ app/tools/gimpiscissorstool.c -@@ -46,6 +46,7 @@ - - #include - -+#define GEGL_ITERATOR2_API - #include - #include - #include -@@ -1914,12 +1915,12 @@ find_max_gradient (GimpIscissorsTool *iscissors, - iter = gegl_buffer_iterator_new (iscissors->gradient_map, - GEGL_RECTANGLE (x1, y1, x2 - x1, y2 - y1), - 0, NULL, -- GEGL_ACCESS_READ, GEGL_ABYSS_NONE); -- roi = &iter->roi[0]; -+ GEGL_ACCESS_READ, GEGL_ABYSS_NONE, 1); -+ roi = &iter->items[0].roi; - - while (gegl_buffer_iterator_next (iter)) - { -- guint8 *data = iter->data[0]; -+ guint8 *data = iter->items[0].data; - gint endx = roi->x + roi->width; - gint endy = roi->y + roi->height; - gint i, j; -diff --git a/libgimpcolor/gimpcolortransform.c b/libgimpcolor/gimpcolortransform.c -index 2ddc0f6563..b99c1f6e52 100644 ---- libgimpcolor/gimpcolortransform.c -+++ libgimpcolor/gimpcolortransform.c -@@ -28,6 +28,7 @@ - #include - - #include -+#define GEGL_ITERATOR2_API - #include - - #include "libgimpbase/gimpbase.h" -@@ -555,7 +556,7 @@ gimp_color_transform_process_buffer (GimpColorTransform *transform, - iter = gegl_buffer_iterator_new (src_buffer, src_rect, 0, - src_format, - GEGL_ACCESS_READ, -- GEGL_ABYSS_NONE); -+ GEGL_ABYSS_NONE, 2); - - gegl_buffer_iterator_add (iter, dest_buffer, dest_rect, 0, - dest_format, -@@ -567,15 +568,15 @@ gimp_color_transform_process_buffer (GimpColorTransform *transform, - if (priv->transform) - { - cmsDoTransform (priv->transform, -- iter->data[0], iter->data[1], iter->length); -+ iter->items[0].data, iter->items[1].data, iter->length); - } - else - { - babl_process (priv->fish, -- iter->data[0], iter->data[1], iter->length); -+ iter->items[0].data, iter->items[1].data, iter->length); - } - -- done_pixels += iter->roi[0].width * iter->roi[0].height; -+ done_pixels += iter->items[0].roi.width * iter->items[0].roi.height; - - g_signal_emit (transform, gimp_color_transform_signals[PROGRESS], 0, - (gdouble) done_pixels / -@@ -587,22 +588,22 @@ gimp_color_transform_process_buffer (GimpColorTransform *transform, - iter = gegl_buffer_iterator_new (src_buffer, src_rect, 0, - src_format, - GEGL_ACCESS_READWRITE, -- GEGL_ABYSS_NONE); -+ GEGL_ABYSS_NONE, 1); - - while (gegl_buffer_iterator_next (iter)) - { - if (priv->transform) - { - cmsDoTransform (priv->transform, -- iter->data[0], iter->data[0], iter->length); -+ iter->items[0].data, iter->items[0].data, iter->length); - } - else - { - babl_process (priv->fish, -- iter->data[0], iter->data[0], iter->length); -+ iter->items[0].data, iter->items[0].data, iter->length); - } - -- done_pixels += iter->roi[0].width * iter->roi[0].height; -+ done_pixels += iter->items[0].roi.width * iter->items[0].roi.height; - - g_signal_emit (transform, gimp_color_transform_signals[PROGRESS], 0, - (gdouble) done_pixels / -diff --git a/modules/display-filter-clip-warning.c b/modules/display-filter-clip-warning.c -index 0e140df15c..71e92736c2 100644 ---- modules/display-filter-clip-warning.c -+++ modules/display-filter-clip-warning.c -@@ -20,6 +20,7 @@ - - #include - -+#define GEGL_ITERATOR2_API - #include - #include - -@@ -353,14 +354,14 @@ cdisplay_clip_warning_convert_buffer (GimpColorDisplay *display, - - iter = gegl_buffer_iterator_new (buffer, area, 0, - babl_format ("R'G'B'A float"), -- GEGL_ACCESS_READWRITE, GEGL_ABYSS_NONE); -+ GEGL_ACCESS_READWRITE, GEGL_ABYSS_NONE, 1); - - while (gegl_buffer_iterator_next (iter)) - { -- gfloat *data = iter->data[0]; -+ gfloat *data = iter->items[0].data; - gint count = iter->length; -- gint x = iter->roi[0].x; -- gint y = iter->roi[0].y; -+ gint x = iter->items[0].roi.x; -+ gint y = iter->items[0].roi.y; - - while (count--) - { -@@ -406,9 +407,9 @@ cdisplay_clip_warning_convert_buffer (GimpColorDisplay *display, - - data += 4; - -- if (++x == iter->roi[0].x + iter->roi[0].width) -+ if (++x == iter->items[0].roi.x + iter->items[0].roi.width) - { -- x = iter->roi[0].x; -+ x = iter->items[0].roi.x; - y++; - } - } -diff --git a/modules/display-filter-color-blind.c b/modules/display-filter-color-blind.c -index aee9df704c..604f3f0d10 100644 ---- modules/display-filter-color-blind.c -+++ modules/display-filter-color-blind.c -@@ -29,6 +29,7 @@ - - #include - -+#define GEGL_ITERATOR2_API - #include - #include - -@@ -330,11 +331,11 @@ cdisplay_colorblind_convert_buffer (GimpColorDisplay *display, - - iter = gegl_buffer_iterator_new (buffer, area, 0, - babl_format ("RGBA float") /* linear! */, -- GEGL_ACCESS_READWRITE, GEGL_ABYSS_NONE); -+ GEGL_ACCESS_READWRITE, GEGL_ABYSS_NONE, 1); - - while (gegl_buffer_iterator_next (iter)) - { -- gfloat *data = iter->data[0]; -+ gfloat *data = iter->items[0].data; - gint count = iter->length; - - while (count--) -diff --git a/modules/display-filter-gamma.c b/modules/display-filter-gamma.c -index d49e12f933..0813e47912 100644 ---- modules/display-filter-gamma.c -+++ modules/display-filter-gamma.c -@@ -17,6 +17,7 @@ - - #include "config.h" - -+#define GEGL_ITERATOR2_API - #include - #include - -@@ -193,11 +194,11 @@ cdisplay_gamma_convert_buffer (GimpColorDisplay *display, - - iter = gegl_buffer_iterator_new (buffer, area, 0, - babl_format ("R'G'B'A float"), -- GEGL_ACCESS_READWRITE, GEGL_ABYSS_NONE); -+ GEGL_ACCESS_READWRITE, GEGL_ABYSS_NONE, 1); - - while (gegl_buffer_iterator_next (iter)) - { -- gfloat *data = iter->data[0]; -+ gfloat *data = iter->items[0].data; - gint count = iter->length; - - while (count--) -diff --git a/modules/display-filter-high-contrast.c b/modules/display-filter-high-contrast.c -index e45c28955f..7c7c512738 100644 ---- modules/display-filter-high-contrast.c -+++ modules/display-filter-high-contrast.c -@@ -17,6 +17,7 @@ - - #include "config.h" - -+#define GEGL_ITERATOR2_API - #include - #include - -@@ -193,11 +194,11 @@ cdisplay_contrast_convert_buffer (GimpColorDisplay *display, - - iter = gegl_buffer_iterator_new (buffer, area, 0, - babl_format ("R'G'B'A float"), -- GEGL_ACCESS_READWRITE, GEGL_ABYSS_NONE); -+ GEGL_ACCESS_READWRITE, GEGL_ABYSS_NONE, 1); - - while (gegl_buffer_iterator_next (iter)) - { -- gfloat *data = iter->data[0]; -+ gfloat *data = iter->items[0].data; - gint count = iter->length; - - while (count--) -diff --git a/plug-ins/common/border-average.c b/plug-ins/common/border-average.c -index 55ff62c9f2..d8c157b964 100644 ---- plug-ins/common/border-average.c -+++ plug-ins/common/border-average.c -@@ -17,6 +17,7 @@ - * along with this program. If not, see . - */ - -+#define GEGL_ITERATOR2_API - #include "config.h" - - #include -@@ -271,14 +272,14 @@ borderaverage (GeglBuffer *buffer, - GeglBufferIterator *gi; - - gi = gegl_buffer_iterator_new (buffer, &border[i], 0, babl_format ("R'G'B' u8"), -- GEGL_ACCESS_READWRITE, GEGL_ABYSS_NONE); -+ GEGL_ACCESS_READWRITE, GEGL_ABYSS_NONE, 1); - - while (gegl_buffer_iterator_next (gi)) - { - guint k; - guchar *data; - -- data = (guchar*) gi->data[0]; -+ data = (guchar*) gi->items[0].data; - - for (k = 0; k < gi->length; k++) - { -diff --git a/plug-ins/common/colormap-remap.c b/plug-ins/common/colormap-remap.c -index 168fb50bff..493bbeda22 100644 ---- plug-ins/common/colormap-remap.c -+++ plug-ins/common/colormap-remap.c -@@ -27,6 +27,7 @@ - * - */ - -+#define GEGL_ITERATOR2_API - #include "config.h" - - #include -@@ -363,19 +364,19 @@ remap (gint32 image_ID, - iter = gegl_buffer_iterator_new (buffer, - GEGL_RECTANGLE (0, 0, width, height), 0, - format, -- GEGL_ACCESS_READ, GEGL_ABYSS_NONE); -- src_roi = &iter->roi[0]; -+ GEGL_ACCESS_READ, GEGL_ABYSS_NONE, 2); -+ src_roi = &iter->items[0].roi; - - gegl_buffer_iterator_add (iter, shadow, - GEGL_RECTANGLE (0, 0, width, height), 0, - format, - GEGL_ACCESS_WRITE, GEGL_ABYSS_NONE); -- dest_roi = &iter->roi[1]; -+ dest_roi = &iter->items[1].roi; - - while (gegl_buffer_iterator_next (iter)) - { -- const guchar *src_row = iter->data[0]; -- guchar *dest_row = iter->data[1]; -+ const guchar *src_row = iter->items[0].data; -+ guchar *dest_row = iter->items[1].data; - gint y; - - for (y = 0; y < src_roi->height; y++) -diff --git a/plug-ins/common/compose.c b/plug-ins/common/compose.c -index 59d2e971f4..705f4c24c1 100644 ---- plug-ins/common/compose.c -+++ plug-ins/common/compose.c -@@ -34,6 +34,7 @@ - * They can be dropped for GIMP 3.0 - */ - -+#define GEGL_ITERATOR2_API - #include "config.h" - - #include -@@ -658,11 +659,11 @@ cpn_affine_transform (GeglBuffer *buffer, - gegl_buffer_set_format (buffer, babl_format ("Y double")); - - gi = gegl_buffer_iterator_new (buffer, NULL, 0, NULL, -- GEGL_ACCESS_READWRITE, GEGL_ABYSS_NONE); -+ GEGL_ACCESS_READWRITE, GEGL_ABYSS_NONE, 1); - - while (gegl_buffer_iterator_next (gi)) - { -- gdouble *data = gi->data[0]; -+ gdouble *data = gi->items[0].data; - guint k; - - for (k = 0; k < gi->length; k++) -@@ -683,7 +684,7 @@ fill_buffer_from_components (GeglBuffer *temp[MAX_COMPOSE_IMAGES], - gint j; - - gi = gegl_buffer_iterator_new (dst, NULL, 0, NULL, -- GEGL_ACCESS_WRITE, GEGL_ABYSS_NONE); -+ GEGL_ACCESS_WRITE, GEGL_ABYSS_NONE, 10); - - for (j = 0; j < num_cpn; j++) - { -@@ -695,13 +696,13 @@ fill_buffer_from_components (GeglBuffer *temp[MAX_COMPOSE_IMAGES], - while (gegl_buffer_iterator_next (gi)) - { - gdouble *src_data[MAX_COMPOSE_IMAGES]; -- gdouble *dst_data = (gdouble*) gi->data[0]; -+ gdouble *dst_data = (gdouble*) gi->items[0].data; - gulong k, count; - - count = 1; - for (j = 0; j < num_cpn; j++) - if (inputs[j].is_ID) -- src_data[j] = (gdouble*) gi->data[count++]; -+ src_data[j] = (gdouble*) gi->items[count++].data; - - for (k = 0; k < gi->length; k++) - { -diff --git a/plug-ins/common/decompose.c b/plug-ins/common/decompose.c -index 2ad0441431..24c8f0ea57 100644 ---- plug-ins/common/decompose.c -+++ plug-ins/common/decompose.c -@@ -25,7 +25,7 @@ - * merged into the officical plug-in by Sven Neumann. - */ - -- -+#define GEGL_ITERATOR2_API - #include "config.h" - - #include -@@ -641,7 +641,7 @@ transfer_registration_color (GeglBuffer *src, - dst_bpp = babl_format_get_bytes_per_pixel (dst_format); - - gi = gegl_buffer_iterator_new (src, NULL, 0, NULL, -- GEGL_ACCESS_READ, GEGL_ABYSS_NONE); -+ GEGL_ACCESS_READ, GEGL_ABYSS_NONE, 10); - - for (i = 0; i < count; i++) - { -@@ -655,9 +655,9 @@ transfer_registration_color (GeglBuffer *src, - gpointer dst_data[MAX_EXTRACT_IMAGES]; - gint j, k; - -- src_data = gi->data[0]; -+ src_data = gi->items[0].data; - for (j = 0; j < count; j++) -- dst_data[j] = gi->data[j + 1]; -+ dst_data[j] = gi->items[j + 1].data; - - for (k = 0; k < gi->length; k++) - { -@@ -693,14 +693,14 @@ cpn_affine_transform_clamp (GeglBuffer *buffer, - gegl_buffer_set_format (buffer, babl_format ("Y double")); - - gi = gegl_buffer_iterator_new (buffer, NULL, 0, NULL, -- GEGL_ACCESS_READWRITE, GEGL_ABYSS_NONE); -+ GEGL_ACCESS_READWRITE, GEGL_ABYSS_NONE, 1); - - while (gegl_buffer_iterator_next (gi)) - { - guint k; - double *data; - -- data = (double*) gi->data[0]; -+ data = (double*) gi->items[0].data; - - if (clamp) - { -diff --git a/plug-ins/common/file-png.c b/plug-ins/common/file-png.c -index 4fdaefb045..6ac721b803 100644 ---- plug-ins/common/file-png.c -+++ plug-ins/common/file-png.c -@@ -38,6 +38,7 @@ - * see ChangeLog - */ - -+#define GEGL_ITERATOR2_API - #include "config.h" - - #include -@@ -1360,13 +1361,13 @@ load_image (const gchar *filename, - file_format = gegl_buffer_get_format (buffer); - - iter = gegl_buffer_iterator_new (buffer, NULL, 0, file_format, -- GEGL_ACCESS_READWRITE, GEGL_ABYSS_NONE); -+ GEGL_ACCESS_READWRITE, GEGL_ABYSS_NONE, 1); - n_components = babl_format_get_n_components (file_format); - g_warn_if_fail (n_components == 2); - - while (gegl_buffer_iterator_next (iter)) - { -- guchar *data = iter->data[0]; -+ guchar *data = iter->items[0].data; - gint length = iter->length; - - while (length--) -@@ -2118,13 +2119,13 @@ ia_has_transparent_pixels (GeglBuffer *buffer) - - format = gegl_buffer_get_format (buffer); - iter = gegl_buffer_iterator_new (buffer, NULL, 0, format, -- GEGL_ACCESS_READ, GEGL_ABYSS_NONE); -+ GEGL_ACCESS_READ, GEGL_ABYSS_NONE, 1); - n_components = babl_format_get_n_components (format); - g_return_val_if_fail (n_components == 2, FALSE); - - while (gegl_buffer_iterator_next (iter)) - { -- const guchar *data = iter->data[0]; -+ const guchar *data = iter->items[0].data; - gint length = iter->length; - - while (length--) -@@ -2161,13 +2162,13 @@ find_unused_ia_color (GeglBuffer *buffer, - - format = gegl_buffer_get_format (buffer); - iter = gegl_buffer_iterator_new (buffer, NULL, 0, format, -- GEGL_ACCESS_READ, GEGL_ABYSS_NONE); -+ GEGL_ACCESS_READ, GEGL_ABYSS_NONE, 1); - n_components = babl_format_get_n_components (format); - g_return_val_if_fail (n_components == 2, FALSE); - - while (gegl_buffer_iterator_next (iter)) - { -- const guchar *data = iter->data[0]; -+ const guchar *data = iter->items[0].data; - gint length = iter->length; - - while (length--) -diff --git a/plug-ins/common/gradient-map.c b/plug-ins/common/gradient-map.c -index c5ad659d5b..a3afdc7250 100644 ---- plug-ins/common/gradient-map.c -+++ plug-ins/common/gradient-map.c -@@ -18,6 +18,7 @@ - * along with this program. If not, see . - */ - -+#define GEGL_ITERATOR2_API - #include "config.h" - #include - -@@ -265,7 +266,7 @@ map (GeglBuffer *buffer, - } - - gi = gegl_buffer_iterator_new (shadow_buffer, NULL, 0, format_shadow, -- GEGL_ACCESS_WRITE, GEGL_ABYSS_NONE); -+ GEGL_ACCESS_WRITE, GEGL_ABYSS_NONE, 2); - - index_iter = gegl_buffer_iterator_add (gi, buffer, NULL, - 0, format_buffer, -@@ -277,8 +278,8 @@ map (GeglBuffer *buffer, - gfloat *data; - gfloat *data2; - -- data = (gfloat*) gi->data[0]; -- data2 = (gfloat*) gi->data[index_iter]; -+ data = (gfloat*) gi->items[0].data; -+ data2 = (gfloat*) gi->items[index_iter].data; - - if (interpolate) - { -diff --git a/plug-ins/common/qbist.c b/plug-ins/common/qbist.c -index b8fa2621c5..2cf6a34b40 100644 ---- plug-ins/common/qbist.c -+++ plug-ins/common/qbist.c -@@ -26,6 +26,7 @@ - * - */ - -+#define GEGL_ITERATOR2_API - #include "config.h" - - #include -@@ -501,7 +502,7 @@ run (const gchar *name, - img_width, img_height), - 0, babl_format ("R'G'B'A float"), - GEGL_ACCESS_READWRITE, -- GEGL_ABYSS_NONE); -+ GEGL_ABYSS_NONE, 1); - - optimize (&qbist_info.info); - -@@ -509,8 +510,8 @@ run (const gchar *name, - - while (gegl_buffer_iterator_next (iter)) - { -- gfloat *data = iter->data[0]; -- GeglRectangle roi = iter->roi[0]; -+ gfloat *data = iter->items[0].data; -+ GeglRectangle roi = iter->items[0].roi; - gint row; - - for (row = 0; row < roi.height; row++) -diff --git a/plug-ins/file-psd/psd-load.c b/plug-ins/file-psd/psd-load.c -index bab190a975..690321a145 100644 ---- plug-ins/file-psd/psd-load.c -+++ plug-ins/file-psd/psd-load.c -@@ -18,6 +18,7 @@ - * along with this program. If not, see . - */ - -+#define GEGL_ITERATOR2_API - #include "config.h" - - #include -@@ -1872,11 +1873,11 @@ add_merged_image (gint32 image_id, - iter = gegl_buffer_iterator_new (buffer, NULL, 0, - babl_format ("R'G'B'A float"), - GEGL_ACCESS_READWRITE, -- GEGL_ABYSS_NONE); -+ GEGL_ABYSS_NONE, 1); - - while (gegl_buffer_iterator_next (iter)) - { -- gfloat *data = iter->data[0]; -+ gfloat *data = iter->items[0].data; - - for (i = 0; i < iter->length; i++) - { -diff --git a/plug-ins/file-psd/psd-save.c b/plug-ins/file-psd/psd-save.c -index 1952d6cd5f..dc643ef96e 100644 ---- plug-ins/file-psd/psd-save.c -+++ plug-ins/file-psd/psd-save.c -@@ -63,6 +63,7 @@ - * BUGS: - */ - -+#define GEGL_ITERATOR2_API - #include "config.h" - - #include -@@ -1467,11 +1468,11 @@ create_merged_image (gint32 image_id) - GeglBufferIterator *iter; - - iter = gegl_buffer_iterator_new (buffer, NULL, 0, format, -- GEGL_ACCESS_READWRITE, GEGL_ABYSS_NONE); -+ GEGL_ACCESS_READWRITE, GEGL_ABYSS_NONE, 1); - - while (gegl_buffer_iterator_next (iter)) - { -- guchar *d = iter->data[0]; -+ guchar *d = iter->items[0].data; - gint i; - - for (i = 0; i < iter->length; i++) -diff --git a/plug-ins/file-tiff/file-tiff-load.c b/plug-ins/file-tiff/file-tiff-load.c -index 6d68495385..1097c31342 100644 ---- plug-ins/file-tiff/file-tiff-load.c -+++ plug-ins/file-tiff/file-tiff-load.c -@@ -42,6 +42,7 @@ - * other special, indirect and consequential damages. - */ - -+#define GEGL_ITERATOR2_API - #include "config.h" - - #include -@@ -1469,7 +1470,7 @@ load_contiguous (TIFF *tif, - GEGL_RECTANGLE (0, 0, cols, rows), - 0, NULL, - GEGL_ACCESS_READ, -- GEGL_ABYSS_NONE); -+ GEGL_ABYSS_NONE, 2); - gegl_buffer_iterator_add (iter, channel[i].buffer, - GEGL_RECTANGLE (x, y, cols, rows), - 0, channel[i].format, -@@ -1477,8 +1478,8 @@ load_contiguous (TIFF *tif, - - while (gegl_buffer_iterator_next (iter)) - { -- guchar *s = iter->data[0]; -- guchar *d = iter->data[1]; -+ guchar *s = iter->items[0].data; -+ guchar *d = iter->items[1].data; - gint length = iter->length; - - s += offset; -@@ -1619,7 +1620,7 @@ load_separate (TIFF *tif, - GEGL_RECTANGLE (0, 0, cols, rows), - 0, NULL, - GEGL_ACCESS_READ, -- GEGL_ABYSS_NONE); -+ GEGL_ABYSS_NONE, 2); - gegl_buffer_iterator_add (iter, channel[i].buffer, - GEGL_RECTANGLE (x, y, cols, rows), - 0, channel[i].format, -@@ -1628,8 +1629,8 @@ load_separate (TIFF *tif, - - while (gegl_buffer_iterator_next (iter)) - { -- guchar *s = iter->data[0]; -- guchar *d = iter->data[1]; -+ guchar *s = iter->items[0].data; -+ guchar *d = iter->items[1].data; - gint length = iter->length; - - d += offset; -diff --git a/plug-ins/ifs-compose/ifs-compose.c b/plug-ins/ifs-compose/ifs-compose.c -index df3df2ed4c..372ef46f87 100644 ---- plug-ins/ifs-compose/ifs-compose.c -+++ plug-ins/ifs-compose/ifs-compose.c -@@ -27,6 +27,7 @@ - * 2. Figure out if we need multiple phases for supersampled brushes. - */ - -+#define GEGL_ITERATOR2_API - #include "config.h" - - #include -@@ -1313,12 +1314,12 @@ ifs_compose (gint32 drawable_id) - GEGL_RECTANGLE (0, band_y, - width, band_height), 0, - format, -- GEGL_ACCESS_WRITE, GEGL_ABYSS_NONE); -- roi = &iter->roi[0]; -+ GEGL_ACCESS_WRITE, GEGL_ABYSS_NONE, 1); -+ roi = &iter->items[0].roi; - - while (gegl_buffer_iterator_next (iter)) - { -- guchar *destrow = iter->data[0]; -+ guchar *destrow = iter->items[0].data; - - for (j = roi->y; j < (roi->y + roi->height); j++) - { -diff --git a/plug-ins/pagecurl/pagecurl.c b/plug-ins/pagecurl/pagecurl.c -index 1f6655c695..40442565c0 100644 ---- plug-ins/pagecurl/pagecurl.c -+++ plug-ins/pagecurl/pagecurl.c -@@ -39,7 +39,7 @@ - * 1.0: (July '04) - * - Code cleanup, added reverse gradient option. - */ -- -+#define GEGL_ITERATOR2_API - #include "config.h" - - #include -@@ -738,7 +738,7 @@ do_curl_effect (gint32 drawable_id) - iter = gegl_buffer_iterator_new (curl_buffer, - GEGL_RECTANGLE (0, 0, width, height), 0, - format, -- GEGL_ACCESS_WRITE, GEGL_ABYSS_NONE); -+ GEGL_ACCESS_WRITE, GEGL_ABYSS_NONE, 1); - - /* Init shade_under */ - gimp_vector2_set (&dl, -sel_width, -sel_height); -@@ -770,8 +770,8 @@ do_curl_effect (gint32 drawable_id) - { - gfloat *dest; - -- roi = &iter->roi[0]; -- dest = (gfloat *) iter->data[0]; -+ roi = &iter->items[0].roi; -+ dest = (gfloat *) iter->items[0].data; - - for (y1 = roi->y; y1 < roi->y + roi->height; y1++) - { -@@ -905,16 +905,16 @@ clear_curled_region (gint32 drawable_id) - iter = gegl_buffer_iterator_new (shadow_buf, - GEGL_RECTANGLE (0, 0, width, height), 0, - format, -- GEGL_ACCESS_WRITE, GEGL_ABYSS_NONE); -+ GEGL_ACCESS_WRITE, GEGL_ABYSS_NONE, 2); - buf_index = gegl_buffer_iterator_add (iter, buf, NULL, 0, - format, - GEGL_ACCESS_READ, GEGL_ABYSS_NONE); - - while (gegl_buffer_iterator_next (iter)) - { -- roi = &iter->roi[0]; -- dest = iter->data[0]; -- src = iter->data[buf_index]; -+ roi = &iter->items[0].roi; -+ dest = iter->items[0].data; -+ src = iter->items[buf_index].data; - - memcpy (dest, src, roi->width * roi->height * bpp); - -diff --git a/plug-ins/print/print-draw-page.c b/plug-ins/print/print-draw-page.c -index 250114f508..26a2ac96a8 100644 ---- plug-ins/print/print-draw-page.c -+++ plug-ins/print/print-draw-page.c -@@ -15,6 +15,7 @@ - * along with this program. If not, see . - */ - -+#define GEGL_ITERATOR2_API - #include "config.h" - - #include -@@ -140,23 +141,23 @@ print_surface_from_drawable (gint32 drawable_ID, - iter = gegl_buffer_iterator_new (buffer, - GEGL_RECTANGLE (0, 0, width, height), 0, - format, -- GEGL_ACCESS_READ, GEGL_ABYSS_NONE); -+ GEGL_ACCESS_READ, GEGL_ABYSS_NONE, 1); - - while (gegl_buffer_iterator_next (iter)) - { -- const guchar *src = iter->data[0]; -- guchar *dest = pixels + iter->roi->y * stride + iter->roi->x * 4; -+ const guchar *src = iter->items[0].data; -+ guchar *dest = pixels + iter->items[0].roi.y * stride + iter->items[0].roi.x * 4; - gint y; - -- for (y = 0; y < iter->roi->height; y++) -+ for (y = 0; y < iter->items[0].roi.height; y++) - { -- memcpy (dest, src, iter->roi->width * 4); -+ memcpy (dest, src, iter->items[0].roi.width * 4); - -- src += iter->roi->width * 4; -+ src += iter->items[0].roi.width * 4; - dest += stride; - } - -- done += iter->roi->height * iter->roi->width; -+ done += iter->items[0].roi.height * iter->items[0].roi.width; - - if (count++ % 16 == 0) - gimp_progress_update ((gdouble) done / (width * height)); -diff --git a/plug-ins/screenshot/screenshot-x11.c b/plug-ins/screenshot/screenshot-x11.c -index ac8dfd2740..61c9e535c2 100644 ---- plug-ins/screenshot/screenshot-x11.c -+++ plug-ins/screenshot/screenshot-x11.c -@@ -20,6 +20,7 @@ - * along with this program. If not, see . - */ - -+#define GEGL_ITERATOR2_API - #include "config.h" - - #include -@@ -478,13 +479,13 @@ add_cursor_image (gint32 image, - gimp_drawable_width (layer), - gimp_drawable_height (layer)), - 0, babl_format ("R'G'B'A u8"), -- GEGL_ACCESS_READWRITE, GEGL_ABYSS_NONE); -- roi = &iter->roi[0]; -+ GEGL_ACCESS_READWRITE, GEGL_ABYSS_NONE, 1); -+ roi = &iter->items[0].roi; - - while (gegl_buffer_iterator_next (iter)) - { - const gulong *src = cursor->pixels + roi->y * cursor->width + roi->x; -- guchar *dest = iter->data[0]; -+ guchar *dest = iter->items[0].data; - gint x, y; - - for (y = 0; y < roi->height; y++) - diff --git a/srcpkgs/gimp/template b/srcpkgs/gimp/template index ee22f5ca09..236a4e1566 100644 --- a/srcpkgs/gimp/template +++ b/srcpkgs/gimp/template @@ -1,7 +1,7 @@ # Template file for 'gimp' pkgname=gimp version=2.10.4 -revision=7 +revision=8 lib32disabled=yes build_style=gnu-configure hostmakedepends="automake gegl gettext-devel glib-devel gtk+-devel intltool