## GimpCairo GimpCairo — Color utility functions for cairo |

## Functions

void | gimp_cairo_set_source_rgb ()
void | gimp_cairo_set_source_rgba ()
cairo_pattern_t * | gimp_cairo_checkerboard_create ()
const Babl * | gimp_cairo_surface_get_format ()
GeglBuffer * | gimp_cairo_surface_create_buffer ()
#define | GIMP_CAIRO_RGB24_SET_PIXEL()
#define | GIMP_CAIRO_RGB24_GET_PIXEL()
#define | GIMP_CAIRO_ARGB32_SET_PIXEL()
#define | GIMP_CAIRO_ARGB32_GET_PIXEL()

## Description

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

## Functions

### 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.

#### Parameters

cr | Cairo context |
color | GimpRGB color |

Since: 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.

#### Parameters

cr | Cairo context |
color | GimpRGB color |

Since: 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.

#### Parameters

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: 2.6

### gimp_cairo_surface_get_format ()

    const Babl *
    gimp_cairo_surface_get_format (cairo_surface_t *surface);

This function returns a Babl format that corresponds to `surface` 's pixel format.

#### Parameters

surface | a Cairo surface |

#### Returns

the Babl format of `surface` .

Since: 2.10

### gimp_cairo_surface_create_buffer ()

    GeglBuffer *
    gimp_cairo_surface_create_buffer (cairo_surface_t *surface);

This function returns a GeglBuffer which wraps `surface` 's pixels. It must only be called on image surfaces, calling it on other surface types is an error.

#### Parameters

surface | a Cairo surface |

#### Returns

a GeglBuffer

Since: 2.10

### 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`.

#### Parameters

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

Since: 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`.

#### Parameters

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

Since: 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`.

#### Parameters

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: 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`.

#### Parameters

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: 2.8