Cairo
view release on metacpan or search on metacpan
void cairo_arc (cairo_t * cr, double xc, double yc, double radius, double angle1, double angle2);
void cairo_arc_negative (cairo_t * cr, double xc, double yc, double radius, double angle1, double angle2);
void cairo_rel_move_to (cairo_t * cr, double dx, double dy);
void cairo_rel_line_to (cairo_t * cr, double dx, double dy);
void cairo_rel_curve_to (cairo_t * cr, double dx1, double dy1, double dx2, double dy2, double dx3, double dy3);
void cairo_rectangle (cairo_t * cr, double x, double y, double width, double height);
void cairo_close_path (cairo_t * cr);
#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 6, 0)
void cairo_path_extents (cairo_t *cr, OUTLIST double x1, OUTLIST double y1, OUTLIST double x2, OUTLIST double y2);
#endif
void cairo_paint (cairo_t *cr);
void cairo_paint_with_alpha (cairo_t *cr, double alpha);
void cairo_mask (cairo_t *cr, cairo_pattern_t *pattern);
void cairo_mask_surface (cairo_t *cr, cairo_surface_t *surface, double surface_x, double surface_y);
void cairo_stroke (cairo_t * cr);
void cairo_stroke_preserve (cairo_t *cr);
void cairo_fill (cairo_t * cr);
void cairo_fill_preserve (cairo_t *cr);
void cairo_copy_page (cairo_t * cr);
void cairo_show_page (cairo_t * cr);
int cairo_in_stroke (cairo_t * cr, double x, double y);
int cairo_in_fill (cairo_t * cr, double x, double y);
void cairo_stroke_extents (cairo_t * cr, OUTLIST double x1, OUTLIST double y1, OUTLIST double x2, OUTLIST double y2);
void cairo_fill_extents (cairo_t * cr, OUTLIST double x1, OUTLIST double y1, OUTLIST double x2, OUTLIST double y2);
void cairo_clip (cairo_t * cr);
void cairo_clip_preserve (cairo_t *cr);
#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 4, 0)
##cairo_rectangle_list_t * cairo_copy_clip_rectangle_list (cairo_t *cr);
void cairo_copy_clip_rectangle_list (cairo_t *cr)
PREINIT:
cairo_rectangle_list_t *list;
int i;
PPCODE:
list = cairo_copy_clip_rectangle_list (cr);
CAIRO_PERL_CHECK_STATUS (list->status);
EXTEND (sp, list->num_rectangles);
for (i = 0; i < list->num_rectangles; i++)
PUSHs (sv_2mortal (newSVCairoRectangle (&(list->rectangles[i]))));
cairo_rectangle_list_destroy (list);
void cairo_clip_extents (cairo_t *cr, OUTLIST double x1, OUTLIST double y1, OUTLIST double x2, OUTLIST double y2);
#endif
#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 10, 0)
cairo_bool_t cairo_in_clip (cairo_t *cr, double x, double y);
#endif
void cairo_reset_clip (cairo_t *cr);
void cairo_select_font_face (cairo_t *cr, const char_utf8 *family, cairo_font_slant_t slant, cairo_font_weight_t weight);
void cairo_set_font_size (cairo_t *cr, double size);
void cairo_set_font_matrix (cairo_t *cr, const cairo_matrix_t *matrix);
##void cairo_get_font_matrix (cairo_t *cr, cairo_matrix_t *matrix);
cairo_matrix_t * cairo_get_font_matrix (cairo_t *cr)
PREINIT:
cairo_matrix_t matrix;
CODE:
cairo_get_font_matrix (cr, &matrix);
RETVAL = cairo_perl_copy_matrix (&matrix);
OUTPUT:
RETVAL
void cairo_set_font_options (cairo_t *cr, const cairo_font_options_t *options);
##void cairo_get_font_options (cairo_t *cr, cairo_font_options_t *options);
cairo_font_options_t * cairo_get_font_options (cairo_t *cr)
CODE:
RETVAL = cairo_font_options_create ();
cairo_get_font_options (cr, RETVAL);
OUTPUT:
RETVAL
#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 2, 0)
void cairo_set_scaled_font (cairo_t *cr, const cairo_scaled_font_t *scaled_font);
#endif
#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 4, 0)
cairo_scaled_font_t * cairo_get_scaled_font (cairo_t *cr);
#endif
void cairo_show_text (cairo_t * cr, const char_utf8 * utf8);
##void cairo_show_glyphs (cairo_t * cr, cairo_glyph_t * glyphs, int num_glyphs);
CODE:
num_glyphs = items - 1;
Newz (0, glyphs, num_glyphs, cairo_glyph_t);
for (i = 1; i < items; i++)
glyphs[i - 1] = *SvCairoGlyph (ST (i));
cairo_glyph_extents (cr, glyphs, num_glyphs, &extents);
RETVAL = &extents;
Safefree (glyphs);
OUTPUT:
RETVAL
void cairo_text_path (cairo_t * cr, const char_utf8 * utf8);
##void cairo_glyph_path (cairo_t * cr, cairo_glyph_t * glyphs, int num_glyphs);
void cairo_glyph_path (cairo_t * cr, ...)
PREINIT:
cairo_glyph_t * glyphs = NULL;
int num_glyphs, i;
CODE:
num_glyphs = items - 1;
Newz (0, glyphs, num_glyphs, cairo_glyph_t);
for (i = 1; i < items; i++)
glyphs[i - 1] = *SvCairoGlyph (ST (i));
cairo_glyph_path (cr, glyphs, num_glyphs);
Safefree (glyphs);
cairo_operator_t cairo_get_operator (cairo_t *cr);
cairo_pattern_t * cairo_get_source (cairo_t *cr);
double cairo_get_tolerance (cairo_t *cr);
cairo_antialias_t cairo_get_antialias (cairo_t *cr);
#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 6, 0)
cairo_bool_t cairo_has_current_point (cairo_t *cr);
#endif
void cairo_get_current_point (cairo_t *cr, OUTLIST double x, OUTLIST double y);
cairo_fill_rule_t cairo_get_fill_rule (cairo_t *cr);
double cairo_get_line_width (cairo_t *cr);
cairo_line_cap_t cairo_get_line_cap (cairo_t *cr);
cairo_line_join_t cairo_get_line_join (cairo_t *cr);
double cairo_get_miter_limit (cairo_t *cr);
#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 4, 0)
## int cairo_get_dash_count (cairo_t *cr);
## void cairo_get_dash (cairo_t *cr, double *dashes, double *offset);
void cairo_get_dash (cairo_t *cr)
PREINIT:
int count, i;
double *dashes, offset;
PPCODE:
count = cairo_get_dash_count (cr);
if (count == 0) {
dashes = NULL;
} else {
New (0, dashes, count, double);
if (!dashes)
croak ("malloc failure for (%d) elements", count);
}
cairo_get_dash (cr, dashes, &offset);
EXTEND (sp, count + 1);
PUSHs (sv_2mortal (newSVnv (offset)));
for (i = 0; i < count; i++)
PUSHs (sv_2mortal (newSVnv (dashes[i])));
Safefree (dashes);
#endif
##void cairo_get_matrix (cairo_t *cr, cairo_matrix_t *matrix);
cairo_matrix_t * cairo_get_matrix (cairo_t *cr)
PREINIT:
cairo_matrix_t matrix;
CODE:
cairo_get_matrix (cr, &matrix);
RETVAL = cairo_perl_copy_matrix (&matrix);
OUTPUT:
RETVAL
cairo_surface_t * cairo_get_target (cairo_t *cr);
#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 2, 0)
cairo_surface_t * cairo_get_group_target (cairo_t *cr);
#endif
cairo_path_t * cairo_copy_path (cairo_t *cr);
cairo_path_t * cairo_copy_path_flat (cairo_t *cr);
void cairo_append_path (cairo_t *cr, cairo_path_t *path);
cairo_status_t cairo_status (cairo_t *cr);
#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 16, 0)
void cairo_tag_begin (cairo_t * cr, const char_utf8 * tag_name, const char_utf8 * attributes);
void cairo_tag_end (cairo_t * cr, const char_utf8 * tag_name);
BOOT:
HV *stash = gv_stashpv("Cairo", 0);
newCONSTSUB (stash, "TAG_DEST", newSVpv (CAIRO_TAG_DEST, 0));
newCONSTSUB (stash, "TAG_LINK", newSVpv (CAIRO_TAG_LINK, 0));
#endif
# --------------------------------------------------------------------------- #
MODULE = Cairo PACKAGE = Cairo PREFIX = cairo_
( run in 2.368 seconds using v1.01-cache-2.11-cpan-71847e10f99 )