## 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);

`src` : |
`bpp` : |
`data` : |

### GimpRgnFunc2 ()

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

`src` : |
`dest` : |
`bpp` : |
`data` : |

### GimpRgnFuncSrc ()

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

`x` : |
`y` : |
`src` : |
`bpp` : |
`data` : |

### GimpRgnFuncDest ()

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

`x` : |
`y` : |
`dest` : |
`bpp` : |
`data` : |

### GimpRgnFuncSrcDest ()

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

`x` : |
`y` : |
`src` : |
`dest` : |
`bpp` : |
`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.

`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);

`iter` : |
`func` : |
`data` : |

### gimp_rgn_iterator_dest ()

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

`iter` : |
`func` : |
`data` : |

### gimp_rgn_iterator_src_dest ()

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

`iter` : |
`func` : |
`data` : |

### gimp_rgn_iterate1 ()

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

`drawable` : |
`unused` : |
`func` : |
`data` : |

### gimp_rgn_iterate2 ()

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

`drawable` : |
`unused` : |
`func` : |
`data` : |