## gimpregioniterator

gimpregioniterator — Functions to traverse a pixel regions.

## Synopsis

                        GimpRgnIterator;
    void                (*GimpRgnFunc1)                     (const guchar *src,
                                                             gint bpp,
                                                             gpointer data);
    void                (*GimpRgnFunc2)                     (const guchar *src,
                                                             guchar *dest,
                                                             gint bpp,
                                                             gpointer data);
    void                (*GimpRgnFuncSrc)                   (gint x,
                                                             gint y,
                                                             const guchar *src,
                                                             gint bpp,
                                                             gpointer data);
    void                (*GimpRgnFuncDest)                  (gint x,
                                                             gint y,
                                                             guchar *dest,
                                                             gint bpp,
                                                             gpointer data);
    void                (*GimpRgnFuncSrcDest)               (gint x,
                                                             gint y,
                                                             const guchar *src,
                                                             guchar *dest,
                                                             gint bpp,
                                                             gpointer data);
    GimpRgnIterator *   gimp_rgn_iterator_new               (GimpDrawable *drawable,
                                                             GimpRunMode unused);
    void                gimp_rgn_iterator_free              (GimpRgnIterator *iter);
    void                gimp_rgn_iterator_src               (GimpRgnIterator *iter,
                                                             GimpRgnFuncSrc func,
                                                             gpointer data);
    void                gimp_rgn_iterator_dest              (GimpRgnIterator *iter,
                                                             GimpRgnFuncDest func,
                                                             gpointer data);
    void                gimp_rgn_iterator_src_dest          (GimpRgnIterator *iter,
                                                             GimpRgnFuncSrcDest func,
                                                             gpointer data);
    void                gimp_rgn_iterate1                   (GimpDrawable *drawable,
                                                             GimpRunMode unused,
                                                             GimpRgnFunc1 func,
                                                             gpointer data);
    void                gimp_rgn_iterate2                   (GimpDrawable *drawable,
                                                             GimpRunMode unused,
                                                             GimpRgnFunc2 func,
                                                             gpointer data);

## Description

The GimpRgnIterator functions provide a variety of common ways to traverse a PixelRegion, using a pre-defined function pointer per pixel.

## Details

### GimpRgnIterator

    typedef struct _GimpRgnIterator GimpRgnIterator;

### GimpRgnFunc1 ()

    void                (*GimpRgnFunc1)                     (const guchar *src,
                                                             gint bpp,
                                                             gpointer data);

### GimpRgnFunc2 ()

    void                (*GimpRgnFunc2)                     (const guchar *src,
                                                             guchar *dest,
                                                             gint bpp,
                                                             gpointer data);

### GimpRgnFuncSrc ()

    void                (*GimpRgnFuncSrc)                   (gint x,
                                                             gint y,
                                                             const guchar *src,
                                                             gint bpp,
                                                             gpointer data);

### GimpRgnFuncDest ()

    void                (*GimpRgnFuncDest)                  (gint x,
                                                             gint y,
                                                             guchar *dest,
                                                             gint bpp,
                                                             gpointer data);

### GimpRgnFuncSrcDest ()

    void                (*GimpRgnFuncSrcDest)               (gint x,
                                                             gint y,
                                                             const guchar *src,
                                                             guchar *dest,
                                                             gint bpp,
                                                             gpointer data);

### gimp_rgn_iterator_new ()

    GimpRgnIterator *   gimp_rgn_iterator_new               (GimpDrawable *drawable,
                                                             GimpRunMode unused);

Creates a new GimpRgnIterator for `drawable`. The GimpRunMode parameter is ignored. Use `gimp_rgn_iterator_free()` to free thsi iterator.

`drawable` : | a GimpDrawable
`unused` : | ignored
Returns : | a newly allocated GimpRgnIterator.

### gimp_rgn_iterator_free ()

    void                gimp_rgn_iterator_free              (GimpRgnIterator *iter);

Frees the resources allocated for `iter`.

`iter` : | a GimpRgnIterator

### gimp_rgn_iterator_src ()

    void                gimp_rgn_iterator_src               (GimpRgnIterator *iter,
                                                             GimpRgnFuncSrc func,
                                                             gpointer data);

### gimp_rgn_iterator_dest ()

    void                gimp_rgn_iterator_dest              (GimpRgnIterator *iter,
                                                             GimpRgnFuncDest func,
                                                             gpointer data);

### gimp_rgn_iterator_src_dest ()

    void                gimp_rgn_iterator_src_dest          (GimpRgnIterator *iter,
                                                             GimpRgnFuncSrcDest func,
                                                             gpointer data);

### gimp_rgn_iterate1 ()

    void                gimp_rgn_iterate1                   (GimpDrawable *drawable,
                                                             GimpRunMode unused,
                                                             GimpRgnFunc1 func,
                                                             gpointer data);

### gimp_rgn_iterate2 ()

    void                gimp_rgn_iterate2                   (GimpDrawable *drawable,
                                                             GimpRunMode unused,
                                                             GimpRgnFunc2 func,
                                                             gpointer data);