[gegl/abyss] abyss policy: add repeat_mode parameter in gegl_buffer_get, gegl_sampler_get_from_buffer, gegl_sampl



commit f6b0e9906a759ef4deb1d9324c3ddcd3c41ccbdf
Author: Michael Murà <batolettre gmail com>
Date:   Sun Sep 11 12:30:29 2011 +0200

    abyss policy: add repeat_mode parameter in gegl_buffer_get, gegl_sampler_get_from_buffer, gegl_sampler_get_from_mipmap, gegl_sampler_get_ptr. All sampler should handle the abyss policy now.

 gegl/buffer/gegl-buffer-access.c             |    3 +-
 gegl/buffer/gegl-buffer.h                    |    7 +++++-
 gegl/buffer/gegl-sampler-cubic.c             |    2 +-
 gegl/buffer/gegl-sampler-lanczos.c           |    2 +-
 gegl/buffer/gegl-sampler-linear.c            |    2 +-
 gegl/buffer/gegl-sampler-lohalo.c            |    4 +-
 gegl/buffer/gegl-sampler-nearest.c           |    2 +-
 gegl/buffer/gegl-sampler.c                   |   18 +++++++++++-----
 gegl/buffer/gegl-sampler.h                   |   23 ++++++++++++---------
 gegl/graph/gegl-node.c                       |    6 ++--
 operations/affine/affine.c                   |    4 +-
 operations/common/bilateral-filter.c         |    2 +-
 operations/common/box-blur.c                 |    4 +-
 operations/common/c2g.c                      |    2 +-
 operations/common/edge-laplace.c             |    9 ++++++-
 operations/common/edge-sobel.c               |    2 +-
 operations/common/exp-combine.c              |    4 +-
 operations/common/fattal02.c                 |    4 +-
 operations/common/gaussian-blur.c            |    8 +++---
 operations/common/mantiuk06.c                |    4 +-
 operations/common/mblur.c                    |    4 +-
 operations/common/mono-mixer.c               |    2 +-
 operations/common/motion-blur.c              |    2 +-
 operations/common/noise-reduction.c          |    2 +-
 operations/common/pixelise.c                 |    2 +-
 operations/common/reinhard05.c               |    4 +-
 operations/common/snn-mean.c                 |    2 +-
 operations/common/stress.c                   |    2 +-
 operations/common/stretch-contrast.c         |    4 +-
 operations/external/exr-load.cpp             |   12 ++++------
 operations/external/exr-save.cc              |    4 +--
 operations/external/jpg-save.c               |    2 +-
 operations/external/png-load.c               |    2 +-
 operations/external/png-save.c               |    2 +-
 operations/external/ppm-load.c               |    4 +-
 operations/external/ppm-save.c               |    4 +-
 operations/external/rgbe-save.c              |    2 +-
 operations/external/save-pixbuf.c            |   28 +++++++++++++------------
 operations/external/sdl-display.c            |    2 +-
 operations/workshop/box-max.c                |    4 +-
 operations/workshop/box-min.c                |    4 +-
 operations/workshop/box-percentile.c         |    2 +-
 operations/workshop/color-reduction.c        |   10 ++++----
 operations/workshop/color-rotate.c           |    2 +-
 operations/workshop/color-to-alpha.c         |    2 +-
 operations/workshop/convolution-matrix.c     |    2 +-
 operations/workshop/deinterlace.c            |    4 +-
 operations/workshop/demosaic-bimedian.c      |    2 +-
 operations/workshop/demosaic-simple.c        |    2 +-
 operations/workshop/disc-percentile.c        |    2 +-
 operations/workshop/emboss.c                 |    2 +-
 operations/workshop/external/ff-save.c       |    2 +-
 operations/workshop/external/line-profile.c  |    2 +-
 operations/workshop/hstack.c                 |    4 +-
 operations/workshop/kuwahara-max.c           |    2 +-
 operations/workshop/kuwahara-min.c           |    2 +-
 operations/workshop/kuwahara.c               |    2 +-
 operations/workshop/lens-distortion.c        |    2 +-
 operations/workshop/plasma.c                 |    2 +-
 operations/workshop/polar-coordinates.c      |    2 +-
 operations/workshop/red-eye-removal.c        |    2 +-
 operations/workshop/snn-percentile.c         |    2 +-
 tests/buffer/buffer-test.c                   |    8 +++---
 tests/buffer/tests/test_get_buffer_scaled.c  |    2 +-
 tests/buffer/tests/test_get_buffer_scaled2.c |    2 +-
 tests/simple/test-change-processor-rect.c    |    3 +-
 66 files changed, 147 insertions(+), 128 deletions(-)
---
diff --git a/gegl/buffer/gegl-buffer-access.c b/gegl/buffer/gegl-buffer-access.c
index 8778130..198705b 100644
--- a/gegl/buffer/gegl-buffer-access.c
+++ b/gegl/buffer/gegl-buffer-access.c
@@ -1052,7 +1052,8 @@ gegl_buffer_get (GeglBuffer          *buffer,
                  const GeglRectangle *rect,
                  const Babl          *format,
                  gpointer             dest_buf,
-                 gint                 rowstride)
+                 gint                 rowstride,
+                 GeglRepeatMode       repeat_mode)
 {
   g_return_if_fail (GEGL_IS_BUFFER (buffer));
   gegl_buffer_get_unlocked (buffer, scale, rect, format, dest_buf, rowstride);
diff --git a/gegl/buffer/gegl-buffer.h b/gegl/buffer/gegl-buffer.h
index c6f2382..59fa39e 100644
--- a/gegl/buffer/gegl-buffer.h
+++ b/gegl/buffer/gegl-buffer.h
@@ -225,6 +225,10 @@ gboolean gegl_buffer_set_extent (GeglBuffer          *buffer,
  * depends on the requested BablFormat.
  * @rowstride: rowstride in bytes, or GEGL_AUTO_ROWSTRIDE to compute the
  * rowstride based on the width and bytes per pixel for the specified format.
+ * @repeat_mode: how request outside the buffer extent are handled.
+ * Valid values: GEGL_REPEAT_MODE_CLAMP, GEGL_REPEAT_MODE_LOOP,
+ * GEGL_REPEAT_MODE_BLACK, GEGL_REPEAT_MODE_WHITE, GEGL_REPEAT_MODE_ZERO,
+ * GEGL_REPEAT_MODE_ONE
  *
  * Fetch a rectangular linear buffer of pixel data from the GeglBuffer, the
  * data is converted to the desired BablFormat, if the BablFormat stored and
@@ -236,7 +240,8 @@ void            gegl_buffer_get               (GeglBuffer          *buffer,
                                                const GeglRectangle *rect,
                                                const Babl          *format,
                                                gpointer             dest,
-                                               gint                 rowstride);
+                                               gint                 rowstride,
+                                               GeglRepeatMode       repeat_mode);
 
 /**
  * gegl_buffer_set:
diff --git a/gegl/buffer/gegl-sampler-cubic.c b/gegl/buffer/gegl-sampler-cubic.c
index 6a3f62c..f21e332 100644
--- a/gegl/buffer/gegl-sampler-cubic.c
+++ b/gegl/buffer/gegl-sampler-cubic.c
@@ -164,7 +164,7 @@ gegl_sampler_cubic_get (GeglSampler     *self,
   context_rect = self->context_rect[0];
   dx = (gint) x;
   dy = (gint) y;
-  sampler_bptr = gegl_sampler_get_ptr (self, dx, dy);
+  sampler_bptr = gegl_sampler_get_ptr (self, dx, dy, repeat_mode);
 
 #ifdef HAS_G4FLOAT
   if (G_LIKELY (gegl_cpu_accel_get_support () & (GEGL_CPU_ACCEL_X86_SSE|
diff --git a/gegl/buffer/gegl-sampler-lanczos.c b/gegl/buffer/gegl-sampler-lanczos.c
index 9f890b2..c08c9c6 100644
--- a/gegl/buffer/gegl-sampler-lanczos.c
+++ b/gegl/buffer/gegl-sampler-lanczos.c
@@ -196,7 +196,7 @@ gegl_sampler_lanczos_get (GeglSampler    *self,
   for (v=dy+context_rect.y, j = 0; v < dy+context_rect.y+context_rect.height; j++, v++)
     for (u=dx+context_rect.x, i = 0; u < dx+context_rect.x+context_rect.width; i++, u++)
       {
-         sampler_bptr = gegl_sampler_get_from_buffer (self, u, v);
+         sampler_bptr = gegl_sampler_get_from_buffer (self, u, v, repeat_mode);
          newval[0] += y_kernel[j] * x_kernel[i] * sampler_bptr[0];
          newval[1] += y_kernel[j] * x_kernel[i] * sampler_bptr[1];
          newval[2] += y_kernel[j] * x_kernel[i] * sampler_bptr[2];
diff --git a/gegl/buffer/gegl-sampler-linear.c b/gegl/buffer/gegl-sampler-linear.c
index ef8c00f..0187cf4 100644
--- a/gegl/buffer/gegl-sampler-linear.c
+++ b/gegl/buffer/gegl-sampler-linear.c
@@ -136,7 +136,7 @@ gegl_sampler_linear_get (GeglSampler* restrict self,
    * Point the data tile pointer to the first channel of the top_left
    * pixel value:
    */
-  const gfloat* restrict in_bptr = gegl_sampler_get_ptr (self, ix, iy);
+  const gfloat* restrict in_bptr = gegl_sampler_get_ptr (self, ix, iy, repeat_mode);
 
   /*
    * First bilinear weight:
diff --git a/gegl/buffer/gegl-sampler-lohalo.c b/gegl/buffer/gegl-sampler-lohalo.c
index 79ce6e5..6f02174 100644
--- a/gegl/buffer/gegl-sampler-lohalo.c
+++ b/gegl/buffer/gegl-sampler-lohalo.c
@@ -1334,7 +1334,7 @@ gegl_sampler_lohalo_get (GeglSampler* restrict  self,
    * (level "0"), the one with scale=1.0.
    */
   const gfloat* restrict input_bptr =
-    (gfloat*) gegl_sampler_get_ptr (self, ix_0, iy_0);
+    (gfloat*) gegl_sampler_get_ptr (self, ix_0, iy_0, repeat_mode);
 
   /*
    * (x_0,y_0) is the relative position of the sampling location
@@ -2280,7 +2280,7 @@ gegl_sampler_lohalo_get (GeglSampler* restrict  self,
                  * Get pointer to mipmap level 1 data:
                  */
                 const gfloat* restrict input_bptr_1 =
-                 (gfloat*) gegl_sampler_get_from_mipmap (self, ix_1, iy_1, 1);
+                 (gfloat*) gegl_sampler_get_from_mipmap (self, ix_1, iy_1, 1, repeat_mode);
 
                 /*
                  * Position of the sampling location in the coordinate
diff --git a/gegl/buffer/gegl-sampler-nearest.c b/gegl/buffer/gegl-sampler-nearest.c
index 54c2773..7d521a1 100644
--- a/gegl/buffer/gegl-sampler-nearest.c
+++ b/gegl/buffer/gegl-sampler-nearest.c
@@ -81,7 +81,7 @@ gegl_sampler_nearest_get (GeglSampler    *self,
                           GeglRepeatMode  repeat_mode)
 {
   gfloat             *sampler_bptr;
-  sampler_bptr = gegl_sampler_get_from_buffer (self, (gint)x, (gint)y);
+  sampler_bptr = gegl_sampler_get_from_buffer (self, (gint)x, (gint)y, repeat_mode);
   babl_process (babl_fish (self->interpolate_format, self->format), sampler_bptr, output, 1);
 }
 
diff --git a/gegl/buffer/gegl-sampler.c b/gegl/buffer/gegl-sampler.c
index f54d005..c6aec0e 100644
--- a/gegl/buffer/gegl-sampler.c
+++ b/gegl/buffer/gegl-sampler.c
@@ -207,7 +207,8 @@ dispose (GObject *gobject)
 gfloat *
 gegl_sampler_get_ptr (GeglSampler *const sampler,
                       const gint         x,
-                      const gint         y)
+                      const gint         y,
+                      GeglRepeatMode     repeat_mode)
 {
   guchar *buffer_ptr;
   gint    dx;
@@ -282,7 +283,8 @@ gegl_sampler_get_ptr (GeglSampler *const sampler,
                        &fetch_rectangle,
                        sampler->interpolate_format,
                        sampler->sampler_buffer[0],
-                       GEGL_AUTO_ROWSTRIDE);
+                       GEGL_AUTO_ROWSTRIDE,
+                       repeat_mode);
 
       sampler->sampler_rectangle[0] = fetch_rectangle;
     }
@@ -298,7 +300,8 @@ gegl_sampler_get_ptr (GeglSampler *const sampler,
 gfloat *
 gegl_sampler_get_from_buffer (GeglSampler *const sampler,
                               const gint         x,
-                              const gint         y)
+                              const gint         y,
+                              GeglRepeatMode     repeat_mode)
 {
   guchar *buffer_ptr;
   gint    dx;
@@ -356,7 +359,8 @@ gegl_sampler_get_from_buffer (GeglSampler *const sampler,
                        &fetch_rectangle,
                        sampler->interpolate_format,
                        sampler->sampler_buffer[0],
-                       GEGL_AUTO_ROWSTRIDE);
+                       GEGL_AUTO_ROWSTRIDE,
+                       repeat_mode);
 
       sampler->sampler_rectangle[0] = fetch_rectangle;
     }
@@ -373,7 +377,8 @@ gfloat *
 gegl_sampler_get_from_mipmap (GeglSampler *const sampler,
                               const gint         x,
                               const gint         y,
-                              const gint         level)
+                              const gint         level,
+                              GeglRepeatMode     repeat_mode)
 {
   guchar *buffer_ptr;
   gint    dx;
@@ -451,7 +456,8 @@ gegl_sampler_get_from_mipmap (GeglSampler *const sampler,
                        &fetch_rectangle,
                        sampler->interpolate_format,
                        sampler->sampler_buffer[level],
-                       GEGL_AUTO_ROWSTRIDE);
+                       GEGL_AUTO_ROWSTRIDE,
+                       repeat_mode);
 
       sampler->sampler_rectangle[level] = fetch_rectangle;
     }
diff --git a/gegl/buffer/gegl-sampler.h b/gegl/buffer/gegl-sampler.h
index 4eae3dd..4850695 100644
--- a/gegl/buffer/gegl-sampler.h
+++ b/gegl/buffer/gegl-sampler.h
@@ -91,16 +91,19 @@ void  gegl_sampler_get         (GeglSampler     *sampler,
                                 void            *output,
                                 GeglRepeatMode   repeat_mode);
 
-gfloat * gegl_sampler_get_from_buffer (GeglSampler *sampler,
-                                       gint         x,
-                                       gint         y);
-gfloat * gegl_sampler_get_from_mipmap (GeglSampler *sampler,
-                                       gint         x,
-                                       gint         y,
-                                       gint         level);
-gfloat * gegl_sampler_get_ptr         (GeglSampler *sampler,
-                                       gint         x,
-                                       gint         y);
+gfloat * gegl_sampler_get_from_buffer (GeglSampler *const sampler,
+                                       const gint         x,
+                                       const gint         y,
+                                       GeglRepeatMode     repeat_mode);
+gfloat * gegl_sampler_get_from_mipmap (GeglSampler *const sampler,
+                                       const gint         x,
+                                       const gint         y,
+                                       const gint         level,
+                                       GeglRepeatMode     repeat_mode);
+gfloat * gegl_sampler_get_ptr         (GeglSampler *const sampler,
+                                       const gint         x,
+                                       const gint         y,
+                                       GeglRepeatMode     repeat_mode);
 
 G_END_DECLS
 
diff --git a/gegl/graph/gegl-node.c b/gegl/graph/gegl-node.c
index b4bc98e..1c12abe 100644
--- a/gegl/graph/gegl-node.c
+++ b/gegl/graph/gegl-node.c
@@ -893,7 +893,7 @@ static void spawnrender (gpointer data,
 
   if ((buffer ) && td->destination_buf)
     {
-      gegl_buffer_get (buffer, 1.0, &td->roi, td->format, td->destination_buf, td->rowstride);
+      gegl_buffer_get (buffer, 1.0, &td->roi, td->format, td->destination_buf, td->rowstride, GEGL_REPEAT_MODE_ZERO);
     }
 
   /* and unrefing to ultimately clean it off from the graph */
@@ -1025,7 +1025,7 @@ gegl_node_blit (GeglNode            *self,
         {
           if (destination_buf)
             {
-              gegl_buffer_get (buffer, 1.0, roi, format, destination_buf, rowstride);
+              gegl_buffer_get (buffer, 1.0, roi, format, destination_buf, rowstride, GEGL_REPEAT_MODE_ZERO);
             }
 
           if (scale != 1.0)
@@ -1054,7 +1054,7 @@ gegl_node_blit (GeglNode            *self,
       if (destination_buf && cache)
         {
           gegl_buffer_get (GEGL_BUFFER (cache), scale, roi,
-                           format, destination_buf, rowstride);
+                           format, destination_buf, rowstride, GEGL_REPEAT_MODE_ZERO);
         }
     }
 }
diff --git a/operations/affine/affine.c b/operations/affine/affine.c
index 3b49f65..5c1f0ca 100644
--- a/operations/affine/affine.c
+++ b/operations/affine/affine.c
@@ -759,7 +759,7 @@ gegl_affine_fast_reflect_x (GeglBuffer              *dest,
   gint                     i;
   guchar                  *buf = (guchar *) g_malloc (src_rect->height * rowstride);
 
-  gegl_buffer_get (src, 1.0, src_rect, format, buf, GEGL_AUTO_ROWSTRIDE);
+  gegl_buffer_get (src, 1.0, src_rect, format, buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   for (i = 0; i < src_rect->height / 2; i++)
     {
@@ -795,7 +795,7 @@ gegl_affine_fast_reflect_y (GeglBuffer              *dest,
   gint                     i;
   guchar                  *buf = (guchar *) g_malloc (src_rect->height * rowstride);
 
-  gegl_buffer_get (src, 1.0, src_rect, format, buf, GEGL_AUTO_ROWSTRIDE);
+  gegl_buffer_get (src, 1.0, src_rect, format, buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   for (i = 0; i < src_rect->height; i++)
     {
diff --git a/operations/common/bilateral-filter.c b/operations/common/bilateral-filter.c
index 7ee9cbb..0e425e3 100644
--- a/operations/common/bilateral-filter.c
+++ b/operations/common/bilateral-filter.c
@@ -102,7 +102,7 @@ bilateral_filter (GeglBuffer          *src,
   src_buf = g_new0 (gfloat, src_rect->width * src_rect->height * 4);
   dst_buf = g_new0 (gfloat, dst_rect->width * dst_rect->height * 4);
 
-  gegl_buffer_get (src, 1.0, src_rect, babl_format ("RGBA float"), src_buf, GEGL_AUTO_ROWSTRIDE);
+  gegl_buffer_get (src, 1.0, src_rect, babl_format ("RGBA float"), src_buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   offset = 0;
 
diff --git a/operations/common/box-blur.c b/operations/common/box-blur.c
index 6cb3b2e..f2c811c 100644
--- a/operations/common/box-blur.c
+++ b/operations/common/box-blur.c
@@ -134,7 +134,7 @@ hor_blur (GeglBuffer          *src,
   src_buf = g_new0 (gfloat, src_rect->width * src_rect->height * 4);
   dst_buf = g_new0 (gfloat, dst_rect->width * dst_rect->height * 4);
 
-  gegl_buffer_get (src, 1.0, src_rect, babl_format ("RaGaBaA float"), src_buf, GEGL_AUTO_ROWSTRIDE);
+  gegl_buffer_get (src, 1.0, src_rect, babl_format ("RaGaBaA float"), src_buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   offset = 0;
   for (v=0; v<dst_rect->height; v++)
@@ -178,7 +178,7 @@ ver_blur (GeglBuffer          *src,
   src_buf = g_new0 (gfloat, src_rect->width * src_rect->height * 4);
   dst_buf = g_new0 (gfloat, dst_rect->width * dst_rect->height * 4);
 
-  gegl_buffer_get (src, 1.0, src_rect, babl_format ("RaGaBaA float"), src_buf, GEGL_AUTO_ROWSTRIDE);
+  gegl_buffer_get (src, 1.0, src_rect, babl_format ("RaGaBaA float"), src_buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   offset=0;
   for (v=0; v<dst_rect->height; v++)
diff --git a/operations/common/c2g.c b/operations/common/c2g.c
index 093dbbd..d23d106 100644
--- a/operations/common/c2g.c
+++ b/operations/common/c2g.c
@@ -67,7 +67,7 @@ static void c2g (GeglBuffer          *src,
   src_buf = g_new0 (gfloat, src_rect->width * src_rect->height * 4);
   dst_buf = g_new0 (gfloat, dst_rect->width * dst_rect->height * 2);
 
-  gegl_buffer_get (src, 1.0, src_rect, babl_format ("RGBA float"), src_buf, GEGL_AUTO_ROWSTRIDE);
+  gegl_buffer_get (src, 1.0, src_rect, babl_format ("RGBA float"), src_buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   for (y=radius; y<dst_rect->height+radius; y++)
     {
diff --git a/operations/common/edge-laplace.c b/operations/common/edge-laplace.c
index 3475d0b..f17124a 100644
--- a/operations/common/edge-laplace.c
+++ b/operations/common/edge-laplace.c
@@ -132,8 +132,13 @@ edge_laplace (GeglBuffer          *src,
   temp_buf = g_new0 (gfloat, src_rect->width * src_rect->height * 4);
   dst_buf  = g_new0 (gfloat, dst_rect->width * dst_rect->height * 4);
 
-  gegl_buffer_get (src, 1.0, src_rect,
-                   babl_format ("RGBA float"), src_buf, GEGL_AUTO_ROWSTRIDE);
+  gegl_buffer_get (src,
+                   1.0,
+                   src_rect,
+                   babl_format ("RGBA float"),
+                   src_buf,
+                   GEGL_AUTO_ROWSTRIDE,
+                   GEGL_REPEAT_MODE_ZERO);
 
   for (y=0; y<dst_rect->height; y++)
     for (x=0; x<dst_rect->width; x++)
diff --git a/operations/common/edge-sobel.c b/operations/common/edge-sobel.c
index d9f5e22..25645cd 100644
--- a/operations/common/edge-sobel.c
+++ b/operations/common/edge-sobel.c
@@ -107,7 +107,7 @@ edge_sobel (GeglBuffer          *src,
   src_buf = g_new0 (gfloat, src_rect->width * src_rect->height * 4);
   dst_buf = g_new0 (gfloat, dst_rect->width * dst_rect->height * 4);
 
-  gegl_buffer_get (src, 1.0, src_rect, babl_format ("RGBA float"), src_buf, GEGL_AUTO_ROWSTRIDE);
+  gegl_buffer_get (src, 1.0, src_rect, babl_format ("RGBA float"), src_buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   offset = 0;
 
diff --git a/operations/common/exp-combine.c b/operations/common/exp-combine.c
index efb36d2..f862711 100644
--- a/operations/common/exp-combine.c
+++ b/operations/common/exp-combine.c
@@ -956,7 +956,7 @@ gegl_expcombine_get_exposures (GeglOperation        *operation,
                                                 full_roi->height *
                                                 components);
       gegl_buffer_get (buffer, 1.0, full_roi, babl_format (PAD_FORMAT),
-                       e->pixels[PIXELS_FULL], GEGL_AUTO_ROWSTRIDE);
+                       e->pixels[PIXELS_FULL], GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
       g_return_val_if_fail (scale <= 1.0f, NULL);
       if (scale == 1.0f)
@@ -968,7 +968,7 @@ gegl_expcombine_get_exposures (GeglOperation        *operation,
                                              scaled_roi->height *
                                              components));
           gegl_buffer_get (buffer, scale, scaled_roi, babl_format (PAD_FORMAT),
-                           e->pixels[PIXELS_SCALED], GEGL_AUTO_ROWSTRIDE);
+                           e->pixels[PIXELS_SCALED], GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
         }
 
       e->pixels[PIXELS_ACTIVE] = e->pixels[PIXELS_FULL];
diff --git a/operations/common/fattal02.c b/operations/common/fattal02.c
index bc9bbde..af51538 100644
--- a/operations/common/fattal02.c
+++ b/operations/common/fattal02.c
@@ -1276,11 +1276,11 @@ fattal02_process (GeglOperation       *operation,
   lum_out = g_new (gfloat, result->width * result->height);
 
   gegl_buffer_get (input, 1.0, result, babl_format ("Y float"),
-                   lum_in, GEGL_AUTO_ROWSTRIDE);
+                   lum_in, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   pix = g_new (gfloat, result->width * result->height * pix_stride);
   gegl_buffer_get (input, 1.0, result, babl_format (OUTPUT_FORMAT),
-                   pix, GEGL_AUTO_ROWSTRIDE);
+                   pix, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   fattal02_tonemap (lum_in, result, lum_out, o->alpha, o->beta, noise);
 
diff --git a/operations/common/gaussian-blur.c b/operations/common/gaussian-blur.c
index 57b986b..447e6c1 100644
--- a/operations/common/gaussian-blur.c
+++ b/operations/common/gaussian-blur.c
@@ -162,7 +162,7 @@ iir_young_hor_blur (GeglBuffer          *src,
   w   = g_new0 (gfloat, src_rect->width);
 
   gegl_buffer_get (src, 1.0, src_rect, babl_format ("RaGaBaA float"),
-                   buf, GEGL_AUTO_ROWSTRIDE);
+                   buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   w_len = src_rect->width;
   for (v=0; v<src_rect->height; v++)
@@ -204,7 +204,7 @@ iir_young_ver_blur (GeglBuffer          *src,
   w   = g_new0 (gfloat, src_rect->height);
 
   gegl_buffer_get (src, 1.0, src_rect, babl_format ("RaGaBaA float"),
-                   buf, GEGL_AUTO_ROWSTRIDE);
+                   buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   w_len = src_rect->height;
   for (u=0; u<dst_rect->width; u++)
@@ -324,7 +324,7 @@ fir_hor_blur (GeglBuffer          *src,
   dst_buf = g_new0 (gfloat, dst_rect->height * dst_rect->width * 4);
 
   gegl_buffer_get (src, 1.0, src_rect, babl_format ("RaGaBaA float"),
-                   src_buf, GEGL_AUTO_ROWSTRIDE);
+                   src_buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   offset = 0;
   for (v=0; v<dst_rect->height; v++)
@@ -369,7 +369,7 @@ fir_ver_blur (GeglBuffer          *src,
   dst_buf = g_new0 (gfloat, dst_rect->width * dst_rect->height * 4);
 
   gegl_buffer_get (src, 1.0, src_rect, babl_format ("RaGaBaA float"),
-                   src_buf, GEGL_AUTO_ROWSTRIDE);
+                   src_buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   offset=0;
   for (v=0; v< dst_rect->height; v++)
diff --git a/operations/common/mantiuk06.c b/operations/common/mantiuk06.c
index 9dc91e8..bd5e001 100644
--- a/operations/common/mantiuk06.c
+++ b/operations/common/mantiuk06.c
@@ -1595,11 +1595,11 @@ mantiuk06_process (GeglOperation       *operation,
   /* Obtain the pixel data */
   lum = g_new (gfloat, result->width * result->height),
   gegl_buffer_get (input, 1.0, result, babl_format ("Y float"),
-                   lum, GEGL_AUTO_ROWSTRIDE);
+                   lum, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   pix = g_new (gfloat, result->width * result->height * pix_stride);
   gegl_buffer_get (input, 1.0, result, babl_format (OUTPUT_FORMAT),
-                   pix, GEGL_AUTO_ROWSTRIDE);
+                   pix, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   mantiuk06_contmap (result->width, result->height, pix, lum,
                      o->contrast, o->saturation, FALSE, 200, 1e-3, NULL);
diff --git a/operations/common/mblur.c b/operations/common/mblur.c
index 3f4b774..fbe1c0b 100644
--- a/operations/common/mblur.c
+++ b/operations/common/mblur.c
@@ -83,8 +83,8 @@ process (GeglOperation       *operation,
         gfloat *acc = g_new (gfloat, pixels * 4);
         gfloat dampness;
         gint i;
-        gegl_buffer_get (p->acc, 1.0, result, babl_format ("RGBA float"), acc, GEGL_AUTO_ROWSTRIDE);
-        gegl_buffer_get (temp_in, 1.0, result, babl_format ("RGBA float"), buf, GEGL_AUTO_ROWSTRIDE);
+        gegl_buffer_get (p->acc, 1.0, result, babl_format ("RGBA float"), acc, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
+        gegl_buffer_get (temp_in, 1.0, result, babl_format ("RGBA float"), buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
         dampness = o->dampness;
         for (i=0;i<pixels;i++)
           {
diff --git a/operations/common/mono-mixer.c b/operations/common/mono-mixer.c
index 6b29003..f6638e7 100644
--- a/operations/common/mono-mixer.c
+++ b/operations/common/mono-mixer.c
@@ -63,7 +63,7 @@ process (GeglOperation       *operation,
      in_buf = g_new (gfloat, 4 * num_pixels);
      out_buf = g_new (gfloat, 2 * num_pixels);
 
-     gegl_buffer_get (input, 1.0, result, babl_format ("RGBA float"), in_buf, GEGL_AUTO_ROWSTRIDE);
+     gegl_buffer_get (input, 1.0, result, babl_format ("RGBA float"), in_buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
      in_pixel = in_buf;
      out_pixel = out_buf;
diff --git a/operations/common/motion-blur.c b/operations/common/motion-blur.c
index 9afb30b..316e57e 100644
--- a/operations/common/motion-blur.c
+++ b/operations/common/motion-blur.c
@@ -100,7 +100,7 @@ process (GeglOperation       *operation,
   out_buf = g_new0 (gfloat, roi->width * roi->height * 4);
   out_pixel = out_buf;
 
-  gegl_buffer_get (input, 1.0, &src_rect, babl_format ("RaGaBaA float"), in_buf, GEGL_AUTO_ROWSTRIDE);
+  gegl_buffer_get (input, 1.0, &src_rect, babl_format ("RaGaBaA float"), in_buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   for (y=0; y<roi->height; ++y)
     {
diff --git a/operations/common/noise-reduction.c b/operations/common/noise-reduction.c
index 5ef4a52..b1254d6 100644
--- a/operations/common/noise-reduction.c
+++ b/operations/common/noise-reduction.c
@@ -177,7 +177,7 @@ process (GeglOperation       *operation,
     rect.width  += o->iterations*2;
     rect.height += o->iterations*2;
     gegl_buffer_get (input, 1.0, &rect, babl_format ("R'G'B'A float"),
-                     src_buf, stride * 4 * 4);
+                     src_buf, stride * 4 * 4, GEGL_REPEAT_MODE_ZERO);
   }
 
   for (iteration = 0; iteration < o->iterations; iteration++)
diff --git a/operations/common/pixelise.c b/operations/common/pixelise.c
index 664a41d..2fdd7f1 100644
--- a/operations/common/pixelise.c
+++ b/operations/common/pixelise.c
@@ -150,7 +150,7 @@ process (GeglOperation       *operation,
 
   buf = g_new0 (gfloat, src_rect.width * src_rect.height * 4);
 
-  gegl_buffer_get (input, 1.0, &src_rect, babl_format ("RaGaBaA float"), buf, GEGL_AUTO_ROWSTRIDE);
+  gegl_buffer_get (input, 1.0, &src_rect, babl_format ("RaGaBaA float"), buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   pixelise(buf, roi, o->xsize, o->ysize);
 
diff --git a/operations/common/reinhard05.c b/operations/common/reinhard05.c
index 7b6931e..974ec3a 100644
--- a/operations/common/reinhard05.c
+++ b/operations/common/reinhard05.c
@@ -158,11 +158,11 @@ reinhard05_process (GeglOperation       *operation,
   /* Obtain the pixel data */
   lum = g_new (gfloat, result->width * result->height),
   gegl_buffer_get (input, 1.0, result, babl_format ("Y float"),
-                   lum, GEGL_AUTO_ROWSTRIDE);
+                   lum, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   pix = g_new (gfloat, result->width * result->height * pix_stride);
   gegl_buffer_get (input, 1.0, result, babl_format (OUTPUT_FORMAT),
-                   pix, GEGL_AUTO_ROWSTRIDE);
+                   pix, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   /* Collect the image stats, averages, etc */
   reinhard05_stats_start (&world_lin);
diff --git a/operations/common/snn-mean.c b/operations/common/snn-mean.c
index 6d8c57d..dcd3515 100644
--- a/operations/common/snn-mean.c
+++ b/operations/common/snn-mean.c
@@ -122,7 +122,7 @@ snn_mean (GeglBuffer          *src,
   src_buf = g_new0 (gfloat, gegl_buffer_get_pixel_count (src) * 4);
   dst_buf = g_new0 (gfloat, dst_rect->width * dst_rect->height * 4);
 
-  gegl_buffer_get (src, 1.0, NULL, babl_format ("RGBA float"), src_buf, GEGL_AUTO_ROWSTRIDE);
+  gegl_buffer_get (src, 1.0, NULL, babl_format ("RGBA float"), src_buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   offset = 0;
 
diff --git a/operations/common/stress.c b/operations/common/stress.c
index cd840d4..8b2af41 100644
--- a/operations/common/stress.c
+++ b/operations/common/stress.c
@@ -79,7 +79,7 @@ static void stress (GeglBuffer          *src,
   src_buf = g_new0 (gfloat, src_rect->width * src_rect->height * 4);
   dst_buf = g_new0 (gfloat, dst_rect->width * dst_rect->height * 4);
 
-  gegl_buffer_get (src, 1.0, src_rect, babl_format ("RGBA float"), src_buf, GEGL_AUTO_ROWSTRIDE);
+  gegl_buffer_get (src, 1.0, src_rect, babl_format ("RGBA float"), src_buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   for (y=radius; y<dst_rect->height+radius; y++)
     {
diff --git a/operations/common/stretch-contrast.c b/operations/common/stretch-contrast.c
index 78e25de..cd2232d 100644
--- a/operations/common/stretch-contrast.c
+++ b/operations/common/stretch-contrast.c
@@ -60,7 +60,7 @@ buffer_get_min_max (GeglBuffer *buffer,
 
   gfloat *buf = g_new0 (gfloat, 4 * gegl_buffer_get_pixel_count (buffer));
   gint i;
-  gegl_buffer_get (buffer, 1.0, NULL, babl_format ("RGBA float"), buf, GEGL_AUTO_ROWSTRIDE);
+  gegl_buffer_get (buffer, 1.0, NULL, babl_format ("RGBA float"), buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
   for (i=0;i< gegl_buffer_get_pixel_count (buffer);i++)
     {
       gint component;
@@ -123,7 +123,7 @@ process (GeglOperation       *operation,
         line.width = result->width;
         line.height = chunk;
 
-        gegl_buffer_get (input, 1.0, &line, babl_format ("RGBA float"), buf, GEGL_AUTO_ROWSTRIDE);
+        gegl_buffer_get (input, 1.0, &line, babl_format ("RGBA float"), buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
         inner_process (min, max, buf, result->width  * chunk);
         gegl_buffer_set (output, &line, babl_format ("RGBA float"), buf,
                          GEGL_AUTO_ROWSTRIDE);
diff --git a/operations/external/exr-load.cpp b/operations/external/exr-load.cpp
index bd28569..f6b4482 100644
--- a/operations/external/exr-load.cpp
+++ b/operations/external/exr-load.cpp
@@ -27,9 +27,7 @@ gegl_chant_string (path, "File", "", "Path of file to load.")
 #define GEGL_CHANT_TYPE_SOURCE
 #define GEGL_CHANT_C_FILE       "exr-load.cpp"
 
-extern "C" {
 #include "gegl-chant.h"
-}
 
 #include <ImfInputFile.h>
 #include <ImfChannelList.h>
@@ -236,7 +234,7 @@ fix_saturation (GeglBuffer       *buf,
   for (y=0; y<2; y++)
     {
       gegl_rectangle_set (&rect, 0,y, gegl_buffer_get_width (buf), 1);
-      gegl_buffer_get (buf, 1.0, &rect, NULL, row[y+1], GEGL_AUTO_ROWSTRIDE);
+      gegl_buffer_get (buf, 1.0, &rect, NULL, row[y+1], GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
     }
 
   fix_saturation_row (row[1], row[1], row[2], yw, gegl_buffer_get_width (buf), nc);
@@ -250,7 +248,7 @@ fix_saturation (GeglBuffer       *buf,
         }
 
       gegl_rectangle_set (&rect, 0,y+1, gegl_buffer_get_width (buf), 1);
-      gegl_buffer_get (buf, 1.0, &rect, NULL, row[0], GEGL_AUTO_ROWSTRIDE);
+      gegl_buffer_get (buf, 1.0, &rect, NULL, row[0], GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
       tmp = row[0];
       row[0] = row[1];
@@ -331,7 +329,7 @@ reconstruct_chroma (GeglBuffer *buf,
   for (i=0; i<gegl_buffer_get_height (buf); i+=2)
     {
       gegl_rectangle_set (&rect, 0, i,  gegl_buffer_get_width (buf), 1);
-      gegl_buffer_get (buf, 1.0, &rect, NULL, pixels, GEGL_AUTO_ROWSTRIDE);
+      gegl_buffer_get (buf, 1.0, &rect, NULL, pixels, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
       reconstruct_chroma_row (pixels, gegl_buffer_get_width (buf), has_alpha, tmp);
       gegl_buffer_set (buf, &rect, NULL, pixels, GEGL_AUTO_ROWSTRIDE);
@@ -340,7 +338,7 @@ reconstruct_chroma (GeglBuffer *buf,
   for (i=0; i<gegl_buffer_get_width (buf); i++)
     {
       gegl_rectangle_set (&rect, i, 0, 1, gegl_buffer_get_height (buf));
-      gegl_buffer_get (buf, 1.0, &rect, NULL, pixels, GEGL_AUTO_ROWSTRIDE);
+      gegl_buffer_get (buf, 1.0, &rect, NULL, pixels, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
       reconstruct_chroma_row (pixels, gegl_buffer_get_height (buf), has_alpha, tmp);
       gegl_buffer_set (buf, &rect, NULL, pixels, GEGL_AUTO_ROWSTRIDE);
@@ -368,7 +366,7 @@ convert_yca_to_rgba (GeglBuffer *buf,
   for (row=0; row<gegl_buffer_get_height (buf); row++)
     {
       gegl_rectangle_set (&rect, 0, row, gegl_buffer_get_width (buf), 1);
-      gegl_buffer_get (buf, 1.0, &rect, NULL, pixels, GEGL_AUTO_ROWSTRIDE);
+      gegl_buffer_get (buf, 1.0, &rect, NULL, pixels, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
       pxl = (gfloat*) pixels;
 
       for (i=0; i<gegl_buffer_get_width (buf); i++)
diff --git a/operations/external/exr-save.cc b/operations/external/exr-save.cc
index f7957f2..0acacd9 100644
--- a/operations/external/exr-save.cc
+++ b/operations/external/exr-save.cc
@@ -26,9 +26,7 @@ gegl_chant_int  (tile, "Tile", 0, 2048, 0, "tile size to use.")
 #define GEGL_CHANT_TYPE_SINK
 #define GEGL_CHANT_C_FILE "exr-save.cc"
 
-extern "C" {
 #include "gegl-chant.h"
-} /* extern "C" */
 
 #include "config.h"
 #include <exception>
@@ -212,7 +210,7 @@ gegl_exr_save_process (GeglOperation       *operation,
       return FALSE;
     }
   gegl_buffer_get (input, 1.0, rect, babl_format (output_format.c_str ()),
-                   pixels, GEGL_AUTO_ROWSTRIDE);
+                   pixels, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
   bool status;
   try
     {
diff --git a/operations/external/jpg-save.c b/operations/external/jpg-save.c
index e3c52ca..9c23bed 100644
--- a/operations/external/jpg-save.c
+++ b/operations/external/jpg-save.c
@@ -140,7 +140,7 @@ gegl_buffer_export_jpg (GeglBuffer  *gegl_buffer,
     rect.height = 1;
 
     gegl_buffer_get (gegl_buffer, 1.0, &rect, format,
-                     row_pointer[0], GEGL_AUTO_ROWSTRIDE);
+                     row_pointer[0], GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
     jpeg_write_scanlines (&cinfo, row_pointer, 1);
   }
diff --git a/operations/external/png-load.c b/operations/external/png-load.c
index 2278a8c..60a0e74 100644
--- a/operations/external/png-load.c
+++ b/operations/external/png-load.c
@@ -228,7 +228,7 @@ gegl_buffer_import_png (GeglBuffer  *gegl_buffer,
             gegl_rectangle_set (&rect, 0, i, width, 1);
 
             if (pass != 0)
-              gegl_buffer_get (gegl_buffer, 1.0, &rect, format, pixels, GEGL_AUTO_ROWSTRIDE);
+              gegl_buffer_get (gegl_buffer, 1.0, &rect, format, pixels, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
             png_read_rows (load_png_ptr, &pixels, NULL, 1);
             gegl_buffer_set (gegl_buffer, &rect, format, pixels,
diff --git a/operations/external/png-save.c b/operations/external/png-save.c
index 38291e6..f9c213b 100644
--- a/operations/external/png-save.c
+++ b/operations/external/png-save.c
@@ -160,7 +160,7 @@ gegl_buffer_export_png (GeglBuffer  *gegl_buffer,
       rect.width = width;
       rect.height = 1;
 
-      gegl_buffer_get (gegl_buffer, 1.0, &rect, babl_format (format_string), pixels, GEGL_AUTO_ROWSTRIDE);
+      gegl_buffer_get (gegl_buffer, 1.0, &rect, babl_format (format_string), pixels, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
       png_write_rows (png, &pixels, 1);
     }
diff --git a/operations/external/ppm-load.c b/operations/external/ppm-load.c
index 5f92486..3b8cf1a 100644
--- a/operations/external/ppm-load.c
+++ b/operations/external/ppm-load.c
@@ -239,12 +239,12 @@ process (GeglOperation       *operation,
     {
     case 1:
       gegl_buffer_get (output, 1.0, &rect, babl_format ("R'G'B' u8"), img.data,
-                       GEGL_AUTO_ROWSTRIDE);
+                       GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
       break;
 
     case 2:
       gegl_buffer_get (output, 1.0, &rect, babl_format ("R'G'B' u16"), img.data,
-                       GEGL_AUTO_ROWSTRIDE);
+                       GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
       break;
 
     default:
diff --git a/operations/external/ppm-save.c b/operations/external/ppm-save.c
index 34fce87..3c40cde 100644
--- a/operations/external/ppm-save.c
+++ b/operations/external/ppm-save.c
@@ -145,12 +145,12 @@ process (GeglOperation       *operation,
     {
     case 1:
       gegl_buffer_get (input, 1.0, rect, babl_format ("R'G'B' u8"), data,
-                       GEGL_AUTO_ROWSTRIDE);
+                       GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
       break;
 
     case 2:
       gegl_buffer_get (input, 1.0, rect, babl_format ("R'G'B' u16"), data,
-                       GEGL_AUTO_ROWSTRIDE);
+                       GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
       break;
 
     default:
diff --git a/operations/external/rgbe-save.c b/operations/external/rgbe-save.c
index 2f65077..1664724 100644
--- a/operations/external/rgbe-save.c
+++ b/operations/external/rgbe-save.c
@@ -54,7 +54,7 @@ gegl_rgbe_save_process (GeglOperation       *operation,
                      babl_format_get_n_components (babl_format (FORMAT)));
 
   gegl_buffer_get (input, 1.0, rect, babl_format (FORMAT), pixels,
-                   GEGL_AUTO_ROWSTRIDE);
+                   GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   if (!rgbe_save_path (o->path, rect->width, rect->height, pixels))
       goto cleanup;
diff --git a/operations/external/save-pixbuf.c b/operations/external/save-pixbuf.c
index cfadc5e..025c68e 100644
--- a/operations/external/save-pixbuf.c
+++ b/operations/external/save-pixbuf.c
@@ -66,19 +66,21 @@ process (GeglOperation       *operation,
       babl = babl_format (name);
 
       temp = g_malloc (rect->width * rect->height * bps);
-      gegl_buffer_get (input, 1.0, rect, babl, temp, GEGL_AUTO_ROWSTRIDE);
-      if (temp) {
-    *pixbuf = gdk_pixbuf_new_from_data (temp,
-                        GDK_COLORSPACE_RGB,
-                        has_alpha,
-                        bps,
-                        rect->width, rect->height,
-                        rect->width * (has_alpha ? 4 : 3) * bps/8,
-                        (GdkPixbufDestroyNotify) g_free, NULL);
-      }
-      else {
-    g_warning (G_STRLOC ": inexistant data, unable to create GdkPixbuf.");
-      }
+      gegl_buffer_get (input, 1.0, rect, babl, temp, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
+      if (temp)
+        {
+          *pixbuf = gdk_pixbuf_new_from_data (temp,
+                                              GDK_COLORSPACE_RGB,
+                                              has_alpha,
+                                              bps,
+                                              rect->width, rect->height,
+                                              rect->width * (has_alpha ? 4 : 3) * bps/8,
+                                              (GdkPixbufDestroyNotify) g_free, NULL);
+        }
+      else
+        {
+          g_warning (G_STRLOC ": inexistant data, unable to create GdkPixbuf.");
+        }
 
       g_free (name);
     }
diff --git a/operations/external/sdl-display.c b/operations/external/sdl-display.c
index dfde21f..7a186e6 100644
--- a/operations/external/sdl-display.c
+++ b/operations/external/sdl-display.c
@@ -145,7 +145,7 @@ process (GeglOperation       *operation,
                         babl_component ("R"),
                         babl_component ("A"),
                         NULL),
-       ((SDL_Surface*)o->screen)->pixels, GEGL_AUTO_ROWSTRIDE);
+       ((SDL_Surface*)o->screen)->pixels, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
   g_object_unref (source);
 
   if (!sdl_outwin)
diff --git a/operations/workshop/box-max.c b/operations/workshop/box-max.c
index 6d3af64..6867d75 100644
--- a/operations/workshop/box-max.c
+++ b/operations/workshop/box-max.c
@@ -83,7 +83,7 @@ hor_max (GeglBuffer          *src,
   src_buf = g_new0 (gfloat, src_rect->width * src_rect->height * 4);
   dst_buf = g_new0 (gfloat, dst_rect->width * dst_rect->height * 4);
 
-  gegl_buffer_get (src, 1.0, src_rect, babl_format ("RGBA float"), src_buf, GEGL_AUTO_ROWSTRIDE);
+  gegl_buffer_get (src, 1.0, src_rect, babl_format ("RGBA float"), src_buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   offset = 0;
   for (v=0; v<dst_rect->height; v++)
@@ -124,7 +124,7 @@ ver_max (GeglBuffer *src,
   src_buf = g_new0 (gfloat, src_rect->width * src_rect->height * 4);
   dst_buf = g_new0 (gfloat, dst_rect->width * src_rect->height * 4);
 
-  gegl_buffer_get (src, 1.0, src_rect, babl_format ("RGBA float"), src_buf, GEGL_AUTO_ROWSTRIDE);
+  gegl_buffer_get (src, 1.0, src_rect, babl_format ("RGBA float"), src_buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   offset=0;
   for (v=0; v<dst_rect->height; v++)
diff --git a/operations/workshop/box-min.c b/operations/workshop/box-min.c
index 78f197c..5c7229a 100644
--- a/operations/workshop/box-min.c
+++ b/operations/workshop/box-min.c
@@ -83,7 +83,7 @@ hor_min (GeglBuffer          *src,
   src_buf = g_new0 (gfloat, src_rect->width * src_rect->height * 4);
   dst_buf = g_new0 (gfloat, dst_rect->width * dst_rect->height * 4);
 
-  gegl_buffer_get (src, 1.0, src_rect, babl_format ("RGBA float"), src_buf, GEGL_AUTO_ROWSTRIDE);
+  gegl_buffer_get (src, 1.0, src_rect, babl_format ("RGBA float"), src_buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   offset = 0;
   for (v=0; v<dst_rect->height; v++)
@@ -124,7 +124,7 @@ ver_min (GeglBuffer *src,
   src_buf = g_new0 (gfloat, src_rect->width * src_rect->height * 4);
   dst_buf = g_new0 (gfloat, dst_rect->width * src_rect->height * 4);
 
-  gegl_buffer_get (src, 1.0, src_rect, babl_format ("RGBA float"), src_buf, GEGL_AUTO_ROWSTRIDE);
+  gegl_buffer_get (src, 1.0, src_rect, babl_format ("RGBA float"), src_buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   offset=0;
   for (v=0; v<dst_rect->height; v++)
diff --git a/operations/workshop/box-percentile.c b/operations/workshop/box-percentile.c
index bed6768..005b844 100644
--- a/operations/workshop/box-percentile.c
+++ b/operations/workshop/box-percentile.c
@@ -172,7 +172,7 @@ median (GeglBuffer *src,
   src_buf = g_malloc0 (gegl_buffer_get_pixel_count (src) * 4 * 4);
   dst_buf = g_malloc0 (gegl_buffer_get_pixel_count (dst) * 4 * 4);
 
-  gegl_buffer_get (src, 1.0, NULL, babl_format ("RGBA float"), src_buf, GEGL_AUTO_ROWSTRIDE);
+  gegl_buffer_get (src, 1.0, NULL, babl_format ("RGBA float"), src_buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   offset = 0;
   for (y=0; y<gegl_buffer_get_height (dst); y++)
diff --git a/operations/workshop/color-reduction.c b/operations/workshop/color-reduction.c
index b9a5146..8eaebda 100644
--- a/operations/workshop/color-reduction.c
+++ b/operations/workshop/color-reduction.c
@@ -115,7 +115,7 @@ process_floyd_steinberg (GeglBuffer *input,
 
     /* Pull input row */
 
-    gegl_buffer_get (input, 1.0, &line_rect, babl_format ("RGBA u16"), line_buf, GEGL_AUTO_ROWSTRIDE);
+    gegl_buffer_get (input, 1.0, &line_rect, babl_format ("RGBA u16"), line_buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
     /* Process the row */
 
@@ -214,7 +214,7 @@ process_bayer (GeglBuffer *input,
   {
     guint x;
 
-    gegl_buffer_get (input, 1.0, &line_rect, babl_format ("RGBA u16"), line_buf, GEGL_AUTO_ROWSTRIDE);
+    gegl_buffer_get (input, 1.0, &line_rect, babl_format ("RGBA u16"), line_buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
     for (x = 0; x < input_rect->width; x++)
     {
@@ -268,7 +268,7 @@ process_random_covariant (GeglBuffer *input,
   {
     guint x;
 
-    gegl_buffer_get (input, 1.0, &line_rect, babl_format ("RGBA u16"), line_buf, GEGL_AUTO_ROWSTRIDE);
+    gegl_buffer_get (input, 1.0, &line_rect, babl_format ("RGBA u16"), line_buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
     for (x = 0; x < input_rect->width; x++)
     {
@@ -323,7 +323,7 @@ process_random (GeglBuffer *input,
   {
     guint x;
 
-    gegl_buffer_get (input, 1.0, &line_rect, babl_format ("RGBA u16"), line_buf, GEGL_AUTO_ROWSTRIDE);
+    gegl_buffer_get (input, 1.0, &line_rect, babl_format ("RGBA u16"), line_buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
     for (x = 0; x < input_rect->width; x++)
     {
@@ -377,7 +377,7 @@ process_no_dither (GeglBuffer *input,
   {
     guint x;
 
-    gegl_buffer_get (input, 1.0, &line_rect, babl_format ("RGBA u16"), line_buf, GEGL_AUTO_ROWSTRIDE);
+    gegl_buffer_get (input, 1.0, &line_rect, babl_format ("RGBA u16"), line_buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
     for (x = 0; x < input_rect->width; x++)
     {
diff --git a/operations/workshop/color-rotate.c b/operations/workshop/color-rotate.c
index 50a6b6e..b032806 100644
--- a/operations/workshop/color-rotate.c
+++ b/operations/workshop/color-rotate.c
@@ -352,7 +352,7 @@ process (GeglOperation       *operation,
 
   format = babl_format ("RGBA float");
 
-  gegl_buffer_get (input, 1.0, result, format, src_buf, GEGL_AUTO_ROWSTRIDE);
+  gegl_buffer_get (input, 1.0, result, format, src_buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   for (x = 0; x < result->width * result->height; x++)
     color_rotate (src_buf, 4 * x, o);
diff --git a/operations/workshop/color-to-alpha.c b/operations/workshop/color-to-alpha.c
index d316afb..6c8ae97 100644
--- a/operations/workshop/color-to-alpha.c
+++ b/operations/workshop/color-to-alpha.c
@@ -135,7 +135,7 @@ process (GeglOperation       *operation,
 
   src_buf = g_new0 (gfloat, result->width * result->height * 4);
 
-  gegl_buffer_get (input, 1.0, result, format, src_buf, GEGL_AUTO_ROWSTRIDE);
+  gegl_buffer_get (input, 1.0, result, format, src_buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   gegl_color_get_rgba4f (o->value, color);
 
diff --git a/operations/workshop/convolution-matrix.c b/operations/workshop/convolution-matrix.c
index 8420b56..fbc8571 100644
--- a/operations/workshop/convolution-matrix.c
+++ b/operations/workshop/convolution-matrix.c
@@ -363,7 +363,7 @@ process (GeglOperation       *operation,
   dst_buf = g_new0 (gfloat, result->width * result->height * 4);
 
   gegl_buffer_get (input, 1.0, &rect, babl_format (type),
-                   src_buf, GEGL_AUTO_ROWSTRIDE);
+                   src_buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   /*fill src_buf with wrap pixels if it is the case*/
 
diff --git a/operations/workshop/deinterlace.c b/operations/workshop/deinterlace.c
index e0c3439..b503033 100644
--- a/operations/workshop/deinterlace.c
+++ b/operations/workshop/deinterlace.c
@@ -236,8 +236,8 @@ process (GeglOperation       *operation,
   dst_buf = g_new0 (gfloat, result->height * result->width * 4);
   src_buf = g_new0 (gfloat, rect.height * rect.width * 4);
 
-  gegl_buffer_get (input, 1.0, result, format, dst_buf, GEGL_AUTO_ROWSTRIDE);
-  gegl_buffer_get (input, 1.0, &rect, format, src_buf, GEGL_AUTO_ROWSTRIDE);
+  gegl_buffer_get (input, 1.0, result, format, dst_buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
+  gegl_buffer_get (input, 1.0, &rect, format, src_buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   if (o->horizontal)
     {
diff --git a/operations/workshop/demosaic-bimedian.c b/operations/workshop/demosaic-bimedian.c
index 7841092..c38c836 100644
--- a/operations/workshop/demosaic-bimedian.c
+++ b/operations/workshop/demosaic-bimedian.c
@@ -94,7 +94,7 @@ demosaic (GeglChantO          *op,
   dst_buf = g_new0 (gfloat, dst_rect->width * dst_rect->height * 3);
 
   gegl_buffer_get (src, 1.0, src_rect, babl_format ("Y float"), src_buf,
-           GEGL_AUTO_ROWSTRIDE);
+           GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   offset = ROW + COL;
   doffset = 0;
diff --git a/operations/workshop/demosaic-simple.c b/operations/workshop/demosaic-simple.c
index d570e22..390ea6e 100644
--- a/operations/workshop/demosaic-simple.c
+++ b/operations/workshop/demosaic-simple.c
@@ -47,7 +47,7 @@ demosaic (GeglChantO          *op,
   src_buf = g_new0 (gfloat, src_rect->width * src_rect->height * 1);
   dst_buf = g_new0 (gfloat, dst_rect->width * dst_rect->height * 3);
 
-  gegl_buffer_get (src, 1.0, src_rect, babl_format ("Y float"), src_buf, GEGL_AUTO_ROWSTRIDE);
+  gegl_buffer_get (src, 1.0, src_rect, babl_format ("Y float"), src_buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   offset=0;
   for (y=src_rect->y; y < dst_rect->height + src_rect->y; y++)
diff --git a/operations/workshop/disc-percentile.c b/operations/workshop/disc-percentile.c
index 85db564..ccf87a7 100644
--- a/operations/workshop/disc-percentile.c
+++ b/operations/workshop/disc-percentile.c
@@ -136,7 +136,7 @@ median (GeglBuffer *src,
   src_buf = g_new0 (gfloat, gegl_buffer_get_pixel_count (src) * 4);
   dst_buf = g_new0 (gfloat, gegl_buffer_get_pixel_count (dst) * 4);
 
-  gegl_buffer_get (src, 1.0, NULL, babl_format ("RGBA float"), src_buf, GEGL_AUTO_ROWSTRIDE);
+  gegl_buffer_get (src, 1.0, NULL, babl_format ("RGBA float"), src_buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   offset = 0;
   for (y=0; y<gegl_buffer_get_height (dst); y++)
diff --git a/operations/workshop/emboss.c b/operations/workshop/emboss.c
index 916e469..b1616d6 100644
--- a/operations/workshop/emboss.c
+++ b/operations/workshop/emboss.c
@@ -213,7 +213,7 @@ process (GeglOperation       *operation,
   dst_buf = g_new0 (gfloat, rect.width * rect.height * floats_per_pixel);
 
   gegl_buffer_get (input, 1.0, &rect, babl_format (type),
-                   src_buf, GEGL_AUTO_ROWSTRIDE);
+                   src_buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   /*do for every row*/
   for (x = 0; x < rect.height; x++)
diff --git a/operations/workshop/external/ff-save.c b/operations/workshop/external/ff-save.c
index 68acf53..c696fa8 100644
--- a/operations/workshop/external/ff-save.c
+++ b/operations/workshop/external/ff-save.c
@@ -634,7 +634,7 @@ fill_yuv_image (GeglChantO *op,
 
           op->input_pad[0]->width * op->input_pad[0]->height * 3);*/
   GeglRectangle rect={0,0,width,height};
-  gegl_buffer_get (p->input, 1.0, &rect, babl_format ("R'G'B' u8"), pict->data[0], GEGL_AUTO_ROWSTRIDE);
+  gegl_buffer_get (p->input, 1.0, &rect, babl_format ("R'G'B' u8"), pict->data[0], GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 }
 
 static void
diff --git a/operations/workshop/external/line-profile.c b/operations/workshop/external/line-profile.c
index 583c11b..b599795 100644
--- a/operations/workshop/external/line-profile.c
+++ b/operations/workshop/external/line-profile.c
@@ -48,7 +48,7 @@ buffer_sample (GeglBuffer *buffer,
   gfloat rgba[4];
   GeglRectangle roi = {x,y,1,1};
 
-  gegl_buffer_get (buffer, 1.0, &roi, babl_format ("RGBA float"), &rgba[0], GEGL_AUTO_ROWSTRIDE);
+  gegl_buffer_get (buffer, 1.0, &roi, babl_format ("RGBA float"), &rgba[0], GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
   return rgba[component];
 }
 
diff --git a/operations/workshop/hstack.c b/operations/workshop/hstack.c
index 084336c..c1a04a9 100644
--- a/operations/workshop/hstack.c
+++ b/operations/workshop/hstack.c
@@ -125,8 +125,8 @@ process (GeglOperation       *operation,
       gfloat *buf  = g_new0 (gfloat, result->width * result->height * 4);
       gfloat *bufB = g_new0 (gfloat, result->width * result->height * 4);
 
-      gegl_buffer_get (temp_in, 1.0, NULL, babl_format ("RGBA float"), buf, GEGL_AUTO_ROWSTRIDE);
-      gegl_buffer_get (temp_aux, 1.0, NULL, babl_format ("RGBA float"), bufB, GEGL_AUTO_ROWSTRIDE);
+      gegl_buffer_get (temp_in, 1.0, NULL, babl_format ("RGBA float"), buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
+      gegl_buffer_get (temp_aux, 1.0, NULL, babl_format ("RGBA float"), bufB, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
         {
           gint offset=0;
           gint x,y;
diff --git a/operations/workshop/kuwahara-max.c b/operations/workshop/kuwahara-max.c
index a00bc4f..10bcec8 100644
--- a/operations/workshop/kuwahara-max.c
+++ b/operations/workshop/kuwahara-max.c
@@ -96,7 +96,7 @@ kuwahara (GeglBuffer *src,
   src_buf = g_new0 (gfloat, gegl_buffer_get_pixel_count (src) * 4);
   dst_buf = g_new0 (gfloat, gegl_buffer_get_pixel_count (dst) * 4);
 
-  gegl_buffer_get (src, 1.0, NULL, babl_format ("RGBA float"), src_buf, GEGL_AUTO_ROWSTRIDE);
+  gegl_buffer_get (src, 1.0, NULL, babl_format ("RGBA float"), src_buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   offset = 0;
   for (v=0; v<gegl_buffer_get_height (dst); v++)
diff --git a/operations/workshop/kuwahara-min.c b/operations/workshop/kuwahara-min.c
index 520df23..f126f1c 100644
--- a/operations/workshop/kuwahara-min.c
+++ b/operations/workshop/kuwahara-min.c
@@ -96,7 +96,7 @@ kuwahara (GeglBuffer *src,
   src_buf = g_new0 (gfloat, gegl_buffer_get_pixel_count (src) * 4);
   dst_buf = g_new0 (gfloat, gegl_buffer_get_pixel_count (dst) * 4);
 
-  gegl_buffer_get (src, 1.0, NULL, babl_format ("RGBA float"), src_buf, GEGL_AUTO_ROWSTRIDE);
+  gegl_buffer_get (src, 1.0, NULL, babl_format ("RGBA float"), src_buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   offset = 0;
   for (v=0; v<gegl_buffer_get_height (dst); v++)
diff --git a/operations/workshop/kuwahara.c b/operations/workshop/kuwahara.c
index 7d0baa7..c1a6032 100644
--- a/operations/workshop/kuwahara.c
+++ b/operations/workshop/kuwahara.c
@@ -96,7 +96,7 @@ kuwahara (GeglBuffer *src,
   src_buf = g_new0 (gfloat, gegl_buffer_get_pixel_count (src) * 4);
   dst_buf = g_new0 (gfloat, gegl_buffer_get_pixel_count (dst) * 4);
 
-  gegl_buffer_get (src, 1.0, NULL, babl_format ("RGBA float"), src_buf, GEGL_AUTO_ROWSTRIDE);
+  gegl_buffer_get (src, 1.0, NULL, babl_format ("RGBA float"), src_buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   offset = 0;
   for (v=0; v<gegl_buffer_get_height (dst); v++)
diff --git a/operations/workshop/lens-distortion.c b/operations/workshop/lens-distortion.c
index a7001cc..cd72f54 100644
--- a/operations/workshop/lens-distortion.c
+++ b/operations/workshop/lens-distortion.c
@@ -280,7 +280,7 @@ process (GeglOperation       *operation,
   lens_setup_calc (o, boundary, &old_lens);
 
   gegl_buffer_get (input, 1.0, result, babl_format ("RGBA float"),
-                   src_buf, GEGL_AUTO_ROWSTRIDE);
+                   src_buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   for (y = result->y; y < result->y + result->height; y++)
     for (x = result->x; x < result->x + result->width; x++)
diff --git a/operations/workshop/plasma.c b/operations/workshop/plasma.c
index f40d8ba..962e311 100644
--- a/operations/workshop/plasma.c
+++ b/operations/workshop/plasma.c
@@ -161,7 +161,7 @@ do_plasma_big (PlasmaContext *context,
       rect.height = y2 - y1 + 1;
 
       gegl_buffer_get (context->output, 1.0, &rect, babl_format ("RGBA float"),
-                       context->buffer, GEGL_AUTO_ROWSTRIDE);
+                       context->buffer, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
       context->using_buffer = TRUE;
       context->buffer_x = x1;
diff --git a/operations/workshop/polar-coordinates.c b/operations/workshop/polar-coordinates.c
index b0e8ac8..ccf633c 100644
--- a/operations/workshop/polar-coordinates.c
+++ b/operations/workshop/polar-coordinates.c
@@ -319,7 +319,7 @@ process (GeglOperation       *operation,
   src_buf = g_new0 (gfloat, result->width * result->height * 4);
   dst_buf = g_new0 (gfloat, result->width * result->height * 4);
 
-  gegl_buffer_get (input, 1.0, result, format, src_buf, GEGL_AUTO_ROWSTRIDE);
+  gegl_buffer_get (input, 1.0, result, format, src_buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   if (o->middle)
     {
diff --git a/operations/workshop/red-eye-removal.c b/operations/workshop/red-eye-removal.c
index ce364eb..980ff7c 100644
--- a/operations/workshop/red-eye-removal.c
+++ b/operations/workshop/red-eye-removal.c
@@ -100,7 +100,7 @@ process (GeglOperation       *operation,
 
   src_buf = g_new0 (gfloat, result->width * result->height * 4);
 
-  gegl_buffer_get (input, 1.0, result, format, src_buf, GEGL_AUTO_ROWSTRIDE);
+  gegl_buffer_get (input, 1.0, result, format, src_buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   for (x = 0; x < result->width * result->height; x++)
     red_eye_reduction (src_buf, 4 * x, (float) o->threshold);
diff --git a/operations/workshop/snn-percentile.c b/operations/workshop/snn-percentile.c
index cafe0bf..dd08367 100644
--- a/operations/workshop/snn-percentile.c
+++ b/operations/workshop/snn-percentile.c
@@ -152,7 +152,7 @@ snn_percentile (GeglBuffer *src,
   src_buf = g_new0 (gfloat, gegl_buffer_get_pixel_count (src) * 4);
   dst_buf = g_new0 (gfloat, gegl_buffer_get_pixel_count (dst) * 4);
 
-  gegl_buffer_get (src, 1.0, NULL, babl_format ("RGBA float"), src_buf, GEGL_AUTO_ROWSTRIDE);
+  gegl_buffer_get (src, 1.0, NULL, babl_format ("RGBA float"), src_buf, GEGL_AUTO_ROWSTRIDE, GEGL_REPEAT_MODE_ZERO);
 
   offset = 0;
   percentile/= 100.0;
diff --git a/tests/buffer/buffer-test.c b/tests/buffer/buffer-test.c
index ac7bc0c..cf04d6e 100644
--- a/tests/buffer/buffer-test.c
+++ b/tests/buffer/buffer-test.c
@@ -149,7 +149,7 @@ print_buffer_internal (GString    *gstring,
                         "height", &height,
                         NULL);
   buf = g_malloc (width*height*sizeof(gfloat));
-  gegl_buffer_get (buffer, 1.0, NULL, babl_format ("Y float"), buf, 0);
+  gegl_buffer_get (buffer, 1.0, NULL, babl_format ("Y float"), buf, 0, GEGL_REPEAT_MODE_ZERO);
   print_linear_buffer_internal_float (gstring, width, height, buf);
   g_free (buf);
 }
@@ -168,7 +168,7 @@ fill (GeglBuffer *buffer,
                         "height", &height,
                         NULL);
   buf = g_malloc (width*height*sizeof(gfloat));
-  gegl_buffer_get (buffer, 1.0, NULL, babl_format ("Y float"), buf, 0);
+  gegl_buffer_get (buffer, 1.0, NULL, babl_format ("Y float"), buf, 0, GEGL_REPEAT_MODE_ZERO);
 
   i=0;
   for (y=0;y<height;y++)
@@ -197,7 +197,7 @@ static void checkerboard          (GeglBuffer *buffer,
                         "height", &height,
                         NULL);
   buf = g_malloc (width*height*sizeof(gfloat));
-  gegl_buffer_get (buffer, 1.0, NULL, babl_format ("Y float"), buf, 0);
+  gegl_buffer_get (buffer, 1.0, NULL, babl_format ("Y float"), buf, 0, GEGL_REPEAT_MODE_ZERO);
 
   i=0;
   for (y=0;y<height;y++)
@@ -240,7 +240,7 @@ static void vgrad (GeglBuffer *buffer)
                         "height", &height,
                         NULL);
   buf = g_malloc (width*height*sizeof(gfloat));
-  gegl_buffer_get (buffer, 1.0, NULL, babl_format ("Y float"), buf, 0);
+  gegl_buffer_get (buffer, 1.0, NULL, babl_format ("Y float"), buf, 0, GEGL_REPEAT_MODE_ZERO);
 
   i=0;
   for (y=0;y<height;y++)
diff --git a/tests/buffer/tests/test_get_buffer_scaled.c b/tests/buffer/tests/test_get_buffer_scaled.c
index da16119..2561fad 100644
--- a/tests/buffer/tests/test_get_buffer_scaled.c
+++ b/tests/buffer/tests/test_get_buffer_scaled.c
@@ -18,7 +18,7 @@ TEST ()
         {
           getrect.x=i;
           /*getrect.y=i;*/
-          gegl_buffer_get (buffer, 1.2, &getrect, babl_format ("Y u8"), buf, 0);
+          gegl_buffer_get (buffer, 1.2, &getrect, babl_format ("Y u8"), buf, 0, GEGL_REPEAT_MODE_ZERO);
           print_linear_buffer_u8 (getrect.width, getrect.height, buf);
         }
     }
diff --git a/tests/buffer/tests/test_get_buffer_scaled2.c b/tests/buffer/tests/test_get_buffer_scaled2.c
index b737ab7..e2b95f3 100644
--- a/tests/buffer/tests/test_get_buffer_scaled2.c
+++ b/tests/buffer/tests/test_get_buffer_scaled2.c
@@ -11,7 +11,7 @@ TEST ()
   checkerboard (buffer, 2, 0.0, 1.0);
   buf = g_malloc (getrect.width*getrect.height*sizeof(gfloat));
 
-  gegl_buffer_get (buffer, 0.66, &getrect, babl_format ("Y u8"), buf, 0);
+  gegl_buffer_get (buffer, 0.66, &getrect, babl_format ("Y u8"), buf, 0, GEGL_REPEAT_MODE_ZERO);
 
 
   print_linear_buffer_u8 (getrect.width, getrect.height, buf);
diff --git a/tests/simple/test-change-processor-rect.c b/tests/simple/test-change-processor-rect.c
index 3769362..474b654 100644
--- a/tests/simple/test-change-processor-rect.c
+++ b/tests/simple/test-change-processor-rect.c
@@ -51,7 +51,8 @@ test_change_processor_rect_do_test (GeglProcessor       *processor,
                    rect,
                    babl_format ("RGBA float"),
                    result_buffer,
-                   GEGL_AUTO_ROWSTRIDE);
+                   GEGL_AUTO_ROWSTRIDE,
+                   GEGL_REPEAT_MODE_ZERO);
 
   /* Compare with a small epsilon to account for accumulated error */
   for(i = 0; i < G_N_ELEMENTS (expected_result_buffer); i++)



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