## gimppixelrgn

gimppixelrgn — Functions for operating on pixel regions.

## Synopsis

    struct      GimpPixelRgn;
    void        gimp_pixel_rgn_init             (GimpPixelRgn *pr,
                                                 GimpDrawable *drawable,
                                                 gint x,
                                                 gint y,
                                                 gint width,
                                                 gint height,
                                                 gint dirty,
                                                 gint shadow);
    void        gimp_pixel_rgn_resize           (GimpPixelRgn *pr,
                                                 gint x,
                                                 gint y,
                                                 gint width,
                                                 gint height);
    void        gimp_pixel_rgn_get_pixel        (GimpPixelRgn *pr,
                                                 guchar *buf,
                                                 gint x,
                                                 gint y);
    void        gimp_pixel_rgn_get_row          (GimpPixelRgn *pr,
                                                 guchar *buf,
                                                 gint x,
                                                 gint y,
                                                 gint width);
    void        gimp_pixel_rgn_get_col          (GimpPixelRgn *pr,
                                                 guchar *buf,
                                                 gint x,
                                                 gint y,
                                                 gint height);
    void        gimp_pixel_rgn_get_rect         (GimpPixelRgn *pr,
                                                 guchar *buf,
                                                 gint x,
                                                 gint y,
                                                 gint width,
                                                 gint height);
    void        gimp_pixel_rgn_set_pixel        (GimpPixelRgn *pr,
                                                 const guchar *buf,
                                                 gint x,
                                                 gint y);
    void        gimp_pixel_rgn_set_row          (GimpPixelRgn *pr,
                                                 const guchar *buf,
                                                 gint x,
                                                 gint y,
                                                 gint width);
    void        gimp_pixel_rgn_set_col          (GimpPixelRgn *pr,
                                                 const guchar *buf,
                                                 gint x,
                                                 gint y,
                                                 gint height);
    void        gimp_pixel_rgn_set_rect         (GimpPixelRgn *pr,
                                                 const guchar *buf,
                                                 gint x,
                                                 gint y,
                                                 gint width,
                                                 gint height);
    gpointer    gimp_pixel_rgns_register        (gint nrgns,
                                                 ...);
    gpointer    gimp_pixel_rgns_register2       (gint nrgns,
                                                 GimpPixelRgn **prs);
    gpointer    gimp_pixel_rgns_process         (gpointer pri_ptr);

## Description

Functions for operating on pixel regions. These functions provide fast ways of accessing and modifying portions of a drawable.

## Details

### struct GimpPixelRgn

    struct GimpPixelRgn {

      guchar       *data;          /* pointer to region data */
      GimpDrawable *drawable;      /* pointer to drawable */
      guint         bpp;           /* bytes per pixel */
      guint         rowstride;     /* bytes per pixel row */
      guint         x, y;          /* origin */
      guint         w, h;          /* width and height of region */
      guint         dirty : 1;     /* will this region be dirtied? */
      guint         shadow : 1;    /* will this region use the shadow or normal tiles */
      guint         process_count; /* used internally */
    };

### gimp_pixel_rgn_init ()

    void        gimp_pixel_rgn_init             (GimpPixelRgn *pr,
                                                 GimpDrawable *drawable,
                                                 gint x,
                                                 gint y,
                                                 gint width,
                                                 gint height,
                                                 gint dirty,
                                                 gint shadow);

`pr` : |
`drawable` : |
`x` : |
`y` : |
`width` : |
`height` : |
`dirty` : |
`shadow` : |

### gimp_pixel_rgn_resize ()

    void        gimp_pixel_rgn_resize           (GimpPixelRgn *pr,
                                                 gint x,
                                                 gint y,
                                                 gint width,
                                                 gint height);

`pr` : |
`x` : |
`y` : |
`width` : |
`height` : |

### gimp_pixel_rgn_get_pixel ()

    void        gimp_pixel_rgn_get_pixel        (GimpPixelRgn *pr,
                                                 guchar *buf,
                                                 gint x,
                                                 gint y);

`pr` : |
`buf` : |
`x` : |
`y` : |

### gimp_pixel_rgn_get_row ()

    void        gimp_pixel_rgn_get_row          (GimpPixelRgn *pr,
                                                 guchar *buf,
                                                 gint x,
                                                 gint y,
                                                 gint width);

`pr` : |
`buf` : |
`x` : |
`y` : |
`width` : |

### gimp_pixel_rgn_get_col ()

    void        gimp_pixel_rgn_get_col          (GimpPixelRgn *pr,
                                                 guchar *buf,
                                                 gint x,
                                                 gint y,
                                                 gint height);

`pr` : |
`buf` : |
`x` : |
`y` : |
`height` : |

### gimp_pixel_rgn_get_rect ()

    void        gimp_pixel_rgn_get_rect         (GimpPixelRgn *pr,
                                                 guchar *buf,
                                                 gint x,
                                                 gint y,
                                                 gint width,
                                                 gint height);

`pr` : |
`buf` : |
`x` : |
`y` : |
`width` : |
`height` : |

### gimp_pixel_rgn_set_pixel ()

    void        gimp_pixel_rgn_set_pixel        (GimpPixelRgn *pr,
                                                 const guchar *buf,
                                                 gint x,
                                                 gint y);

`pr` : |
`buf` : |
`x` : |
`y` : |

### gimp_pixel_rgn_set_row ()

    void        gimp_pixel_rgn_set_row          (GimpPixelRgn *pr,
                                                 const guchar *buf,
                                                 gint x,
                                                 gint y,
                                                 gint width);

`pr` : |
`buf` : |
`x` : |
`y` : |
`width` : |

### gimp_pixel_rgn_set_col ()

    void        gimp_pixel_rgn_set_col          (GimpPixelRgn *pr,
                                                 const guchar *buf,
                                                 gint x,
                                                 gint y,
                                                 gint height);

`pr` : |
`buf` : |
`x` : |
`y` : |
`height` : |

### gimp_pixel_rgn_set_rect ()

    void        gimp_pixel_rgn_set_rect         (GimpPixelRgn *pr,
                                                 const guchar *buf,
                                                 gint x,
                                                 gint y,
                                                 gint width,
                                                 gint height);

`pr` : |
`buf` : |
`x` : |
`y` : |
`width` : |
`height` : |

### gimp_pixel_rgns_register ()

    gpointer    gimp_pixel_rgns_register        (gint nrgns,
                                                 ...);

`nrgns` : |
`...` : |
Returns : |

### gimp_pixel_rgns_register2 ()

    gpointer    gimp_pixel_rgns_register2       (gint nrgns,
                                                 GimpPixelRgn **prs);

`nrgns` : |
`prs` : |
Returns : |

### gimp_pixel_rgns_process ()

    gpointer    gimp_pixel_rgns_process         (gpointer pri_ptr);

`pri_ptr` : |
Returns : |