1#![allow(non_camel_case_types)]
6#![cfg_attr(feature = "cargo-clippy", allow(unreadable_literal, write_literal))]
7
8extern crate libc;
9
10#[cfg(feature = "use_glib")]
11extern crate glib_sys as glib_ffi;
12
13#[cfg(any(feature = "xlib", feature = "dox"))]
14extern crate x11;
15
16#[cfg(windows)]
17extern crate winapi as winapi_orig;
18
19#[cfg(windows)]
20pub mod winapi {
21 pub use winapi_orig::shared::windef::HDC;
22}
23
24#[cfg(all(not(windows), feature = "dox"))]
25pub mod winapi {
26 use libc::c_void;
27
28 #[repr(C)]
29 pub struct HDC(c_void);
30}
31
32use libc::{c_void, c_int, c_uint, c_char, c_uchar, c_double, c_ulong};
33
34#[cfg(any(feature = "xlib", feature = "dox"))]
35use x11::xlib;
36
37pub type cairo_antialias_t = c_int;
38pub type cairo_content_t = c_int;
39pub type cairo_device_type_t = c_int;
40pub type cairo_extend_t = c_int;
41pub type cairo_fill_rule_t = c_int;
42pub type cairo_filter_t = c_int;
43pub type cairo_font_slant_t = c_int;
44pub type cairo_font_type_t = c_int;
45pub type cairo_font_weight_t = c_int;
46pub type cairo_format_t = c_int;
47pub type cairo_ft_synthesize_t = c_uint;
48pub type cairo_hint_metrics_t = c_int;
49pub type cairo_hint_style_t = c_int;
50pub type cairo_line_cap_t = c_int;
51pub type cairo_line_join_t = c_int;
52pub type cairo_operator_t = c_int;
53pub type cairo_pattern_type_t = c_int;
54pub type cairo_path_data_type_t = c_int;
55pub type cairo_region_overlap_t = c_int;
56pub type cairo_script_mode_t = c_int;
57pub type cairo_status_t = c_int;
58pub type cairo_subpixel_order_t = c_int;
59pub type cairo_surface_type_t = c_int;
60#[cfg(any(all(feature = "svg", feature = "v1_16"), feature = "dox"))]
61pub type cairo_svg_unit_t = c_int;
62pub type cairo_text_cluster_flags_t = c_int;
63
64#[cfg(any(all(feature = "pdf", feature = "v1_16"), feature = "dox"))]
65pub type cairo_pdf_outline_flags_t = c_int;
66#[cfg(any(all(feature = "pdf", feature = "v1_16"), feature = "dox"))]
67pub type cairo_pdf_metadata_t = c_int;
68#[cfg(any(feature = "pdf", feature = "dox"))]
69pub type cairo_pdf_version_t = c_int;
70#[cfg(any(feature = "svg", feature = "dox"))]
71pub type cairo_svg_version_t = c_int;
72#[cfg(any(feature = "ps", feature = "dox"))]
73pub type cairo_ps_level_t = c_int;
74
75pub type cairo_mesh_corner_t = c_uint;
76
77macro_rules! debug_impl {
78 ($name:ty) => {
79 impl ::std::fmt::Debug for $name {
80 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
81 write!(f, "{} @ {:?}", stringify!($name), self as *const _)
82 }
83 }
84 }
85}
86
87#[repr(C)]
88pub struct cairo_t(c_void);
89debug_impl!(cairo_t);
90
91#[repr(C)]
92pub struct cairo_surface_t(c_void);
93debug_impl!(cairo_surface_t);
94
95#[repr(C)]
96pub struct cairo_device_t(c_void);
97debug_impl!(cairo_device_t);
98
99#[repr(C)]
100pub struct cairo_pattern_t(c_void);
101
102#[cfg(any(feature = "xcb", feature = "dox"))]
103#[repr(C)]
104pub struct xcb_connection_t(c_void);
105#[cfg(any(feature = "xcb", feature = "dox"))]
106debug_impl!(xcb_connection_t);
107
108#[cfg(any(feature = "xcb", feature = "dox"))]
109pub type xcb_drawable_t = u32;
110
111#[cfg(any(feature = "xcb", feature = "dox"))]
112pub type xcb_pixmap_t = u32;
113
114#[cfg(any(feature = "xcb", feature = "dox"))]
115#[repr(C)]
116pub struct xcb_visualtype_t(c_void);
117#[cfg(any(feature = "xcb", feature = "dox"))]
118debug_impl!(xcb_visualtype_t);
119
120#[cfg(any(feature = "xcb", feature = "dox"))]
121#[repr(C)]
122pub struct xcb_screen_t(c_void);
123#[cfg(any(feature = "xcb", feature = "dox"))]
124debug_impl!(xcb_screen_t);
125
126#[cfg(any(feature = "xcb", feature = "dox"))]
127#[repr(C)]
128pub struct xcb_render_pictforminfo_t(c_void);
129#[cfg(any(feature = "xcb", feature = "dox"))]
130debug_impl!(xcb_render_pictforminfo_t);
131
132#[repr(C)]
133#[derive(Clone, Copy, Debug, PartialEq)]
134pub struct cairo_rectangle_t {
135 pub x: f64,
136 pub y: f64,
137 pub width: f64,
138 pub height: f64,
139}
140#[repr(C)]
141#[derive(Clone, Copy, Debug, Eq, PartialEq)]
142pub struct cairo_rectangle_int_t {
143 pub x: i32,
144 pub y: i32,
145 pub width: i32,
146 pub height: i32,
147}
148#[repr(C)]
149#[derive(Debug, Clone, Copy)]
150pub struct cairo_rectangle_list_t {
151 pub status: cairo_status_t,
152 pub rectangles: *mut cairo_rectangle_t,
153 pub num_rectangles: c_int,
154}
155#[repr(C)]
156#[derive(Debug, Clone, Copy)]
157pub struct cairo_path_t {
158 pub status: cairo_status_t,
159 pub data: *mut cairo_path_data,
160 pub num_data: c_int,
161}
162#[repr(C)]
163#[derive(Debug, Clone, Copy)]
164pub struct cairo_path_data_header{
165 pub data_type: cairo_path_data_type_t,
166 pub length: c_int,
167}
168#[repr(C)]
169#[derive(Clone, Copy)]
170pub union cairo_path_data{
171 pub header: cairo_path_data_header,
172 pub point: [f64; 2],
173}
174#[repr(C)]
175pub struct cairo_glyph_t(c_void);
176debug_impl!(cairo_glyph_t);
177
178#[repr(C)]
179pub struct cairo_region_t(c_void);
180debug_impl!(cairo_region_t);
181
182#[repr(C)]
183pub struct cairo_font_face_t(c_void);
184debug_impl!(cairo_font_face_t);
185
186#[repr(C)]
187pub struct cairo_scaled_font_t(c_void);
188debug_impl!(cairo_scaled_font_t);
189
190#[repr(C)]
191pub struct cairo_font_options_t(c_void);
192debug_impl!(cairo_font_options_t);
193
194#[repr(C)]
195#[derive(Clone, Copy, Debug)]
196pub struct FontExtents {
197 pub ascent: c_double,
198 pub descent: c_double,
199 pub height: c_double,
200 pub max_x_advance: c_double,
201 pub max_y_advance: c_double,
202}
203#[repr(C)]
204#[derive(Clone, Copy, Debug)]
205pub struct Glyph {
206 pub index: c_ulong,
207 pub x: c_double,
208 pub y: c_double,
209}
210#[repr(C)]
211#[derive(Clone, Copy, Debug)]
212pub struct TextCluster {
213 pub num_bytes: c_int,
214 pub num_glyphs: c_int,
215}
216#[repr(C)]
217#[derive(Clone, Copy, Debug)]
218pub struct TextExtents {
219 pub x_bearing: c_double,
220 pub y_bearing: c_double,
221 pub width: c_double,
222 pub height: c_double,
223 pub x_advance: c_double,
224 pub y_advance: c_double,
225}
226#[repr(C)]
227#[derive(Debug, Clone, Copy, PartialEq)]
228pub struct Matrix {
229 pub xx: c_double,
230 pub yx: c_double,
231
232 pub xy: c_double,
233 pub yy: c_double,
234
235 pub x0: c_double,
236 pub y0: c_double,
237}
238
239impl ::std::fmt::Display for Matrix {
240 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
241 write!(f, "Matrix")
242 }
243}
244
245#[repr(C)]
246#[derive(Clone, Copy, Default, Debug)]
247pub struct cairo_user_data_key_t {
248 pub unused: c_int,
249}
250#[repr(C)]
251#[derive(Debug, Clone, Copy)]
252pub struct cairo_bool_t{
253 value: c_int
254}
255
256impl cairo_bool_t {
257 pub fn as_bool(self) -> bool {
258 self.value != 0
259 }
260}
261
262impl From<bool> for cairo_bool_t {
263 fn from(b: bool) -> cairo_bool_t {
264 let value = if b { 1 } else { 0 };
265 cairo_bool_t { value }
266 }
267}
268
269pub type CGContextRef = *mut c_void;
270
271pub type cairo_destroy_func_t = Option<unsafe extern fn (*mut c_void)>;
272pub type cairo_read_func_t = Option<unsafe extern fn (*mut c_void, *mut c_uchar, c_uint) -> cairo_status_t>;
273pub type cairo_write_func_t = Option<unsafe extern fn (*mut c_void, *mut c_uchar, c_uint) -> cairo_status_t>;
274
275extern "C" {
276 pub fn cairo_create (target: *mut cairo_surface_t) -> *mut cairo_t;
278 pub fn cairo_reference (cr: *mut cairo_t) -> *mut cairo_t;
279 pub fn cairo_destroy (cr: *mut cairo_t);
280 pub fn cairo_status (cr: *mut cairo_t) -> cairo_status_t;
281 pub fn cairo_save (cr: *mut cairo_t);
282 pub fn cairo_restore (cr: *mut cairo_t);
283 pub fn cairo_get_target (cr: *mut cairo_t) -> *mut cairo_surface_t;
284 pub fn cairo_push_group (cr: *mut cairo_t);
285 pub fn cairo_push_group_with_content (cr: *mut cairo_t, content: cairo_content_t);
286 pub fn cairo_pop_group (cr: *mut cairo_t) -> *mut cairo_pattern_t;
287 pub fn cairo_pop_group_to_source (cr: *mut cairo_t);
288 pub fn cairo_get_group_target (cr: *mut cairo_t) -> *mut cairo_surface_t;
289 pub fn cairo_set_source_rgb (cr: *mut cairo_t, red: c_double, green: c_double, blue: c_double);
290 pub fn cairo_set_source_rgba (cr: *mut cairo_t, red: c_double, green: c_double, blue: c_double, alpha: c_double);
291 pub fn cairo_set_source (cr: *mut cairo_t, source: *mut cairo_pattern_t);
292 pub fn cairo_set_source_surface (cr: *mut cairo_t, surface: *mut cairo_surface_t, x: c_double, y: c_double);
293 pub fn cairo_get_source (cr: *mut cairo_t) -> *mut cairo_pattern_t;
294 pub fn cairo_set_antialias (cr: *mut cairo_t, antialias: cairo_antialias_t);
295 pub fn cairo_get_antialias (cr: *mut cairo_t) -> cairo_antialias_t;
296 pub fn cairo_set_dash (cr: *mut cairo_t, dashes : *const c_double, num_dashes: c_int, offset: c_double);
297 pub fn cairo_get_dash_count (cr: *mut cairo_t) -> c_int;
298 pub fn cairo_get_dash (cr: *mut cairo_t, dashes: *mut c_double, offset: *mut c_double);
299 pub fn cairo_set_fill_rule (cr: *mut cairo_t, fill_rule: cairo_fill_rule_t);
300 pub fn cairo_get_fill_rule (cr: *mut cairo_t) -> cairo_fill_rule_t;
301 pub fn cairo_set_line_cap (cr: *mut cairo_t, line_cap: cairo_line_cap_t);
302 pub fn cairo_get_line_cap (cr: *mut cairo_t) -> cairo_line_cap_t;
303 pub fn cairo_set_line_join (cr: *mut cairo_t, line_join: cairo_line_join_t);
304 pub fn cairo_get_line_join (cr: *mut cairo_t) -> cairo_line_join_t;
305 pub fn cairo_set_line_width (cr: *mut cairo_t, width: c_double);
306 pub fn cairo_get_line_width (cr: *mut cairo_t) -> c_double;
307 pub fn cairo_set_miter_limit (cr: *mut cairo_t, limit: c_double);
308 pub fn cairo_get_miter_limit (cr: *mut cairo_t) -> c_double;
309 pub fn cairo_set_operator (cr: *mut cairo_t, op: cairo_operator_t);
310 pub fn cairo_get_operator (cr: *mut cairo_t) -> cairo_operator_t;
311 pub fn cairo_set_tolerance (cr: *mut cairo_t, tolerance: c_double);
312 pub fn cairo_get_tolerance (cr: *mut cairo_t) -> c_double;
313 pub fn cairo_clip (cr: *mut cairo_t);
314 pub fn cairo_clip_preserve (cr: *mut cairo_t);
315 pub fn cairo_clip_extents (cr: *mut cairo_t, x1: *mut c_double, y1: *mut c_double, x2: *mut c_double, y2: *mut c_double);
316 pub fn cairo_in_clip (cr: *mut cairo_t, x: c_double, y: c_double) -> cairo_bool_t;
317 pub fn cairo_reset_clip (cr: *mut cairo_t);
318 pub fn cairo_rectangle_list_destroy (rectangle_list: *mut cairo_rectangle_list_t);
319 pub fn cairo_copy_clip_rectangle_list (cr: *mut cairo_t) -> *mut cairo_rectangle_list_t;
320 pub fn cairo_fill (cr: *mut cairo_t);
321 pub fn cairo_fill_preserve (cr: *mut cairo_t);
322 pub fn cairo_fill_extents (cr: *mut cairo_t, x1: *mut c_double, y1: *mut c_double, x2: *mut c_double, y2: *mut c_double);
323 pub fn cairo_in_fill (cr: *mut cairo_t, x: c_double, y: c_double) -> cairo_bool_t;
324 pub fn cairo_mask (cr: *mut cairo_t, pattern: *mut cairo_pattern_t);
325 pub fn cairo_mask_surface (cr: *mut cairo_t, surface: *mut cairo_surface_t, surface_x: c_double, surface_y: c_double);
326 pub fn cairo_paint (cr: *mut cairo_t);
327 pub fn cairo_paint_with_alpha (cr: *mut cairo_t, alpha: c_double);
328 pub fn cairo_stroke (cr: *mut cairo_t);
329 pub fn cairo_stroke_preserve (cr: *mut cairo_t);
330 pub fn cairo_stroke_extents (cr: *mut cairo_t, x1: *mut c_double, y1: *mut c_double, x2: *mut c_double, y2: *mut c_double);
331 pub fn cairo_in_stroke (cr: *mut cairo_t, x: c_double, y: c_double) -> cairo_bool_t;
332 pub fn cairo_copy_page (cr: *mut cairo_t);
333 pub fn cairo_show_page (cr: *mut cairo_t);
334 pub fn cairo_get_reference_count (cr: *mut cairo_t) -> c_uint;
335 #[cfg(any(feature = "v1_16", feature = "dox"))]
336 pub fn cairo_tag_begin (cr: *mut cairo_t, tag_name: *const c_char, attributes: *const c_char);
337 #[cfg(any(feature = "v1_16", feature = "dox"))]
338 pub fn cairo_tag_end (cr: *mut cairo_t, tag_name: *const c_char);
339
340 pub fn cairo_status_to_string(status: cairo_status_t) -> *const c_char;
342 pub fn cairo_debug_reset_static_data();
343 pub fn cairo_version() -> c_int;
344 pub fn cairo_version_string() -> *const c_char;
345
346
347 pub fn cairo_copy_path(cr: *mut cairo_t) -> *mut cairo_path_t;
349 pub fn cairo_copy_path_flat(cr: *mut cairo_t) -> *mut cairo_path_t;
350 pub fn cairo_path_destroy(path: *mut cairo_path_t);
351 pub fn cairo_append_path(cr: *mut cairo_t, path: *mut cairo_path_t);
352 pub fn cairo_has_current_point(cr: *mut cairo_t) -> cairo_bool_t;
353 pub fn cairo_get_current_point(cr: *mut cairo_t, x: *mut c_double, y: *mut c_double);
354 pub fn cairo_new_path(cr: *mut cairo_t);
355 pub fn cairo_new_sub_path(cr: *mut cairo_t);
356 pub fn cairo_close_path(cr: *mut cairo_t);
357 pub fn cairo_arc(cr: *mut cairo_t, xc: c_double, yc: c_double, radius: c_double, angle1: c_double, angle2: c_double);
358 pub fn cairo_arc_negative(cr: *mut cairo_t, xc: c_double, yc: c_double, radius: c_double, angle1: c_double, angle2: c_double);
359 pub fn cairo_curve_to(cr: *mut cairo_t, x1: c_double, y1: c_double, x2: c_double, y2: c_double, x3: c_double, y3: c_double);
360 pub fn cairo_line_to(cr: *mut cairo_t, x: c_double, y: c_double);
361 pub fn cairo_move_to(cr: *mut cairo_t, x: c_double, y: c_double);
362 pub fn cairo_rectangle(cr: *mut cairo_t, x: c_double, y: c_double, width: c_double, height: c_double);
363 pub fn cairo_glyph_path(cr: *mut cairo_t, glyphs: *const Glyph, num_glyphs: c_int);
364 pub fn cairo_text_path(cr: *mut cairo_t, utf8: *const c_char);
365 pub fn cairo_rel_curve_to(cr: *mut cairo_t, dx1: c_double, dy1: c_double, dx2: c_double, dy2: c_double, dx3: c_double, dy3: c_double);
366 pub fn cairo_rel_line_to(cr: *mut cairo_t, dx: c_double, dy: c_double);
367 pub fn cairo_rel_move_to(cr: *mut cairo_t, dx: c_double, dy: c_double);
368 pub fn cairo_path_extents(cr: *mut cairo_t, x1: *mut c_double, y1: *mut c_double, x2: *mut c_double, y2: *mut c_double);
369
370 pub fn cairo_translate(cr: *mut cairo_t, tx: c_double, ty: c_double);
372 pub fn cairo_scale(cr: *mut cairo_t, sx: c_double, sy: c_double);
373 pub fn cairo_rotate(cr: *mut cairo_t, angle: c_double);
374 pub fn cairo_transform(cr: *mut cairo_t, matrix: *const Matrix);
375 pub fn cairo_set_matrix(cr: *mut cairo_t, matrix: *const Matrix);
376 pub fn cairo_get_matrix(cr: *mut cairo_t, matrix: *mut Matrix);
377 pub fn cairo_identity_matrix(cr: *mut cairo_t);
378 pub fn cairo_user_to_device(cr: *mut cairo_t, x: *mut c_double, y: *mut c_double);
379 pub fn cairo_user_to_device_distance(cr: *mut cairo_t, dx: *mut c_double, dy: *mut c_double);
380 pub fn cairo_device_to_user(cr: *mut cairo_t, x: *mut c_double, y: *mut c_double);
381 pub fn cairo_device_to_user_distance(cr: *mut cairo_t, dx: *mut c_double, dy: *mut c_double);
382
383 pub fn cairo_pattern_add_color_stop_rgb(pattern: *mut cairo_pattern_t, offset: c_double, red: c_double, green: c_double, blue: c_double);
385 pub fn cairo_pattern_add_color_stop_rgba(pattern: *mut cairo_pattern_t, offset: c_double, red: c_double, green: c_double, blue: c_double, alpha: c_double);
386 pub fn cairo_pattern_get_color_stop_count(pattern: *mut cairo_pattern_t, count: *mut c_int) -> cairo_status_t;
387 pub fn cairo_pattern_get_color_stop_rgba(pattern: *mut cairo_pattern_t, index: c_int, offset: *mut c_double, red: *mut c_double, green: *mut c_double, blue: *mut c_double, alpha: *mut c_double) -> cairo_status_t;
388 pub fn cairo_pattern_create_rgb(red: c_double, green: c_double, blue: c_double) -> *mut cairo_pattern_t;
389 pub fn cairo_pattern_create_rgba(red: c_double, green: c_double, blue: c_double, alpha: c_double) -> *mut cairo_pattern_t;
390 pub fn cairo_pattern_get_rgba(pattern: *mut cairo_pattern_t, red: *mut c_double, green: *mut c_double, blue: *mut c_double, alpha: *mut c_double) -> cairo_status_t;
391 pub fn cairo_pattern_create_for_surface(surface: *mut cairo_surface_t) -> *mut cairo_pattern_t;
392 pub fn cairo_pattern_get_surface(pattern: *mut cairo_pattern_t, surface: *mut *mut cairo_surface_t) -> cairo_status_t;
393 pub fn cairo_pattern_create_linear(x0: c_double, y0: c_double, x1: c_double, y1: c_double) -> *mut cairo_pattern_t;
394 pub fn cairo_pattern_get_linear_points(pattern: *mut cairo_pattern_t, x0: *mut c_double, y0: *mut c_double, x1: *mut c_double, y1: *mut c_double) -> cairo_status_t;
395 pub fn cairo_pattern_create_radial(cx0: c_double, cy0: c_double, radius0: c_double, cx1: c_double, cy1: c_double, radius1: c_double) -> *mut cairo_pattern_t;
396 pub fn cairo_pattern_get_radial_circles(pattern: *mut cairo_pattern_t, x0: *mut c_double, y0: *mut c_double, r0: *mut c_double, x1: *mut c_double, y1: *mut c_double, r1: *mut c_double) -> cairo_status_t;
397 pub fn cairo_pattern_create_mesh() -> *mut cairo_pattern_t;
398 pub fn cairo_mesh_pattern_begin_patch(pattern: *mut cairo_pattern_t);
399 pub fn cairo_mesh_pattern_end_patch(pattern: *mut cairo_pattern_t);
400 pub fn cairo_mesh_pattern_move_to(pattern: *mut cairo_pattern_t, x: c_double, y: c_double);
401 pub fn cairo_mesh_pattern_line_to(pattern: *mut cairo_pattern_t, x: c_double, y: c_double);
402 pub fn cairo_mesh_pattern_curve_to(pattern: *mut cairo_pattern_t, x1: c_double, y1: c_double, x2: c_double, y2: c_double, x3: c_double, y3: c_double);
403 pub fn cairo_mesh_pattern_set_control_point(pattern: *mut cairo_pattern_t, point_num: cairo_mesh_corner_t, x: c_double, y: c_double);
404 pub fn cairo_mesh_pattern_set_corner_color_rgb(pattern: *mut cairo_pattern_t, corner_num: cairo_mesh_corner_t, red: c_double, green: c_double, blue: c_double);
405 pub fn cairo_mesh_pattern_set_corner_color_rgba(pattern: *mut cairo_pattern_t, corner_num: cairo_mesh_corner_t, red: c_double, green: c_double, blue: c_double, alpha: c_double);
406 pub fn cairo_mesh_pattern_get_patch_count(pattern: *mut cairo_pattern_t, count: *mut c_uint) -> cairo_status_t;
407 pub fn cairo_mesh_pattern_get_path(pattern: *mut cairo_pattern_t, patch_num: c_uint) -> *mut cairo_path_t;
408 pub fn cairo_mesh_pattern_get_control_point(pattern: *mut cairo_pattern_t, patch_num: c_uint, point_num: cairo_mesh_corner_t, x: *mut c_double, y: *mut c_double) -> cairo_status_t;
409 pub fn cairo_mesh_pattern_get_corner_color_rgba(pattern: *mut cairo_pattern_t, patch_num: c_uint, corner_num: cairo_mesh_corner_t, red: *mut c_double, green: *mut c_double, blue: *mut c_double, alpha: *mut c_double) -> cairo_status_t;
410 pub fn cairo_pattern_reference(pattern: *mut cairo_pattern_t) -> *mut cairo_pattern_t;
411 pub fn cairo_pattern_destroy(pattern: *mut cairo_pattern_t);
412 pub fn cairo_pattern_status(pattern: *mut cairo_pattern_t) -> cairo_status_t;
413 pub fn cairo_pattern_set_extend(pattern: *mut cairo_pattern_t, extend: cairo_extend_t);
414 pub fn cairo_pattern_get_extend(pattern: *mut cairo_pattern_t) -> cairo_extend_t;
415 pub fn cairo_pattern_set_filter(pattern: *mut cairo_pattern_t, filter: cairo_filter_t);
416 pub fn cairo_pattern_get_filter(pattern: *mut cairo_pattern_t) -> cairo_filter_t;
417 pub fn cairo_pattern_set_matrix(pattern: *mut cairo_pattern_t, matrix: *const Matrix);
418 pub fn cairo_pattern_get_matrix(pattern: *mut cairo_pattern_t, matrix: *mut Matrix);
419 pub fn cairo_pattern_get_type(pattern: *mut cairo_pattern_t) -> cairo_pattern_type_t;
420 pub fn cairo_pattern_get_reference_count(pattern: *mut cairo_pattern_t) -> c_uint;
421 pub fn cairo_pattern_set_user_data(pattern: *mut cairo_pattern_t, key: *const cairo_user_data_key_t, user_data: *mut c_void, destroy: cairo_destroy_func_t) -> cairo_status_t;
422 pub fn cairo_pattern_get_user_data(pattern: *mut cairo_pattern_t, key: *const cairo_user_data_key_t) -> *mut c_void;
423
424 pub fn cairo_region_create() -> *mut cairo_region_t;
426 pub fn cairo_region_create_rectangle(rectangle: *mut cairo_rectangle_int_t) -> *mut cairo_region_t;
427 pub fn cairo_region_create_rectangles(rects: *mut cairo_rectangle_int_t, count: c_int) -> *mut cairo_region_t;
428 pub fn cairo_region_copy(original: *mut cairo_region_t) -> *mut cairo_region_t;
429 pub fn cairo_region_reference(region: *mut cairo_region_t) -> *mut cairo_region_t;
430 pub fn cairo_region_destroy(region: *mut cairo_region_t);
431 pub fn cairo_region_status(region: *mut cairo_region_t) -> cairo_status_t;
432 pub fn cairo_region_get_extents(region: *mut cairo_region_t, extents: *mut cairo_rectangle_int_t);
433 pub fn cairo_region_num_rectangles(region: *mut cairo_region_t) -> c_int;
434 pub fn cairo_region_get_rectangle(region: *mut cairo_region_t, nth: c_int, rectangle: *mut cairo_rectangle_int_t);
435 pub fn cairo_region_is_empty(region: *mut cairo_region_t) -> cairo_bool_t;
436 pub fn cairo_region_contains_point(region: *mut cairo_region_t, x: c_int, y: c_int) -> cairo_bool_t;
437 pub fn cairo_region_contains_rectangle(region: *mut cairo_region_t, rectangle: *mut cairo_rectangle_int_t) -> cairo_region_overlap_t;
438 pub fn cairo_region_equal(a: *mut cairo_region_t, b: *mut cairo_region_t) -> cairo_bool_t;
439 pub fn cairo_region_translate(region: *mut cairo_region_t, dx: c_int, dy: c_int);
440 pub fn cairo_region_intersect(dst: *mut cairo_region_t, other: *mut cairo_region_t) -> cairo_status_t;
441 pub fn cairo_region_intersect_rectangle(dst: *mut cairo_region_t, rectangle: *mut cairo_rectangle_int_t) -> cairo_status_t;
442 pub fn cairo_region_subtract(dst: *mut cairo_region_t, other: *mut cairo_region_t) -> cairo_status_t;
443 pub fn cairo_region_subtract_rectangle(dst: *mut cairo_region_t, rectangle: *mut cairo_rectangle_int_t) -> cairo_status_t;
444 pub fn cairo_region_union(dst: *mut cairo_region_t, other: *mut cairo_region_t) -> cairo_status_t;
445 pub fn cairo_region_union_rectangle(dst: *mut cairo_region_t, rectangle: *mut cairo_rectangle_int_t) -> cairo_status_t;
446 pub fn cairo_region_xor(dst: *mut cairo_region_t, other: *mut cairo_region_t) -> cairo_status_t;
447 pub fn cairo_region_xor_rectangle(dst: *mut cairo_region_t, rectangle: *mut cairo_rectangle_int_t) -> cairo_status_t;
448
449 pub fn cairo_select_font_face(cr: *mut cairo_t, family: *const c_char, slant: cairo_font_slant_t, weight: cairo_font_weight_t);
451 pub fn cairo_set_font_size(cr: *mut cairo_t, size: c_double);
452 pub fn cairo_set_font_matrix(cr: *mut cairo_t, matrix: *const Matrix);
453 pub fn cairo_get_font_matrix(cr: *mut cairo_t, matrix: *mut Matrix);
454 pub fn cairo_set_font_options(cr: *mut cairo_t, options: *const cairo_font_options_t);
455 pub fn cairo_get_font_options(cr: *mut cairo_t, options: *mut cairo_font_options_t);
456 pub fn cairo_set_font_face(cr: *mut cairo_t, font_face: *mut cairo_font_face_t);
457 pub fn cairo_get_font_face(cr: *mut cairo_t) -> *mut cairo_font_face_t;
458 pub fn cairo_set_scaled_font(cr: *mut cairo_t, scaled_font: *mut cairo_scaled_font_t);
459 pub fn cairo_get_scaled_font(cr: *mut cairo_t) -> *mut cairo_scaled_font_t;
460 pub fn cairo_show_text(cr: *mut cairo_t, utf8: *const c_char);
461 pub fn cairo_show_glyphs(cr: *mut cairo_t, glyphs: *const Glyph, num_glyphs: c_int);
462 pub fn cairo_show_text_glyphs(cr: *mut cairo_t, utf8: *const c_char, utf8_len: c_int, glyphs: *const Glyph, num_glyphs: c_int, clusters: *const TextCluster, num_clusters: c_int, cluster_flags: cairo_text_cluster_flags_t);
463 pub fn cairo_font_extents(cr: *mut cairo_t, extents: *mut FontExtents);
464 pub fn cairo_text_extents(cr: *mut cairo_t, utf8: *const c_char, extents: *mut TextExtents);
465 pub fn cairo_glyph_extents(cr: *mut cairo_t, glyphs: *const Glyph, num_glyphs: c_int, extents: *mut TextExtents);
466 pub fn cairo_toy_font_face_create(family: *const c_char, slant: cairo_font_slant_t, weight: cairo_font_weight_t) -> *mut cairo_font_face_t;
467 pub fn cairo_toy_font_face_get_family(font_face: *mut cairo_font_face_t) -> *const c_char;
468 pub fn cairo_toy_font_face_get_slant(font_face: *mut cairo_font_face_t) -> cairo_font_slant_t;
469 pub fn cairo_toy_font_face_get_weight(font_face: *mut cairo_font_face_t) -> cairo_font_weight_t;
470 pub fn cairo_glyph_allocate(num_glyphs: c_int) -> *mut Glyph;
471 pub fn cairo_glyph_free(glyphs: *mut Glyph);
472 pub fn cairo_text_cluster_allocate(num_clusters: c_int) -> *mut TextCluster;
473 pub fn cairo_text_cluster_free(clusters: *mut TextCluster);
474 pub fn cairo_ft_font_face_get_synthesize(font_face: *mut cairo_font_face_t) -> cairo_ft_synthesize_t;
475 pub fn cairo_ft_font_face_set_synthesize(font_face: *mut cairo_font_face_t, synth_flags: cairo_ft_synthesize_t);
476 pub fn cairo_ft_font_face_unset_synthesize(font_face: *mut cairo_font_face_t, synth_flags: cairo_ft_synthesize_t);
477
478 pub fn cairo_font_face_reference(font_face: *mut cairo_font_face_t) -> *mut cairo_font_face_t;
505 pub fn cairo_font_face_destroy(font_face: *mut cairo_font_face_t);
506 pub fn cairo_font_face_status(font_face: *mut cairo_font_face_t) -> cairo_status_t;
507 pub fn cairo_font_face_get_type(font_face: *mut cairo_font_face_t) -> cairo_font_type_t;
508 pub fn cairo_font_face_get_reference_count(font_face: *mut cairo_font_face_t) -> c_uint;
509 pub fn cairo_font_face_set_user_data(font_face: *mut cairo_font_face_t, key: *const cairo_user_data_key_t, user_data: *mut c_void, destroy: cairo_destroy_func_t) -> cairo_status_t;
510 pub fn cairo_font_face_get_user_data(font_face: *mut cairo_font_face_t, key: *const cairo_user_data_key_t) -> *mut c_void;
511
512 pub fn cairo_scaled_font_create(font_face: *mut cairo_font_face_t, font_matrix: *const Matrix, ctm: *const Matrix, options: *const cairo_font_options_t) -> *mut cairo_scaled_font_t;
514 pub fn cairo_scaled_font_reference(scaled_font: *mut cairo_scaled_font_t) -> *mut cairo_scaled_font_t;
515 pub fn cairo_scaled_font_destroy(scaled_font: *mut cairo_scaled_font_t);
516 pub fn cairo_scaled_font_status(scaled_font: *mut cairo_scaled_font_t) -> cairo_status_t;
517 pub fn cairo_scaled_font_extents(scaled_font: *mut cairo_scaled_font_t, extents: *mut FontExtents);
518 pub fn cairo_scaled_font_text_extents(scaled_font: *mut cairo_scaled_font_t, utf8: *const c_char, extents: *mut TextExtents);
519 pub fn cairo_scaled_font_glyph_extents(scaled_font: *mut cairo_scaled_font_t, glyphs: *const Glyph, num_glyphs: c_int, extents: *mut TextExtents);
520 pub fn cairo_scaled_font_text_to_glyphs(scaled_font: *mut cairo_scaled_font_t, x: c_double, y: c_double, utf8: *const c_char, utf8_len: c_int, glyphs: *mut *mut Glyph, num_glyphs: *mut c_int, clusters: *mut *mut TextCluster, num_clusters: *mut c_int, cluster_flags: *mut cairo_text_cluster_flags_t) -> cairo_status_t;
521 pub fn cairo_scaled_font_get_font_face(scaled_font: *mut cairo_scaled_font_t) -> *mut cairo_font_face_t;
522 pub fn cairo_scaled_font_get_font_options(scaled_font: *mut cairo_scaled_font_t, options: *mut cairo_font_options_t);
523 pub fn cairo_scaled_font_get_font_matrix(scaled_font: *mut cairo_scaled_font_t, font_matrix: *mut Matrix);
524 pub fn cairo_scaled_font_get_ctm(scaled_font: *mut cairo_scaled_font_t, ctm: *mut Matrix);
525 pub fn cairo_scaled_font_get_scale_matrix(scaled_font: *mut cairo_scaled_font_t, scale_matrix: *mut Matrix);
526 pub fn cairo_scaled_font_get_type(scaled_font: *mut cairo_scaled_font_t) -> cairo_font_type_t;
527 pub fn cairo_scaled_font_get_reference_count(font_face: *mut cairo_scaled_font_t) -> c_uint;
528 pub fn cairo_scaled_font_set_user_data(scaled_font: *mut cairo_scaled_font_t, key: *const cairo_user_data_key_t, user_data: *mut c_void, destroy: cairo_destroy_func_t) -> cairo_status_t;
529 pub fn cairo_scaled_font_get_user_data(scaled_font: *mut cairo_scaled_font_t, key: *const cairo_user_data_key_t) -> *mut c_void;
530
531 pub fn cairo_font_options_create() -> *mut cairo_font_options_t;
533 pub fn cairo_font_options_copy(original: *const cairo_font_options_t) -> *mut cairo_font_options_t;
534 pub fn cairo_font_options_destroy(options: *mut cairo_font_options_t);
535 pub fn cairo_font_options_status(options: *mut cairo_font_options_t) -> cairo_status_t;
536 pub fn cairo_font_options_merge(options: *mut cairo_font_options_t, other: *const cairo_font_options_t);
537 pub fn cairo_font_options_hash(options: *const cairo_font_options_t) -> c_ulong;
538 pub fn cairo_font_options_equal(options: *const cairo_font_options_t, other: *const cairo_font_options_t) -> cairo_bool_t;
539 pub fn cairo_font_options_set_antialias(options: *mut cairo_font_options_t, antialias: cairo_antialias_t);
540 pub fn cairo_font_options_get_antialias(options: *const cairo_font_options_t) -> cairo_antialias_t;
541 pub fn cairo_font_options_set_subpixel_order(options: *mut cairo_font_options_t, subpixel_order: cairo_subpixel_order_t);
542 pub fn cairo_font_options_get_subpixel_order(options: *const cairo_font_options_t) -> cairo_subpixel_order_t;
543 pub fn cairo_font_options_set_hint_style(options: *mut cairo_font_options_t, hint_style: cairo_hint_style_t);
544 pub fn cairo_font_options_get_hint_style(options: *const cairo_font_options_t) -> cairo_hint_style_t;
545 pub fn cairo_font_options_set_hint_metrics(options: *mut cairo_font_options_t, hint_metrics: cairo_hint_metrics_t);
546 pub fn cairo_font_options_get_hint_metrics(options: *const cairo_font_options_t) -> cairo_hint_metrics_t;
547 #[cfg(any(feature = "v1_16", feature = "dox"))]
548 pub fn cairo_font_options_get_variations(options: *mut cairo_font_options_t) -> *const c_char;
549 #[cfg(any(feature = "v1_16", feature = "dox"))]
550 pub fn cairo_font_options_set_variations(options: *mut cairo_font_options_t, variations: *const c_char);
551
552 pub fn cairo_matrix_multiply(matrix: *mut Matrix, left: *const Matrix, right: *const Matrix);
554 pub fn cairo_matrix_init(matrix: *mut Matrix, xx: f64, yx: f64, xy: f64, yy: f64, x0: f64, y0: f64);
555 pub fn cairo_matrix_init_identity(matrix: *mut Matrix);
556 pub fn cairo_matrix_translate(matrix: *mut Matrix, tx: f64, ty: f64);
557 pub fn cairo_matrix_scale(matrix: *mut Matrix, sx: f64, sy: f64);
558 pub fn cairo_matrix_rotate(matrix: *mut Matrix, angle: f64);
559 pub fn cairo_matrix_invert(matrix: *mut Matrix) -> cairo_status_t;
560 pub fn cairo_matrix_transform_distance(matrix: *const Matrix, dx: *mut f64, dy: *mut f64);
561 pub fn cairo_matrix_transform_point(matrix: *const Matrix, x: *mut f64, y: *mut f64);
562
563 pub fn cairo_surface_destroy(surface: *mut cairo_surface_t);
565 pub fn cairo_surface_flush(surface: *mut cairo_surface_t);
566 pub fn cairo_surface_finish(surface: *mut cairo_surface_t);
567 pub fn cairo_surface_status(surface: *mut cairo_surface_t) -> cairo_status_t;
568 pub fn cairo_surface_get_type(surface: *mut cairo_surface_t) -> cairo_surface_type_t;
569 pub fn cairo_surface_reference(surface: *mut cairo_surface_t) -> *mut cairo_surface_t;
570 pub fn cairo_surface_get_user_data(surface: *mut cairo_surface_t, key: *const cairo_user_data_key_t) -> *mut c_void;
571 pub fn cairo_surface_set_user_data(surface: *mut cairo_surface_t, key: *const cairo_user_data_key_t, user_data: *mut c_void, destroy: cairo_destroy_func_t) -> cairo_status_t;
572 pub fn cairo_surface_get_reference_count(surface: *mut cairo_surface_t) -> c_uint;
573 pub fn cairo_surface_mark_dirty(surface: *mut cairo_surface_t);
574 pub fn cairo_surface_create_similar(surface: *mut cairo_surface_t, content: cairo_content_t, width: c_int, height: c_int) -> *mut cairo_surface_t;
575 pub fn cairo_surface_get_mime_data(surface: *mut cairo_surface_t, mime_type: *const c_char, data : *const *mut u8, length: *mut c_ulong);
576 pub fn cairo_surface_set_mime_data(surface: *mut cairo_surface_t, mime_type: *const c_char, data : *const u8, length: c_ulong, destroy: cairo_destroy_func_t, closure: *const u8) -> cairo_status_t;
577 pub fn cairo_surface_supports_mime_type (surface: *mut cairo_surface_t, mime_type: *const c_char) -> cairo_bool_t;
578 pub fn cairo_surface_set_device_offset(surface: *mut cairo_surface_t, x_offset: c_double, y_offset: c_double);
579 pub fn cairo_surface_get_device_offset(surface: *mut cairo_surface_t, x_offset: *mut c_double, y_offset: *mut c_double);
580 #[cfg(any(feature = "v1_14", feature = "dox"))]
581 pub fn cairo_surface_get_device_scale(surface: *mut cairo_surface_t, x_scale: *mut c_double, y_scale: *mut c_double);
582 #[cfg(any(feature = "v1_14", feature = "dox"))]
583 pub fn cairo_surface_set_device_scale(surface: *mut cairo_surface_t, x_scale: c_double, y_scale: c_double);
584 pub fn cairo_surface_get_fallback_resolution(surface: *mut cairo_surface_t, x_pixels_per_inch: *mut c_double, y_pixels_per_inch: *mut c_double);
585 pub fn cairo_surface_set_fallback_resolution(surface: *mut cairo_surface_t, x_pixels_per_inch: c_double, x_pixels_per_inch: c_double);
586 pub fn cairo_recording_surface_get_extents(surface: *mut cairo_surface_t, extents: *mut cairo_rectangle_t) -> cairo_bool_t;
587 pub fn cairo_recording_surface_create(content: cairo_content_t, extents: *const cairo_rectangle_t) -> *mut cairo_surface_t;
588 pub fn cairo_recording_surface_ink_extents(surface: *mut cairo_surface_t, x0: *mut c_double, y0: *mut c_double, width: *mut c_double, height: *mut c_double);
589 pub fn cairo_surface_create_similar_image(other: *mut cairo_surface_t, format: cairo_format_t, width: c_int, height: c_int) -> *mut cairo_surface_t;
590 pub fn cairo_surface_map_to_image(surface: *mut cairo_surface_t, extents: *const cairo_rectangle_int_t) -> *mut cairo_surface_t;
591 pub fn cairo_surface_unmap_image(surface: *mut cairo_surface_t, image: *mut cairo_surface_t);
592
593 pub fn cairo_image_surface_create(format: cairo_format_t, width: c_int, height: c_int) -> *mut cairo_surface_t;
595 pub fn cairo_image_surface_create_for_data(data: *mut u8, format: cairo_format_t, width: c_int, height: c_int, stride: c_int) -> *mut cairo_surface_t;
596 pub fn cairo_image_surface_get_data(surface: *mut cairo_surface_t) -> *mut u8;
597 pub fn cairo_image_surface_get_format(surface: *mut cairo_surface_t) -> cairo_format_t;
598 pub fn cairo_image_surface_get_height(surface: *mut cairo_surface_t) -> c_int;
599 pub fn cairo_image_surface_get_stride(surface: *mut cairo_surface_t) -> c_int;
600 pub fn cairo_image_surface_get_width(surface: *mut cairo_surface_t) -> c_int;
601 pub fn cairo_format_stride_for_width(format: cairo_format_t, width: c_int) -> c_int;
602 #[cfg(any(feature = "png", feature = "dox"))]
603 pub fn cairo_image_surface_create_from_png_stream(read_func: cairo_read_func_t, closure: *mut c_void) -> *mut cairo_surface_t;
604 #[cfg(any(feature = "png", feature = "dox"))]
605 pub fn cairo_surface_write_to_png_stream(surface: *mut cairo_surface_t, write_func: cairo_write_func_t, closure: *mut c_void) -> cairo_status_t;
606
607 #[cfg(any(feature = "pdf", feature = "dox"))]
609 pub fn cairo_pdf_surface_create (filename: *const c_char,
610 width_in_points: c_double,
611 height_in_points: c_double) -> *mut cairo_surface_t;
612 #[cfg(any(feature = "pdf", feature = "dox"))]
613 pub fn cairo_pdf_surface_create_for_stream (write_func: cairo_write_func_t,
614 closure: *mut c_void,
615 width_in_points: c_double,
616 height_in_points: c_double) -> *mut cairo_surface_t;
617 #[cfg(any(feature = "pdf", feature = "dox"))]
618 pub fn cairo_pdf_surface_restrict_to_version (surface: *mut cairo_surface_t, version: cairo_pdf_version_t);
619 #[cfg(any(feature = "pdf", feature = "dox"))]
620 pub fn cairo_pdf_get_versions (versions: *mut *mut cairo_pdf_version_t,
621 num_versions: *mut c_int);
622 #[cfg(any(feature = "pdf", feature = "dox"))]
623 pub fn cairo_pdf_version_to_string (version: cairo_pdf_version_t) -> *const c_char;
624 #[cfg(any(feature = "pdf", feature = "dox"))]
625 pub fn cairo_pdf_surface_set_size (surface: *mut cairo_surface_t,
626 width_in_points: f64,
627 height_in_points: f64);
628 #[cfg(any(all(feature = "pdf", feature = "v1_16"), feature = "dox"))]
629 pub fn cairo_pdf_surface_add_outline (surface: *mut cairo_surface_t,
630 parent_id: c_int,
631 utf8: *const c_char,
632 link_attribs: *const c_char,
633 flags: cairo_pdf_outline_flags_t) -> c_int;
634 #[cfg(any(all(feature = "pdf", feature = "v1_16"), feature = "dox"))]
635 pub fn cairo_pdf_surface_set_metadata (surface: *mut cairo_surface_t,
636 metadata: cairo_pdf_metadata_t,
637 utf8: *const c_char);
638 #[cfg(any(all(feature = "pdf", feature = "v1_16"), feature = "dox"))]
639 pub fn cairo_pdf_surface_set_page_label (surface: *mut cairo_surface_t,
640 utf8: *const c_char);
641 #[cfg(any(all(feature = "pdf", feature = "v1_16"), feature = "dox"))]
642 pub fn cairo_pdf_surface_set_thumbnail_size (surface: *mut cairo_surface_t,
643 width: c_int,
644 height: c_int);
645
646 #[cfg(any(feature = "svg", feature = "dox"))]
648 pub fn cairo_svg_surface_create (filename: *const c_char,
649 width_in_points: c_double,
650 height_in_points: c_double) -> *mut cairo_surface_t;
651 #[cfg(any(feature = "svg", feature = "dox"))]
652 pub fn cairo_svg_surface_create_for_stream (write_func: cairo_write_func_t,
653 closure: *mut c_void,
654 width_in_points: c_double,
655 height_in_points: c_double) -> *mut cairo_surface_t;
656 #[cfg(any(feature = "svg", feature = "dox"))]
657 pub fn cairo_svg_surface_restrict_to_version (surface: *mut cairo_surface_t, version: cairo_svg_version_t);
658 #[cfg(any(all(feature = "svg", feature = "v1_16"), feature = "dox"))]
659 pub fn cairo_svg_surface_get_document_unit(surface: *const cairo_surface_t) -> cairo_svg_unit_t;
660 #[cfg(any(all(feature = "svg", feature = "v1_16"), feature = "dox"))]
661 pub fn cairo_svg_surface_set_document_unit(surface: *mut cairo_surface_t, unit: cairo_svg_unit_t);
662 #[cfg(any(feature = "svg", feature = "dox"))]
663 pub fn cairo_svg_get_versions (versions: *mut *mut cairo_svg_version_t,
664 num_versions: *mut c_int);
665 #[cfg(any(feature = "svg", feature = "dox"))]
666 pub fn cairo_svg_version_to_string (version: cairo_svg_version_t) -> *const c_char;
667
668 #[cfg(any(feature = "ps", feature = "dox"))]
670 pub fn cairo_ps_surface_create (filename: *const c_char,
671 width_in_points: c_double,
672 height_in_points: c_double) -> *mut cairo_surface_t;
673 #[cfg(any(feature = "ps", feature = "dox"))]
674 pub fn cairo_ps_surface_create_for_stream (write_func: cairo_write_func_t,
675 closure: *mut c_void,
676 width_in_points: c_double,
677 height_in_points: c_double) -> *mut cairo_surface_t;
678 #[cfg(any(feature = "ps", feature = "dox"))]
679 pub fn cairo_ps_surface_restrict_to_level (surface: *mut cairo_surface_t, version: cairo_ps_level_t);
680 #[cfg(any(feature = "ps", feature = "dox"))]
681 pub fn cairo_ps_get_levels (levels: *mut *mut cairo_ps_level_t,
682 num_levels: *mut c_int);
683 #[cfg(any(feature = "ps", feature = "dox"))]
684 pub fn cairo_ps_level_to_string (level: cairo_ps_level_t) -> *const c_char;
685 #[cfg(any(feature = "ps", feature = "dox"))]
686 pub fn cairo_ps_surface_set_eps (surface: *mut cairo_surface_t, eps: cairo_bool_t);
687 #[cfg(any(feature = "ps", feature = "dox"))]
688 pub fn cairo_ps_surface_get_eps (surface: *mut cairo_surface_t) -> cairo_bool_t;
689 #[cfg(any(feature = "ps", feature = "dox"))]
690 pub fn cairo_ps_surface_set_size (surface: *mut cairo_surface_t,
691 width_in_points: f64,
692 height_in_points: f64);
693 #[cfg(any(feature = "ps", feature = "dox"))]
694 pub fn cairo_ps_surface_dsc_begin_setup (surface: *mut cairo_surface_t);
695 #[cfg(any(feature = "ps", feature = "dox"))]
696 pub fn cairo_ps_surface_dsc_begin_page_setup (surface: *mut cairo_surface_t);
697 #[cfg(any(feature = "ps", feature = "dox"))]
698 pub fn cairo_ps_surface_dsc_comment (surface: *mut cairo_surface_t, comment: *const c_char);
699
700 #[cfg(any(feature = "xcb", feature = "dox"))]
702 pub fn cairo_xcb_surface_create(connection: *mut xcb_connection_t,
703 drawable: xcb_drawable_t,
704 visual: *mut xcb_visualtype_t,
705 width: c_int,
706 height: c_int) -> *mut cairo_surface_t;
707 #[cfg(any(feature = "xcb", feature = "dox"))]
708 pub fn cairo_xcb_surface_create_for_bitmap(connection: *mut xcb_connection_t,
709 screen: *mut xcb_screen_t,
710 bitmap: xcb_pixmap_t,
711 width: c_int,
712 height: c_int) -> *mut cairo_surface_t;
713 #[cfg(any(feature = "xcb", feature = "dox"))]
714 pub fn cairo_xcb_surface_create_with_xrender_format(connection: *mut xcb_connection_t,
715 screen: *mut xcb_screen_t,
716 drawable: xcb_drawable_t,
717 format: *mut xcb_render_pictforminfo_t,
718 width: c_int,
719 height: c_int) -> *mut cairo_surface_t;
720 #[cfg(any(feature = "xcb", feature = "dox"))]
721 pub fn cairo_xcb_surface_set_size(surface: *mut cairo_surface_t,
722 width: c_int,
723 height: c_int);
724 #[cfg(any(feature = "xcb", feature = "dox"))]
725 pub fn cairo_xcb_surface_set_drawable(surface: *mut cairo_surface_t,
726 drawable: xcb_drawable_t,
727 width: c_int,
728 height: c_int);
729 #[cfg(any(feature = "xcb", feature = "dox"))]
730 pub fn cairo_xcb_device_get_connection(device: *mut cairo_device_t) -> *mut xcb_connection_t;
731 #[cfg(any(feature = "xcb", feature = "dox"))]
732 pub fn cairo_xcb_device_debug_cap_xrender_version(device: *mut cairo_device_t,
733 major_version: c_int,
734 minor_version: c_int);
735 #[cfg(any(feature = "xcb", feature = "dox"))]
736 pub fn cairo_xcb_device_debug_cap_xshm_version(device: *mut cairo_device_t,
737 major_version: c_int,
738 minor_version: c_int);
739 #[cfg(any(feature = "xcb", feature = "dox"))]
740 pub fn cairo_xcb_device_debug_get_precision(device: *mut cairo_device_t) -> c_int;
741 #[cfg(any(feature = "xcb", feature = "dox"))]
742 pub fn cairo_xcb_device_debug_set_precision(device: *mut cairo_device_t,
743 precision: c_int);
744
745 #[cfg(any(feature = "xlib", feature = "dox"))]
747 pub fn cairo_xlib_surface_create(dpy: *mut xlib::Display,
748 drawable: xlib::Drawable,
749 visual: *mut xlib::Visual,
750 width: c_int,
751 height: c_int)
752 -> *mut cairo_surface_t;
753 #[cfg(any(feature = "xlib", feature = "dox"))]
754 pub fn cairo_xlib_surface_create_for_bitmap(dpy: *mut xlib::Display,
755 bitmap: xlib::Pixmap,
756 screen: *mut xlib::Screen,
757 width: c_int,
758 height: c_int)
759 -> *mut cairo_surface_t;
760 #[cfg(any(feature = "xlib", feature = "dox"))]
761 pub fn cairo_xlib_surface_set_size(surface: *mut cairo_surface_t,
762 width: c_int,
763 height: c_int);
764 #[cfg(any(feature = "xlib", feature = "dox"))]
765 pub fn cairo_xlib_surface_set_drawable(surface: *mut cairo_surface_t,
766 drawable: xlib::Drawable,
767 width: c_int,
768 height: c_int);
769 #[cfg(any(feature = "xlib", feature = "dox"))]
770 pub fn cairo_xlib_surface_get_display(surface: *mut cairo_surface_t)
771 -> *mut xlib::Display;
772 #[cfg(any(feature = "xlib", feature = "dox"))]
773 pub fn cairo_xlib_surface_get_drawable(surface: *mut cairo_surface_t)
774 -> xlib::Drawable;
775 #[cfg(any(feature = "xlib", feature = "dox"))]
776 pub fn cairo_xlib_surface_get_screen(surface: *mut cairo_surface_t)
777 -> *mut xlib::Screen;
778 #[cfg(any(feature = "xlib", feature = "dox"))]
779 pub fn cairo_xlib_surface_get_visual(surface: *mut cairo_surface_t)
780 -> *mut xlib::Visual;
781 #[cfg(any(feature = "xlib", feature = "dox"))]
782 pub fn cairo_xlib_surface_get_depth(surface: *mut cairo_surface_t)
783 -> c_int;
784 #[cfg(any(feature = "xlib", feature = "dox"))]
785 pub fn cairo_xlib_surface_get_width(surface: *mut cairo_surface_t)
786 -> c_int;
787 #[cfg(any(feature = "xlib", feature = "dox"))]
788 pub fn cairo_xlib_surface_get_height(surface: *mut cairo_surface_t)
789 -> c_int;
790 #[cfg(any(feature = "xlib", feature = "dox"))]
791 pub fn cairo_xlib_device_debug_cap_xrender_version(device: *mut cairo_device_t, major_version: c_int, minor_version: c_int);
792 #[cfg(any(feature = "xlib", feature = "dox"))]
793 pub fn cairo_xlib_device_debug_get_precision(device: *mut cairo_device_t) -> c_int;
794 #[cfg(any(feature = "xlib", feature = "dox"))]
795 pub fn cairo_xlib_device_debug_set_precision(device: *mut cairo_device_t, precision: c_int);
796
797 #[cfg(any(windows, feature = "dox"))]
799 pub fn cairo_win32_surface_create(hdc: winapi::HDC) -> *mut cairo_surface_t;
800 #[cfg(any(all(windows, feature = "v1_14"), feature = "dox"))]
801 pub fn cairo_win32_surface_create_with_format(hdc: winapi::HDC,
802 format: cairo_format_t)
803 -> *mut cairo_surface_t;
804 #[cfg(any(windows, feature = "dox"))]
805 pub fn cairo_win32_surface_create_with_dib(format: cairo_format_t,
806 width: c_int,
807 height: c_int)
808 -> *mut cairo_surface_t;
809 #[cfg(any(windows, feature = "dox"))]
810 pub fn cairo_win32_surface_create_with_ddb(hdc: winapi::HDC,
811 format: cairo_format_t,
812 width: c_int,
813 height: c_int)
814 -> *mut cairo_surface_t;
815 #[cfg(any(windows, feature = "dox"))]
816 pub fn cairo_win32_printing_surface_create(hdc: winapi::HDC) -> *mut cairo_surface_t;
817 #[cfg(any(windows, feature = "dox"))]
818 pub fn cairo_win32_surface_get_dc(surface: *mut cairo_surface_t) -> winapi::HDC;
819 #[cfg(any(windows, feature = "dox"))]
820 pub fn cairo_win32_surface_get_image(surface: *mut cairo_surface_t) -> *mut cairo_surface_t;
821
822 #[cfg(any(target_os = "macos", target_os = "ios", feature = "dox"))]
823 pub fn cairo_quartz_surface_create(format: cairo_format_t,
824 width: c_uint,
825 height: c_uint)
826 -> *mut cairo_surface_t;
827 #[cfg(any(target_os = "macos", target_os = "ios", feature = "dox"))]
828 pub fn cairo_quartz_surface_create_for_cg_context(cg_context: CGContextRef,
829 width: c_uint,
830 height: c_uint)
831 -> *mut cairo_surface_t;
832 #[cfg(any(target_os = "macos", target_os = "ios", feature = "dox"))]
833 pub fn cairo_quartz_surface_get_cg_context(surface: *mut cairo_surface_t) -> CGContextRef;
834
835 pub fn cairo_script_create(filename: *const c_char) -> *mut cairo_device_t;
837 pub fn cairo_script_create_for_stream(write_func: cairo_write_func_t, closure: *mut c_void) -> cairo_status_t;
838 pub fn cairo_script_from_recording_surface(script: *mut cairo_device_t, surface: *mut cairo_surface_t) -> cairo_status_t;
839 pub fn cairo_script_get_mode(script: *mut cairo_device_t) -> cairo_script_mode_t;
840 pub fn cairo_script_set_mode(script: *mut cairo_device_t, mode: cairo_script_mode_t);
841 pub fn cairo_script_surface_create(script: *mut cairo_device_t, content: cairo_content_t,
842 width: c_double, height: c_double) -> *mut cairo_surface_t;
843 pub fn cairo_script_surface_create_for_target(script: *mut cairo_device_t, target: *mut cairo_surface_t) -> *mut cairo_surface_t;
844 pub fn cairo_script_write_comment(script: *mut cairo_device_t, comment: *const c_char, len: c_int);
845 pub fn cairo_device_destroy(device: *mut cairo_device_t);
846 pub fn cairo_device_status(device: *mut cairo_device_t) -> cairo_status_t;
847 pub fn cairo_device_finish(device: *mut cairo_device_t);
848 pub fn cairo_device_flush(device: *mut cairo_device_t);
849 pub fn cairo_device_get_type(device: *mut cairo_device_t) -> cairo_device_type_t;
850 pub fn cairo_device_reference(device: *mut cairo_device_t) -> *mut cairo_device_t;
851 pub fn cairo_device_get_reference_count(device: *mut cairo_device_t) -> c_uint;
852 pub fn cairo_device_set_user_data(device: *mut cairo_device_t, key: *const cairo_user_data_key_t, user_data: *mut c_void, destroy: cairo_destroy_func_t) -> cairo_status_t;
853 pub fn cairo_device_get_user_data(device: *mut cairo_device_t, key: *const cairo_user_data_key_t) -> *mut c_void;
854 pub fn cairo_device_acquire(device: *mut cairo_device_t) -> cairo_status_t;
855 pub fn cairo_device_release(device: *mut cairo_device_t);
856 pub fn cairo_device_observer_elapsed(device: *mut cairo_device_t) -> c_double;
857 pub fn cairo_device_observer_fill_elapsed(device: *mut cairo_device_t) -> c_double;
858 pub fn cairo_device_observer_glyphs_elapsed(device: *mut cairo_device_t) -> c_double;
859 pub fn cairo_device_observer_mask_elapsed(device: *mut cairo_device_t) -> c_double;
860 pub fn cairo_device_observer_paint_elapsed(device: *mut cairo_device_t) -> c_double;
861 pub fn cairo_device_observer_stroke_elapsed(device: *mut cairo_device_t) -> c_double;
862 pub fn cairo_device_observer_print(device: *mut cairo_device_t, write_func: cairo_write_func_t, closure: *mut c_void) -> cairo_status_t;
863}
864
865#[cfg(feature = "use_glib")]
866pub mod gobject;
867
868pub const STATUS_SUCCESS: i32 = 0;
869pub const STATUS_NO_MEMORY: i32 = 1;
870pub const STATUS_INVALID_RESTORE: i32 = 2;
871pub const STATUS_INVALID_POP_GROUP: i32 = 3;
872pub const STATUS_NO_CURRENT_POINT: i32 = 4;
873pub const STATUS_INVALID_MATRIX: i32 = 5;
874pub const STATUS_INVALID_STATUS: i32 = 6;
875pub const STATUS_NULL_POINTER: i32 = 7;
876pub const STATUS_INVALID_STRING: i32 = 8;
877pub const STATUS_INVALID_PATH_DATA: i32 = 9;
878pub const STATUS_READ_ERROR: i32 = 10;
879pub const STATUS_WRITE_ERROR: i32 = 11;
880pub const STATUS_SURFACE_FINISHED: i32 = 12;
881pub const STATUS_SURFACE_TYPE_MISMATCH: i32 = 13;
882pub const STATUS_PATTERN_TYPE_MISMATCH: i32 = 14;
883pub const STATUS_INVALID_CONTENT: i32 = 15;
884pub const STATUS_INVALID_FORMAT: i32 = 16;
885pub const STATUS_INVALID_VISUAL: i32 = 17;
886pub const STATUS_FILE_NOT_FOUND: i32 = 18;
887pub const STATUS_INVALID_DASH: i32 = 19;
888pub const STATUS_INVALID_DSC_COMMENT: i32 = 20;
889pub const STATUS_INVALID_INDEX: i32 = 21;
890pub const STATUS_CLIP_NOT_REPRESENTABLE: i32 = 22;
891pub const STATUS_TEMP_FILE_ERROR: i32 = 23;
892pub const STATUS_INVALID_STRIDE: i32 = 24;
893pub const STATUS_FONT_TYPE_MISMATCH: i32 = 25;
894pub const STATUS_USER_FONT_IMMUTABLE: i32 = 26;
895pub const STATUS_USER_FONT_ERROR: i32 = 27;
896pub const STATUS_NEGATIVE_COUNT: i32 = 28;
897pub const STATUS_INVALID_CLUSTERS: i32 = 29;
898pub const STATUS_INVALID_SLANT: i32 = 30;
899pub const STATUS_INVALID_WEIGHT: i32 = 31;
900pub const STATUS_INVALID_SIZE: i32 = 32;
901pub const STATUS_USER_FONT_NOT_IMPLEMENTED: i32 = 33;
902pub const STATUS_DEVICE_TYPE_MISMATCH: i32 = 34;
903pub const STATUS_DEVICE_ERROR: i32 = 35;
904pub const STATUS_INVALID_MESH_CONSTRUCTION: i32 = 36;
905pub const STATUS_DEVICE_FINISHED: i32 = 37;
906pub const STATUS_J_BIG2_GLOBAL_MISSING: i32 = 38;
907pub const STATUS_PNG_ERROR: i32 = 39;
908pub const STATUS_FREETYPE_ERROR: i32 = 40;
909pub const STATUS_WIN32_GDI_ERROR: i32 = 41;
910pub const STATUS_LAST_STATUS: i32 = 42;
911pub const ANTIALIAS_DEFAULT: i32 = 0;
912pub const ANTIALIAS_NONE: i32 = 1;
913pub const ANTIALIAS_GRAY: i32 = 2;
914pub const ANTIALIAS_SUBPIXEL: i32 = 3;
915pub const ANTIALIAS_FAST: i32 = 4;
916pub const ANTIALIAS_GOOD: i32 = 5;
917pub const ANTIALIAS_BEST: i32 = 6;
918pub const FILL_RULE_WINDING: i32 = 0;
919pub const FILL_RULE_EVEN_ODD: i32 = 1;
920pub const LINE_CAP_BUTT: i32 = 0;
921pub const LINE_CAP_ROUND: i32 = 1;
922pub const LINE_CAP_SQUARE: i32 = 2;
923pub const LINE_JOIN_MITER: i32 = 0;
924pub const LINE_JOIN_ROUND: i32 = 1;
925pub const LINE_JOIN_BEVEL: i32 = 2;
926pub const OPERATOR_CLEAR: i32 = 0;
927pub const OPERATOR_SOURCE: i32 = 1;
928pub const OPERATOR_OVER: i32 = 2;
929pub const OPERATOR_IN: i32 = 3;
930pub const OPERATOR_OUT: i32 = 4;
931pub const OPERATOR_ATOP: i32 = 5;
932pub const OPERATOR_DEST: i32 = 6;
933pub const OPERATOR_DEST_OVER: i32 = 7;
934pub const OPERATOR_DEST_IN: i32 = 8;
935pub const OPERATOR_DEST_OUT: i32 = 9;
936pub const OPERATOR_DEST_ATOP: i32 = 10;
937pub const OPERATOR_XOR: i32 = 11;
938pub const OPERATOR_ADD: i32 = 12;
939pub const OPERATOR_SATURATE: i32 = 13;
940pub const OPERATOR_MULTIPLY: i32 = 14;
941pub const OPERATOR_SCREEN: i32 = 15;
942pub const OPERATOR_OVERLAY: i32 = 16;
943pub const OPERATOR_DARKEN: i32 = 17;
944pub const OPERATOR_LIGHTEN: i32 = 18;
945pub const OPERATOR_COLOR_DODGE: i32 = 19;
946pub const OPERATOR_COLOR_BURN: i32 = 20;
947pub const OPERATOR_HARD_LIGHT: i32 = 21;
948pub const OPERATOR_SOFT_LIGHT: i32 = 22;
949pub const OPERATOR_DIFFERENCE: i32 = 23;
950pub const OPERATOR_EXCLUSION: i32 = 24;
951pub const OPERATOR_HSL_HUE: i32 = 25;
952pub const OPERATOR_HSL_SATURATION: i32 = 26;
953pub const OPERATOR_HSL_COLOR: i32 = 27;
954pub const OPERATOR_HSL_LUMINOSITY: i32 = 28;
955pub const PATH_DATA_TYPE_MOVE_TO: i32 = 0;
956pub const PATH_DATA_TYPE_LINE_TO: i32 = 1;
957pub const PATH_DATA_TYPE_CURVE_TO: i32 = 2;
958pub const PATH_DATA_TYPE_CLOSE_PATH: i32 = 3;
959pub const CONTENT_COLOR : i32 = 0x1000;
960pub const CONTENT_ALPHA : i32 = 0x2000;
961pub const CONTENT_COLOR_ALPHA: i32 = 0x3000;
962pub const EXTEND_NONE: i32 = 0;
963pub const EXTEND_REPEAT: i32 = 1;
964pub const EXTEND_REFLECT: i32 = 2;
965pub const EXTEND_PAD: i32 = 3;
966pub const FILTER_FAST: i32 = 0;
967pub const FILTER_GOOD: i32 = 1;
968pub const FILTER_BEST: i32 = 2;
969pub const FILTER_NEAREST: i32 = 3;
970pub const FILTER_BILINEAR: i32 = 4;
971pub const FILTER_GAUSSIAN: i32 = 5;
972pub const PATTERN_TYPE_SOLID: i32 = 0;
973pub const PATTERN_TYPE_SURFACE: i32 = 1;
974pub const PATTERN_TYPE_LINEAR_GRADIENT: i32 = 2;
975pub const PATTERN_TYPE_RADIAL_GRADIENT: i32 = 3;
976pub const PATTERN_TYPE_MESH: i32 = 4;
977pub const PATTERN_TYPE_RASTER_SOURCE: i32 = 5;
978pub const FONT_SLANT_NORMAL: i32 = 0;
979pub const FONT_SLANT_ITALIC: i32 = 1;
980pub const FONT_SLANT_OBLIQUE: i32 = 2;
981pub const FONT_WEIGHT_NORMAL: i32 = 0;
982pub const FONT_WEIGHT_BOLD: i32 = 1;
983pub const TEXT_CLUSTER_FLAGS_NONE : i32 = 0x00000000;
984pub const TEXT_CLUSTER_FLAGS_BACKWARD: i32 = 0x00000001;
985pub const FONT_TYPE_FONT_TYPE_TOY: i32 = 0;
986pub const FONT_TYPE_FONT_TYPE_FT: i32 = 1;
987pub const FONT_TYPE_FONT_TYPE_WIN32: i32 = 2;
988pub const FONT_TYPE_FONT_TYPE_QUARTZ: i32 = 3;
989pub const FONT_TYPE_FONT_TYPE_USER: i32 = 4;
990pub const SUBPIXEL_ORDER_DEFAULT: i32 = 0;
991pub const SUBPIXEL_ORDER_RGB: i32 = 1;
992pub const SUBPIXEL_ORDER_BGR: i32 = 2;
993pub const SUBPIXEL_ORDER_VRGB: i32 = 3;
994pub const SUBPIXEL_ORDER_VBGR: i32 = 4;
995pub const HINT_STYLE_DEFAULT: i32 = 0;
996pub const HINT_STYLE_NONE: i32 = 1;
997pub const HINT_STYLE_SLIGHT: i32 = 2;
998pub const HINT_STYLE_MEDIUM: i32 = 3;
999pub const HINT_STYLE_FULL: i32 = 4;
1000pub const HINT_METRICS_DEFAULT: i32 = 0;
1001pub const HINT_METRICS_OFF: i32 = 1;
1002pub const HINT_METRICS_ON: i32 = 2;
1003pub const SURFACE_TYPE_IMAGE: i32 = 0;
1004pub const SURFACE_TYPE_PDF: i32 = 1;
1005pub const SURFACE_TYPE_PS: i32 = 2;
1006pub const SURFACE_TYPE_XLIB: i32 = 3;
1007pub const SURFACE_TYPE_XCB: i32 = 4;
1008pub const SURFACE_TYPE_GLITZ: i32 = 5;
1009pub const SURFACE_TYPE_QUARTZ: i32 = 6;
1010pub const SURFACE_TYPE_WIN32: i32 = 7;
1011pub const SURFACE_TYPE_BE_OS: i32 = 8;
1012pub const SURFACE_TYPE_DIRECT_FB: i32 = 9;
1013pub const SURFACE_TYPE_SVG: i32 = 10;
1014pub const SURFACE_TYPE_OS2: i32 = 11;
1015pub const SURFACE_TYPE_WIN32_PRINTING: i32 = 12;
1016pub const SURFACE_TYPE_QUARTZ_IMAGE: i32 = 13;
1017pub const SURFACE_TYPE_SCRIPT: i32 = 14;
1018pub const SURFACE_TYPE_QT: i32 = 15;
1019pub const SURFACE_TYPE_RECORDING: i32 = 16;
1020pub const SURFACE_TYPE_VG: i32 = 17;
1021pub const SURFACE_TYPE_GL: i32 = 18;
1022pub const SURFACE_TYPE_DRM: i32 = 19;
1023pub const SURFACE_TYPE_TEE: i32 = 20;
1024pub const SURFACE_TYPE_XML: i32 = 21;
1025pub const SURFACE_TYPE_SKIA: i32 = 22;
1026pub const SURFACE_TYPE_SUBSURFACE: i32 = 23;
1027pub const SURFACE_TYPE_COGL: i32 = 24;
1028pub const SVG_UNIT_USER: i32 = 0;
1029pub const SVG_UNIT_EM: i32 = 1;
1030pub const SVG_UNIT_EX: i32 = 2;
1031pub const SVG_UNIT_PX: i32 = 3;
1032pub const SVG_UNIT_IN: i32 = 4;
1033pub const SVG_UNIT_CM: i32 = 5;
1034pub const SVG_UNIT_MM: i32 = 6;
1035pub const SVG_UNIT_PT: i32 = 7;
1036pub const SVG_UNIT_PC: i32 = 8;
1037pub const SVG_UNIT_PERCENT: i32 = 9;
1038pub const FORMAT_INVALID: i32 = -1;
1039pub const FORMAT_A_RGB32: i32 = 0;
1040pub const FORMAT_RGB24: i32 = 1;
1041pub const FORMAT_A8: i32 = 2;
1042pub const FORMAT_A1: i32 = 3;
1043pub const FORMAT_RGB16_565: i32 = 4;
1044pub const FORMAT_RGB30: i32 = 5;
1045pub const REGION_OVERLAP_IN: i32 = 0;
1046pub const REGION_OVERLAP_OUT: i32 = 1;
1047pub const REGION_OVERLAP_PART: i32 = 2;
1048pub const PDF_OUTLINE_FLAG_OPEN: i32 = 0x1;
1049pub const PDF_OUTLINE_FLAG_BOLD: i32 = 0x2;
1050pub const PDF_OUTLINE_FLAG_ITALIC: i32 = 0x4;
1051pub const PDF_METADATA_TITLE: i32 = 0;
1052pub const PDF_METADATA_AUTHOR: i32 = 1;
1053pub const PDF_METADATA_SUBJECT: i32 = 2;
1054pub const PDF_METADATA_KEYWORDS: i32 = 3;
1055pub const PDF_METADATA_CREATOR: i32 = 4;
1056pub const PDF_METADATA_CREATE_DATE: i32 = 5;
1057pub const PDF_METADATA_MOD_DATE: i32 = 6;
1058pub const PDF_VERSION__1_4: i32 = 0;
1059pub const PDF_VERSION__1_5: i32 = 1;
1060pub const SVG_VERSION__1_1: i32 = 0;
1061pub const SVG_VERSION__1_2: i32 = 1;
1062pub const PS_LEVEL__2: i32 = 0;
1063pub const PS_LEVEL__3: i32 = 1;
1064pub const MESH_CORNER_MESH_CORNER0: u32 = 0;
1065pub const MESH_CORNER_MESH_CORNER1: u32 = 1;
1066pub const MESH_CORNER_MESH_CORNER2: u32 = 2;
1067pub const MESH_CORNER_MESH_CORNER3: u32 = 3;
1068pub const CAIRO_FT_SYNTHESIZE_BOLD : u32 = 1;
1069pub const CAIRO_FT_SYNTHESIZE_OBLIQUE: u32 = 2;
1070pub const CAIRO_SCRIPT_MODE_ASCII : i32 = 0;
1071pub const CAIRO_SCRIPT_MODE_BINARY: i32 = 1;
1072
1073pub const CAIRO_DEVICE_TYPE_DRM : i32 = 0;
1074pub const CAIRO_DEVICE_TYPE_GL : i32 = 1;
1075pub const CAIRO_DEVICE_TYPE_SCRIPT : i32 = 2;
1076pub const CAIRO_DEVICE_TYPE_XCB : i32 = 3;
1077pub const CAIRO_DEVICE_TYPE_XLIB : i32 = 4;
1078pub const CAIRO_DEVICE_TYPE_XML : i32 = 5;
1079pub const CAIRO_DEVICE_TYPE_COGL : i32 = 6;
1080pub const CAIRO_DEVICE_TYPE_WIN32 : i32 = 7;
1081pub const CAIRO_DEVICE_TYPE_INVALID: i32 = -1;