view dwt/internal/gtk/c/cairo.d @ 11:5f725d09c076

Added dynamic loader from gtkd with cleanup and modifications. Tango only support. No OS.d tie-in yet.
author John Reimer<terminal.node@gmail.com>
date Sat, 05 Jan 2008 15:13:44 -0800
parents
children
line wrap: on
line source

/******************************************************************************

    This file is part of gtkD.

    gtkD is free software; you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
    the Free Software Foundation; either version 2.1 of the License, or
    (at your option) any later version.
 
    gtkD is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public License
    along with gtkD; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

******************************************************************************/

module dwt.internal.gtk.c.cairo;

private import dwt.internal.gtk.c.cairotypes;
private import dwt.internal.gtk.runtime.Loader;

/******************************************************************************

******************************************************************************/

private Linker cairoLinker;

/******************************************************************************

******************************************************************************/

static this()
{
    cairoLinker = new Linker( getLibraryPath ~ importLibs[LIBRARY.CAIRO] );
    cairoLinker.link( cairoLinks );
}

/******************************************************************************

******************************************************************************/

static ~this()
{
    delete cairoLinker;
}

/******************************************************************************

******************************************************************************/

extern(C) 
{	
	// cairo.Context
	
	cairo_t* function(cairo_surface_t* target)cairo_create;
	cairo_t* function(cairo_t* cr)cairo_reference;
	void function(cairo_t* cr)cairo_destroy;
	cairo_status_t function(cairo_t* cr)cairo_status;
	void function(cairo_t* cr)cairo_save;
	void function(cairo_t* cr)cairo_restore;
	cairo_surface_t* function(cairo_t* cr)cairo_get_target;
	void function(cairo_t* cr)cairo_push_group;
	void function(cairo_t* cr, cairo_content_t content)cairo_push_group_with_content;
	cairo_pattern_t* function(cairo_t* cr)cairo_pop_group;
	void function(cairo_t* cr)cairo_pop_group_to_source;
	cairo_surface_t* function(cairo_t* cr)cairo_get_group_target;
	void function(cairo_t* cr, double red, double green, double blue)cairo_set_source_rgb;
	void function(cairo_t* cr, double red, double green, double blue, double alpha)cairo_set_source_rgba;
	void function(cairo_t* cr, cairo_pattern_t* source)cairo_set_source;
	void function(cairo_t* cr, cairo_surface_t* surface, double x, double y)cairo_set_source_surface;
	cairo_pattern_t* function(cairo_t* cr)cairo_get_source;
	void function(cairo_t* cr, cairo_antialias_t antialias)cairo_set_antialias;
	cairo_antialias_t function(cairo_t* cr)cairo_get_antialias;
	void function(cairo_t* cr, double* dashes, int numDashes, double offset)cairo_set_dash;
	void function(cairo_t* cr, cairo_fill_rule_t fillRule)cairo_set_fill_rule;
	cairo_fill_rule_t function(cairo_t* cr)cairo_get_fill_rule;
	void function(cairo_t* cr, cairo_line_cap_t lineCap)cairo_set_line_cap;
	cairo_line_cap_t function(cairo_t* cr)cairo_get_line_cap;
	void function(cairo_t* cr, cairo_line_join_t lineJoin)cairo_set_line_join;
	cairo_line_join_t function(cairo_t* cr)cairo_get_line_join;
	void function(cairo_t* cr, double width)cairo_set_line_width;
	double function(cairo_t* cr)cairo_get_line_width;
	void function(cairo_t* cr, double limit)cairo_set_miter_limit;
	double function(cairo_t* cr)cairo_get_miter_limit;
	void function(cairo_t* cr, cairo_operator_t op)cairo_set_operator;
	cairo_operator_t function(cairo_t* cr)cairo_get_operator;
	void function(cairo_t* cr, double tolerance)cairo_set_tolerance;
	double function(cairo_t* cr)cairo_get_tolerance;
	void function(cairo_t* cr)cairo_clip;
	void function(cairo_t* cr)cairo_clip_preserve;
	void function(cairo_t* cr)cairo_reset_clip;
	void function(cairo_t* cr)cairo_fill;
	void function(cairo_t* cr)cairo_fill_preserve;
	void function(cairo_t* cr, double* x1, double* y1, double* x2, double* y2)cairo_fill_extents;
	cairo_bool_t function(cairo_t* cr, double x, double y)cairo_in_fill;
	void function(cairo_t* cr, cairo_pattern_t* pattern)cairo_mask;
	void function(cairo_t* cr, cairo_surface_t* surface, double surfaceX, double surfaceY)cairo_mask_surface;
	void function(cairo_t* cr)cairo_paint;
	void function(cairo_t* cr, double alpha)cairo_paint_with_alpha;
	void function(cairo_t* cr)cairo_stroke;
	void function(cairo_t* cr)cairo_stroke_preserve;
	void function(cairo_t* cr, double* x1, double* y1, double* x2, double* y2)cairo_stroke_extents;
	cairo_bool_t function(cairo_t* cr, double x, double y)cairo_in_stroke;
	void function(cairo_t* cr)cairo_copy_page;
	void function(cairo_t* cr)cairo_show_page;
	cairo_path_t* function(cairo_t* cr)cairo_copy_path;
	cairo_path_t* function(cairo_t* cr)cairo_copy_path_flat;
	void function(cairo_path_t* path)cairo_path_destroy;
	void function(cairo_t* cr, cairo_path_t* path)cairo_append_path;
	void function(cairo_t* cr, double* x, double* y)cairo_get_current_point;
	void function(cairo_t* cr)cairo_new_path;
	void function(cairo_t* cr)cairo_new_sub_path;
	void function(cairo_t* cr)cairo_close_path;
	void function(cairo_t* cr, double xc, double yc, double radius, double angle1, double angle2)cairo_arc;
	void function(cairo_t* cr, double xc, double yc, double radius, double angle1, double angle2)cairo_arc_negative;
	void function(cairo_t* cr, double x1, double y1, double x2, double y2, double x3, double y3)cairo_curve_to;
	void function(cairo_t* cr, double x, double y)cairo_line_to;
	void function(cairo_t* cr, double x, double y)cairo_move_to;
	void function(cairo_t* cr, double x, double y, double width, double height)cairo_rectangle;
	void function(cairo_t* cr, cairo_glyph_t* glyphs, int numGlyphs)cairo_glyph_path;
	void function(cairo_t* cr, char* utf8)cairo_text_path;
	void function(cairo_t* cr, double dx1, double dy1, double dx2, double dy2, double dx3, double dy3)cairo_rel_curve_to;
	void function(cairo_t* cr, double dx, double dy)cairo_rel_line_to;
	void function(cairo_t* cr, double dx, double dy)cairo_rel_move_to;
	void function(cairo_t* cr, double tx, double ty)cairo_translate;
	void function(cairo_t* cr, double sx, double sy)cairo_scale;
	void function(cairo_t* cr, double angle)cairo_rotate;
	void function(cairo_t* cr, cairo_matrix_t* matrix)cairo_transform;
	void function(cairo_t* cr, cairo_matrix_t* matrix)cairo_set_matrix;
	void function(cairo_t* cr, cairo_matrix_t* matrix)cairo_get_matrix;
	void function(cairo_t* cr)cairo_identity_matrix;
	void function(cairo_t* cr, double* x, double* y)cairo_user_to_device;
	void function(cairo_t* cr, double* dx, double* dy)cairo_user_to_device_distance;
	void function(cairo_t* cr, double* x, double* y)cairo_device_to_user;
	void function(cairo_t* cr, double* dx, double* dy)cairo_device_to_user_distance;
	void function(cairo_t* cr, char* family, cairo_font_slant_t slant, cairo_font_weight_t weight)cairo_select_font_face;
	void function(cairo_t* cr, double size)cairo_set_font_size;
	void function(cairo_t* cr, cairo_matrix_t* matrix)cairo_set_font_matrix;
	void function(cairo_t* cr, cairo_matrix_t* matrix)cairo_get_font_matrix;
	void function(cairo_t* cr, cairo_font_options_t* options)cairo_set_font_options;
	void function(cairo_t* cr, cairo_font_options_t* options)cairo_get_font_options;
	void function(cairo_t* cr, char* utf8)cairo_show_text;
	void function(cairo_t* cr, cairo_glyph_t* glyphs, int numGlyphs)cairo_show_glyphs;
	cairo_font_face_t* function(cairo_t* cr)cairo_get_font_face;
	void function(cairo_t* cr, cairo_font_extents_t* extents)cairo_font_extents;
	void function(cairo_t* cr, cairo_font_face_t* fontFace)cairo_set_font_face;
	void function(cairo_t* cr, cairo_scaled_font_t* scaledFont)cairo_set_scaled_font;
	void function(cairo_t* cr, char* utf8, cairo_text_extents_t* extents)cairo_text_extents;
	void function(cairo_t* cr, cairo_glyph_t* glyphs, int numGlyphs, cairo_text_extents_t* extents)cairo_glyph_extents;
	
	// cairo.Pattern
	
	void function(cairo_pattern_t* pattern, double offset, double red, double green, double blue)cairo_pattern_add_color_stop_rgb;
	void function(cairo_pattern_t* pattern, double offset, double red, double green, double blue, double alpha)cairo_pattern_add_color_stop_rgba;
	cairo_pattern_t* function(double red, double green, double blue)cairo_pattern_create_rgb;
	cairo_pattern_t* function(double red, double green, double blue, double alpha)cairo_pattern_create_rgba;
	cairo_pattern_t* function(cairo_surface_t* surface)cairo_pattern_create_for_surface;
	cairo_pattern_t* function(double x0, double y0, double x1, double y1)cairo_pattern_create_linear;
	cairo_pattern_t* function(double cx0, double cy0, double radius0, double cx1, double cy1, double radius1)cairo_pattern_create_radial;
	void function(cairo_pattern_t* pattern)cairo_pattern_destroy;
	cairo_pattern_t* function(cairo_pattern_t* pattern)cairo_pattern_reference;
	cairo_status_t function(cairo_pattern_t* pattern)cairo_pattern_status;
	void function(cairo_pattern_t* pattern, cairo_extend_t extend)cairo_pattern_set_extend;
	cairo_extend_t function(cairo_pattern_t* pattern)cairo_pattern_get_extend;
	void function(cairo_pattern_t* pattern, cairo_filter_t filter)cairo_pattern_set_filter;
	cairo_filter_t function(cairo_pattern_t* pattern)cairo_pattern_get_filter;
	void function(cairo_pattern_t* pattern, cairo_matrix_t* matrix)cairo_pattern_set_matrix;
	void function(cairo_pattern_t* pattern, cairo_matrix_t* matrix)cairo_pattern_get_matrix;
	cairo_pattern_type_t function(cairo_pattern_t* pattern)cairo_pattern_get_type;
	
	// cairo.FontFace
	
	cairo_font_face_t* function(cairo_font_face_t* fontFace)cairo_font_face_reference;
	void function(cairo_font_face_t* fontFace)cairo_font_face_destroy;
	cairo_status_t function(cairo_font_face_t* fontFace)cairo_font_face_status;
	void* function(cairo_font_face_t* fontFace, cairo_user_data_key_t* key)cairo_font_face_get_user_data;
	cairo_status_t function(cairo_font_face_t* fontFace, cairo_user_data_key_t* key, void* userData, cairo_destroy_func_t destroy)cairo_font_face_set_user_data;
	cairo_font_type_t function(cairo_font_face_t* fontFace)cairo_font_face_get_type;
	
	// cairo.ScaledFont
	
	cairo_scaled_font_t* function(cairo_font_face_t* fontFace, cairo_matrix_t* fontMatrix, cairo_matrix_t* ctm, cairo_font_options_t* options)cairo_scaled_font_create;
	cairo_scaled_font_t* function(cairo_scaled_font_t* scaledFont)cairo_scaled_font_reference;
	void function(cairo_scaled_font_t* scaledFont)cairo_scaled_font_destroy;
	cairo_status_t function(cairo_scaled_font_t* scaledFont)cairo_scaled_font_status;
	void function(cairo_scaled_font_t* scaledFont, cairo_font_extents_t* extents)cairo_scaled_font_extents;
	void function(cairo_scaled_font_t* scaledFont, char* utf8, cairo_text_extents_t* extents)cairo_scaled_font_text_extents;
	void function(cairo_scaled_font_t* scaledFont, cairo_glyph_t* glyphs, int numGlyphs, cairo_text_extents_t* extents)cairo_scaled_font_glyph_extents;
	cairo_font_face_t* function(cairo_scaled_font_t* scaledFont)cairo_scaled_font_get_font_face;
	void function(cairo_scaled_font_t* scaledFont, cairo_font_options_t* options)cairo_scaled_font_get_font_options;
	void function(cairo_scaled_font_t* scaledFont, cairo_matrix_t* fontMatrix)cairo_scaled_font_get_font_matrix;
	void function(cairo_scaled_font_t* scaledFont, cairo_matrix_t* ctm)cairo_scaled_font_get_ctm;
	cairo_font_type_t function(cairo_scaled_font_t* scaledFont)cairo_scaled_font_get_type;
	
	// cairo.FontOption
	
	cairo_font_options_t* function()cairo_font_options_create;
	cairo_font_options_t* function(cairo_font_options_t* original)cairo_font_options_copy;
	void function(cairo_font_options_t* options)cairo_font_options_destroy;
	cairo_status_t function(cairo_font_options_t* options)cairo_font_options_status;
	void function(cairo_font_options_t* options, cairo_font_options_t* other)cairo_font_options_merge;
	ulong function(cairo_font_options_t* options)cairo_font_options_hash;
	cairo_bool_t function(cairo_font_options_t* options, cairo_font_options_t* other)cairo_font_options_equal;
	void function(cairo_font_options_t* options, cairo_antialias_t antialias)cairo_font_options_set_antialias;
	cairo_antialias_t function(cairo_font_options_t* options)cairo_font_options_get_antialias;
	void function(cairo_font_options_t* options, cairo_subpixel_order_t subpixelOrder)cairo_font_options_set_subpixel_order;
	cairo_subpixel_order_t function(cairo_font_options_t* options)cairo_font_options_get_subpixel_order;
	void function(cairo_font_options_t* options, cairo_hint_style_t hintStyle)cairo_font_options_set_hint_style;
	cairo_hint_style_t function(cairo_font_options_t* options)cairo_font_options_get_hint_style;
	void function(cairo_font_options_t* options, cairo_hint_metrics_t hintMetrics)cairo_font_options_set_hint_metrics;
	cairo_hint_metrics_t function(cairo_font_options_t* options)cairo_font_options_get_hint_metrics;
	
	// cairo.Surface
	
	cairo_surface_t* function(cairo_surface_t* other, cairo_content_t content, int width, int height)cairo_surface_create_similar;
	void function(cairo_surface_t* surface)cairo_surface_destroy;
	void function(cairo_surface_t* surface)cairo_surface_finish;
	void function(cairo_surface_t* surface)cairo_surface_flush;
	void function(cairo_surface_t* surface, cairo_font_options_t* options)cairo_surface_get_font_options;
	cairo_content_t function(cairo_surface_t* surface)cairo_surface_get_content;
	cairo_status_t function(cairo_surface_t* surface, cairo_user_data_key_t* key, void* userData, cairo_destroy_func_t destroy)cairo_surface_set_user_data;
	void* function(cairo_surface_t* surface, cairo_user_data_key_t* key)cairo_surface_get_user_data;
	void function(cairo_surface_t* surface)cairo_surface_mark_dirty;
	void function(cairo_surface_t* surface, int x, int y, int width, int height)cairo_surface_mark_dirty_rectangle;
	cairo_surface_t* function(cairo_surface_t* surface)cairo_surface_reference;
	void function(cairo_surface_t* surface, double xOffset, double yOffset)cairo_surface_set_device_offset;
	void function(cairo_surface_t* surface, double* xOffset, double* yOffset)cairo_surface_get_device_offset;
	void function(cairo_surface_t* surface, double xPixelsPerInch, double yPixelsPerInch)cairo_surface_set_fallback_resolution;
	cairo_status_t function(cairo_surface_t* surface)cairo_surface_status;
	cairo_surface_type_t function(cairo_surface_t* surface)cairo_surface_get_type;
	cairo_surface_t* function(cairo_format_t format, int width, int height)cairo_image_surface_create;
	cairo_surface_t* function(uchar* data, cairo_format_t format, int width, int height, int stride)cairo_image_surface_create_for_data;
	uchar* function(cairo_surface_t* surface)cairo_image_surface_get_data;
	cairo_format_t function(cairo_surface_t* surface)cairo_image_surface_get_format;
	int function(cairo_surface_t* surface)cairo_image_surface_get_width;
	int function(cairo_surface_t* surface)cairo_image_surface_get_height;
	int function(cairo_surface_t* surface)cairo_image_surface_get_stride;
	
	// cairo.Matrix
	
	void function(cairo_matrix_t* matrix, double xx, double yx, double xy, double yy, double x0, double y0)cairo_matrix_init;
	void function(cairo_matrix_t* matrix)cairo_matrix_init_identity;
	void function(cairo_matrix_t* matrix, double tx, double ty)cairo_matrix_init_translate;
	void function(cairo_matrix_t* matrix, double sx, double sy)cairo_matrix_init_scale;
	void function(cairo_matrix_t* matrix, double radians)cairo_matrix_init_rotate;
	void function(cairo_matrix_t* matrix, double tx, double ty)cairo_matrix_translate;
	void function(cairo_matrix_t* matrix, double sx, double sy)cairo_matrix_scale;
	void function(cairo_matrix_t* matrix, double radians)cairo_matrix_rotate;
	cairo_status_t function(cairo_matrix_t* matrix)cairo_matrix_invert;
	void function(cairo_matrix_t* result, cairo_matrix_t* a, cairo_matrix_t* b)cairo_matrix_multiply;
	void function(cairo_matrix_t* matrix, double* dx, double* dy)cairo_matrix_transform_distance;
	void function(cairo_matrix_t* matrix, double* x, double* y)cairo_matrix_transform_point;
	
	// cairo.Status
	
	char* function(cairo_status_t status)cairo_status_to_string;
	void function()cairo_debug_reset_static_data;
	
	// cairo.Version
	
	int function()cairo_version;
	char* function()cairo_version_string;
	
	// cairo.
}

/******************************************************************************

******************************************************************************/

Symbol[] cairoLinks = 
[

	{ "cairo_create",  cast(void**)& cairo_create},
	{ "cairo_reference",  cast(void**)& cairo_reference},
	{ "cairo_destroy",  cast(void**)& cairo_destroy},
	{ "cairo_status",  cast(void**)& cairo_status},
	{ "cairo_save",  cast(void**)& cairo_save},
	{ "cairo_restore",  cast(void**)& cairo_restore},
	{ "cairo_get_target",  cast(void**)& cairo_get_target},
	{ "cairo_push_group",  cast(void**)& cairo_push_group},
	{ "cairo_push_group_with_content",  cast(void**)& cairo_push_group_with_content},
	{ "cairo_pop_group",  cast(void**)& cairo_pop_group},
	{ "cairo_pop_group_to_source",  cast(void**)& cairo_pop_group_to_source},
	{ "cairo_get_group_target",  cast(void**)& cairo_get_group_target},
	{ "cairo_set_source_rgb",  cast(void**)& cairo_set_source_rgb},
	{ "cairo_set_source_rgba",  cast(void**)& cairo_set_source_rgba},
	{ "cairo_set_source",  cast(void**)& cairo_set_source},
	{ "cairo_set_source_surface",  cast(void**)& cairo_set_source_surface},
	{ "cairo_get_source",  cast(void**)& cairo_get_source},
	{ "cairo_set_antialias",  cast(void**)& cairo_set_antialias},
	{ "cairo_get_antialias",  cast(void**)& cairo_get_antialias},
	{ "cairo_set_dash",  cast(void**)& cairo_set_dash},
	{ "cairo_set_fill_rule",  cast(void**)& cairo_set_fill_rule},
	{ "cairo_get_fill_rule",  cast(void**)& cairo_get_fill_rule},
	{ "cairo_set_line_cap",  cast(void**)& cairo_set_line_cap},
	{ "cairo_get_line_cap",  cast(void**)& cairo_get_line_cap},
	{ "cairo_set_line_join",  cast(void**)& cairo_set_line_join},
	{ "cairo_get_line_join",  cast(void**)& cairo_get_line_join},
	{ "cairo_set_line_width",  cast(void**)& cairo_set_line_width},
	{ "cairo_get_line_width",  cast(void**)& cairo_get_line_width},
	{ "cairo_set_miter_limit",  cast(void**)& cairo_set_miter_limit},
	{ "cairo_get_miter_limit",  cast(void**)& cairo_get_miter_limit},
	{ "cairo_set_operator",  cast(void**)& cairo_set_operator},
	{ "cairo_get_operator",  cast(void**)& cairo_get_operator},
	{ "cairo_set_tolerance",  cast(void**)& cairo_set_tolerance},
	{ "cairo_get_tolerance",  cast(void**)& cairo_get_tolerance},
	{ "cairo_clip",  cast(void**)& cairo_clip},
	{ "cairo_clip_preserve",  cast(void**)& cairo_clip_preserve},
	{ "cairo_reset_clip",  cast(void**)& cairo_reset_clip},
	{ "cairo_fill",  cast(void**)& cairo_fill},
	{ "cairo_fill_preserve",  cast(void**)& cairo_fill_preserve},
	{ "cairo_fill_extents",  cast(void**)& cairo_fill_extents},
	{ "cairo_in_fill",  cast(void**)& cairo_in_fill},
	{ "cairo_mask",  cast(void**)& cairo_mask},
	{ "cairo_mask_surface",  cast(void**)& cairo_mask_surface},
	{ "cairo_paint",  cast(void**)& cairo_paint},
	{ "cairo_paint_with_alpha",  cast(void**)& cairo_paint_with_alpha},
	{ "cairo_stroke",  cast(void**)& cairo_stroke},
	{ "cairo_stroke_preserve",  cast(void**)& cairo_stroke_preserve},
	{ "cairo_stroke_extents",  cast(void**)& cairo_stroke_extents},
	{ "cairo_in_stroke",  cast(void**)& cairo_in_stroke},
	{ "cairo_copy_page",  cast(void**)& cairo_copy_page},
	{ "cairo_show_page",  cast(void**)& cairo_show_page},
	{ "cairo_copy_path",  cast(void**)& cairo_copy_path},
	{ "cairo_copy_path_flat",  cast(void**)& cairo_copy_path_flat},
	{ "cairo_path_destroy",  cast(void**)& cairo_path_destroy},
	{ "cairo_append_path",  cast(void**)& cairo_append_path},
	{ "cairo_get_current_point",  cast(void**)& cairo_get_current_point},
	{ "cairo_new_path",  cast(void**)& cairo_new_path},
	{ "cairo_new_sub_path",  cast(void**)& cairo_new_sub_path},
	{ "cairo_close_path",  cast(void**)& cairo_close_path},
	{ "cairo_arc",  cast(void**)& cairo_arc},
	{ "cairo_arc_negative",  cast(void**)& cairo_arc_negative},
	{ "cairo_curve_to",  cast(void**)& cairo_curve_to},
	{ "cairo_line_to",  cast(void**)& cairo_line_to},
	{ "cairo_move_to",  cast(void**)& cairo_move_to},
	{ "cairo_rectangle",  cast(void**)& cairo_rectangle},
	{ "cairo_glyph_path",  cast(void**)& cairo_glyph_path},
	{ "cairo_text_path",  cast(void**)& cairo_text_path},
	{ "cairo_rel_curve_to",  cast(void**)& cairo_rel_curve_to},
	{ "cairo_rel_line_to",  cast(void**)& cairo_rel_line_to},
	{ "cairo_rel_move_to",  cast(void**)& cairo_rel_move_to},
	{ "cairo_translate",  cast(void**)& cairo_translate},
	{ "cairo_scale",  cast(void**)& cairo_scale},
	{ "cairo_rotate",  cast(void**)& cairo_rotate},
	{ "cairo_transform",  cast(void**)& cairo_transform},
	{ "cairo_set_matrix",  cast(void**)& cairo_set_matrix},
	{ "cairo_get_matrix",  cast(void**)& cairo_get_matrix},
	{ "cairo_identity_matrix",  cast(void**)& cairo_identity_matrix},
	{ "cairo_user_to_device",  cast(void**)& cairo_user_to_device},
	{ "cairo_user_to_device_distance",  cast(void**)& cairo_user_to_device_distance},
	{ "cairo_device_to_user",  cast(void**)& cairo_device_to_user},
	{ "cairo_device_to_user_distance",  cast(void**)& cairo_device_to_user_distance},
	{ "cairo_select_font_face",  cast(void**)& cairo_select_font_face},
	{ "cairo_set_font_size",  cast(void**)& cairo_set_font_size},
	{ "cairo_set_font_matrix",  cast(void**)& cairo_set_font_matrix},
	{ "cairo_get_font_matrix",  cast(void**)& cairo_get_font_matrix},
	{ "cairo_set_font_options",  cast(void**)& cairo_set_font_options},
	{ "cairo_get_font_options",  cast(void**)& cairo_get_font_options},
	{ "cairo_show_text",  cast(void**)& cairo_show_text},
	{ "cairo_show_glyphs",  cast(void**)& cairo_show_glyphs},
	{ "cairo_get_font_face",  cast(void**)& cairo_get_font_face},
	{ "cairo_font_extents",  cast(void**)& cairo_font_extents},
	{ "cairo_set_font_face",  cast(void**)& cairo_set_font_face},
	{ "cairo_set_scaled_font",  cast(void**)& cairo_set_scaled_font},
	{ "cairo_text_extents",  cast(void**)& cairo_text_extents},
	{ "cairo_glyph_extents",  cast(void**)& cairo_glyph_extents},
	{ "cairo_pattern_add_color_stop_rgb",  cast(void**)& cairo_pattern_add_color_stop_rgb},
	{ "cairo_pattern_add_color_stop_rgba",  cast(void**)& cairo_pattern_add_color_stop_rgba},
	{ "cairo_pattern_create_rgb",  cast(void**)& cairo_pattern_create_rgb},
	{ "cairo_pattern_create_rgba",  cast(void**)& cairo_pattern_create_rgba},
	{ "cairo_pattern_create_for_surface",  cast(void**)& cairo_pattern_create_for_surface},
	{ "cairo_pattern_create_linear",  cast(void**)& cairo_pattern_create_linear},
	{ "cairo_pattern_create_radial",  cast(void**)& cairo_pattern_create_radial},
	{ "cairo_pattern_destroy",  cast(void**)& cairo_pattern_destroy},
	{ "cairo_pattern_reference",  cast(void**)& cairo_pattern_reference},
	{ "cairo_pattern_status",  cast(void**)& cairo_pattern_status},
	{ "cairo_pattern_set_extend",  cast(void**)& cairo_pattern_set_extend},
	{ "cairo_pattern_get_extend",  cast(void**)& cairo_pattern_get_extend},
	{ "cairo_pattern_set_filter",  cast(void**)& cairo_pattern_set_filter},
	{ "cairo_pattern_get_filter",  cast(void**)& cairo_pattern_get_filter},
	{ "cairo_pattern_set_matrix",  cast(void**)& cairo_pattern_set_matrix},
	{ "cairo_pattern_get_matrix",  cast(void**)& cairo_pattern_get_matrix},
	{ "cairo_pattern_get_type",  cast(void**)& cairo_pattern_get_type},
	{ "cairo_font_face_reference",  cast(void**)& cairo_font_face_reference},
	{ "cairo_font_face_destroy",  cast(void**)& cairo_font_face_destroy},
	{ "cairo_font_face_status",  cast(void**)& cairo_font_face_status},
	{ "cairo_font_face_get_user_data",  cast(void**)& cairo_font_face_get_user_data},
	{ "cairo_font_face_set_user_data",  cast(void**)& cairo_font_face_set_user_data},
	{ "cairo_font_face_get_type",  cast(void**)& cairo_font_face_get_type},
	{ "cairo_scaled_font_create",  cast(void**)& cairo_scaled_font_create},
	{ "cairo_scaled_font_reference",  cast(void**)& cairo_scaled_font_reference},
	{ "cairo_scaled_font_destroy",  cast(void**)& cairo_scaled_font_destroy},
	{ "cairo_scaled_font_status",  cast(void**)& cairo_scaled_font_status},
	{ "cairo_scaled_font_extents",  cast(void**)& cairo_scaled_font_extents},
	{ "cairo_scaled_font_text_extents",  cast(void**)& cairo_scaled_font_text_extents},
	{ "cairo_scaled_font_glyph_extents",  cast(void**)& cairo_scaled_font_glyph_extents},
	{ "cairo_scaled_font_get_font_face",  cast(void**)& cairo_scaled_font_get_font_face},
	{ "cairo_scaled_font_get_font_options",  cast(void**)& cairo_scaled_font_get_font_options},
	{ "cairo_scaled_font_get_font_matrix",  cast(void**)& cairo_scaled_font_get_font_matrix},
	{ "cairo_scaled_font_get_ctm",  cast(void**)& cairo_scaled_font_get_ctm},
	{ "cairo_scaled_font_get_type",  cast(void**)& cairo_scaled_font_get_type},
	{ "cairo_font_options_create",  cast(void**)& cairo_font_options_create},
	{ "cairo_font_options_copy",  cast(void**)& cairo_font_options_copy},
	{ "cairo_font_options_destroy",  cast(void**)& cairo_font_options_destroy},
	{ "cairo_font_options_status",  cast(void**)& cairo_font_options_status},
	{ "cairo_font_options_merge",  cast(void**)& cairo_font_options_merge},
	{ "cairo_font_options_hash",  cast(void**)& cairo_font_options_hash},
	{ "cairo_font_options_equal",  cast(void**)& cairo_font_options_equal},
	{ "cairo_font_options_set_antialias",  cast(void**)& cairo_font_options_set_antialias},
	{ "cairo_font_options_get_antialias",  cast(void**)& cairo_font_options_get_antialias},
	{ "cairo_font_options_set_subpixel_order",  cast(void**)& cairo_font_options_set_subpixel_order},
	{ "cairo_font_options_get_subpixel_order",  cast(void**)& cairo_font_options_get_subpixel_order},
	{ "cairo_font_options_set_hint_style",  cast(void**)& cairo_font_options_set_hint_style},
	{ "cairo_font_options_get_hint_style",  cast(void**)& cairo_font_options_get_hint_style},
	{ "cairo_font_options_set_hint_metrics",  cast(void**)& cairo_font_options_set_hint_metrics},
	{ "cairo_font_options_get_hint_metrics",  cast(void**)& cairo_font_options_get_hint_metrics},
	{ "cairo_surface_create_similar",  cast(void**)& cairo_surface_create_similar},
	{ "cairo_surface_destroy",  cast(void**)& cairo_surface_destroy},
	{ "cairo_surface_finish",  cast(void**)& cairo_surface_finish},
	{ "cairo_surface_flush",  cast(void**)& cairo_surface_flush},
	{ "cairo_surface_get_font_options",  cast(void**)& cairo_surface_get_font_options},
	{ "cairo_surface_get_content",  cast(void**)& cairo_surface_get_content},
	{ "cairo_surface_set_user_data",  cast(void**)& cairo_surface_set_user_data},
	{ "cairo_surface_get_user_data",  cast(void**)& cairo_surface_get_user_data},
	{ "cairo_surface_mark_dirty",  cast(void**)& cairo_surface_mark_dirty},
	{ "cairo_surface_mark_dirty_rectangle",  cast(void**)& cairo_surface_mark_dirty_rectangle},
	{ "cairo_surface_reference",  cast(void**)& cairo_surface_reference},
	{ "cairo_surface_set_device_offset",  cast(void**)& cairo_surface_set_device_offset},
	{ "cairo_surface_get_device_offset",  cast(void**)& cairo_surface_get_device_offset},
	{ "cairo_surface_set_fallback_resolution",  cast(void**)& cairo_surface_set_fallback_resolution},
	{ "cairo_surface_status",  cast(void**)& cairo_surface_status},
	{ "cairo_surface_get_type",  cast(void**)& cairo_surface_get_type},
	{ "cairo_image_surface_create",  cast(void**)& cairo_image_surface_create},
	{ "cairo_image_surface_create_for_data",  cast(void**)& cairo_image_surface_create_for_data},
	{ "cairo_image_surface_get_data",  cast(void**)& cairo_image_surface_get_data},
	{ "cairo_image_surface_get_format",  cast(void**)& cairo_image_surface_get_format},
	{ "cairo_image_surface_get_width",  cast(void**)& cairo_image_surface_get_width},
	{ "cairo_image_surface_get_height",  cast(void**)& cairo_image_surface_get_height},
	{ "cairo_image_surface_get_stride",  cast(void**)& cairo_image_surface_get_stride},
	{ "cairo_matrix_init",  cast(void**)& cairo_matrix_init},
	{ "cairo_matrix_init_identity",  cast(void**)& cairo_matrix_init_identity},
	{ "cairo_matrix_init_translate",  cast(void**)& cairo_matrix_init_translate},
	{ "cairo_matrix_init_scale",  cast(void**)& cairo_matrix_init_scale},
	{ "cairo_matrix_init_rotate",  cast(void**)& cairo_matrix_init_rotate},
	{ "cairo_matrix_translate",  cast(void**)& cairo_matrix_translate},
	{ "cairo_matrix_scale",  cast(void**)& cairo_matrix_scale},
	{ "cairo_matrix_rotate",  cast(void**)& cairo_matrix_rotate},
	{ "cairo_matrix_invert",  cast(void**)& cairo_matrix_invert},
	{ "cairo_matrix_multiply",  cast(void**)& cairo_matrix_multiply},
	{ "cairo_matrix_transform_distance",  cast(void**)& cairo_matrix_transform_distance},
	{ "cairo_matrix_transform_point",  cast(void**)& cairo_matrix_transform_point},
	{ "cairo_status_to_string",  cast(void**)& cairo_status_to_string},
	{ "cairo_debug_reset_static_data",  cast(void**)& cairo_debug_reset_static_data},
	{ "cairo_version",  cast(void**)& cairo_version},
	{ "cairo_version_string",  cast(void**)& cairo_version_string},

];