Patterns

Patterns — Gradients and filtered sources

Synopsis




typedef     cairo_pattern_t;
void        cairo_pattern_add_color_stop_rgb
                                            (cairo_pattern_t *pattern,
                                             double offset,
                                             double red,
                                             double green,
                                             double blue);
void        cairo_pattern_add_color_stop_rgba
                                            (cairo_pattern_t *pattern,
                                             double offset,
                                             double red,
                                             double green,
                                             double blue,
                                             double alpha);
cairo_pattern_t* cairo_pattern_create_rgb   (double red,
                                             double green,
                                             double blue);
cairo_pattern_t* cairo_pattern_create_rgba  (double red,
                                             double green,
                                             double blue,
                                             double alpha);
cairo_pattern_t* cairo_pattern_create_for_surface
                                            (cairo_surface_t *surface);
cairo_pattern_t* cairo_pattern_create_linear
                                            (double x0,
                                             double y0,
                                             double x1,
                                             double y1);
cairo_pattern_t* cairo_pattern_create_radial
                                            (double cx0,
                                             double cy0,
                                             double radius0,
                                             double cx1,
                                             double cy1,
                                             double radius1);
void        cairo_pattern_destroy           (cairo_pattern_t *pattern);
cairo_pattern_t* cairo_pattern_reference    (cairo_pattern_t *pattern);
cairo_status_t cairo_pattern_status         (cairo_pattern_t *pattern);
enum        cairo_extend_t;
void        cairo_pattern_set_extend        (cairo_pattern_t *pattern,
                                             cairo_extend_t extend);
cairo_extend_t cairo_pattern_get_extend     (cairo_pattern_t *pattern);
enum        cairo_filter_t;
void        cairo_pattern_set_filter        (cairo_pattern_t *pattern,
                                             cairo_filter_t filter);
cairo_filter_t cairo_pattern_get_filter     (cairo_pattern_t *pattern);
void        cairo_pattern_set_matrix        (cairo_pattern_t *pattern,
                                             const cairo_matrix_t *matrix);
void        cairo_pattern_get_matrix        (cairo_pattern_t *pattern,
                                             cairo_matrix_t *matrix);
enum        cairo_pattern_type_t;
cairo_pattern_type_t cairo_pattern_get_type (cairo_pattern_t *pattern);

Description

Details

cairo_pattern_t

typedef struct _cairo_pattern cairo_pattern_t;


cairo_pattern_add_color_stop_rgb ()

void        cairo_pattern_add_color_stop_rgb
                                            (cairo_pattern_t *pattern,
                                             double offset,
                                             double red,
                                             double green,
                                             double blue);

cairo_pattern_add_color_stop_rgba ()

void        cairo_pattern_add_color_stop_rgba
                                            (cairo_pattern_t *pattern,
                                             double offset,
                                             double red,
                                             double green,
                                             double blue,
                                             double alpha);

cairo_pattern_create_rgb ()

cairo_pattern_t* cairo_pattern_create_rgb   (double red,
                                             double green,
                                             double blue);

cairo_pattern_create_rgba ()

cairo_pattern_t* cairo_pattern_create_rgba  (double red,
                                             double green,
                                             double blue,
                                             double alpha);

cairo_pattern_create_for_surface ()

cairo_pattern_t* cairo_pattern_create_for_surface
                                            (cairo_surface_t *surface);

cairo_pattern_create_linear ()

cairo_pattern_t* cairo_pattern_create_linear
                                            (double x0,
                                             double y0,
                                             double x1,
                                             double y1);

cairo_pattern_create_radial ()

cairo_pattern_t* cairo_pattern_create_radial
                                            (double cx0,
                                             double cy0,
                                             double radius0,
                                             double cx1,
                                             double cy1,
                                             double radius1);

cairo_pattern_destroy ()

void        cairo_pattern_destroy           (cairo_pattern_t *pattern);

cairo_pattern_reference ()

cairo_pattern_t* cairo_pattern_reference    (cairo_pattern_t *pattern);

cairo_pattern_status ()

cairo_status_t cairo_pattern_status         (cairo_pattern_t *pattern);

enum cairo_extend_t

typedef enum _cairo_extend {
    CAIRO_EXTEND_NONE,
    CAIRO_EXTEND_REPEAT,
    CAIRO_EXTEND_REFLECT,
    CAIRO_EXTEND_PAD
} cairo_extend_t;

cairo_extend_t is used to describe how the area outside of a pattern will be drawn.

CAIRO_EXTEND_NONE pixels outside of the source pattern are fully transparent
CAIRO_EXTEND_REPEAT the pattern is tiled by repeating
CAIRO_EXTEND_REFLECT the pattern is tiled by reflecting at the edges (not implemented for surface patterns currently)
CAIRO_EXTEND_PAD pixels outside of the pattern copy the closest pixel from the source (Since 1.2; not implemented for surface patterns currently)

cairo_pattern_set_extend ()

void        cairo_pattern_set_extend        (cairo_pattern_t *pattern,
                                             cairo_extend_t extend);

cairo_pattern_get_extend ()

cairo_extend_t cairo_pattern_get_extend     (cairo_pattern_t *pattern);

enum cairo_filter_t

typedef enum _cairo_filter {
    CAIRO_FILTER_FAST,
    CAIRO_FILTER_GOOD,
    CAIRO_FILTER_BEST,
    CAIRO_FILTER_NEAREST,
    CAIRO_FILTER_BILINEAR,
    CAIRO_FILTER_GAUSSIAN
} cairo_filter_t;


cairo_pattern_set_filter ()

void        cairo_pattern_set_filter        (cairo_pattern_t *pattern,
                                             cairo_filter_t filter);

cairo_pattern_get_filter ()

cairo_filter_t cairo_pattern_get_filter     (cairo_pattern_t *pattern);

cairo_pattern_set_matrix ()

void        cairo_pattern_set_matrix        (cairo_pattern_t *pattern,
                                             const cairo_matrix_t *matrix);

cairo_pattern_get_matrix ()

void        cairo_pattern_get_matrix        (cairo_pattern_t *pattern,
                                             cairo_matrix_t *matrix);

enum cairo_pattern_type_t

typedef enum _cairo_pattern_type {
    CAIRO_PATTERN_TYPE_SOLID,
    CAIRO_PATTERN_TYPE_SURFACE,
    CAIRO_PATTERN_TYPE_LINEAR,
    CAIRO_PATTERN_TYPE_RADIAL
} cairo_pattern_type_t;

Since 1.2


cairo_pattern_get_type ()

cairo_pattern_type_t cairo_pattern_get_type (cairo_pattern_t *pattern);

Since 1.2