1 /* 2 * This file is part of gtkD. 3 * 4 * gtkD is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU Lesser General Public License 6 * as published by the Free Software Foundation; either version 3 7 * of the License, or (at your option) any later version, with 8 * some exceptions, please read the COPYING file. 9 * 10 * gtkD is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU Lesser General Public License for more details. 14 * 15 * You should have received a copy of the GNU Lesser General Public License 16 * along with gtkD; if not, write to the Free Software 17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA 18 */ 19 20 // generated automatically - do not change 21 // find conversion definition on APILookup.txt 22 // implement new conversion alities on the wrap.utils pakage 23 24 25 module cairo.c.functions; 26 27 private import std.stdio; 28 private import cairo.c.types; 29 30 version (Windows) 31 static immutable LIBRARY_CAIRO = ["libcairo-2.dll"]; 32 else version (OSX) 33 static immutable LIBRARY_CAIRO = ["libcairo.dylib"]; 34 else 35 static immutable LIBRARY_CAIRO = ["libcairo.so.2"]; 36 37 __gshared extern(C) 38 { 39 // cairo.Context 40 41 cairo_t* cairo_create(cairo_surface_t* target); 42 cairo_t* cairo_reference(cairo_t* cr); 43 void cairo_destroy(cairo_t* cr); 44 cairo_status_t cairo_status(cairo_t* cr); 45 void cairo_save(cairo_t* cr); 46 void cairo_restore(cairo_t* cr); 47 cairo_surface_t* cairo_get_target(cairo_t* cr); 48 void cairo_push_group(cairo_t* cr); 49 void cairo_push_group_with_content(cairo_t* cr, cairo_content_t content); 50 cairo_pattern_t* cairo_pop_group(cairo_t* cr); 51 void cairo_pop_group_to_source(cairo_t* cr); 52 cairo_surface_t* cairo_get_group_target(cairo_t* cr); 53 void cairo_set_source_rgb(cairo_t* cr, double red, double green, double blue); 54 void cairo_set_source_rgba(cairo_t* cr, double red, double green, double blue, double alpha); 55 void cairo_set_source(cairo_t* cr, cairo_pattern_t* source); 56 void cairo_set_source_surface(cairo_t* cr, cairo_surface_t* surface, double x, double y); 57 cairo_pattern_t* cairo_get_source(cairo_t* cr); 58 void cairo_set_antialias(cairo_t* cr, cairo_antialias_t antialias); 59 cairo_antialias_t cairo_get_antialias(cairo_t* cr); 60 void cairo_set_dash(cairo_t* cr, double* dashes, int numDashes, double offset); 61 int cairo_get_dash_count(cairo_t* cr); 62 void cairo_get_dash(cairo_t* cr, double* dashes, double* offset); 63 void cairo_set_fill_rule(cairo_t* cr, cairo_fill_rule_t fillRule); 64 cairo_fill_rule_t cairo_get_fill_rule(cairo_t* cr); 65 void cairo_set_line_cap(cairo_t* cr, cairo_line_cap_t lineCap); 66 cairo_line_cap_t cairo_get_line_cap(cairo_t* cr); 67 void cairo_set_line_join(cairo_t* cr, cairo_line_join_t lineJoin); 68 cairo_line_join_t cairo_get_line_join(cairo_t* cr); 69 void cairo_set_line_width(cairo_t* cr, double width); 70 double cairo_get_line_width(cairo_t* cr); 71 void cairo_set_miter_limit(cairo_t* cr, double limit); 72 double cairo_get_miter_limit(cairo_t* cr); 73 void cairo_set_operator(cairo_t* cr, cairo_operator_t op); 74 cairo_operator_t cairo_get_operator(cairo_t* cr); 75 void cairo_set_tolerance(cairo_t* cr, double tolerance); 76 double cairo_get_tolerance(cairo_t* cr); 77 void cairo_clip(cairo_t* cr); 78 void cairo_clip_preserve(cairo_t* cr); 79 void cairo_clip_extents(cairo_t* cr, double* x1, double* y1, double* x2, double* y2); 80 cairo_bool_t cairo_in_clip(cairo_t* cr, double x, double y); 81 void cairo_reset_clip(cairo_t* cr); 82 void cairo_rectangle_list_destroy(cairo_rectangle_list_t* rectangleList); 83 cairo_rectangle_list_t* cairo_copy_clip_rectangle_list(cairo_t* cr); 84 void cairo_fill(cairo_t* cr); 85 void cairo_fill_preserve(cairo_t* cr); 86 void cairo_fill_extents(cairo_t* cr, double* x1, double* y1, double* x2, double* y2); 87 cairo_bool_t cairo_in_fill(cairo_t* cr, double x, double y); 88 void cairo_mask(cairo_t* cr, cairo_pattern_t* pattern); 89 void cairo_mask_surface(cairo_t* cr, cairo_surface_t* surface, double surfaceX, double surfaceY); 90 void cairo_paint(cairo_t* cr); 91 void cairo_paint_with_alpha(cairo_t* cr, double alpha); 92 void cairo_stroke(cairo_t* cr); 93 void cairo_stroke_preserve(cairo_t* cr); 94 void cairo_stroke_extents(cairo_t* cr, double* x1, double* y1, double* x2, double* y2); 95 cairo_bool_t cairo_in_stroke(cairo_t* cr, double x, double y); 96 void cairo_copy_page(cairo_t* cr); 97 void cairo_show_page(cairo_t* cr); 98 uint cairo_get_reference_count(cairo_t* cr); 99 cairo_status_t cairo_set_user_data(cairo_t* cr, cairo_user_data_key_t* key, void* userData, cairo_destroy_func_t destroy); 100 void* cairo_get_user_data(cairo_t* cr, cairo_user_data_key_t* key); 101 cairo_path_t* cairo_copy_path(cairo_t* cr); 102 cairo_path_t* cairo_copy_path_flat(cairo_t* cr); 103 void cairo_path_destroy(cairo_path_t* path); 104 void cairo_append_path(cairo_t* cr, cairo_path_t* path); 105 cairo_bool_t cairo_has_current_point(cairo_t* cr); 106 void cairo_get_current_point(cairo_t* cr, double* x, double* y); 107 void cairo_new_path(cairo_t* cr); 108 void cairo_new_sub_path(cairo_t* cr); 109 void cairo_close_path(cairo_t* cr); 110 void cairo_arc(cairo_t* cr, double xc, double yc, double radius, double angle1, double angle2); 111 void cairo_arc_negative(cairo_t* cr, double xc, double yc, double radius, double angle1, double angle2); 112 void cairo_curve_to(cairo_t* cr, double x1, double y1, double x2, double y2, double x3, double y3); 113 void cairo_line_to(cairo_t* cr, double x, double y); 114 void cairo_move_to(cairo_t* cr, double x, double y); 115 void cairo_rectangle(cairo_t* cr, double x, double y, double width, double height); 116 void cairo_glyph_path(cairo_t* cr, cairo_glyph_t* glyphs, int numGlyphs); 117 void cairo_text_path(cairo_t* cr, char* utf8); 118 void cairo_rel_curve_to(cairo_t* cr, double dx1, double dy1, double dx2, double dy2, double dx3, double dy3); 119 void cairo_rel_line_to(cairo_t* cr, double dx, double dy); 120 void cairo_rel_move_to(cairo_t* cr, double dx, double dy); 121 void cairo_path_extents(cairo_t* cr, double* x1, double* y1, double* x2, double* y2); 122 void cairo_translate(cairo_t* cr, double tx, double ty); 123 void cairo_scale(cairo_t* cr, double sx, double sy); 124 void cairo_rotate(cairo_t* cr, double angle); 125 void cairo_transform(cairo_t* cr, cairo_matrix_t* matrix); 126 void cairo_set_matrix(cairo_t* cr, cairo_matrix_t* matrix); 127 void cairo_get_matrix(cairo_t* cr, cairo_matrix_t* matrix); 128 void cairo_identity_matrix(cairo_t* cr); 129 void cairo_user_to_device(cairo_t* cr, double* x, double* y); 130 void cairo_user_to_device_distance(cairo_t* cr, double* dx, double* dy); 131 void cairo_device_to_user(cairo_t* cr, double* x, double* y); 132 void cairo_device_to_user_distance(cairo_t* cr, double* dx, double* dy); 133 void cairo_select_font_face(cairo_t* cr, char* family, cairo_font_slant_t slant, cairo_font_weight_t weight); 134 void cairo_set_font_size(cairo_t* cr, double size); 135 void cairo_set_font_matrix(cairo_t* cr, cairo_matrix_t* matrix); 136 void cairo_get_font_matrix(cairo_t* cr, cairo_matrix_t* matrix); 137 void cairo_set_font_options(cairo_t* cr, cairo_font_options_t* options); 138 void cairo_get_font_options(cairo_t* cr, cairo_font_options_t* options); 139 void cairo_set_font_face(cairo_t* cr, cairo_font_face_t* fontFace); 140 cairo_font_face_t* cairo_get_font_face(cairo_t* cr); 141 void cairo_set_scaled_font(cairo_t* cr, cairo_scaled_font_t* scaledFont); 142 cairo_scaled_font_t* cairo_get_scaled_font(cairo_t* cr); 143 void cairo_show_text(cairo_t* cr, char* utf8); 144 void cairo_show_glyphs(cairo_t* cr, cairo_glyph_t* glyphs, int numGlyphs); 145 void cairo_show_text_glyphs(cairo_t* cr, char* utf8, int utf8_Len, cairo_glyph_t* glyphs, int numGlyphs, cairo_text_cluster_t* clusters, int numClusters, cairo_text_cluster_flags_t clusterFlags); 146 void cairo_font_extents(cairo_t* cr, cairo_font_extents_t* extents); 147 void cairo_text_extents(cairo_t* cr, char* utf8, cairo_text_extents_t* extents); 148 void cairo_glyph_extents(cairo_t* cr, cairo_glyph_t* glyphs, int numGlyphs, cairo_text_extents_t* extents); 149 cairo_font_face_t* cairo_toy_font_face_create(char* family, cairo_font_slant_t slant, cairo_font_weight_t weight); 150 char* cairo_toy_font_face_get_family(cairo_font_face_t* fontFace); 151 cairo_font_slant_t cairo_toy_font_face_get_slant(cairo_font_face_t* fontFace); 152 cairo_font_weight_t cairo_toy_font_face_get_weight(cairo_font_face_t* fontFace); 153 cairo_glyph_t* cairo_glyph_allocate(int numGlyphs); 154 void cairo_glyph_free(cairo_glyph_t* glyphs); 155 cairo_text_cluster_t* cairo_text_cluster_allocate(int numClusters); 156 void cairo_text_cluster_free(cairo_text_cluster_t* clusters); 157 158 // cairo.Pattern 159 160 void cairo_pattern_add_color_stop_rgb(cairo_pattern_t* pattern, double offset, double red, double green, double blue); 161 void cairo_pattern_add_color_stop_rgba(cairo_pattern_t* pattern, double offset, double red, double green, double blue, double alpha); 162 cairo_status_t cairo_pattern_get_color_stop_count(cairo_pattern_t* pattern, int* count); 163 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); 164 cairo_pattern_t* cairo_pattern_create_rgb(double red, double green, double blue); 165 cairo_pattern_t* cairo_pattern_create_rgba(double red, double green, double blue, double alpha); 166 cairo_status_t cairo_pattern_get_rgba(cairo_pattern_t* pattern, double* red, double* green, double* blue, double* alpha); 167 cairo_pattern_t* cairo_pattern_create_for_surface(cairo_surface_t* surface); 168 cairo_status_t cairo_pattern_get_surface(cairo_pattern_t* pattern, cairo_surface_t** surface); 169 cairo_pattern_t* cairo_pattern_create_linear(double x0, double y0, double x1, double y1); 170 cairo_status_t cairo_pattern_get_linear_points(cairo_pattern_t* pattern, double* x0, double* y0, double* x1, double* y1); 171 cairo_pattern_t* cairo_pattern_create_radial(double cx0, double cy0, double radius0, double cx1, double cy1, double radius1); 172 cairo_status_t cairo_pattern_get_radial_circles(cairo_pattern_t* pattern, double* x0, double* y0, double* r0, double* x1, double* y1, double* r1); 173 cairo_pattern_t* cairo_pattern_create_mesh(); 174 cairo_pattern_t* cairo_pattern_reference(cairo_pattern_t* pattern); 175 void cairo_pattern_destroy(cairo_pattern_t* pattern); 176 cairo_status_t cairo_pattern_status(cairo_pattern_t* pattern); 177 void cairo_pattern_set_extend(cairo_pattern_t* pattern, cairo_extend_t extend); 178 cairo_extend_t cairo_pattern_get_extend(cairo_pattern_t* pattern); 179 void cairo_pattern_set_filter(cairo_pattern_t* pattern, cairo_filter_t filter); 180 cairo_filter_t cairo_pattern_get_filter(cairo_pattern_t* pattern); 181 void cairo_pattern_set_matrix(cairo_pattern_t* pattern, cairo_matrix_t* matrix); 182 void cairo_pattern_get_matrix(cairo_pattern_t* pattern, cairo_matrix_t* matrix); 183 cairo_pattern_type_t cairo_pattern_get_type(cairo_pattern_t* pattern); 184 uint cairo_pattern_get_reference_count(cairo_pattern_t* pattern); 185 cairo_status_t cairo_pattern_set_user_data(cairo_pattern_t* pattern, cairo_user_data_key_t* key, void* userData, cairo_destroy_func_t destroy); 186 void* cairo_pattern_get_user_data(cairo_pattern_t* pattern, cairo_user_data_key_t* key); 187 188 // cairo.MeshPattern 189 190 void cairo_mesh_pattern_begin_patch(cairo_pattern_t* pattern); 191 void cairo_mesh_pattern_end_patch(cairo_pattern_t* pattern); 192 void cairo_mesh_pattern_move_to(cairo_pattern_t* pattern, double x, double y); 193 void cairo_mesh_pattern_line_to(cairo_pattern_t* pattern, double x, double y); 194 void cairo_mesh_pattern_curve_to(cairo_pattern_t* pattern, double x1, double y1, double x2, double y2, double x3, double y3); 195 void cairo_mesh_pattern_set_control_point(cairo_pattern_t* pattern, uint pointNum, double x, double y); 196 void cairo_mesh_pattern_set_corner_color_rgb(cairo_pattern_t* pattern, uint cornerNum, double red, double green, double blue); 197 void cairo_mesh_pattern_set_corner_color_rgba(cairo_pattern_t* pattern, uint cornerNum, double red, double green, double blue, double alpha); 198 cairo_status_t cairo_mesh_pattern_get_patch_count(cairo_pattern_t* pattern, uint* count); 199 cairo_path_t* cairo_mesh_pattern_get_path(cairo_pattern_t* pattern, uint patchNum); 200 cairo_status_t cairo_mesh_pattern_get_control_point(cairo_pattern_t* pattern, uint patchNum, uint pointNum, double* x, double* y); 201 cairo_status_t cairo_mesh_pattern_get_corner_color_rgba(cairo_pattern_t* pattern, uint patchNum, uint cornerNum, double* red, double* green, double* blue, double* alpha); 202 203 // cairo.Region 204 205 cairo_region_t* cairo_region_create(); 206 cairo_region_t* cairo_region_create_rectangle(cairo_rectangle_int_t* rectangle); 207 cairo_region_t* cairo_region_create_rectangles(cairo_rectangle_int_t* rects, int count); 208 cairo_region_t* cairo_region_copy(cairo_region_t* original); 209 cairo_region_t* cairo_region_reference(cairo_region_t* region); 210 void cairo_region_destroy(cairo_region_t* region); 211 cairo_status_t cairo_region_status(cairo_region_t* region); 212 void cairo_region_get_extents(cairo_region_t* region, cairo_rectangle_int_t* extents); 213 int cairo_region_num_rectangles(cairo_region_t* region); 214 void cairo_region_get_rectangle(cairo_region_t* region, int nth, cairo_rectangle_int_t* rectangle); 215 cairo_bool_t cairo_region_is_empty(cairo_region_t* region); 216 cairo_bool_t cairo_region_contains_point(cairo_region_t* region, int x, int y); 217 cairo_region_overlap_t cairo_region_contains_rectangle(cairo_region_t* region, cairo_rectangle_int_t* rectangle); 218 cairo_bool_t cairo_region_equal(cairo_region_t* a, cairo_region_t* b); 219 void cairo_region_translate(cairo_region_t* region, int dx, int dy); 220 cairo_status_t cairo_region_intersect(cairo_region_t* dst, cairo_region_t* other); 221 cairo_status_t cairo_region_intersect_rectangle(cairo_region_t* dst, cairo_rectangle_int_t* rectangle); 222 cairo_status_t cairo_region_subtract(cairo_region_t* dst, cairo_region_t* other); 223 cairo_status_t cairo_region_subtract_rectangle(cairo_region_t* dst, cairo_rectangle_int_t* rectangle); 224 cairo_status_t cairo_region_union(cairo_region_t* dst, cairo_region_t* other); 225 cairo_status_t cairo_region_union_rectangle(cairo_region_t* dst, cairo_rectangle_int_t* rectangle); 226 cairo_status_t cairo_region_xor(cairo_region_t* dst, cairo_region_t* other); 227 cairo_status_t cairo_region_xor_rectangle(cairo_region_t* dst, cairo_rectangle_int_t* rectangle); 228 229 // cairo.RasterSource 230 231 cairo_pattern_t* cairo_pattern_create_raster_source(void* userData, cairo_content_t content, int width, int height); 232 void cairo_raster_source_pattern_set_callback_data(cairo_pattern_t* pattern, void* data); 233 void* cairo_raster_source_pattern_get_callback_data(cairo_pattern_t* pattern); 234 void cairo_raster_source_pattern_set_acquire(cairo_pattern_t* pattern, cairo_raster_source_acquire_func_t acquire, cairo_raster_source_release_func_t release); 235 void cairo_raster_source_pattern_get_acquire(cairo_pattern_t* pattern, cairo_raster_source_acquire_func_t* acquire, cairo_raster_source_release_func_t* release); 236 void cairo_raster_source_pattern_set_snapshot(cairo_pattern_t* pattern, cairo_raster_source_snapshot_func_t snapshot); 237 cairo_raster_source_snapshot_func_t cairo_raster_source_pattern_get_snapshot(cairo_pattern_t* pattern); 238 void cairo_raster_source_pattern_set_copy(cairo_pattern_t* pattern, cairo_raster_source_copy_func_t copy); 239 cairo_raster_source_copy_func_t cairo_raster_source_pattern_get_copy(cairo_pattern_t* pattern); 240 void cairo_raster_source_pattern_set_finish(cairo_pattern_t* pattern, cairo_raster_source_finish_func_t finish); 241 cairo_raster_source_finish_func_t cairo_raster_source_pattern_get_finish(cairo_pattern_t* pattern); 242 243 // cairo.FontFace 244 245 cairo_font_face_t* cairo_font_face_reference(cairo_font_face_t* fontFace); 246 void cairo_font_face_destroy(cairo_font_face_t* fontFace); 247 cairo_status_t cairo_font_face_status(cairo_font_face_t* fontFace); 248 cairo_font_type_t cairo_font_face_get_type(cairo_font_face_t* fontFace); 249 uint cairo_font_face_get_reference_count(cairo_font_face_t* fontFace); 250 cairo_status_t cairo_font_face_set_user_data(cairo_font_face_t* fontFace, cairo_user_data_key_t* key, void* userData, cairo_destroy_func_t destroy); 251 void* cairo_font_face_get_user_data(cairo_font_face_t* fontFace, cairo_user_data_key_t* key); 252 253 // cairo.ScaledFont 254 255 cairo_scaled_font_t* cairo_scaled_font_create(cairo_font_face_t* fontFace, cairo_matrix_t* fontMatrix, cairo_matrix_t* ctm, cairo_font_options_t* options); 256 cairo_scaled_font_t* cairo_scaled_font_reference(cairo_scaled_font_t* scaledFont); 257 void cairo_scaled_font_destroy(cairo_scaled_font_t* scaledFont); 258 cairo_status_t cairo_scaled_font_status(cairo_scaled_font_t* scaledFont); 259 void cairo_scaled_font_extents(cairo_scaled_font_t* scaledFont, cairo_font_extents_t* extents); 260 void cairo_scaled_font_text_extents(cairo_scaled_font_t* scaledFont, char* utf8, cairo_text_extents_t* extents); 261 void cairo_scaled_font_glyph_extents(cairo_scaled_font_t* scaledFont, cairo_glyph_t* glyphs, int numGlyphs, cairo_text_extents_t* extents); 262 cairo_status_t cairo_scaled_font_text_to_glyphs(cairo_scaled_font_t* scaledFont, double x, double y, char* utf8, int utf8_Len, cairo_glyph_t** glyphs, int* numGlyphs, cairo_text_cluster_t** clusters, int* numClusters, cairo_text_cluster_flags_t* clusterFlags); 263 cairo_font_face_t* cairo_scaled_font_get_font_face(cairo_scaled_font_t* scaledFont); 264 void cairo_scaled_font_get_font_options(cairo_scaled_font_t* scaledFont, cairo_font_options_t* options); 265 void cairo_scaled_font_get_font_matrix(cairo_scaled_font_t* scaledFont, cairo_matrix_t* fontMatrix); 266 void cairo_scaled_font_get_ctm(cairo_scaled_font_t* scaledFont, cairo_matrix_t* ctm); 267 void cairo_scaled_font_get_scale_matrix(cairo_scaled_font_t* scaledFont, cairo_matrix_t* scaleMatrix); 268 cairo_font_type_t cairo_scaled_font_get_type(cairo_scaled_font_t* scaledFont); 269 uint cairo_scaled_font_get_reference_count(cairo_scaled_font_t* scaledFont); 270 cairo_status_t cairo_scaled_font_set_user_data(cairo_scaled_font_t* scaledFont, cairo_user_data_key_t* key, void* userData, cairo_destroy_func_t destroy); 271 void* cairo_scaled_font_get_user_data(cairo_scaled_font_t* scaledFont, cairo_user_data_key_t* key); 272 273 // cairo.FontOption 274 275 cairo_font_options_t* cairo_font_options_create(); 276 cairo_font_options_t* cairo_font_options_copy(cairo_font_options_t* original); 277 void cairo_font_options_destroy(cairo_font_options_t* options); 278 cairo_status_t cairo_font_options_status(cairo_font_options_t* options); 279 void cairo_font_options_merge(cairo_font_options_t* options, cairo_font_options_t* other); 280 ulong cairo_font_options_hash(cairo_font_options_t* options); 281 cairo_bool_t cairo_font_options_equal(cairo_font_options_t* options, cairo_font_options_t* other); 282 void cairo_font_options_set_antialias(cairo_font_options_t* options, cairo_antialias_t antialias); 283 cairo_antialias_t cairo_font_options_get_antialias(cairo_font_options_t* options); 284 void cairo_font_options_set_subpixel_order(cairo_font_options_t* options, cairo_subpixel_order_t subpixelOrder); 285 cairo_subpixel_order_t cairo_font_options_get_subpixel_order(cairo_font_options_t* options); 286 void cairo_font_options_set_hint_style(cairo_font_options_t* options, cairo_hint_style_t hintStyle); 287 cairo_hint_style_t cairo_font_options_get_hint_style(cairo_font_options_t* options); 288 void cairo_font_options_set_hint_metrics(cairo_font_options_t* options, cairo_hint_metrics_t hintMetrics); 289 cairo_hint_metrics_t cairo_font_options_get_hint_metrics(cairo_font_options_t* options); 290 291 // cairo.UserFontFace 292 293 cairo_font_face_t* cairo_user_font_face_create(); 294 void cairo_user_font_face_set_init_func(cairo_font_face_t* fontFace, cairo_user_scaled_font_init_func_t initFunc); 295 cairo_user_scaled_font_init_func_t cairo_user_font_face_get_init_func(cairo_font_face_t* fontFace); 296 void cairo_user_font_face_set_render_glyph_func(cairo_font_face_t* fontFace, cairo_user_scaled_font_render_glyph_func_t renderGlyphFunc); 297 cairo_user_scaled_font_render_glyph_func_t cairo_user_font_face_get_render_glyph_func(cairo_font_face_t* fontFace); 298 void cairo_user_font_face_set_unicode_to_glyph_func(cairo_font_face_t* fontFace, cairo_user_scaled_font_unicode_to_glyph_func_t unicodeToGlyphFunc); 299 cairo_user_scaled_font_unicode_to_glyph_func_t cairo_user_font_face_get_unicode_to_glyph_func(cairo_font_face_t* fontFace); 300 void cairo_user_font_face_set_text_to_glyphs_func(cairo_font_face_t* fontFace, cairo_user_scaled_font_text_to_glyphs_func_t textToGlyphsFunc); 301 cairo_user_scaled_font_text_to_glyphs_func_t cairo_user_font_face_get_text_to_glyphs_func(cairo_font_face_t* fontFace); 302 303 // cairo.Device 304 305 cairo_device_t* cairo_device_reference(cairo_device_t* device); 306 void cairo_device_destroy(cairo_device_t* device); 307 cairo_status_t cairo_device_status(cairo_device_t* device); 308 void cairo_device_finish(cairo_device_t* device); 309 void cairo_device_flush(cairo_device_t* device); 310 cairo_device_type_t cairo_device_get_type(cairo_device_t* device); 311 uint cairo_device_get_reference_count(cairo_device_t* device); 312 cairo_status_t cairo_device_set_user_data(cairo_device_t* device, cairo_user_data_key_t* key, void* userData, cairo_destroy_func_t destroy); 313 void* cairo_device_get_user_data(cairo_device_t* device, cairo_user_data_key_t* key); 314 cairo_status_t cairo_device_acquire(cairo_device_t* device); 315 void cairo_device_release(cairo_device_t* device); 316 317 // cairo.Surface 318 319 cairo_surface_t* cairo_surface_create_similar(cairo_surface_t* other, cairo_content_t content, int width, int height); 320 cairo_surface_t* cairo_surface_create_similar_image(cairo_surface_t* other, cairo_format_t format, int width, int height); 321 cairo_surface_t* cairo_surface_create_for_rectangle(cairo_surface_t* target, double x, double y, double width, double height); 322 cairo_surface_t* cairo_surface_reference(cairo_surface_t* surface); 323 void cairo_surface_destroy(cairo_surface_t* surface); 324 cairo_status_t cairo_surface_status(cairo_surface_t* surface); 325 void cairo_surface_finish(cairo_surface_t* surface); 326 void cairo_surface_flush(cairo_surface_t* surface); 327 cairo_device_t* cairo_surface_get_device(cairo_surface_t* surface); 328 void cairo_surface_get_font_options(cairo_surface_t* surface, cairo_font_options_t* options); 329 cairo_content_t cairo_surface_get_content(cairo_surface_t* surface); 330 void cairo_surface_mark_dirty(cairo_surface_t* surface); 331 void cairo_surface_mark_dirty_rectangle(cairo_surface_t* surface, int x, int y, int width, int height); 332 void cairo_surface_set_device_offset(cairo_surface_t* surface, double xOffset, double yOffset); 333 void cairo_surface_get_device_offset(cairo_surface_t* surface, double* xOffset, double* yOffset); 334 void cairo_surface_set_fallback_resolution(cairo_surface_t* surface, double xPixelsPerInch, double yPixelsPerInch); 335 void cairo_surface_get_fallback_resolution(cairo_surface_t* surface, double* xPixelsPerInch, double* yPixelsPerInch); 336 cairo_surface_type_t cairo_surface_get_type(cairo_surface_t* surface); 337 uint cairo_surface_get_reference_count(cairo_surface_t* surface); 338 cairo_status_t cairo_surface_set_user_data(cairo_surface_t* surface, cairo_user_data_key_t* key, void* userData, cairo_destroy_func_t destroy); 339 void* cairo_surface_get_user_data(cairo_surface_t* surface, cairo_user_data_key_t* key); 340 void cairo_surface_copy_page(cairo_surface_t* surface); 341 void cairo_surface_show_page(cairo_surface_t* surface); 342 cairo_bool_t cairo_surface_has_show_text_glyphs(cairo_surface_t* surface); 343 cairo_status_t cairo_surface_set_mime_data(cairo_surface_t* surface, char* mimeType, uchar* data, ulong length, cairo_destroy_func_t destroy, void* closure); 344 void cairo_surface_get_mime_data(cairo_surface_t* surface, char* mimeType, uchar** data, ulong* length); 345 cairo_bool_t cairo_surface_supports_mime_type(cairo_surface_t* surface, char* mimeType); 346 cairo_surface_t* cairo_surface_map_to_image(cairo_surface_t* surface, cairo_rectangle_int_t* extents); 347 void cairo_surface_unmap_image(cairo_surface_t* surface, cairo_surface_t* image); 348 349 // cairo.ImageSurface 350 351 int cairo_format_stride_for_width(cairo_format_t format, int width); 352 cairo_surface_t* cairo_image_surface_create(cairo_format_t format, int width, int height); 353 cairo_surface_t* cairo_image_surface_create_for_data(uchar* data, cairo_format_t format, int width, int height, int stride); 354 uchar* cairo_image_surface_get_data(cairo_surface_t* surface); 355 cairo_format_t cairo_image_surface_get_format(cairo_surface_t* surface); 356 int cairo_image_surface_get_width(cairo_surface_t* surface); 357 int cairo_image_surface_get_height(cairo_surface_t* surface); 358 int cairo_image_surface_get_stride(cairo_surface_t* surface); 359 cairo_surface_t* cairo_image_surface_create_from_png(char* filename); 360 cairo_surface_t* cairo_image_surface_create_from_png_stream(cairo_read_func_t readFunc, void* closure); 361 cairo_status_t cairo_surface_write_to_png(cairo_surface_t* surface, char* filename); 362 cairo_status_t cairo_surface_write_to_png_stream(cairo_surface_t* surface, cairo_write_func_t writeFunc, void* closure); 363 364 // cairo.PdfSurface 365 366 cairo_surface_t* cairo_pdf_surface_create(char* filename, double widthInPoints, double heightInPoints); 367 cairo_surface_t* cairo_pdf_surface_create_for_stream(cairo_write_func_t writeFunc, void* closure, double widthInPoints, double heightInPoints); 368 void cairo_pdf_surface_restrict_to_version(cairo_surface_t* surface, cairo_pdf_version_t versio); 369 void cairo_pdf_get_versions(cairo_pdf_version_t** versions, int* numVersions); 370 char* cairo_pdf_version_to_string(cairo_pdf_version_t versio); 371 void cairo_pdf_surface_set_size(cairo_surface_t* surface, double widthInPoints, double heightInPoints); 372 373 // cairo.PostScriptSurface 374 375 cairo_surface_t* cairo_ps_surface_create(char* filename, double widthInPoints, double heightInPoints); 376 cairo_surface_t* cairo_ps_surface_create_for_stream(cairo_write_func_t writeFunc, void* closure, double widthInPoints, double heightInPoints); 377 void cairo_ps_surface_restrict_to_level(cairo_surface_t* surface, cairo_ps_level_t level); 378 void cairo_ps_get_levels(cairo_ps_level_t** levels, int* numLevels); 379 char* cairo_ps_level_to_string(cairo_ps_level_t level); 380 void cairo_ps_surface_set_eps(cairo_surface_t* surface, cairo_bool_t eps); 381 cairo_bool_t cairo_ps_surface_get_eps(cairo_surface_t* surface); 382 void cairo_ps_surface_set_size(cairo_surface_t* surface, double widthInPoints, double heightInPoints); 383 void cairo_ps_surface_dsc_begin_setup(cairo_surface_t* surface); 384 void cairo_ps_surface_dsc_begin_page_setup(cairo_surface_t* surface); 385 void cairo_ps_surface_dsc_comment(cairo_surface_t* surface, char* comment); 386 387 // cairo.RecordingSurface 388 389 cairo_surface_t* cairo_recording_surface_create(cairo_content_t content, cairo_rectangle_t* extents); 390 void cairo_recording_surface_ink_extents(cairo_surface_t* surface, double* x0, double* y0, double* width, double* height); 391 cairo_bool_t cairo_recording_surface_get_extents(cairo_surface_t* surface, cairo_rectangle_t* extents); 392 393 // cairo.SvgSurface 394 395 cairo_surface_t* cairo_svg_surface_create(char* filename, double widthInPoints, double heightInPoints); 396 cairo_surface_t* cairo_svg_surface_create_for_stream(cairo_write_func_t writeFunc, void* closure, double widthInPoints, double heightInPoints); 397 void cairo_svg_surface_restrict_to_version(cairo_surface_t* surface, cairo_svg_version_t versio); 398 void cairo_svg_get_versions(cairo_svg_version_t** versions, int* numVersions); 399 char* cairo_svg_version_to_string(cairo_svg_version_t versio); 400 401 // cairo.Script 402 403 cairo_device_t* cairo_script_create(char* filename); 404 cairo_device_t* cairo_script_create_for_stream(cairo_write_func_t writeFunc, void* closure); 405 cairo_status_t cairo_script_from_recording_surface(cairo_device_t* script, cairo_surface_t* recordingSurface); 406 cairo_script_mode_t cairo_script_get_mode(cairo_device_t* script); 407 void cairo_script_set_mode(cairo_device_t* script, cairo_script_mode_t mode); 408 void cairo_script_write_comment(cairo_device_t* script, char* comment, int len); 409 410 // cairo.ScriptSurface 411 412 cairo_surface_t* cairo_script_surface_create(cairo_device_t* script, cairo_content_t content, double width, double height); 413 cairo_surface_t* cairo_script_surface_create_for_target(cairo_device_t* script, cairo_surface_t* target); 414 415 // cairo.Matrix 416 417 void cairo_matrix_init(cairo_matrix_t* matrix, double xx, double yx, double xy, double yy, double x0, double y0); 418 void cairo_matrix_init_identity(cairo_matrix_t* matrix); 419 void cairo_matrix_init_translate(cairo_matrix_t* matrix, double tx, double ty); 420 void cairo_matrix_init_scale(cairo_matrix_t* matrix, double sx, double sy); 421 void cairo_matrix_init_rotate(cairo_matrix_t* matrix, double radians); 422 void cairo_matrix_translate(cairo_matrix_t* matrix, double tx, double ty); 423 void cairo_matrix_scale(cairo_matrix_t* matrix, double sx, double sy); 424 void cairo_matrix_rotate(cairo_matrix_t* matrix, double radians); 425 cairo_status_t cairo_matrix_invert(cairo_matrix_t* matrix); 426 void cairo_matrix_multiply(cairo_matrix_t* result, cairo_matrix_t* a, cairo_matrix_t* b); 427 void cairo_matrix_transform_distance(cairo_matrix_t* matrix, double* dx, double* dy); 428 void cairo_matrix_transform_point(cairo_matrix_t* matrix, double* x, double* y); 429 430 // cairo.Status 431 432 char* cairo_status_to_string(cairo_status_t status); 433 void cairo_debug_reset_static_data(); 434 435 // cairo.Version 436 437 int cairo_version(); 438 char* cairo_version_string(); 439 440 // cairo. 441 442 }