pattern: Add public mesh pattern API

Add public funcions to create and define mesh patterns and getters to
examine their definition.
This commit is contained in:
Adrian Johnson 2010-12-09 11:01:46 +01:00 committed by Andrea Canciani
parent 30636206b0
commit c243f3ac9c
3 changed files with 1069 additions and 1 deletions

File diff suppressed because it is too large Load diff

View file

@ -2336,6 +2336,9 @@ cairo_public cairo_pattern_t *
cairo_pattern_create_radial (double cx0, double cy0, double radius0,
double cx1, double cy1, double radius1);
cairo_public cairo_pattern_t *
cairo_pattern_create_mesh (void);
cairo_public cairo_pattern_t *
cairo_pattern_reference (cairo_pattern_t *pattern);
@ -2411,6 +2414,42 @@ cairo_pattern_add_color_stop_rgba (cairo_pattern_t *pattern,
double red, double green, double blue,
double alpha);
cairo_public void
cairo_pattern_mesh_begin_patch (cairo_pattern_t *pattern);
cairo_public void
cairo_pattern_mesh_end_patch (cairo_pattern_t *pattern);
cairo_public void
cairo_pattern_mesh_curve_to (cairo_pattern_t *pattern,
double x1, double y1,
double x2, double y2,
double x3, double y3);
cairo_public void
cairo_pattern_mesh_line_to (cairo_pattern_t *pattern,
double x, double y);
cairo_public void
cairo_pattern_mesh_move_to (cairo_pattern_t *pattern,
double x, double y);
cairo_public void
cairo_pattern_mesh_set_control_point (cairo_pattern_t *pattern,
unsigned int point_num,
double x, double y);
cairo_public void
cairo_pattern_mesh_set_corner_color_rgb (cairo_pattern_t *pattern,
unsigned int corner_num,
double red, double green, double blue);
cairo_public void
cairo_pattern_mesh_set_corner_color_rgba (cairo_pattern_t *pattern,
unsigned int corner_num,
double red, double green, double blue,
double alpha);
cairo_public void
cairo_pattern_set_matrix (cairo_pattern_t *pattern,
const cairo_matrix_t *matrix);
@ -2435,6 +2474,8 @@ cairo_pattern_get_matrix (cairo_pattern_t *pattern,
* example, outside the surface bounds or outside the gradient
* geometry).
*
* Mesh patterns are not affected by the extend mode.
*
* The default extend mode is %CAIRO_EXTEND_NONE for surface patterns
* and %CAIRO_EXTEND_PAD for gradient patterns.
*
@ -2516,6 +2557,27 @@ cairo_pattern_get_radial_circles (cairo_pattern_t *pattern,
double *x0, double *y0, double *r0,
double *x1, double *y1, double *r1);
cairo_public cairo_status_t
cairo_pattern_mesh_get_patch_count (cairo_pattern_t *pattern,
unsigned int *count);
cairo_public cairo_path_t *
cairo_pattern_mesh_get_path (cairo_pattern_t *pattern,
unsigned int patch_num);
cairo_public cairo_status_t
cairo_pattern_mesh_get_corner_color_rgba (cairo_pattern_t *pattern,
unsigned int patch_num,
unsigned int corner_num,
double *red, double *green,
double *blue, double *alpha);
cairo_public cairo_status_t
cairo_pattern_mesh_get_control_point (cairo_pattern_t *pattern,
unsigned int patch_num,
unsigned int point_num,
double *x, double *y);
/* Matrix functions */
cairo_public void

View file

@ -2433,6 +2433,10 @@ slim_hidden_proto (cairo_pattern_create_rgb);
slim_hidden_proto (cairo_pattern_create_rgba);
slim_hidden_proto (cairo_pattern_destroy);
slim_hidden_proto (cairo_pattern_get_extend);
slim_hidden_proto (cairo_pattern_mesh_curve_to);
slim_hidden_proto (cairo_pattern_mesh_line_to);
slim_hidden_proto (cairo_pattern_mesh_move_to);
slim_hidden_proto (cairo_pattern_mesh_set_corner_color_rgba);
slim_hidden_proto_no_warn (cairo_pattern_reference);
slim_hidden_proto (cairo_pattern_set_matrix);
slim_hidden_proto (cairo_pop_group);