Cairo

 view release on metacpan or  search on metacpan

Cairo.xs  view on Meta::CPAN


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

Cairo.xs  view on Meta::CPAN

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 )