[gimp/goat-invasion] app: sprinkle level argument over process functions



commit 8f65c26f1a8f64f21b5b86db7a95a280bc0d3159
Author: Ãyvind KolÃs <pippin gimp org>
Date:   Sun Mar 25 04:51:55 2012 +0100

    app: sprinkle level argument over process functions

 app/core/gimpboundary.c                    |    4 ++--
 app/core/gimpbuffer.c                      |    2 +-
 app/core/gimpchannel-combine.c             |    4 ++--
 app/core/gimpchannel.c                     |    4 ++--
 app/core/gimpdrawable-transform.c          |   12 ++++++------
 app/core/gimpimage-crop.c                  |    8 ++++----
 app/core/gimppalette-import.c              |    2 +-
 app/core/gimppatternclipboard.c            |    4 ++--
 app/core/gimpscanconvert.c                 |    2 +-
 app/gegl/gimp-gegl-nodes.c                 |    2 +-
 app/gegl/gimpoperationadditionmode.c       |    6 ++++--
 app/gegl/gimpoperationantierasemode.c      |    6 ++++--
 app/gegl/gimpoperationbehindmode.c         |    6 ++++--
 app/gegl/gimpoperationbrightnesscontrast.c |    6 ++++--
 app/gegl/gimpoperationburnmode.c           |    6 ++++--
 app/gegl/gimpoperationcagecoefcalc.c       |    8 +++++---
 app/gegl/gimpoperationcagetransform.c      |   11 +++++++----
 app/gegl/gimpoperationcolorbalance.c       |    6 ++++--
 app/gegl/gimpoperationcolorerasemode.c     |    6 ++++--
 app/gegl/gimpoperationcolorize.c           |    6 ++++--
 app/gegl/gimpoperationcolormode.c          |    6 ++++--
 app/gegl/gimpoperationcurves.c             |    6 ++++--
 app/gegl/gimpoperationdarkenonlymode.c     |    6 ++++--
 app/gegl/gimpoperationdesaturate.c         |    6 ++++--
 app/gegl/gimpoperationdifferencemode.c     |    6 ++++--
 app/gegl/gimpoperationdissolvemode.c       |    6 ++++--
 app/gegl/gimpoperationdividemode.c         |    6 ++++--
 app/gegl/gimpoperationdodgemode.c          |    6 ++++--
 app/gegl/gimpoperationequalize.c           |    6 ++++--
 app/gegl/gimpoperationerasemode.c          |    6 ++++--
 app/gegl/gimpoperationgrainextractmode.c   |    6 ++++--
 app/gegl/gimpoperationgrainmergemode.c     |    6 ++++--
 app/gegl/gimpoperationhardlightmode.c      |    6 ++++--
 app/gegl/gimpoperationhuemode.c            |    6 ++++--
 app/gegl/gimpoperationhuesaturation.c      |    6 ++++--
 app/gegl/gimpoperationlevels.c             |    6 ++++--
 app/gegl/gimpoperationlightenonlymode.c    |    6 ++++--
 app/gegl/gimpoperationmultiplymode.c       |    6 ++++--
 app/gegl/gimpoperationnormalmode.c         |   15 ++++++++++-----
 app/gegl/gimpoperationoverlaymode.c        |    6 ++++--
 app/gegl/gimpoperationpointlayermode.c     |    6 ++++--
 app/gegl/gimpoperationposterize.c          |    6 ++++--
 app/gegl/gimpoperationreplacemode.c        |    6 ++++--
 app/gegl/gimpoperationsaturationmode.c     |    6 ++++--
 app/gegl/gimpoperationscreenmode.c         |    6 ++++--
 app/gegl/gimpoperationsetalpha.c           |    6 ++++--
 app/gegl/gimpoperationsoftlightmode.c      |    6 ++++--
 app/gegl/gimpoperationsubtractmode.c       |    6 ++++--
 app/gegl/gimpoperationthreshold.c          |    6 ++++--
 app/gegl/gimpoperationvaluemode.c          |    6 ++++--
 app/text/gimptextlayer.c                   |    2 +-
 51 files changed, 193 insertions(+), 109 deletions(-)
---
diff --git a/app/core/gimpboundary.c b/app/core/gimpboundary.c
index 154a748..f393bf4 100644
--- a/app/core/gimpboundary.c
+++ b/app/core/gimpboundary.c
@@ -710,7 +710,7 @@ generate_boundary (GeglBuffer          *buffer,
                    threshold);
 
   line_rect.y = start;
-  gegl_buffer_get (buffer, 1.0, &line_rect, format,
+  gegl_buffer_get (buffer, &line_rect, 1.0, format,
                    line_data, GEGL_AUTO_ROWSTRIDE);
 
   find_empty_segs (region, line_data, bpp,
@@ -726,7 +726,7 @@ generate_boundary (GeglBuffer          *buffer,
       if (scanline + 1 == end)
         line_data = NULL;
       else
-        gegl_buffer_get (buffer, 1.0, &line_rect, format,
+        gegl_buffer_get (buffer, &line_rect, 1.0, format,
                          line_data, GEGL_AUTO_ROWSTRIDE);
 
       find_empty_segs (region, line_data, bpp,
diff --git a/app/core/gimpbuffer.c b/app/core/gimpbuffer.c
index 5466b0c..9e81cfa 100644
--- a/app/core/gimpbuffer.c
+++ b/app/core/gimpbuffer.c
@@ -202,9 +202,9 @@ gimp_buffer_get_new_preview (GimpViewable *viewable,
                           0, 0, NULL);
 
   gegl_buffer_get (buffer->buffer,
+                   NULL,
                    MIN ((gdouble) width / (gdouble) gimp_buffer_get_width (buffer),
                         (gdouble) height / (gdouble) gimp_buffer_get_height (buffer)),
-                   NULL,
                    gimp_bpp_to_babl_format (gimp_buffer_get_bytes (buffer),
                                             TRUE),
                    temp_buf_get_data (preview),
diff --git a/app/core/gimpchannel-combine.c b/app/core/gimpchannel-combine.c
index 8461cb5..4d9bb9e 100644
--- a/app/core/gimpchannel-combine.c
+++ b/app/core/gimpchannel-combine.c
@@ -238,7 +238,7 @@ gimp_channel_combine_ellipse_rect (GimpChannel    *mask,
 
   iter = gegl_buffer_iterator_new (buffer,
                                    GIMP_GEGL_RECT (x0, y0, width, height),
-                                   babl_format ("Y u8"), GEGL_BUFFER_READWRITE);
+                                   babl_format ("Y u8"), GEGL_BUFFER_READWRITE, 0);
   roi = &iter->roi[0];
   bpp = 1;
 
@@ -464,7 +464,7 @@ gimp_channel_combine_mask (GimpChannel    *mask,
   rect.height = h;
 
   iter = gegl_buffer_iterator_new (mask_buffer, &rect, babl_format ("Y u8"),
-                                   GEGL_BUFFER_READWRITE);
+                                   GEGL_BUFFER_READWRITE, 0);
 
   rect.x -= off_x;
   rect.y -= off_y;
diff --git a/app/core/gimpchannel.c b/app/core/gimpchannel.c
index 87e3ac2..64663d8 100644
--- a/app/core/gimpchannel.c
+++ b/app/core/gimpchannel.c
@@ -1091,7 +1091,7 @@ gimp_channel_real_bounds (GimpChannel *channel,
   buffer = gimp_drawable_get_buffer (GIMP_DRAWABLE (channel));
 
   iter = gegl_buffer_iterator_new (buffer, NULL, babl_format ("Y u8"),
-                                   GEGL_BUFFER_READ);
+                                   GEGL_BUFFER_READ, 0);
   roi = &iter->roi[0];
 
   while (gegl_buffer_iterator_next (iter))
@@ -1189,7 +1189,7 @@ gimp_channel_real_is_empty (GimpChannel *channel)
   buffer = gimp_drawable_get_buffer (GIMP_DRAWABLE (channel));
 
   iter = gegl_buffer_iterator_new (buffer, NULL, babl_format ("Y u8"),
-                                   GEGL_BUFFER_READ);
+                                   GEGL_BUFFER_READ, 0);
 
   while (gegl_buffer_iterator_next (iter))
     {
diff --git a/app/core/gimpdrawable-transform.c b/app/core/gimpdrawable-transform.c
index 4b7c728..8314316 100644
--- a/app/core/gimpdrawable-transform.c
+++ b/app/core/gimpdrawable-transform.c
@@ -580,9 +580,9 @@ gimp_drawable_transform_buffer_rotate (GimpDrawable     *drawable,
             src_rect.y  = orig_y + orig_height - 1 - i;
             dest_rect.x = new_x + i;
 
-            gegl_buffer_get (orig_buffer, 1.0, &src_rect, NULL, buf,
+            gegl_buffer_get (orig_buffer, &src_rect, 1.0, NULL, buf,
                              GEGL_AUTO_ROWSTRIDE);
-            gegl_buffer_set (new_buffer, &dest_rect, NULL, buf,
+            gegl_buffer_set (new_buffer, &dest_rect, 0, NULL, buf,
                              GEGL_AUTO_ROWSTRIDE);
           }
 
@@ -608,7 +608,7 @@ gimp_drawable_transform_buffer_rotate (GimpDrawable     *drawable,
             src_rect.y  = orig_y + orig_height - 1 - i;
             dest_rect.y = new_y + i;
 
-            gegl_buffer_get (orig_buffer, 1.0, &src_rect, NULL, buf,
+            gegl_buffer_get (orig_buffer, &src_rect, 1.0, NULL, buf,
                              GEGL_AUTO_ROWSTRIDE);
 
             for (j = 0; j < orig_width / 2; j++)
@@ -624,7 +624,7 @@ gimp_drawable_transform_buffer_rotate (GimpDrawable     *drawable,
                   }
               }
 
-            gegl_buffer_set (new_buffer, &dest_rect, NULL, buf,
+            gegl_buffer_set (new_buffer, &dest_rect, 0, NULL, buf,
                              GEGL_AUTO_ROWSTRIDE);
           }
 
@@ -650,9 +650,9 @@ gimp_drawable_transform_buffer_rotate (GimpDrawable     *drawable,
             src_rect.x  = orig_x + orig_width - 1 - i;
             dest_rect.y = new_y + i;
 
-            gegl_buffer_get (orig_buffer, 1.0, &src_rect, NULL, buf,
+            gegl_buffer_get (orig_buffer, &src_rect, 1.0, NULL, buf,
                              GEGL_AUTO_ROWSTRIDE);
-            gegl_buffer_set (new_buffer, &dest_rect, NULL, buf,
+            gegl_buffer_set (new_buffer, &dest_rect, 0, NULL, buf,
                              GEGL_AUTO_ROWSTRIDE);
           }
 
diff --git a/app/core/gimpimage-crop.c b/app/core/gimpimage-crop.c
index 48d7f00..e31d62a 100644
--- a/app/core/gimpimage-crop.c
+++ b/app/core/gimpimage-crop.c
@@ -389,7 +389,7 @@ gimp_image_crop_auto_shrink (GimpImage *image,
   for (y = y1; y < y2 && !abort; y++)
     {
       rect.y = y;
-      gegl_buffer_get (buffer, 1.0, &rect, NULL, buf, GEGL_AUTO_ROWSTRIDE);
+      gegl_buffer_get (buffer, &rect, 1.0, NULL, buf, GEGL_AUTO_ROWSTRIDE);
       for (x = 0; x < width && !abort; x++)
         abort = !(colors_equal_func) (bgcolor, buf + x * bytes, bytes);
     }
@@ -407,7 +407,7 @@ gimp_image_crop_auto_shrink (GimpImage *image,
   for (y = y2; y > y1 && !abort; y--)
     {
       rect.y = y - 1;
-      gegl_buffer_get (buffer, 1.0, &rect, NULL, buf, GEGL_AUTO_ROWSTRIDE);
+      gegl_buffer_get (buffer, &rect, 1.0, NULL, buf, GEGL_AUTO_ROWSTRIDE);
       for (x = 0; x < width && !abort; x++)
         abort = !(colors_equal_func) (bgcolor, buf + x * bytes, bytes);
     }
@@ -426,7 +426,7 @@ gimp_image_crop_auto_shrink (GimpImage *image,
   for (x = x1; x < x2 && !abort; x++)
     {
       rect.x = x;
-      gegl_buffer_get (buffer, 1.0, &rect, NULL, buf, GEGL_AUTO_ROWSTRIDE);
+      gegl_buffer_get (buffer, &rect, 1.0, NULL, buf, GEGL_AUTO_ROWSTRIDE);
       for (y = 0; y < height && !abort; y++)
         abort = !(colors_equal_func) (bgcolor, buf + y * bytes, bytes);
     }
@@ -442,7 +442,7 @@ gimp_image_crop_auto_shrink (GimpImage *image,
   for (x = x2; x > x1 && !abort; x--)
     {
       rect.x = x - 1;
-      gegl_buffer_get (buffer, 1.0, &rect, NULL, buf, GEGL_AUTO_ROWSTRIDE);
+      gegl_buffer_get (buffer, &rect, 1.0, NULL, buf, GEGL_AUTO_ROWSTRIDE);
       for (y = 0; y < height && !abort; y++)
         abort = !(colors_equal_func) (bgcolor, buf + y * bytes, bytes);
     }
diff --git a/app/core/gimppalette-import.c b/app/core/gimppalette-import.c
index b712309..c0601b0 100644
--- a/app/core/gimppalette-import.c
+++ b/app/core/gimppalette-import.c
@@ -290,7 +290,7 @@ gimp_palette_import_extract (GimpImage     *image,
   format = gimp_pickable_get_format (pickable);
 
   iter = gegl_buffer_iterator_new (buffer, &rect, format,
-                                   GEGL_BUFFER_READ);
+                                   GEGL_BUFFER_READ, 0);
   roi = &iter->roi[0];
   bpp = babl_format_get_bytes_per_pixel (format);
 
diff --git a/app/core/gimppatternclipboard.c b/app/core/gimppatternclipboard.c
index 4e8fdac..0e211e6 100644
--- a/app/core/gimppatternclipboard.c
+++ b/app/core/gimppatternclipboard.c
@@ -199,8 +199,8 @@ gimp_pattern_clipboard_buffer_changed (Gimp        *gimp,
 
       pattern->mask = temp_buf_new (width, height, bytes, 0, 0, NULL);
 
-      gegl_buffer_get (gimp_buffer_get_buffer (buffer), 1.0,
-                       GIMP_GEGL_RECT (0,0,width,height),
+      gegl_buffer_get (gimp_buffer_get_buffer (buffer),
+                       GIMP_GEGL_RECT (0,0,width,height), 1.0,
                        gimp_bpp_to_babl_format (bytes, TRUE),
                        temp_buf_get_data (pattern->mask),
                        width * gimp_buffer_get_bytes (buffer));
diff --git a/app/core/gimpscanconvert.c b/app/core/gimpscanconvert.c
index ccc0927..97a2675 100644
--- a/app/core/gimpscanconvert.c
+++ b/app/core/gimpscanconvert.c
@@ -482,7 +482,7 @@ gimp_scan_convert_render_full (GimpScanConvert *sc,
   bpp    = babl_format_get_bytes_per_pixel (format);
 
   iter = gegl_buffer_iterator_new (buffer, NULL, format,
-                                   GEGL_BUFFER_WRITE);
+                                   GEGL_BUFFER_WRITE, 0);
   roi = &iter->roi[0];
 
   while (gegl_buffer_iterator_next (iter))
diff --git a/app/gegl/gimp-gegl-nodes.c b/app/gegl/gimp-gegl-nodes.c
index a3b948f..dc00c43 100644
--- a/app/gegl/gimp-gegl-nodes.c
+++ b/app/gegl/gimp-gegl-nodes.c
@@ -189,7 +189,7 @@ gimp_gegl_create_apply_buffer_node (GeglBuffer           *buffer,
     gegl_node_connect_to (mask_source,   "output",
                           opacity_node,  "aux");
 
-  mode_node = gegl_node_new_child (node, NULL);
+  mode_node = gegl_node_new_child (node, NULL, NULL);
   gimp_gegl_node_set_layer_mode (node, mode, FALSE);
 
   gegl_node_connect_to (opacity_node, "output",
diff --git a/app/gegl/gimpoperationadditionmode.c b/app/gegl/gimpoperationadditionmode.c
index 645d5e8..a3ded89 100644
--- a/app/gegl/gimpoperationadditionmode.c
+++ b/app/gegl/gimpoperationadditionmode.c
@@ -33,7 +33,8 @@ static gboolean gimp_operation_addition_mode_process (GeglOperation       *opera
                                                       void                *aux_buf,
                                                       void                *out_buf,
                                                       glong                samples,
-                                                      const GeglRectangle *roi);
+                                                      const GeglRectangle *roi,
+                                                      gint                 level);
 
 
 G_DEFINE_TYPE (GimpOperationAdditionMode, gimp_operation_addition_mode,
@@ -66,7 +67,8 @@ gimp_operation_addition_mode_process (GeglOperation       *operation,
                                       void                *aux_buf,
                                       void                *out_buf,
                                       glong                samples,
-                                      const GeglRectangle *roi)
+                                      const GeglRectangle *roi,
+                                      gint                 level)
 {
   gfloat *in    = in_buf;
   gfloat *layer = aux_buf;
diff --git a/app/gegl/gimpoperationantierasemode.c b/app/gegl/gimpoperationantierasemode.c
index 132d861..8c51e33 100644
--- a/app/gegl/gimpoperationantierasemode.c
+++ b/app/gegl/gimpoperationantierasemode.c
@@ -33,7 +33,8 @@ static gboolean gimp_operation_anti_erase_mode_process (GeglOperation       *ope
                                                         void                *aux_buf,
                                                         void                *out_buf,
                                                         glong                samples,
-                                                        const GeglRectangle *roi);
+                                                        const GeglRectangle *roi,
+                                                        gint                 level);
 
 
 G_DEFINE_TYPE (GimpOperationAntiEraseMode, gimp_operation_anti_erase_mode,
@@ -66,7 +67,8 @@ gimp_operation_anti_erase_mode_process (GeglOperation       *operation,
                                         void                *aux_buf,
                                         void                *out_buf,
                                         glong                samples,
-                                        const GeglRectangle *roi)
+                                        const GeglRectangle *roi,
+                                        gint                 level)
 {
   gfloat *in    = in_buf;
   gfloat *layer = aux_buf;
diff --git a/app/gegl/gimpoperationbehindmode.c b/app/gegl/gimpoperationbehindmode.c
index cf97a07..e028d99 100644
--- a/app/gegl/gimpoperationbehindmode.c
+++ b/app/gegl/gimpoperationbehindmode.c
@@ -33,7 +33,8 @@ static gboolean gimp_operation_behind_mode_process (GeglOperation       *operati
                                                     void                *aux_buf,
                                                     void                *out_buf,
                                                     glong                samples,
-                                                    const GeglRectangle *roi);
+                                                    const GeglRectangle *roi,
+                                                    gint                 level);
 
 
 G_DEFINE_TYPE (GimpOperationBehindMode, gimp_operation_behind_mode,
@@ -66,7 +67,8 @@ gimp_operation_behind_mode_process (GeglOperation       *operation,
                                     void                *aux_buf,
                                     void                *out_buf,
                                     glong                samples,
-                                    const GeglRectangle *roi)
+                                    const GeglRectangle *roi,
+                                    gint                 level)
 {
   gfloat *in    = in_buf;
   gfloat *layer = aux_buf;
diff --git a/app/gegl/gimpoperationbrightnesscontrast.c b/app/gegl/gimpoperationbrightnesscontrast.c
index 723ae6b..2cde690 100644
--- a/app/gegl/gimpoperationbrightnesscontrast.c
+++ b/app/gegl/gimpoperationbrightnesscontrast.c
@@ -36,7 +36,8 @@ static gboolean gimp_operation_brightness_contrast_process (GeglOperation
                                                             void                *in_buf,
                                                             void                *out_buf,
                                                             glong                samples,
-                                                            const GeglRectangle *roi);
+                                                            const GeglRectangle *roi,
+                                                            gint                 level);
 
 
 G_DEFINE_TYPE (GimpOperationBrightnessContrast, gimp_operation_brightness_contrast,
@@ -100,7 +101,8 @@ gimp_operation_brightness_contrast_process (GeglOperation       *operation,
                                             void                *in_buf,
                                             void                *out_buf,
                                             glong                samples,
-                                            const GeglRectangle *roi)
+                                            const GeglRectangle *roi,
+                                            gint                 level)
 {
   GimpOperationPointFilter     *point  = GIMP_OPERATION_POINT_FILTER (operation);
   GimpBrightnessContrastConfig *config = GIMP_BRIGHTNESS_CONTRAST_CONFIG (point->config);
diff --git a/app/gegl/gimpoperationburnmode.c b/app/gegl/gimpoperationburnmode.c
index 6325ab4..f585b8d 100644
--- a/app/gegl/gimpoperationburnmode.c
+++ b/app/gegl/gimpoperationburnmode.c
@@ -33,7 +33,8 @@ static gboolean gimp_operation_burn_mode_process (GeglOperation       *operation
                                                   void                *aux_buf,
                                                   void                *out_buf,
                                                   glong                samples,
-                                                  const GeglRectangle *roi);
+                                                  const GeglRectangle *roi,
+                                                  gint                 level);
 
 
 G_DEFINE_TYPE (GimpOperationBurnMode, gimp_operation_burn_mode,
@@ -66,7 +67,8 @@ gimp_operation_burn_mode_process (GeglOperation       *operation,
                                   void                *aux_buf,
                                   void                *out_buf,
                                   glong                samples,
-                                  const GeglRectangle *roi)
+                                  const GeglRectangle *roi,
+                                  gint                 level)
 {
   gfloat *in    = in_buf;
   gfloat *layer = aux_buf;
diff --git a/app/gegl/gimpoperationcagecoefcalc.c b/app/gegl/gimpoperationcagecoefcalc.c
index d6370ea..c9a9086 100644
--- a/app/gegl/gimpoperationcagecoefcalc.c
+++ b/app/gegl/gimpoperationcagecoefcalc.c
@@ -44,7 +44,8 @@ static void           gimp_operation_cage_coef_calc_set_property      (GObject
 static GeglRectangle  gimp_operation_cage_coef_calc_get_bounding_box  (GeglOperation        *operation);
 static gboolean       gimp_operation_cage_coef_calc_process           (GeglOperation        *operation,
                                                                        GeglBuffer           *output,
-                                                                       const GeglRectangle  *roi);
+                                                                       const GeglRectangle  *roi,
+                                                                       gint                  level);
 
 
 G_DEFINE_TYPE (GimpOperationCageCoefCalc, gimp_operation_cage_coef_calc,
@@ -191,7 +192,8 @@ gimp_operation_cage_coef_calc_get_bounding_box (GeglOperation *operation)
 static gboolean
 gimp_operation_cage_coef_calc_process (GeglOperation       *operation,
                                        GeglBuffer          *output,
-                                       const GeglRectangle *roi)
+                                       const GeglRectangle *roi,
+                                       gint                 level)
 {
   GimpOperationCageCoefCalc *occc   = GIMP_OPERATION_CAGE_COEF_CALC (operation);
   GimpCageConfig            *config = GIMP_CAGE_CONFIG (occc->config);
@@ -208,7 +210,7 @@ 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, format, GEGL_BUFFER_READWRITE);
+  it = gegl_buffer_iterator_new (output, roi, format, GEGL_BUFFER_READWRITE, 0);
 
   while (gegl_buffer_iterator_next (it))
     {
diff --git a/app/gegl/gimpoperationcagetransform.c b/app/gegl/gimpoperationcagetransform.c
index e43b71f..9658e68 100644
--- a/app/gegl/gimpoperationcagetransform.c
+++ b/app/gegl/gimpoperationcagetransform.c
@@ -56,7 +56,8 @@ static gboolean     gimp_operation_cage_transform_process                 (GeglO
                                                                            GeglBuffer          *in_buf,
                                                                            GeglBuffer          *aux_buf,
                                                                            GeglBuffer          *out_buf,
-                                                                           const GeglRectangle *roi);
+                                                                           const GeglRectangle *roi,
+                                                                           gint                 level);
 static void         gimp_operation_cage_transform_interpolate_source_coords_recurs
                                                                           (GimpOperationCageTransform  *oct,
                                                                            GeglBuffer          *out_buf,
@@ -224,7 +225,8 @@ gimp_operation_cage_transform_process (GeglOperation       *operation,
                                        GeglBuffer          *in_buf,
                                        GeglBuffer          *aux_buf,
                                        GeglBuffer          *out_buf,
-                                       const GeglRectangle *roi)
+                                       const GeglRectangle *roi,
+                                       gint                 level)
 {
   GimpOperationCageTransform *oct    = GIMP_OPERATION_CAGE_TRANSFORM (operation);
   GimpCageConfig             *config = GIMP_CAGE_CONFIG (oct->config);
@@ -240,7 +242,7 @@ gimp_operation_cage_transform_process (GeglOperation       *operation,
   guint                       n_cage_vertices;
 
   /* pre-fill the out buffer with no-displacement coordinate */
-  it      = gegl_buffer_iterator_new (out_buf, roi, NULL, GEGL_BUFFER_WRITE);
+  it      = gegl_buffer_iterator_new (out_buf, roi, NULL, GEGL_BUFFER_WRITE, 0);
   cage_bb = gimp_cage_config_get_bounding_box (config);
 
   point = &(g_array_index (config->cage_points, GimpCagePoint, 0));
@@ -460,6 +462,7 @@ gimp_operation_cage_transform_interpolate_source_coords_recurs (GimpOperationCag
 
           gegl_buffer_set (out_buf,
                            &rect,
+                           0,
                            oct->format_coords,
                            coords,
                            GEGL_AUTO_ROWSTRIDE);
@@ -561,7 +564,7 @@ gimp_cage_transform_compute_destination (GimpCageConfig *config,
     rect.x      = coords.x;
     rect.y      = coords.y;
 
-    gegl_buffer_get (coef_buf, 1, &rect, format_coef, coef, GEGL_AUTO_ROWSTRIDE);
+    gegl_buffer_get (coef_buf, &rect, 1.0, format_coef, coef, GEGL_AUTO_ROWSTRIDE);
   #endif
 
   for (i = 0; i < n_cage_vertices; i++)
diff --git a/app/gegl/gimpoperationcolorbalance.c b/app/gegl/gimpoperationcolorbalance.c
index bf88035..1f3d414 100644
--- a/app/gegl/gimpoperationcolorbalance.c
+++ b/app/gegl/gimpoperationcolorbalance.c
@@ -36,7 +36,8 @@ static gboolean gimp_operation_color_balance_process (GeglOperation       *opera
                                                       void                *in_buf,
                                                       void                *out_buf,
                                                       glong                samples,
-                                                      const GeglRectangle *roi);
+                                                      const GeglRectangle *roi,
+                                                      gint                 level);
 
 
 G_DEFINE_TYPE (GimpOperationColorBalance, gimp_operation_color_balance,
@@ -116,7 +117,8 @@ gimp_operation_color_balance_process (GeglOperation       *operation,
                                       void                *in_buf,
                                       void                *out_buf,
                                       glong                samples,
-                                      const GeglRectangle *roi)
+                                      const GeglRectangle *roi,
+                                      gint                 level)
 {
   GimpOperationPointFilter *point  = GIMP_OPERATION_POINT_FILTER (operation);
   GimpColorBalanceConfig   *config = GIMP_COLOR_BALANCE_CONFIG (point->config);
diff --git a/app/gegl/gimpoperationcolorerasemode.c b/app/gegl/gimpoperationcolorerasemode.c
index f1cf0ab..ddb743b 100644
--- a/app/gegl/gimpoperationcolorerasemode.c
+++ b/app/gegl/gimpoperationcolorerasemode.c
@@ -33,7 +33,8 @@ static gboolean gimp_operation_color_erase_mode_process (GeglOperation       *op
                                                          void                *aux_buf,
                                                          void                *out_buf,
                                                          glong                samples,
-                                                         const GeglRectangle *roi);
+                                                         const GeglRectangle *roi,
+                                                         gint                 level);
 
 
 G_DEFINE_TYPE (GimpOperationColorEraseMode, gimp_operation_color_erase_mode,
@@ -66,7 +67,8 @@ gimp_operation_color_erase_mode_process (GeglOperation       *operation,
                                          void                *aux_buf,
                                          void                *out_buf,
                                          glong                samples,
-                                         const GeglRectangle *roi)
+                                         const GeglRectangle *roi,
+                                         gint                 level)
 {
   gfloat *in    = in_buf;
   gfloat *layer = aux_buf;
diff --git a/app/gegl/gimpoperationcolorize.c b/app/gegl/gimpoperationcolorize.c
index 2753a3b..ac73286 100644
--- a/app/gegl/gimpoperationcolorize.c
+++ b/app/gegl/gimpoperationcolorize.c
@@ -35,7 +35,8 @@ static gboolean gimp_operation_colorize_process (GeglOperation       *operation,
                                                  void                *in_buf,
                                                  void                *out_buf,
                                                  glong                samples,
-                                                 const GeglRectangle *roi);
+                                                 const GeglRectangle *roi,
+                                                 gint                 level);
 
 
 G_DEFINE_TYPE (GimpOperationColorize, gimp_operation_colorize,
@@ -80,7 +81,8 @@ gimp_operation_colorize_process (GeglOperation       *operation,
                                  void                *in_buf,
                                  void                *out_buf,
                                  glong                samples,
-                                 const GeglRectangle *roi)
+                                 const GeglRectangle *roi,
+                                 gint                 level)
 {
   GimpOperationPointFilter *point  = GIMP_OPERATION_POINT_FILTER (operation);
   GimpColorizeConfig       *config = GIMP_COLORIZE_CONFIG (point->config);
diff --git a/app/gegl/gimpoperationcolormode.c b/app/gegl/gimpoperationcolormode.c
index 26e5d0c..3f4dc0b 100644
--- a/app/gegl/gimpoperationcolormode.c
+++ b/app/gegl/gimpoperationcolormode.c
@@ -33,7 +33,8 @@ static gboolean gimp_operation_color_mode_process (GeglOperation       *operatio
                                                    void                *aux_buf,
                                                    void                *out_buf,
                                                    glong                samples,
-                                                   const GeglRectangle *roi);
+                                                   const GeglRectangle *roi,
+                                                   gint                 level);
 
 
 G_DEFINE_TYPE (GimpOperationColorMode, gimp_operation_color_mode,
@@ -66,7 +67,8 @@ gimp_operation_color_mode_process (GeglOperation       *operation,
                                    void                *aux_buf,
                                    void                *out_buf,
                                    glong                samples,
-                                   const GeglRectangle *roi)
+                                   const GeglRectangle *roi,
+                                   gint                 level)
 {
   gfloat *in    = in_buf;
   gfloat *layer = aux_buf;
diff --git a/app/gegl/gimpoperationcurves.c b/app/gegl/gimpoperationcurves.c
index ed9ae13..07560ad 100644
--- a/app/gegl/gimpoperationcurves.c
+++ b/app/gegl/gimpoperationcurves.c
@@ -39,7 +39,8 @@ static gboolean gimp_operation_curves_process (GeglOperation       *operation,
                                                void                *in_buf,
                                                void                *out_buf,
                                                glong                samples,
-                                               const GeglRectangle *roi);
+                                               const GeglRectangle *roi,
+                                               gint                 level);
 
 
 G_DEFINE_TYPE (GimpOperationCurves, gimp_operation_curves,
@@ -84,7 +85,8 @@ gimp_operation_curves_process (GeglOperation       *operation,
                                void                *in_buf,
                                void                *out_buf,
                                glong                samples,
-                               const GeglRectangle *roi)
+                               const GeglRectangle *roi,
+                               gint                 level)
 {
   GimpOperationPointFilter *point  = GIMP_OPERATION_POINT_FILTER (operation);
   GimpCurvesConfig         *config = GIMP_CURVES_CONFIG (point->config);
diff --git a/app/gegl/gimpoperationdarkenonlymode.c b/app/gegl/gimpoperationdarkenonlymode.c
index acd9265..5aa17c7 100644
--- a/app/gegl/gimpoperationdarkenonlymode.c
+++ b/app/gegl/gimpoperationdarkenonlymode.c
@@ -33,7 +33,8 @@ static gboolean gimp_operation_darken_only_mode_process (GeglOperation       *op
                                                          void                *aux_buf,
                                                          void                *out_buf,
                                                          glong                samples,
-                                                         const GeglRectangle *roi);
+                                                         const GeglRectangle *roi,
+                                                         gint                 level);
 
 
 G_DEFINE_TYPE (GimpOperationDarkenOnlyMode, gimp_operation_darken_only_mode,
@@ -66,7 +67,8 @@ gimp_operation_darken_only_mode_process (GeglOperation       *operation,
                                          void                *aux_buf,
                                          void                *out_buf,
                                          glong                samples,
-                                         const GeglRectangle *roi)
+                                         const GeglRectangle *roi,
+                                         gint                 level)
 {
   gfloat *in    = in_buf;
   gfloat *layer = aux_buf;
diff --git a/app/gegl/gimpoperationdesaturate.c b/app/gegl/gimpoperationdesaturate.c
index 4560212..fe33cfc 100644
--- a/app/gegl/gimpoperationdesaturate.c
+++ b/app/gegl/gimpoperationdesaturate.c
@@ -35,7 +35,8 @@ static gboolean  gimp_operation_desaturate_process (GeglOperation       *operati
                                                     void                *in_buf,
                                                     void                *out_buf,
                                                     glong                samples,
-                                                    const GeglRectangle *roi);
+                                                    const GeglRectangle *roi,
+                                                    gint                 level);
 
 
 G_DEFINE_TYPE (GimpOperationDesaturate, gimp_operation_desaturate,
@@ -80,7 +81,8 @@ gimp_operation_desaturate_process (GeglOperation       *operation,
                                    void                *in_buf,
                                    void                *out_buf,
                                    glong                samples,
-                                   const GeglRectangle *roi)
+                                   const GeglRectangle *roi,
+                                   gint                 level)
 {
   GimpOperationPointFilter *point  = GIMP_OPERATION_POINT_FILTER (operation);
   GimpDesaturateConfig     *config = GIMP_DESATURATE_CONFIG (point->config);
diff --git a/app/gegl/gimpoperationdifferencemode.c b/app/gegl/gimpoperationdifferencemode.c
index b6c7ff1..e4f42c4 100644
--- a/app/gegl/gimpoperationdifferencemode.c
+++ b/app/gegl/gimpoperationdifferencemode.c
@@ -33,7 +33,8 @@ static gboolean gimp_operation_difference_mode_process (GeglOperation       *ope
                                                         void                *aux_buf,
                                                         void                *out_buf,
                                                         glong                samples,
-                                                        const GeglRectangle *roi);
+                                                        const GeglRectangle *roi,
+                                                        gint                 level);
 
 
 G_DEFINE_TYPE (GimpOperationDifferenceMode, gimp_operation_difference_mode,
@@ -66,7 +67,8 @@ gimp_operation_difference_mode_process (GeglOperation       *operation,
                                         void                *aux_buf,
                                         void                *out_buf,
                                         glong                samples,
-                                        const GeglRectangle *roi)
+                                        const GeglRectangle *roi,
+                                        gint                 level)
 {
   gfloat *in    = in_buf;
   gfloat *layer = aux_buf;
diff --git a/app/gegl/gimpoperationdissolvemode.c b/app/gegl/gimpoperationdissolvemode.c
index d573ad3..600e68c 100644
--- a/app/gegl/gimpoperationdissolvemode.c
+++ b/app/gegl/gimpoperationdissolvemode.c
@@ -36,7 +36,8 @@ static gboolean gimp_operation_dissolve_mode_process (GeglOperation       *opera
                                                       void                *aux_buf,
                                                       void                *out_buf,
                                                       glong                samples,
-                                                      const GeglRectangle *roi);
+                                                      const GeglRectangle *roi,
+                                                      gint                 level);
 
 
 G_DEFINE_TYPE (GimpOperationDissolveMode, gimp_operation_dissolve_mode,
@@ -85,7 +86,8 @@ gimp_operation_dissolve_mode_process (GeglOperation       *operation,
                                       void                *aux_buf,
                                       void                *out_buf,
                                       glong                samples,
-                                      const GeglRectangle *roi)
+                                      const GeglRectangle *roi,
+                                      gint                 level)
 {
   gfloat *in     = in_buf;
   gfloat *layer  = aux_buf;
diff --git a/app/gegl/gimpoperationdividemode.c b/app/gegl/gimpoperationdividemode.c
index 0f578f1..1c7f0e4 100644
--- a/app/gegl/gimpoperationdividemode.c
+++ b/app/gegl/gimpoperationdividemode.c
@@ -33,7 +33,8 @@ static gboolean gimp_operation_divide_mode_process (GeglOperation       *operati
                                                     void                *aux_buf,
                                                     void                *out_buf,
                                                     glong                samples,
-                                                    const GeglRectangle *roi);
+                                                    const GeglRectangle *roi,
+                                                    gint                 level);
 
 
 G_DEFINE_TYPE (GimpOperationDivideMode, gimp_operation_divide_mode,
@@ -66,7 +67,8 @@ gimp_operation_divide_mode_process (GeglOperation       *operation,
                                     void                *aux_buf,
                                     void                *out_buf,
                                     glong                samples,
-                                    const GeglRectangle *roi)
+                                    const GeglRectangle *roi,
+                                    gint                 level)
 {
   gfloat *in    = in_buf;
   gfloat *layer = aux_buf;
diff --git a/app/gegl/gimpoperationdodgemode.c b/app/gegl/gimpoperationdodgemode.c
index 92dde2d..b500be0 100644
--- a/app/gegl/gimpoperationdodgemode.c
+++ b/app/gegl/gimpoperationdodgemode.c
@@ -33,7 +33,8 @@ static gboolean gimp_operation_dodge_mode_process (GeglOperation       *operatio
                                                    void                *aux_buf,
                                                    void                *out_buf,
                                                    glong                samples,
-                                                   const GeglRectangle *roi);
+                                                   const GeglRectangle *roi,
+                                                   gint                 level);
 
 
 G_DEFINE_TYPE (GimpOperationDodgeMode, gimp_operation_dodge_mode,
@@ -66,7 +67,8 @@ gimp_operation_dodge_mode_process (GeglOperation       *operation,
                                    void                *aux_buf,
                                    void                *out_buf,
                                    glong                samples,
-                                   const GeglRectangle *roi)
+                                   const GeglRectangle *roi,
+                                   gint                 level)
 {
   gfloat *in    = in_buf;
   gfloat *layer = aux_buf;
diff --git a/app/gegl/gimpoperationequalize.c b/app/gegl/gimpoperationequalize.c
index fc78cad..2986f5f 100644
--- a/app/gegl/gimpoperationequalize.c
+++ b/app/gegl/gimpoperationequalize.c
@@ -54,7 +54,8 @@ static gboolean gimp_operation_equalize_process (GeglOperation       *operation,
                                                  void                *in_buf,
                                                  void                *out_buf,
                                                  glong                samples,
-                                                 const GeglRectangle *roi);
+                                                 const GeglRectangle *roi,
+                                                 gint                 level);
 
 
 G_DEFINE_TYPE (GimpOperationEqualize, gimp_operation_equalize,
@@ -202,7 +203,8 @@ gimp_operation_equalize_process (GeglOperation       *operation,
                                  void                *in_buf,
                                  void                *out_buf,
                                  glong                samples,
-                                 const GeglRectangle *roi)
+                                 const GeglRectangle *roi,
+                                 gint                 level)
 {
   GimpOperationEqualize *self = GIMP_OPERATION_EQUALIZE (operation);
   gfloat                *src  = in_buf;
diff --git a/app/gegl/gimpoperationerasemode.c b/app/gegl/gimpoperationerasemode.c
index 71dff2b..b2763b8 100644
--- a/app/gegl/gimpoperationerasemode.c
+++ b/app/gegl/gimpoperationerasemode.c
@@ -33,7 +33,8 @@ static gboolean gimp_operation_erase_mode_process (GeglOperation       *operatio
                                                    void                *aux_buf,
                                                    void                *out_buf,
                                                    glong                samples,
-                                                   const GeglRectangle *roi);
+                                                   const GeglRectangle *roi,
+                                                   gint                 level);
 
 
 G_DEFINE_TYPE (GimpOperationEraseMode, gimp_operation_erase_mode,
@@ -66,7 +67,8 @@ gimp_operation_erase_mode_process (GeglOperation       *operation,
                                    void                *aux_buf,
                                    void                *out_buf,
                                    glong                samples,
-                                   const GeglRectangle *roi)
+                                   const GeglRectangle *roi,
+                                   gint                 level)
 {
   gfloat *in    = in_buf;
   gfloat *layer = aux_buf;
diff --git a/app/gegl/gimpoperationgrainextractmode.c b/app/gegl/gimpoperationgrainextractmode.c
index e7d2e23..f5e3be7 100644
--- a/app/gegl/gimpoperationgrainextractmode.c
+++ b/app/gegl/gimpoperationgrainextractmode.c
@@ -33,7 +33,8 @@ static gboolean gimp_operation_grain_extract_mode_process (GeglOperation       *
                                                            void                *aux_buf,
                                                            void                *out_buf,
                                                            glong                samples,
-                                                           const GeglRectangle *roi);
+                                                           const GeglRectangle *roi,
+                                                           gint                 level);
 
 
 G_DEFINE_TYPE (GimpOperationGrainExtractMode, gimp_operation_grain_extract_mode,
@@ -66,7 +67,8 @@ gimp_operation_grain_extract_mode_process (GeglOperation       *operation,
                                            void                *aux_buf,
                                            void                *out_buf,
                                            glong                samples,
-                                           const GeglRectangle *roi)
+                                           const GeglRectangle *roi,
+                                           gint                 level)
 {
   gfloat *in    = in_buf;
   gfloat *layer = aux_buf;
diff --git a/app/gegl/gimpoperationgrainmergemode.c b/app/gegl/gimpoperationgrainmergemode.c
index bef4b4b..1fd443e 100644
--- a/app/gegl/gimpoperationgrainmergemode.c
+++ b/app/gegl/gimpoperationgrainmergemode.c
@@ -33,7 +33,8 @@ static gboolean gimp_operation_grain_merge_mode_process (GeglOperation       *op
                                                          void                *aux_buf,
                                                          void                *out_buf,
                                                          glong                samples,
-                                                         const GeglRectangle *roi);
+                                                         const GeglRectangle *roi,
+                                                         gint                 level);
 
 
 G_DEFINE_TYPE (GimpOperationGrainMergeMode, gimp_operation_grain_merge_mode,
@@ -66,7 +67,8 @@ gimp_operation_grain_merge_mode_process (GeglOperation       *operation,
                                          void                *aux_buf,
                                          void                *out_buf,
                                          glong                samples,
-                                         const GeglRectangle *roi)
+                                         const GeglRectangle *roi,
+                                         gint                 level)
 {
   gfloat *in    = in_buf;
   gfloat *layer = aux_buf;
diff --git a/app/gegl/gimpoperationhardlightmode.c b/app/gegl/gimpoperationhardlightmode.c
index f02bfb8..c1e1b18 100644
--- a/app/gegl/gimpoperationhardlightmode.c
+++ b/app/gegl/gimpoperationhardlightmode.c
@@ -33,7 +33,8 @@ static gboolean gimp_operation_hardlight_mode_process (GeglOperation       *oper
                                                        void                *aux_buf,
                                                        void                *out_buf,
                                                        glong                samples,
-                                                       const GeglRectangle *roi);
+                                                       const GeglRectangle *roi,
+                                                       gint                 level);
 
 
 G_DEFINE_TYPE (GimpOperationHardlightMode, gimp_operation_hardlight_mode,
@@ -66,7 +67,8 @@ gimp_operation_hardlight_mode_process (GeglOperation       *operation,
                                        void                *aux_buf,
                                        void                *out_buf,
                                        glong                samples,
-                                       const GeglRectangle *roi)
+                                       const GeglRectangle *roi,
+                                       gint                 level)
 {
   gfloat *in    = in_buf;
   gfloat *layer = aux_buf;
diff --git a/app/gegl/gimpoperationhuemode.c b/app/gegl/gimpoperationhuemode.c
index 8356195..b707375 100644
--- a/app/gegl/gimpoperationhuemode.c
+++ b/app/gegl/gimpoperationhuemode.c
@@ -33,7 +33,8 @@ static gboolean gimp_operation_hue_mode_process (GeglOperation       *operation,
                                                  void                *aux_buf,
                                                  void                *out_buf,
                                                  glong                samples,
-                                                 const GeglRectangle *roi);
+                                                 const GeglRectangle *roi,
+                                                 gint                 level);
 
 
 G_DEFINE_TYPE (GimpOperationHueMode, gimp_operation_hue_mode,
@@ -66,7 +67,8 @@ gimp_operation_hue_mode_process (GeglOperation       *operation,
                                  void                *aux_buf,
                                  void                *out_buf,
                                  glong                samples,
-                                 const GeglRectangle *roi)
+                                 const GeglRectangle *roi,
+                                 gint                 level)
 {
   gfloat *in    = in_buf;
   gfloat *layer = aux_buf;
diff --git a/app/gegl/gimpoperationhuesaturation.c b/app/gegl/gimpoperationhuesaturation.c
index 3f530a8..a563281 100644
--- a/app/gegl/gimpoperationhuesaturation.c
+++ b/app/gegl/gimpoperationhuesaturation.c
@@ -36,7 +36,8 @@ static gboolean gimp_operation_hue_saturation_process (GeglOperation       *oper
                                                        void                *in_buf,
                                                        void                *out_buf,
                                                        glong                samples,
-                                                       const GeglRectangle *roi);
+                                                       const GeglRectangle *roi,
+                                                       gint                 level);
 
 
 G_DEFINE_TYPE (GimpOperationHueSaturation, gimp_operation_hue_saturation,
@@ -129,7 +130,8 @@ gimp_operation_hue_saturation_process (GeglOperation       *operation,
                                        void                *in_buf,
                                        void                *out_buf,
                                        glong                samples,
-                                       const GeglRectangle *roi)
+                                       const GeglRectangle *roi,
+                                       gint                 level)
 {
   GimpOperationPointFilter *point  = GIMP_OPERATION_POINT_FILTER (operation);
   GimpHueSaturationConfig  *config = GIMP_HUE_SATURATION_CONFIG (point->config);
diff --git a/app/gegl/gimpoperationlevels.c b/app/gegl/gimpoperationlevels.c
index 6c5e62f..efc5954 100644
--- a/app/gegl/gimpoperationlevels.c
+++ b/app/gegl/gimpoperationlevels.c
@@ -36,7 +36,8 @@ static gboolean gimp_operation_levels_process (GeglOperation       *operation,
                                                void                *in_buf,
                                                void                *out_buf,
                                                glong                samples,
-                                               const GeglRectangle *roi);
+                                               const GeglRectangle *roi,
+                                               gint                 level);
 
 
 G_DEFINE_TYPE (GimpOperationLevels, gimp_operation_levels,
@@ -112,7 +113,8 @@ gimp_operation_levels_process (GeglOperation       *operation,
                                void                *in_buf,
                                void                *out_buf,
                                glong                samples,
-                               const GeglRectangle *roi)
+                               const GeglRectangle *roi,
+                               gint                 level)
 {
   GimpOperationPointFilter *point  = GIMP_OPERATION_POINT_FILTER (operation);
   GimpLevelsConfig         *config = GIMP_LEVELS_CONFIG (point->config);
diff --git a/app/gegl/gimpoperationlightenonlymode.c b/app/gegl/gimpoperationlightenonlymode.c
index 26a8d0e..9ba8245 100644
--- a/app/gegl/gimpoperationlightenonlymode.c
+++ b/app/gegl/gimpoperationlightenonlymode.c
@@ -33,7 +33,8 @@ static gboolean gimp_operation_lighten_only_mode_process (GeglOperation       *o
                                                           void                *aux_buf,
                                                           void                *out_buf,
                                                           glong                samples,
-                                                          const GeglRectangle *roi);
+                                                          const GeglRectangle *roi,
+                                                          gint                 level);
 
 
 G_DEFINE_TYPE (GimpOperationLightenOnlyMode, gimp_operation_lighten_only_mode,
@@ -66,7 +67,8 @@ gimp_operation_lighten_only_mode_process (GeglOperation       *operation,
                                           void                *aux_buf,
                                           void                *out_buf,
                                           glong                samples,
-                                          const GeglRectangle *roi)
+                                          const GeglRectangle *roi,
+                                          gint                 level)
 {
   gfloat *in    = in_buf;
   gfloat *layer = aux_buf;
diff --git a/app/gegl/gimpoperationmultiplymode.c b/app/gegl/gimpoperationmultiplymode.c
index b2756c4..cc4d712 100644
--- a/app/gegl/gimpoperationmultiplymode.c
+++ b/app/gegl/gimpoperationmultiplymode.c
@@ -33,7 +33,8 @@ static gboolean gimp_operation_multiply_mode_process (GeglOperation       *opera
                                                       void                *aux_buf,
                                                       void                *out_buf,
                                                       glong                samples,
-                                                      const GeglRectangle *roi);
+                                                      const GeglRectangle *roi,
+                                                      gint                 level);
 
 
 G_DEFINE_TYPE (GimpOperationMultiplyMode, gimp_operation_multiply_mode,
@@ -66,7 +67,8 @@ gimp_operation_multiply_mode_process (GeglOperation       *operation,
                                       void                *aux_buf,
                                       void                *out_buf,
                                       glong                samples,
-                                      const GeglRectangle *roi)
+                                      const GeglRectangle *roi,
+                                      gint                 level)
 {
   gfloat *in    = in_buf;
   gfloat *layer = aux_buf;
diff --git a/app/gegl/gimpoperationnormalmode.c b/app/gegl/gimpoperationnormalmode.c
index 2dd5bae..5b5a999 100644
--- a/app/gegl/gimpoperationnormalmode.c
+++ b/app/gegl/gimpoperationnormalmode.c
@@ -31,13 +31,15 @@
 static gboolean gimp_operation_normal_parent_process (GeglOperation        *operation,
                                                       GeglOperationContext *context,
                                                       const gchar          *output_prop,
-                                                      const GeglRectangle  *result);
+                                                      const GeglRectangle  *result,
+                                                      gint                  level);
 static gboolean gimp_operation_normal_mode_process   (GeglOperation        *operation,
                                                       void                 *in_buf,
                                                       void                 *aux_buf,
                                                       void                 *out_buf,
                                                       glong                 samples,
-                                                      const GeglRectangle *roi);
+                                                      const GeglRectangle  *roi,
+                                                      gint                  level);
 
 
 G_DEFINE_TYPE (GimpOperationNormalMode, gimp_operation_normal_mode,
@@ -71,7 +73,8 @@ static gboolean
 gimp_operation_normal_parent_process (GeglOperation        *operation,
                                       GeglOperationContext *context,
                                       const gchar          *output_prop,
-                                      const GeglRectangle  *result)
+                                      const GeglRectangle  *result,
+                                      gint                  level)
 {
   const GeglRectangle *in_extent  = NULL;
   const GeglRectangle *aux_extent = NULL;
@@ -109,7 +112,8 @@ gimp_operation_normal_parent_process (GeglOperation        *operation,
    * process function
    */
   return GEGL_OPERATION_CLASS (parent_class)->process (operation, context,
-                                                       output_prop, result);
+                                                       output_prop, result,
+                                                       level);
 }
 
 static gboolean
@@ -118,7 +122,8 @@ gimp_operation_normal_mode_process (GeglOperation       *operation,
                                     void                *aux_buf,
                                     void                *out_buf,
                                     glong                samples,
-                                    const GeglRectangle *roi)
+                                    const GeglRectangle *roi,
+                                    gint                 level)
 {
   GimpOperationPointLayerMode *point = GIMP_OPERATION_POINT_LAYER_MODE (operation);
   gfloat                      *in    = in_buf;
diff --git a/app/gegl/gimpoperationoverlaymode.c b/app/gegl/gimpoperationoverlaymode.c
index 6f67213..e90e3df 100644
--- a/app/gegl/gimpoperationoverlaymode.c
+++ b/app/gegl/gimpoperationoverlaymode.c
@@ -33,7 +33,8 @@ static gboolean gimp_operation_overlay_mode_process (GeglOperation       *operat
                                                      void                *aux_buf,
                                                      void                *out_buf,
                                                      glong                samples,
-                                                     const GeglRectangle *roi);
+                                                     const GeglRectangle *roi,
+                                                     gint                 level);
 
 
 G_DEFINE_TYPE (GimpOperationOverlayMode, gimp_operation_overlay_mode,
@@ -66,7 +67,8 @@ gimp_operation_overlay_mode_process (GeglOperation       *operation,
                                      void                *aux_buf,
                                      void                *out_buf,
                                      glong                samples,
-                                     const GeglRectangle *roi)
+                                     const GeglRectangle *roi,
+                                     gint                 level)
 {
   gfloat *in    = in_buf;
   gfloat *layer = aux_buf;
diff --git a/app/gegl/gimpoperationpointlayermode.c b/app/gegl/gimpoperationpointlayermode.c
index d640a9e..23ad1ac 100644
--- a/app/gegl/gimpoperationpointlayermode.c
+++ b/app/gegl/gimpoperationpointlayermode.c
@@ -90,7 +90,8 @@ static gboolean gimp_operation_point_layer_mode_process      (GeglOperation
                                                               void                *aux_buf,
                                                               void                *out_buf,
                                                               glong                samples,
-                                                              const GeglRectangle *roi);
+                                                              const GeglRectangle *roi,
+                                                              gint                 level);
 
 
 G_DEFINE_TYPE (GimpOperationPointLayerMode, gimp_operation_point_layer_mode,
@@ -292,7 +293,8 @@ gimp_operation_point_layer_mode_process (GeglOperation       *operation,
                                          void                *aux_buf,
                                          void                *out_buf,
                                          glong                samples,
-                                         const GeglRectangle *roi)
+                                         const GeglRectangle *roi,
+                                         gint                 level)
 {
   GimpOperationPointLayerMode *self       = GIMP_OPERATION_POINT_LAYER_MODE (operation);
   GimpLayerModeEffects         blend_mode = self->blend_mode;
diff --git a/app/gegl/gimpoperationposterize.c b/app/gegl/gimpoperationposterize.c
index aea0a31..0c0062e 100644
--- a/app/gegl/gimpoperationposterize.c
+++ b/app/gegl/gimpoperationposterize.c
@@ -36,7 +36,8 @@ static gboolean gimp_operation_posterize_process (GeglOperation       *operation
                                                   void                *in_buf,
                                                   void                *out_buf,
                                                   glong                samples,
-                                                  const GeglRectangle *roi);
+                                                  const GeglRectangle *roi,
+                                                  gint                 level);
 
 
 G_DEFINE_TYPE (GimpOperationPosterize, gimp_operation_posterize,
@@ -81,7 +82,8 @@ gimp_operation_posterize_process (GeglOperation       *operation,
                                   void                *in_buf,
                                   void                *out_buf,
                                   glong                samples,
-                                  const GeglRectangle *roi)
+                                  const GeglRectangle *roi,
+                                  gint                 level)
 {
   GimpOperationPointFilter *point  = GIMP_OPERATION_POINT_FILTER (operation);
   GimpPosterizeConfig      *config = GIMP_POSTERIZE_CONFIG (point->config);
diff --git a/app/gegl/gimpoperationreplacemode.c b/app/gegl/gimpoperationreplacemode.c
index 8ae8d6b..ba77b2a 100644
--- a/app/gegl/gimpoperationreplacemode.c
+++ b/app/gegl/gimpoperationreplacemode.c
@@ -33,7 +33,8 @@ static gboolean gimp_operation_replace_mode_process (GeglOperation       *operat
                                                      void                *aux_buf,
                                                      void                *out_buf,
                                                      glong                samples,
-                                                     const GeglRectangle *roi);
+                                                     const GeglRectangle *roi,
+                                                     gint                 level);
 
 
 G_DEFINE_TYPE (GimpOperationReplaceMode, gimp_operation_replace_mode,
@@ -66,7 +67,8 @@ gimp_operation_replace_mode_process (GeglOperation       *operation,
                                      void                *aux_buf,
                                      void                *out_buf,
                                      glong                samples,
-                                     const GeglRectangle *roi)
+                                     const GeglRectangle *roi,
+                                     gint                 level)
 {
   gfloat *in    = in_buf;
   gfloat *layer = aux_buf;
diff --git a/app/gegl/gimpoperationsaturationmode.c b/app/gegl/gimpoperationsaturationmode.c
index ee7c8b0..34c8774 100644
--- a/app/gegl/gimpoperationsaturationmode.c
+++ b/app/gegl/gimpoperationsaturationmode.c
@@ -33,7 +33,8 @@ static gboolean gimp_operation_saturation_mode_process (GeglOperation       *ope
                                                         void                *aux_buf,
                                                         void                *out_buf,
                                                         glong                samples,
-                                                        const GeglRectangle *roi);
+                                                        const GeglRectangle *roi,
+                                                        gint                 level);
 
 
 G_DEFINE_TYPE (GimpOperationSaturationMode, gimp_operation_saturation_mode,
@@ -66,7 +67,8 @@ gimp_operation_saturation_mode_process (GeglOperation       *operation,
                                         void                *aux_buf,
                                         void                *out_buf,
                                         glong                samples,
-                                        const GeglRectangle *roi)
+                                        const GeglRectangle *roi,
+                                        gint                 level)
 {
   gfloat *in    = in_buf;
   gfloat *layer = aux_buf;
diff --git a/app/gegl/gimpoperationscreenmode.c b/app/gegl/gimpoperationscreenmode.c
index 2361236..8918738 100644
--- a/app/gegl/gimpoperationscreenmode.c
+++ b/app/gegl/gimpoperationscreenmode.c
@@ -33,7 +33,8 @@ static gboolean gimp_operation_screen_mode_process (GeglOperation       *operati
                                                     void                *aux_buf,
                                                     void                *out_buf,
                                                     glong                samples,
-                                                    const GeglRectangle *roi);
+                                                    const GeglRectangle *roi,
+                                                    gint                 level);
 
 
 G_DEFINE_TYPE (GimpOperationScreenMode, gimp_operation_screen_mode,
@@ -66,7 +67,8 @@ gimp_operation_screen_mode_process (GeglOperation       *operation,
                                     void                *aux_buf,
                                     void                *out_buf,
                                     glong                samples,
-                                    const GeglRectangle *roi)
+                                    const GeglRectangle *roi,
+                                    gint                 level)
 {
   gfloat *in    = in_buf;
   gfloat *layer = aux_buf;
diff --git a/app/gegl/gimpoperationsetalpha.c b/app/gegl/gimpoperationsetalpha.c
index 0fd2513..bbf8bcd 100644
--- a/app/gegl/gimpoperationsetalpha.c
+++ b/app/gegl/gimpoperationsetalpha.c
@@ -49,7 +49,8 @@ static gboolean   gimp_operation_set_alpha_process  (GeglOperation       *operat
                                                      void                *aux_buf,
                                                      void                *out_buf,
                                                      glong                samples,
-                                                     const GeglRectangle *roi);
+                                                     const GeglRectangle *roi,
+                                                     gint                 level);
 
 
 G_DEFINE_TYPE (GimpOperationSetAlpha, gimp_operation_set_alpha,
@@ -143,7 +144,8 @@ gimp_operation_set_alpha_process (GeglOperation       *operation,
                                   void                *aux_buf,
                                   void                *out_buf,
                                   glong                samples,
-                                  const GeglRectangle *roi)
+                                  const GeglRectangle *roi,
+                                  gint                 level)
 {
   GimpOperationSetAlpha *self = GIMP_OPERATION_SET_ALPHA (operation);
   gfloat                *src  = in_buf;
diff --git a/app/gegl/gimpoperationsoftlightmode.c b/app/gegl/gimpoperationsoftlightmode.c
index ea024b4..dfd024b 100644
--- a/app/gegl/gimpoperationsoftlightmode.c
+++ b/app/gegl/gimpoperationsoftlightmode.c
@@ -33,7 +33,8 @@ static gboolean gimp_operation_softlight_mode_process (GeglOperation       *oper
                                                        void                *aux_buf,
                                                        void                *out_buf,
                                                        glong                samples,
-                                                       const GeglRectangle *roi);
+                                                       const GeglRectangle *roi,
+                                                       gint                 level);
 
 
 G_DEFINE_TYPE (GimpOperationSoftlightMode, gimp_operation_softlight_mode,
@@ -66,7 +67,8 @@ gimp_operation_softlight_mode_process (GeglOperation       *operation,
                                        void                *aux_buf,
                                        void                *out_buf,
                                        glong                samples,
-                                       const GeglRectangle *roi)
+                                       const GeglRectangle *roi,
+                                       gint                 level)
 {
   gfloat *in    = in_buf;
   gfloat *layer = aux_buf;
diff --git a/app/gegl/gimpoperationsubtractmode.c b/app/gegl/gimpoperationsubtractmode.c
index c465c81..00d96bd 100644
--- a/app/gegl/gimpoperationsubtractmode.c
+++ b/app/gegl/gimpoperationsubtractmode.c
@@ -33,7 +33,8 @@ static gboolean gimp_operation_subtract_mode_process (GeglOperation       *opera
                                                       void                *aux_buf,
                                                       void                *out_buf,
                                                       glong                samples,
-                                                      const GeglRectangle *roi);
+                                                      const GeglRectangle *roi,
+                                                      gint                 level);
 
 
 G_DEFINE_TYPE (GimpOperationSubtractMode, gimp_operation_subtract_mode,
@@ -66,7 +67,8 @@ gimp_operation_subtract_mode_process (GeglOperation       *operation,
                                       void                *aux_buf,
                                       void                *out_buf,
                                       glong                samples,
-                                      const GeglRectangle *roi)
+                                      const GeglRectangle *roi,
+                                      gint                 level)
 {
   gfloat *in    = in_buf;
   gfloat *layer = aux_buf;
diff --git a/app/gegl/gimpoperationthreshold.c b/app/gegl/gimpoperationthreshold.c
index 8809b50..ade5737 100644
--- a/app/gegl/gimpoperationthreshold.c
+++ b/app/gegl/gimpoperationthreshold.c
@@ -35,7 +35,8 @@ static gboolean gimp_operation_threshold_process (GeglOperation       *operation
                                                   void                *in_buf,
                                                   void                *out_buf,
                                                   glong                samples,
-                                                  const GeglRectangle *roi);
+                                                  const GeglRectangle *roi,
+                                                  gint                 level);
 
 
 G_DEFINE_TYPE (GimpOperationThreshold, gimp_operation_threshold,
@@ -80,7 +81,8 @@ gimp_operation_threshold_process (GeglOperation       *operation,
                                   void                *in_buf,
                                   void                *out_buf,
                                   glong                samples,
-                                  const GeglRectangle *roi)
+                                  const GeglRectangle *roi,
+                                  gint                 level)
 {
   GimpOperationPointFilter *point  = GIMP_OPERATION_POINT_FILTER (operation);
   GimpThresholdConfig      *config = GIMP_THRESHOLD_CONFIG (point->config);
diff --git a/app/gegl/gimpoperationvaluemode.c b/app/gegl/gimpoperationvaluemode.c
index 77eb63c..3d016f2 100644
--- a/app/gegl/gimpoperationvaluemode.c
+++ b/app/gegl/gimpoperationvaluemode.c
@@ -33,7 +33,8 @@ static gboolean gimp_operation_value_mode_process (GeglOperation       *operatio
                                                    void                *aux_buf,
                                                    void                *out_buf,
                                                    glong                samples,
-                                                   const GeglRectangle *roi);
+                                                   const GeglRectangle *roi,
+                                                   gint                 level);
 
 
 G_DEFINE_TYPE (GimpOperationValueMode, gimp_operation_value_mode,
@@ -66,7 +67,8 @@ gimp_operation_value_mode_process (GeglOperation       *operation,
                                    void                *aux_buf,
                                    void                *out_buf,
                                    glong                samples,
-                                   const GeglRectangle *roi)
+                                   const GeglRectangle *roi,
+                                   gint                 level)
 {
   gfloat *in    = in_buf;
   gfloat *layer = aux_buf;
diff --git a/app/text/gimptextlayer.c b/app/text/gimptextlayer.c
index ea46cca..1a7a61e 100644
--- a/app/text/gimptextlayer.c
+++ b/app/text/gimptextlayer.c
@@ -686,7 +686,7 @@ gimp_text_layer_render_layout (GimpTextLayer  *layer,
   bytes  = babl_format_get_bytes_per_pixel (format);
 
   iter = gegl_buffer_iterator_new (buffer, NULL, format,
-                                   GEGL_BUFFER_WRITE);
+                                   GEGL_BUFFER_WRITE, 0);
 
   while (gegl_buffer_iterator_next (iter))
     {



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]