Cairo
view release on metacpan or search on metacpan
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
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);
CairoFont.xs view on Meta::CPAN
cairo_scaled_font_text_to_glyphs (cairo_scaled_font_t *scaled_font, double x, double y, SV *utf8_sv)
PREINIT:
const char *utf8;
STRLEN utf8_len;
cairo_glyph_t *glyphs = NULL;
int num_glyphs;
cairo_text_cluster_t *clusters = NULL;
int num_clusters;
cairo_text_cluster_flags_t cluster_flags;
cairo_status_t status;
PPCODE:
sv_utf8_upgrade (utf8_sv);
utf8 = SvPV (utf8_sv, utf8_len);
status = cairo_scaled_font_text_to_glyphs (
scaled_font,
x, y,
utf8, utf8_len,
&glyphs, &num_glyphs,
&clusters, &num_clusters, &cluster_flags);
PUSHs (sv_2mortal (newSVCairoStatus (status)));
if (CAIRO_STATUS_SUCCESS == status) {
CairoPattern.xs view on Meta::CPAN
cairo_perl_package_table_insert (RETVAL, "Cairo::SolidPattern");
#endif
#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 4, 0)
## cairo_status_t cairo_pattern_get_rgba (cairo_pattern_t *pattern, double *red, double *green, double *blue, double *alpha);
void cairo_pattern_get_rgba (cairo_pattern_t *pattern)
PREINIT:
cairo_status_t status;
double red, green, blue, alpha;
PPCODE:
status = cairo_pattern_get_rgba (pattern, &red, &green, &blue, &alpha);
CAIRO_PERL_CHECK_STATUS (status);
EXTEND (sp, 4);
PUSHs (sv_2mortal (newSVnv (red)));
PUSHs (sv_2mortal (newSVnv (green)));
PUSHs (sv_2mortal (newSVnv (blue)));
PUSHs (sv_2mortal (newSVnv (alpha)));
#endif
CairoPattern.xs view on Meta::CPAN
#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 4, 0)
## cairo_status_t cairo_pattern_get_color_stop_count (cairo_pattern_t *pattern, int *count);
## cairo_status_t cairo_pattern_get_color_stop_rgba (cairo_pattern_t *pattern, int index, double *offset, double *red, double *green, double *blue, double *alpha);
void cairo_pattern_get_color_stops (cairo_pattern_t *pattern)
PREINIT:
cairo_status_t status;
int count, i;
double offset, red, green, blue, alpha;
PPCODE:
status = cairo_pattern_get_color_stop_count (pattern, &count);
CAIRO_PERL_CHECK_STATUS (status);
EXTEND (sp, count);
for (i = 0; i < count; i++) {
AV *av;
status = cairo_pattern_get_color_stop_rgba (pattern, i, &offset, &red, &green, &blue, &alpha);
CAIRO_PERL_CHECK_STATUS (status);
av = newAV ();
av_push (av, newSVnv (offset));
av_push (av, newSVnv (red));
CairoPattern.xs view on Meta::CPAN
OUTPUT:
RETVAL
#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 4, 0)
## cairo_status_t cairo_pattern_get_linear_points (cairo_pattern_t *pattern, double *x0, double *y0, double *x1, double *y1);
void cairo_pattern_get_points (cairo_pattern_t *pattern)
PREINIT:
cairo_status_t status;
double x0, y0, x1, y1;
PPCODE:
status = cairo_pattern_get_linear_points (pattern, &x0, &y0, &x1, &y1);
CAIRO_PERL_CHECK_STATUS (status);
EXTEND (sp, 4);
PUSHs (sv_2mortal (newSVnv (x0)));
PUSHs (sv_2mortal (newSVnv (y0)));
PUSHs (sv_2mortal (newSVnv (x1)));
PUSHs (sv_2mortal (newSVnv (y1)));
#endif
CairoPattern.xs view on Meta::CPAN
OUTPUT:
RETVAL
#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 4, 0)
## cairo_status_t cairo_pattern_get_radial_circles (cairo_pattern_t *pattern, double *x0, double *y0, double *r0, double *x1, double *y1, double *r1)
void cairo_pattern_get_circles (cairo_pattern_t *pattern)
PREINIT:
cairo_status_t status;
double x0, y0, r0, x1, y1, r1;
PPCODE:
status = cairo_pattern_get_radial_circles (pattern, &x0, &y0, &r0, &x1, &y1, &r1);
CAIRO_PERL_CHECK_STATUS (status);
EXTEND (sp, 6);
PUSHs (sv_2mortal (newSVnv (x0)));
PUSHs (sv_2mortal (newSVnv (y0)));
PUSHs (sv_2mortal (newSVnv (r0)));
PUSHs (sv_2mortal (newSVnv (x1)));
PUSHs (sv_2mortal (newSVnv (y1)));
PUSHs (sv_2mortal (newSVnv (r1)));
CairoSurface.xs view on Meta::CPAN
#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 10, 0)
void cairo_pdf_surface_restrict_to_version (cairo_surface_t *surface, cairo_pdf_version_t version);
# void cairo_pdf_get_versions (cairo_pdf_version_t const **versions, int *num_versions);
void
cairo_pdf_surface_get_versions (class=NULL)
PREINIT:
cairo_pdf_version_t const *versions = NULL;
int num_versions = 0, i;
PPCODE:
PERL_UNUSED_VAR (ax);
cairo_pdf_get_versions (&versions, &num_versions);
EXTEND (sp, num_versions);
for (i = 0; i < num_versions; i++)
PUSHs (sv_2mortal (newSVCairoPdfVersion (versions[i])));
# const char * cairo_pdf_version_to_string (cairo_pdf_version_t version);
const char *
cairo_pdf_surface_version_to_string (...)
CODE:
CairoSurface.xs view on Meta::CPAN
#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 6, 0)
void cairo_ps_surface_restrict_to_level (cairo_surface_t *surface, cairo_ps_level_t level);
# void cairo_ps_get_levels (cairo_ps_level_t const **levels, int *num_levels);
void
cairo_ps_surface_get_levels (class=NULL)
PREINIT:
cairo_ps_level_t const *levels = NULL;
int num_levels = 0, i;
PPCODE:
PERL_UNUSED_VAR (ax);
cairo_ps_get_levels (&levels, &num_levels);
EXTEND (sp, num_levels);
for (i = 0; i < num_levels; i++)
PUSHs (sv_2mortal (newSVCairoPsLevel (levels[i])));
# const char * cairo_ps_level_to_string (cairo_ps_level_t level);
const char *
cairo_ps_surface_level_to_string (...)
CODE:
CairoSurface.xs view on Meta::CPAN
RETVAL
void cairo_svg_surface_restrict_to_version (cairo_surface_t *surface, cairo_svg_version_t version);
# void cairo_svg_get_versions (cairo_svg_version_t const **versions, int *num_versions);
void
cairo_svg_surface_get_versions (class=NULL)
PREINIT:
cairo_svg_version_t const *versions = NULL;
int num_versions = 0, i;
PPCODE:
PERL_UNUSED_VAR (ax);
cairo_svg_get_versions (&versions, &num_versions);
EXTEND (sp, num_versions);
for (i = 0; i < num_versions; i++)
PUSHs (sv_2mortal (newSVCairoSvgVersion (versions[i])));
# const char * cairo_svg_version_to_string (cairo_svg_version_t version);
const char *
cairo_svg_surface_version_to_string (...)
CODE:
( run in 0.633 second using v1.01-cache-2.11-cpan-71847e10f99 )