## GimpCairoColor GimpCairoColor — Color utility functions for cairo |

## Synopsis

    void                gimp_cairo_set_source_rgb           (cairo_t *cr,
                                                             const GimpRGB *color);
    void                gimp_cairo_set_source_rgba          (cairo_t *cr,
                                                             const GimpRGB *color);
    cairo_pattern_t *   gimp_cairo_checkerboard_create      (cairo_t *cr,
                                                             gint size,
                                                             const GimpRGB *light,
                                                             const GimpRGB *dark);
    #define             GIMP_CAIRO_RGB24_SET_PIXEL          (d,
                                                             r,
                                                             g,
                                                             b)
    #define             GIMP_CAIRO_RGB24_GET_PIXEL          (s,
                                                             r,
                                                             g,
                                                             b)
    #define             GIMP_CAIRO_ARGB32_SET_PIXEL         (d,
                                                             r,
                                                             g,
                                                             b,
                                                             a)
    #define             GIMP_CAIRO_ARGB32_GET_PIXEL         (s,
                                                             r,
                                                             g,
                                                             b,
                                                             a)

## Description

Utility functions that make cairo easier to use with GIMP color data types.

## Details

### gimp_cairo_set_source_rgb ()

    void                gimp_cairo_set_source_rgb           (cairo_t *cr,
                                                             const GimpRGB *color);

Sets the source pattern within `cr` to the solid opaque color described by `color`.

This function calls `cairo_set_source_rgb()` for you.

`cr` : | Cairo context
`color` : | GimpRGB color

Since GIMP 2.6

### gimp_cairo_set_source_rgba ()

    void                gimp_cairo_set_source_rgba          (cairo_t *cr,
                                                             const GimpRGB *color);

Sets the source pattern within `cr` to the solid translucent color described by `color`.

This function calls `cairo_set_source_rgba()` for you.

`cr` : | Cairo context
`color` : | GimpRGB color

Since GIMP 2.6

### gimp_cairo_checkerboard_create ()

    cairo_pattern_t *   gimp_cairo_checkerboard_create      (cairo_t *cr,
                                                             gint size,
                                                             const GimpRGB *light,
                                                             const GimpRGB *dark);

Create a repeating checkerboard pattern.

`cr` : | Cairo context
`size` : | check size
`light` : | light check color or `NULL` to use the default light gray
`dark` : | dark check color or `NULL` to use the default dark gray
Returns : | a new Cairo pattern that can be used as a source on `cr`.

Since GIMP 2.6

### GIMP_CAIRO_RGB24_SET_PIXEL()

    #define             GIMP_CAIRO_RGB24_SET_PIXEL(d, r, g, b)

Sets a single pixel in an Cairo image surface in `CAIRO_FORMAT_RGB24`.

`d` : | pointer to the destination buffer
`r` : | red component
`g` : | green component
`b` : | blue component

Since GIMP 2.6

### GIMP_CAIRO_RGB24_GET_PIXEL()

    #define             GIMP_CAIRO_RGB24_GET_PIXEL(s, r, g, b)

Gets a single pixel from a Cairo image surface in `CAIRO_FORMAT_RGB24`.

`s` : | pointer to the source buffer
`r` : | red component
`g` : | green component
`b` : | blue component

Since GIMP 2.8

### GIMP_CAIRO_ARGB32_SET_PIXEL()

    #define             GIMP_CAIRO_ARGB32_SET_PIXEL(d, r, g, b, a)

Sets a single pixel in an Cairo image surface in `CAIRO_FORMAT_ARGB32`.

`d` : | pointer to the destination buffer
`r` : | red component, not pre-multiplied
`g` : | green component, not pre-multiplied
`b` : | blue component, not pre-multiplied
`a` : | alpha component

Since GIMP 2.6

### GIMP_CAIRO_ARGB32_GET_PIXEL()

    #define             GIMP_CAIRO_ARGB32_GET_PIXEL(s, r, g, b, a)

Gets a single pixel from a Cairo image surface in `CAIRO_FORMAT_ARGB32`.

`s` : | pointer to the source buffer
`r` : | red component, not pre-multiplied
`g` : | green component, not pre-multiplied
`b` : | blue component, not pre-multiplied
`a` : | alpha component

Since GIMP 2.8