1 // Copyright 2013-2019, The Gtk-rs Project Developers.
2 // See the COPYRIGHT file at the top-level directory of this distribution.
3 // Licensed under the MIT license, see the LICENSE file or <http://opensource.org/licenses/MIT>
4 
5 #![allow(non_camel_case_types)]
6 #![cfg_attr(feature = "cargo-clippy", allow(unreadable_literal, write_literal))]
7 
8 extern crate libc;
9 
10 #[cfg(feature = "use_glib")]
11 extern crate glib_sys as glib_ffi;
12 
13 #[cfg(any(feature = "xlib", feature = "dox"))]
14 extern crate x11;
15 
16 #[cfg(all(windows, feature = "win32-surface"))]
17 extern crate winapi as winapi_orig;
18 
19 #[cfg(all(windows, feature = "win32-surface"))]
20 pub mod winapi {
21     pub use winapi_orig::shared::windef::HDC;
22 }
23 
24 #[cfg(all(feature = "dox", not(all(windows, feature = "win32-surface"))))]
25 pub mod winapi {
26     use libc::c_void;
27 
28     #[repr(C)]
29     pub struct HDC(c_void);
30 }
31 
32 use libc::{c_char, c_double, c_int, c_uchar, c_uint, c_ulong, c_void};
33 
34 #[cfg(any(feature = "xlib", feature = "dox"))]
35 use x11::xlib;
36 
37 pub type cairo_antialias_t = c_int;
38 pub type cairo_content_t = c_int;
39 pub type cairo_device_type_t = c_int;
40 pub type cairo_extend_t = c_int;
41 pub type cairo_fill_rule_t = c_int;
42 pub type cairo_filter_t = c_int;
43 pub type cairo_font_slant_t = c_int;
44 pub type cairo_font_type_t = c_int;
45 pub type cairo_font_weight_t = c_int;
46 pub type cairo_format_t = c_int;
47 pub type cairo_ft_synthesize_t = c_uint;
48 pub type cairo_hint_metrics_t = c_int;
49 pub type cairo_hint_style_t = c_int;
50 pub type cairo_line_cap_t = c_int;
51 pub type cairo_line_join_t = c_int;
52 pub type cairo_operator_t = c_int;
53 pub type cairo_pattern_type_t = c_int;
54 pub type cairo_path_data_type_t = c_int;
55 pub type cairo_region_overlap_t = c_int;
56 pub type cairo_script_mode_t = c_int;
57 pub type cairo_status_t = c_int;
58 pub type cairo_subpixel_order_t = c_int;
59 pub type cairo_surface_type_t = c_int;
60 #[cfg(any(all(feature = "svg", feature = "v1_16"), feature = "dox"))]
61 pub type cairo_svg_unit_t = c_int;
62 pub type cairo_text_cluster_flags_t = c_int;
63 
64 #[cfg(any(all(feature = "pdf", feature = "v1_16"), feature = "dox"))]
65 pub type cairo_pdf_outline_flags_t = c_int;
66 #[cfg(any(all(feature = "pdf", feature = "v1_16"), feature = "dox"))]
67 pub type cairo_pdf_metadata_t = c_int;
68 #[cfg(any(feature = "pdf", feature = "dox"))]
69 pub type cairo_pdf_version_t = c_int;
70 #[cfg(any(feature = "svg", feature = "dox"))]
71 pub type cairo_svg_version_t = c_int;
72 #[cfg(any(feature = "ps", feature = "dox"))]
73 pub type cairo_ps_level_t = c_int;
74 
75 pub type cairo_mesh_corner_t = c_uint;
76 
77 macro_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)]
88 pub struct cairo_t(c_void);
89 debug_impl!(cairo_t);
90 
91 #[repr(C)]
92 pub struct cairo_surface_t(c_void);
93 debug_impl!(cairo_surface_t);
94 
95 #[repr(C)]
96 pub struct cairo_device_t(c_void);
97 debug_impl!(cairo_device_t);
98 
99 #[repr(C)]
100 pub struct cairo_pattern_t(c_void);
101 
102 #[cfg(any(feature = "xcb", feature = "dox"))]
103 #[repr(C)]
104 pub struct xcb_connection_t(c_void);
105 #[cfg(any(feature = "xcb", feature = "dox"))]
106 debug_impl!(xcb_connection_t);
107 
108 #[cfg(any(feature = "xcb", feature = "dox"))]
109 pub type xcb_drawable_t = u32;
110 
111 #[cfg(any(feature = "xcb", feature = "dox"))]
112 pub type xcb_pixmap_t = u32;
113 
114 #[cfg(any(feature = "xcb", feature = "dox"))]
115 #[repr(C)]
116 pub struct xcb_visualtype_t(c_void);
117 #[cfg(any(feature = "xcb", feature = "dox"))]
118 debug_impl!(xcb_visualtype_t);
119 
120 #[cfg(any(feature = "xcb", feature = "dox"))]
121 #[repr(C)]
122 pub struct xcb_screen_t(c_void);
123 #[cfg(any(feature = "xcb", feature = "dox"))]
124 debug_impl!(xcb_screen_t);
125 
126 #[cfg(any(feature = "xcb", feature = "dox"))]
127 #[repr(C)]
128 pub struct xcb_render_pictforminfo_t(c_void);
129 #[cfg(any(feature = "xcb", feature = "dox"))]
130 debug_impl!(xcb_render_pictforminfo_t);
131 
132 #[repr(C)]
133 #[derive(Clone, Copy, Debug, PartialEq)]
134 pub 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)]
142 pub 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)]
150 pub 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)]
157 pub 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)]
164 pub 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)]
170 pub union cairo_path_data {
171     pub header: cairo_path_data_header,
172     pub point: [f64; 2],
173 }
174 #[repr(C)]
175 pub struct cairo_glyph_t(c_void);
176 debug_impl!(cairo_glyph_t);
177 
178 #[repr(C)]
179 pub struct cairo_region_t(c_void);
180 debug_impl!(cairo_region_t);
181 
182 #[repr(C)]
183 pub struct cairo_font_face_t(c_void);
184 debug_impl!(cairo_font_face_t);
185 
186 #[repr(C)]
187 pub struct cairo_scaled_font_t(c_void);
188 debug_impl!(cairo_scaled_font_t);
189 
190 #[repr(C)]
191 pub struct cairo_font_options_t(c_void);
192 debug_impl!(cairo_font_options_t);
193 
194 #[repr(C)]
195 #[derive(Clone, Copy, Debug)]
196 pub 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)]
205 pub 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)]
212 pub struct TextCluster {
213     pub num_bytes: c_int,
214     pub num_glyphs: c_int,
215 }
216 #[repr(C)]
217 #[derive(Clone, Copy, Debug)]
218 pub 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)]
228 pub 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 
239 impl ::std::fmt::Display for Matrix {
fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result240     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)]
247 pub struct cairo_user_data_key_t {
248     pub unused: c_int,
249 }
250 #[repr(C)]
251 #[derive(Debug, Clone, Copy)]
252 pub struct cairo_bool_t {
253     value: c_int,
254 }
255 
256 impl cairo_bool_t {
as_bool(self) -> bool257     pub fn as_bool(self) -> bool {
258         self.value != 0
259     }
260 }
261 
262 impl From<bool> for cairo_bool_t {
from(b: bool) -> cairo_bool_t263     fn from(b: bool) -> cairo_bool_t {
264         let value = if b { 1 } else { 0 };
265         cairo_bool_t { value }
266     }
267 }
268 
269 pub type CGContextRef = *mut c_void;
270 
271 pub type cairo_destroy_func_t = Option<unsafe extern "C" fn(*mut c_void)>;
272 pub type cairo_read_func_t =
273     Option<unsafe extern "C" fn(*mut c_void, *mut c_uchar, c_uint) -> cairo_status_t>;
274 pub type cairo_write_func_t =
275     Option<unsafe extern "C" fn(*mut c_void, *mut c_uchar, c_uint) -> cairo_status_t>;
276 
277 extern "C" {
278     // CAIRO CONTEXT
cairo_create(target: *mut cairo_surface_t) -> *mut cairo_t279     pub fn cairo_create(target: *mut cairo_surface_t) -> *mut cairo_t;
cairo_reference(cr: *mut cairo_t) -> *mut cairo_t280     pub fn cairo_reference(cr: *mut cairo_t) -> *mut cairo_t;
cairo_destroy(cr: *mut cairo_t)281     pub fn cairo_destroy(cr: *mut cairo_t);
cairo_status(cr: *mut cairo_t) -> cairo_status_t282     pub fn cairo_status(cr: *mut cairo_t) -> cairo_status_t;
cairo_save(cr: *mut cairo_t)283     pub fn cairo_save(cr: *mut cairo_t);
cairo_restore(cr: *mut cairo_t)284     pub fn cairo_restore(cr: *mut cairo_t);
cairo_get_target(cr: *mut cairo_t) -> *mut cairo_surface_t285     pub fn cairo_get_target(cr: *mut cairo_t) -> *mut cairo_surface_t;
cairo_push_group(cr: *mut cairo_t)286     pub fn cairo_push_group(cr: *mut cairo_t);
cairo_push_group_with_content(cr: *mut cairo_t, content: cairo_content_t)287     pub fn cairo_push_group_with_content(cr: *mut cairo_t, content: cairo_content_t);
cairo_pop_group(cr: *mut cairo_t) -> *mut cairo_pattern_t288     pub fn cairo_pop_group(cr: *mut cairo_t) -> *mut cairo_pattern_t;
cairo_pop_group_to_source(cr: *mut cairo_t)289     pub fn cairo_pop_group_to_source(cr: *mut cairo_t);
cairo_get_group_target(cr: *mut cairo_t) -> *mut cairo_surface_t290     pub fn cairo_get_group_target(cr: *mut cairo_t) -> *mut cairo_surface_t;
cairo_set_source_rgb(cr: *mut cairo_t, red: c_double, green: c_double, blue: c_double)291     pub fn cairo_set_source_rgb(cr: *mut cairo_t, red: c_double, green: c_double, blue: c_double);
cairo_set_source_rgba( cr: *mut cairo_t, red: c_double, green: c_double, blue: c_double, alpha: c_double, )292     pub fn cairo_set_source_rgba(
293         cr: *mut cairo_t,
294         red: c_double,
295         green: c_double,
296         blue: c_double,
297         alpha: c_double,
298     );
cairo_set_source(cr: *mut cairo_t, source: *mut cairo_pattern_t)299     pub fn cairo_set_source(cr: *mut cairo_t, source: *mut cairo_pattern_t);
cairo_set_source_surface( cr: *mut cairo_t, surface: *mut cairo_surface_t, x: c_double, y: c_double, )300     pub fn cairo_set_source_surface(
301         cr: *mut cairo_t,
302         surface: *mut cairo_surface_t,
303         x: c_double,
304         y: c_double,
305     );
cairo_get_source(cr: *mut cairo_t) -> *mut cairo_pattern_t306     pub fn cairo_get_source(cr: *mut cairo_t) -> *mut cairo_pattern_t;
cairo_set_antialias(cr: *mut cairo_t, antialias: cairo_antialias_t)307     pub fn cairo_set_antialias(cr: *mut cairo_t, antialias: cairo_antialias_t);
cairo_get_antialias(cr: *mut cairo_t) -> cairo_antialias_t308     pub fn cairo_get_antialias(cr: *mut cairo_t) -> cairo_antialias_t;
cairo_set_dash( cr: *mut cairo_t, dashes: *const c_double, num_dashes: c_int, offset: c_double, )309     pub fn cairo_set_dash(
310         cr: *mut cairo_t,
311         dashes: *const c_double,
312         num_dashes: c_int,
313         offset: c_double,
314     );
cairo_get_dash_count(cr: *mut cairo_t) -> c_int315     pub fn cairo_get_dash_count(cr: *mut cairo_t) -> c_int;
cairo_get_dash(cr: *mut cairo_t, dashes: *mut c_double, offset: *mut c_double)316     pub fn cairo_get_dash(cr: *mut cairo_t, dashes: *mut c_double, offset: *mut c_double);
cairo_set_fill_rule(cr: *mut cairo_t, fill_rule: cairo_fill_rule_t)317     pub fn cairo_set_fill_rule(cr: *mut cairo_t, fill_rule: cairo_fill_rule_t);
cairo_get_fill_rule(cr: *mut cairo_t) -> cairo_fill_rule_t318     pub fn cairo_get_fill_rule(cr: *mut cairo_t) -> cairo_fill_rule_t;
cairo_set_line_cap(cr: *mut cairo_t, line_cap: cairo_line_cap_t)319     pub fn cairo_set_line_cap(cr: *mut cairo_t, line_cap: cairo_line_cap_t);
cairo_get_line_cap(cr: *mut cairo_t) -> cairo_line_cap_t320     pub fn cairo_get_line_cap(cr: *mut cairo_t) -> cairo_line_cap_t;
cairo_set_line_join(cr: *mut cairo_t, line_join: cairo_line_join_t)321     pub fn cairo_set_line_join(cr: *mut cairo_t, line_join: cairo_line_join_t);
cairo_get_line_join(cr: *mut cairo_t) -> cairo_line_join_t322     pub fn cairo_get_line_join(cr: *mut cairo_t) -> cairo_line_join_t;
cairo_set_line_width(cr: *mut cairo_t, width: c_double)323     pub fn cairo_set_line_width(cr: *mut cairo_t, width: c_double);
cairo_get_line_width(cr: *mut cairo_t) -> c_double324     pub fn cairo_get_line_width(cr: *mut cairo_t) -> c_double;
cairo_set_miter_limit(cr: *mut cairo_t, limit: c_double)325     pub fn cairo_set_miter_limit(cr: *mut cairo_t, limit: c_double);
cairo_get_miter_limit(cr: *mut cairo_t) -> c_double326     pub fn cairo_get_miter_limit(cr: *mut cairo_t) -> c_double;
cairo_set_operator(cr: *mut cairo_t, op: cairo_operator_t)327     pub fn cairo_set_operator(cr: *mut cairo_t, op: cairo_operator_t);
cairo_get_operator(cr: *mut cairo_t) -> cairo_operator_t328     pub fn cairo_get_operator(cr: *mut cairo_t) -> cairo_operator_t;
cairo_set_tolerance(cr: *mut cairo_t, tolerance: c_double)329     pub fn cairo_set_tolerance(cr: *mut cairo_t, tolerance: c_double);
cairo_get_tolerance(cr: *mut cairo_t) -> c_double330     pub fn cairo_get_tolerance(cr: *mut cairo_t) -> c_double;
cairo_clip(cr: *mut cairo_t)331     pub fn cairo_clip(cr: *mut cairo_t);
cairo_clip_preserve(cr: *mut cairo_t)332     pub fn cairo_clip_preserve(cr: *mut cairo_t);
cairo_clip_extents( cr: *mut cairo_t, x1: *mut c_double, y1: *mut c_double, x2: *mut c_double, y2: *mut c_double, )333     pub fn cairo_clip_extents(
334         cr: *mut cairo_t,
335         x1: *mut c_double,
336         y1: *mut c_double,
337         x2: *mut c_double,
338         y2: *mut c_double,
339     );
cairo_in_clip(cr: *mut cairo_t, x: c_double, y: c_double) -> cairo_bool_t340     pub fn cairo_in_clip(cr: *mut cairo_t, x: c_double, y: c_double) -> cairo_bool_t;
cairo_reset_clip(cr: *mut cairo_t)341     pub fn cairo_reset_clip(cr: *mut cairo_t);
cairo_rectangle_list_destroy(rectangle_list: *mut cairo_rectangle_list_t)342     pub fn cairo_rectangle_list_destroy(rectangle_list: *mut cairo_rectangle_list_t);
cairo_copy_clip_rectangle_list(cr: *mut cairo_t) -> *mut cairo_rectangle_list_t343     pub fn cairo_copy_clip_rectangle_list(cr: *mut cairo_t) -> *mut cairo_rectangle_list_t;
cairo_fill(cr: *mut cairo_t)344     pub fn cairo_fill(cr: *mut cairo_t);
cairo_fill_preserve(cr: *mut cairo_t)345     pub fn cairo_fill_preserve(cr: *mut cairo_t);
cairo_fill_extents( cr: *mut cairo_t, x1: *mut c_double, y1: *mut c_double, x2: *mut c_double, y2: *mut c_double, )346     pub fn cairo_fill_extents(
347         cr: *mut cairo_t,
348         x1: *mut c_double,
349         y1: *mut c_double,
350         x2: *mut c_double,
351         y2: *mut c_double,
352     );
cairo_in_fill(cr: *mut cairo_t, x: c_double, y: c_double) -> cairo_bool_t353     pub fn cairo_in_fill(cr: *mut cairo_t, x: c_double, y: c_double) -> cairo_bool_t;
cairo_mask(cr: *mut cairo_t, pattern: *mut cairo_pattern_t)354     pub fn cairo_mask(cr: *mut cairo_t, pattern: *mut cairo_pattern_t);
cairo_mask_surface( cr: *mut cairo_t, surface: *mut cairo_surface_t, surface_x: c_double, surface_y: c_double, )355     pub fn cairo_mask_surface(
356         cr: *mut cairo_t,
357         surface: *mut cairo_surface_t,
358         surface_x: c_double,
359         surface_y: c_double,
360     );
cairo_paint(cr: *mut cairo_t)361     pub fn cairo_paint(cr: *mut cairo_t);
cairo_paint_with_alpha(cr: *mut cairo_t, alpha: c_double)362     pub fn cairo_paint_with_alpha(cr: *mut cairo_t, alpha: c_double);
cairo_stroke(cr: *mut cairo_t)363     pub fn cairo_stroke(cr: *mut cairo_t);
cairo_stroke_preserve(cr: *mut cairo_t)364     pub fn cairo_stroke_preserve(cr: *mut cairo_t);
cairo_stroke_extents( cr: *mut cairo_t, x1: *mut c_double, y1: *mut c_double, x2: *mut c_double, y2: *mut c_double, )365     pub fn cairo_stroke_extents(
366         cr: *mut cairo_t,
367         x1: *mut c_double,
368         y1: *mut c_double,
369         x2: *mut c_double,
370         y2: *mut c_double,
371     );
cairo_in_stroke(cr: *mut cairo_t, x: c_double, y: c_double) -> cairo_bool_t372     pub fn cairo_in_stroke(cr: *mut cairo_t, x: c_double, y: c_double) -> cairo_bool_t;
cairo_copy_page(cr: *mut cairo_t)373     pub fn cairo_copy_page(cr: *mut cairo_t);
cairo_show_page(cr: *mut cairo_t)374     pub fn cairo_show_page(cr: *mut cairo_t);
cairo_get_reference_count(cr: *mut cairo_t) -> c_uint375     pub fn cairo_get_reference_count(cr: *mut cairo_t) -> c_uint;
376     #[cfg(any(feature = "v1_16", feature = "dox"))]
cairo_tag_begin(cr: *mut cairo_t, tag_name: *const c_char, attributes: *const c_char)377     pub fn cairo_tag_begin(cr: *mut cairo_t, tag_name: *const c_char, attributes: *const c_char);
378     #[cfg(any(feature = "v1_16", feature = "dox"))]
cairo_tag_end(cr: *mut cairo_t, tag_name: *const c_char)379     pub fn cairo_tag_end(cr: *mut cairo_t, tag_name: *const c_char);
380 
381     // CAIRO UTILS
cairo_status_to_string(status: cairo_status_t) -> *const c_char382     pub fn cairo_status_to_string(status: cairo_status_t) -> *const c_char;
cairo_debug_reset_static_data()383     pub fn cairo_debug_reset_static_data();
cairo_version() -> c_int384     pub fn cairo_version() -> c_int;
cairo_version_string() -> *const c_char385     pub fn cairo_version_string() -> *const c_char;
386 
387     // CAIRO PATHS
cairo_copy_path(cr: *mut cairo_t) -> *mut cairo_path_t388     pub fn cairo_copy_path(cr: *mut cairo_t) -> *mut cairo_path_t;
cairo_copy_path_flat(cr: *mut cairo_t) -> *mut cairo_path_t389     pub fn cairo_copy_path_flat(cr: *mut cairo_t) -> *mut cairo_path_t;
cairo_path_destroy(path: *mut cairo_path_t)390     pub fn cairo_path_destroy(path: *mut cairo_path_t);
cairo_append_path(cr: *mut cairo_t, path: *mut cairo_path_t)391     pub fn cairo_append_path(cr: *mut cairo_t, path: *mut cairo_path_t);
cairo_has_current_point(cr: *mut cairo_t) -> cairo_bool_t392     pub fn cairo_has_current_point(cr: *mut cairo_t) -> cairo_bool_t;
cairo_get_current_point(cr: *mut cairo_t, x: *mut c_double, y: *mut c_double)393     pub fn cairo_get_current_point(cr: *mut cairo_t, x: *mut c_double, y: *mut c_double);
cairo_new_path(cr: *mut cairo_t)394     pub fn cairo_new_path(cr: *mut cairo_t);
cairo_new_sub_path(cr: *mut cairo_t)395     pub fn cairo_new_sub_path(cr: *mut cairo_t);
cairo_close_path(cr: *mut cairo_t)396     pub fn cairo_close_path(cr: *mut cairo_t);
cairo_arc( cr: *mut cairo_t, xc: c_double, yc: c_double, radius: c_double, angle1: c_double, angle2: c_double, )397     pub fn cairo_arc(
398         cr: *mut cairo_t,
399         xc: c_double,
400         yc: c_double,
401         radius: c_double,
402         angle1: c_double,
403         angle2: c_double,
404     );
cairo_arc_negative( cr: *mut cairo_t, xc: c_double, yc: c_double, radius: c_double, angle1: c_double, angle2: c_double, )405     pub fn cairo_arc_negative(
406         cr: *mut cairo_t,
407         xc: c_double,
408         yc: c_double,
409         radius: c_double,
410         angle1: c_double,
411         angle2: c_double,
412     );
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, )413     pub fn cairo_curve_to(
414         cr: *mut cairo_t,
415         x1: c_double,
416         y1: c_double,
417         x2: c_double,
418         y2: c_double,
419         x3: c_double,
420         y3: c_double,
421     );
cairo_line_to(cr: *mut cairo_t, x: c_double, y: c_double)422     pub fn cairo_line_to(cr: *mut cairo_t, x: c_double, y: c_double);
cairo_move_to(cr: *mut cairo_t, x: c_double, y: c_double)423     pub fn cairo_move_to(cr: *mut cairo_t, x: c_double, y: c_double);
cairo_rectangle( cr: *mut cairo_t, x: c_double, y: c_double, width: c_double, height: c_double, )424     pub fn cairo_rectangle(
425         cr: *mut cairo_t,
426         x: c_double,
427         y: c_double,
428         width: c_double,
429         height: c_double,
430     );
cairo_glyph_path(cr: *mut cairo_t, glyphs: *const Glyph, num_glyphs: c_int)431     pub fn cairo_glyph_path(cr: *mut cairo_t, glyphs: *const Glyph, num_glyphs: c_int);
cairo_text_path(cr: *mut cairo_t, utf8: *const c_char)432     pub fn cairo_text_path(cr: *mut cairo_t, utf8: *const c_char);
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, )433     pub fn cairo_rel_curve_to(
434         cr: *mut cairo_t,
435         dx1: c_double,
436         dy1: c_double,
437         dx2: c_double,
438         dy2: c_double,
439         dx3: c_double,
440         dy3: c_double,
441     );
cairo_rel_line_to(cr: *mut cairo_t, dx: c_double, dy: c_double)442     pub fn cairo_rel_line_to(cr: *mut cairo_t, dx: c_double, dy: c_double);
cairo_rel_move_to(cr: *mut cairo_t, dx: c_double, dy: c_double)443     pub fn cairo_rel_move_to(cr: *mut cairo_t, dx: c_double, dy: c_double);
cairo_path_extents( cr: *mut cairo_t, x1: *mut c_double, y1: *mut c_double, x2: *mut c_double, y2: *mut c_double, )444     pub fn cairo_path_extents(
445         cr: *mut cairo_t,
446         x1: *mut c_double,
447         y1: *mut c_double,
448         x2: *mut c_double,
449         y2: *mut c_double,
450     );
451 
452     // CAIRO TRANSFORMATIONS
cairo_translate(cr: *mut cairo_t, tx: c_double, ty: c_double)453     pub fn cairo_translate(cr: *mut cairo_t, tx: c_double, ty: c_double);
cairo_scale(cr: *mut cairo_t, sx: c_double, sy: c_double)454     pub fn cairo_scale(cr: *mut cairo_t, sx: c_double, sy: c_double);
cairo_rotate(cr: *mut cairo_t, angle: c_double)455     pub fn cairo_rotate(cr: *mut cairo_t, angle: c_double);
cairo_transform(cr: *mut cairo_t, matrix: *const Matrix)456     pub fn cairo_transform(cr: *mut cairo_t, matrix: *const Matrix);
cairo_set_matrix(cr: *mut cairo_t, matrix: *const Matrix)457     pub fn cairo_set_matrix(cr: *mut cairo_t, matrix: *const Matrix);
cairo_get_matrix(cr: *mut cairo_t, matrix: *mut Matrix)458     pub fn cairo_get_matrix(cr: *mut cairo_t, matrix: *mut Matrix);
cairo_identity_matrix(cr: *mut cairo_t)459     pub fn cairo_identity_matrix(cr: *mut cairo_t);
cairo_user_to_device(cr: *mut cairo_t, x: *mut c_double, y: *mut c_double)460     pub fn cairo_user_to_device(cr: *mut cairo_t, x: *mut c_double, y: *mut c_double);
cairo_user_to_device_distance(cr: *mut cairo_t, dx: *mut c_double, dy: *mut c_double)461     pub fn cairo_user_to_device_distance(cr: *mut cairo_t, dx: *mut c_double, dy: *mut c_double);
cairo_device_to_user(cr: *mut cairo_t, x: *mut c_double, y: *mut c_double)462     pub fn cairo_device_to_user(cr: *mut cairo_t, x: *mut c_double, y: *mut c_double);
cairo_device_to_user_distance(cr: *mut cairo_t, dx: *mut c_double, dy: *mut c_double)463     pub fn cairo_device_to_user_distance(cr: *mut cairo_t, dx: *mut c_double, dy: *mut c_double);
464 
465     // CAIRO PATTERNS
cairo_pattern_add_color_stop_rgb( pattern: *mut cairo_pattern_t, offset: c_double, red: c_double, green: c_double, blue: c_double, )466     pub fn cairo_pattern_add_color_stop_rgb(
467         pattern: *mut cairo_pattern_t,
468         offset: c_double,
469         red: c_double,
470         green: c_double,
471         blue: c_double,
472     );
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, )473     pub fn cairo_pattern_add_color_stop_rgba(
474         pattern: *mut cairo_pattern_t,
475         offset: c_double,
476         red: c_double,
477         green: c_double,
478         blue: c_double,
479         alpha: c_double,
480     );
cairo_pattern_get_color_stop_count( pattern: *mut cairo_pattern_t, count: *mut c_int, ) -> cairo_status_t481     pub fn cairo_pattern_get_color_stop_count(
482         pattern: *mut cairo_pattern_t,
483         count: *mut c_int,
484     ) -> cairo_status_t;
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_t485     pub fn cairo_pattern_get_color_stop_rgba(
486         pattern: *mut cairo_pattern_t,
487         index: c_int,
488         offset: *mut c_double,
489         red: *mut c_double,
490         green: *mut c_double,
491         blue: *mut c_double,
492         alpha: *mut c_double,
493     ) -> cairo_status_t;
cairo_pattern_create_rgb( red: c_double, green: c_double, blue: c_double, ) -> *mut cairo_pattern_t494     pub fn cairo_pattern_create_rgb(
495         red: c_double,
496         green: c_double,
497         blue: c_double,
498     ) -> *mut cairo_pattern_t;
cairo_pattern_create_rgba( red: c_double, green: c_double, blue: c_double, alpha: c_double, ) -> *mut cairo_pattern_t499     pub fn cairo_pattern_create_rgba(
500         red: c_double,
501         green: c_double,
502         blue: c_double,
503         alpha: c_double,
504     ) -> *mut cairo_pattern_t;
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_t505     pub fn cairo_pattern_get_rgba(
506         pattern: *mut cairo_pattern_t,
507         red: *mut c_double,
508         green: *mut c_double,
509         blue: *mut c_double,
510         alpha: *mut c_double,
511     ) -> cairo_status_t;
cairo_pattern_create_for_surface(surface: *mut cairo_surface_t) -> *mut cairo_pattern_t512     pub fn cairo_pattern_create_for_surface(surface: *mut cairo_surface_t) -> *mut cairo_pattern_t;
cairo_pattern_get_surface( pattern: *mut cairo_pattern_t, surface: *mut *mut cairo_surface_t, ) -> cairo_status_t513     pub fn cairo_pattern_get_surface(
514         pattern: *mut cairo_pattern_t,
515         surface: *mut *mut cairo_surface_t,
516     ) -> cairo_status_t;
cairo_pattern_create_linear( x0: c_double, y0: c_double, x1: c_double, y1: c_double, ) -> *mut cairo_pattern_t517     pub fn cairo_pattern_create_linear(
518         x0: c_double,
519         y0: c_double,
520         x1: c_double,
521         y1: c_double,
522     ) -> *mut cairo_pattern_t;
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_t523     pub fn cairo_pattern_get_linear_points(
524         pattern: *mut cairo_pattern_t,
525         x0: *mut c_double,
526         y0: *mut c_double,
527         x1: *mut c_double,
528         y1: *mut c_double,
529     ) -> cairo_status_t;
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_t530     pub fn cairo_pattern_create_radial(
531         cx0: c_double,
532         cy0: c_double,
533         radius0: c_double,
534         cx1: c_double,
535         cy1: c_double,
536         radius1: c_double,
537     ) -> *mut cairo_pattern_t;
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_t538     pub fn cairo_pattern_get_radial_circles(
539         pattern: *mut cairo_pattern_t,
540         x0: *mut c_double,
541         y0: *mut c_double,
542         r0: *mut c_double,
543         x1: *mut c_double,
544         y1: *mut c_double,
545         r1: *mut c_double,
546     ) -> cairo_status_t;
cairo_pattern_create_mesh() -> *mut cairo_pattern_t547     pub fn cairo_pattern_create_mesh() -> *mut cairo_pattern_t;
cairo_mesh_pattern_begin_patch(pattern: *mut cairo_pattern_t)548     pub fn cairo_mesh_pattern_begin_patch(pattern: *mut cairo_pattern_t);
cairo_mesh_pattern_end_patch(pattern: *mut cairo_pattern_t)549     pub fn cairo_mesh_pattern_end_patch(pattern: *mut cairo_pattern_t);
cairo_mesh_pattern_move_to(pattern: *mut cairo_pattern_t, x: c_double, y: c_double)550     pub fn cairo_mesh_pattern_move_to(pattern: *mut cairo_pattern_t, x: c_double, y: c_double);
cairo_mesh_pattern_line_to(pattern: *mut cairo_pattern_t, x: c_double, y: c_double)551     pub fn cairo_mesh_pattern_line_to(pattern: *mut cairo_pattern_t, x: c_double, y: c_double);
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, )552     pub fn cairo_mesh_pattern_curve_to(
553         pattern: *mut cairo_pattern_t,
554         x1: c_double,
555         y1: c_double,
556         x2: c_double,
557         y2: c_double,
558         x3: c_double,
559         y3: c_double,
560     );
cairo_mesh_pattern_set_control_point( pattern: *mut cairo_pattern_t, point_num: cairo_mesh_corner_t, x: c_double, y: c_double, )561     pub fn cairo_mesh_pattern_set_control_point(
562         pattern: *mut cairo_pattern_t,
563         point_num: cairo_mesh_corner_t,
564         x: c_double,
565         y: c_double,
566     );
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, )567     pub fn cairo_mesh_pattern_set_corner_color_rgb(
568         pattern: *mut cairo_pattern_t,
569         corner_num: cairo_mesh_corner_t,
570         red: c_double,
571         green: c_double,
572         blue: c_double,
573     );
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, )574     pub fn cairo_mesh_pattern_set_corner_color_rgba(
575         pattern: *mut cairo_pattern_t,
576         corner_num: cairo_mesh_corner_t,
577         red: c_double,
578         green: c_double,
579         blue: c_double,
580         alpha: c_double,
581     );
cairo_mesh_pattern_get_patch_count( pattern: *mut cairo_pattern_t, count: *mut c_uint, ) -> cairo_status_t582     pub fn cairo_mesh_pattern_get_patch_count(
583         pattern: *mut cairo_pattern_t,
584         count: *mut c_uint,
585     ) -> cairo_status_t;
cairo_mesh_pattern_get_path( pattern: *mut cairo_pattern_t, patch_num: c_uint, ) -> *mut cairo_path_t586     pub fn cairo_mesh_pattern_get_path(
587         pattern: *mut cairo_pattern_t,
588         patch_num: c_uint,
589     ) -> *mut cairo_path_t;
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_t590     pub fn cairo_mesh_pattern_get_control_point(
591         pattern: *mut cairo_pattern_t,
592         patch_num: c_uint,
593         point_num: cairo_mesh_corner_t,
594         x: *mut c_double,
595         y: *mut c_double,
596     ) -> cairo_status_t;
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_t597     pub fn cairo_mesh_pattern_get_corner_color_rgba(
598         pattern: *mut cairo_pattern_t,
599         patch_num: c_uint,
600         corner_num: cairo_mesh_corner_t,
601         red: *mut c_double,
602         green: *mut c_double,
603         blue: *mut c_double,
604         alpha: *mut c_double,
605     ) -> cairo_status_t;
cairo_pattern_reference(pattern: *mut cairo_pattern_t) -> *mut cairo_pattern_t606     pub fn cairo_pattern_reference(pattern: *mut cairo_pattern_t) -> *mut cairo_pattern_t;
cairo_pattern_destroy(pattern: *mut cairo_pattern_t)607     pub fn cairo_pattern_destroy(pattern: *mut cairo_pattern_t);
cairo_pattern_status(pattern: *mut cairo_pattern_t) -> cairo_status_t608     pub fn cairo_pattern_status(pattern: *mut cairo_pattern_t) -> cairo_status_t;
cairo_pattern_set_extend(pattern: *mut cairo_pattern_t, extend: cairo_extend_t)609     pub fn cairo_pattern_set_extend(pattern: *mut cairo_pattern_t, extend: cairo_extend_t);
cairo_pattern_get_extend(pattern: *mut cairo_pattern_t) -> cairo_extend_t610     pub fn cairo_pattern_get_extend(pattern: *mut cairo_pattern_t) -> cairo_extend_t;
cairo_pattern_set_filter(pattern: *mut cairo_pattern_t, filter: cairo_filter_t)611     pub fn cairo_pattern_set_filter(pattern: *mut cairo_pattern_t, filter: cairo_filter_t);
cairo_pattern_get_filter(pattern: *mut cairo_pattern_t) -> cairo_filter_t612     pub fn cairo_pattern_get_filter(pattern: *mut cairo_pattern_t) -> cairo_filter_t;
cairo_pattern_set_matrix(pattern: *mut cairo_pattern_t, matrix: *const Matrix)613     pub fn cairo_pattern_set_matrix(pattern: *mut cairo_pattern_t, matrix: *const Matrix);
cairo_pattern_get_matrix(pattern: *mut cairo_pattern_t, matrix: *mut Matrix)614     pub fn cairo_pattern_get_matrix(pattern: *mut cairo_pattern_t, matrix: *mut Matrix);
cairo_pattern_get_type(pattern: *mut cairo_pattern_t) -> cairo_pattern_type_t615     pub fn cairo_pattern_get_type(pattern: *mut cairo_pattern_t) -> cairo_pattern_type_t;
cairo_pattern_get_reference_count(pattern: *mut cairo_pattern_t) -> c_uint616     pub fn cairo_pattern_get_reference_count(pattern: *mut cairo_pattern_t) -> c_uint;
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_t617     pub fn cairo_pattern_set_user_data(
618         pattern: *mut cairo_pattern_t,
619         key: *const cairo_user_data_key_t,
620         user_data: *mut c_void,
621         destroy: cairo_destroy_func_t,
622     ) -> cairo_status_t;
cairo_pattern_get_user_data( pattern: *mut cairo_pattern_t, key: *const cairo_user_data_key_t, ) -> *mut c_void623     pub fn cairo_pattern_get_user_data(
624         pattern: *mut cairo_pattern_t,
625         key: *const cairo_user_data_key_t,
626     ) -> *mut c_void;
627 
628     // CAIRO REGIONS
cairo_region_create() -> *mut cairo_region_t629     pub fn cairo_region_create() -> *mut cairo_region_t;
cairo_region_create_rectangle( rectangle: *mut cairo_rectangle_int_t, ) -> *mut cairo_region_t630     pub fn cairo_region_create_rectangle(
631         rectangle: *mut cairo_rectangle_int_t,
632     ) -> *mut cairo_region_t;
cairo_region_create_rectangles( rects: *mut cairo_rectangle_int_t, count: c_int, ) -> *mut cairo_region_t633     pub fn cairo_region_create_rectangles(
634         rects: *mut cairo_rectangle_int_t,
635         count: c_int,
636     ) -> *mut cairo_region_t;
cairo_region_copy(original: *mut cairo_region_t) -> *mut cairo_region_t637     pub fn cairo_region_copy(original: *mut cairo_region_t) -> *mut cairo_region_t;
cairo_region_reference(region: *mut cairo_region_t) -> *mut cairo_region_t638     pub fn cairo_region_reference(region: *mut cairo_region_t) -> *mut cairo_region_t;
cairo_region_destroy(region: *mut cairo_region_t)639     pub fn cairo_region_destroy(region: *mut cairo_region_t);
cairo_region_status(region: *mut cairo_region_t) -> cairo_status_t640     pub fn cairo_region_status(region: *mut cairo_region_t) -> cairo_status_t;
cairo_region_get_extents( region: *mut cairo_region_t, extents: *mut cairo_rectangle_int_t, )641     pub fn cairo_region_get_extents(
642         region: *mut cairo_region_t,
643         extents: *mut cairo_rectangle_int_t,
644     );
cairo_region_num_rectangles(region: *mut cairo_region_t) -> c_int645     pub fn cairo_region_num_rectangles(region: *mut cairo_region_t) -> c_int;
cairo_region_get_rectangle( region: *mut cairo_region_t, nth: c_int, rectangle: *mut cairo_rectangle_int_t, )646     pub fn cairo_region_get_rectangle(
647         region: *mut cairo_region_t,
648         nth: c_int,
649         rectangle: *mut cairo_rectangle_int_t,
650     );
cairo_region_is_empty(region: *mut cairo_region_t) -> cairo_bool_t651     pub fn cairo_region_is_empty(region: *mut cairo_region_t) -> cairo_bool_t;
cairo_region_contains_point( region: *mut cairo_region_t, x: c_int, y: c_int, ) -> cairo_bool_t652     pub fn cairo_region_contains_point(
653         region: *mut cairo_region_t,
654         x: c_int,
655         y: c_int,
656     ) -> cairo_bool_t;
cairo_region_contains_rectangle( region: *mut cairo_region_t, rectangle: *mut cairo_rectangle_int_t, ) -> cairo_region_overlap_t657     pub fn cairo_region_contains_rectangle(
658         region: *mut cairo_region_t,
659         rectangle: *mut cairo_rectangle_int_t,
660     ) -> cairo_region_overlap_t;
cairo_region_equal(a: *mut cairo_region_t, b: *mut cairo_region_t) -> cairo_bool_t661     pub fn cairo_region_equal(a: *mut cairo_region_t, b: *mut cairo_region_t) -> cairo_bool_t;
cairo_region_translate(region: *mut cairo_region_t, dx: c_int, dy: c_int)662     pub fn cairo_region_translate(region: *mut cairo_region_t, dx: c_int, dy: c_int);
cairo_region_intersect( dst: *mut cairo_region_t, other: *mut cairo_region_t, ) -> cairo_status_t663     pub fn cairo_region_intersect(
664         dst: *mut cairo_region_t,
665         other: *mut cairo_region_t,
666     ) -> cairo_status_t;
cairo_region_intersect_rectangle( dst: *mut cairo_region_t, rectangle: *mut cairo_rectangle_int_t, ) -> cairo_status_t667     pub fn cairo_region_intersect_rectangle(
668         dst: *mut cairo_region_t,
669         rectangle: *mut cairo_rectangle_int_t,
670     ) -> cairo_status_t;
cairo_region_subtract( dst: *mut cairo_region_t, other: *mut cairo_region_t, ) -> cairo_status_t671     pub fn cairo_region_subtract(
672         dst: *mut cairo_region_t,
673         other: *mut cairo_region_t,
674     ) -> cairo_status_t;
cairo_region_subtract_rectangle( dst: *mut cairo_region_t, rectangle: *mut cairo_rectangle_int_t, ) -> cairo_status_t675     pub fn cairo_region_subtract_rectangle(
676         dst: *mut cairo_region_t,
677         rectangle: *mut cairo_rectangle_int_t,
678     ) -> cairo_status_t;
cairo_region_union( dst: *mut cairo_region_t, other: *mut cairo_region_t, ) -> cairo_status_t679     pub fn cairo_region_union(
680         dst: *mut cairo_region_t,
681         other: *mut cairo_region_t,
682     ) -> cairo_status_t;
cairo_region_union_rectangle( dst: *mut cairo_region_t, rectangle: *mut cairo_rectangle_int_t, ) -> cairo_status_t683     pub fn cairo_region_union_rectangle(
684         dst: *mut cairo_region_t,
685         rectangle: *mut cairo_rectangle_int_t,
686     ) -> cairo_status_t;
cairo_region_xor(dst: *mut cairo_region_t, other: *mut cairo_region_t) -> cairo_status_t687     pub fn cairo_region_xor(dst: *mut cairo_region_t, other: *mut cairo_region_t)
688         -> cairo_status_t;
cairo_region_xor_rectangle( dst: *mut cairo_region_t, rectangle: *mut cairo_rectangle_int_t, ) -> cairo_status_t689     pub fn cairo_region_xor_rectangle(
690         dst: *mut cairo_region_t,
691         rectangle: *mut cairo_rectangle_int_t,
692     ) -> cairo_status_t;
693 
694     // text
cairo_select_font_face( cr: *mut cairo_t, family: *const c_char, slant: cairo_font_slant_t, weight: cairo_font_weight_t, )695     pub fn cairo_select_font_face(
696         cr: *mut cairo_t,
697         family: *const c_char,
698         slant: cairo_font_slant_t,
699         weight: cairo_font_weight_t,
700     );
cairo_set_font_size(cr: *mut cairo_t, size: c_double)701     pub fn cairo_set_font_size(cr: *mut cairo_t, size: c_double);
cairo_set_font_matrix(cr: *mut cairo_t, matrix: *const Matrix)702     pub fn cairo_set_font_matrix(cr: *mut cairo_t, matrix: *const Matrix);
cairo_get_font_matrix(cr: *mut cairo_t, matrix: *mut Matrix)703     pub fn cairo_get_font_matrix(cr: *mut cairo_t, matrix: *mut Matrix);
cairo_set_font_options(cr: *mut cairo_t, options: *const cairo_font_options_t)704     pub fn cairo_set_font_options(cr: *mut cairo_t, options: *const cairo_font_options_t);
cairo_get_font_options(cr: *mut cairo_t, options: *mut cairo_font_options_t)705     pub fn cairo_get_font_options(cr: *mut cairo_t, options: *mut cairo_font_options_t);
cairo_set_font_face(cr: *mut cairo_t, font_face: *mut cairo_font_face_t)706     pub fn cairo_set_font_face(cr: *mut cairo_t, font_face: *mut cairo_font_face_t);
cairo_get_font_face(cr: *mut cairo_t) -> *mut cairo_font_face_t707     pub fn cairo_get_font_face(cr: *mut cairo_t) -> *mut cairo_font_face_t;
cairo_set_scaled_font(cr: *mut cairo_t, scaled_font: *mut cairo_scaled_font_t)708     pub fn cairo_set_scaled_font(cr: *mut cairo_t, scaled_font: *mut cairo_scaled_font_t);
cairo_get_scaled_font(cr: *mut cairo_t) -> *mut cairo_scaled_font_t709     pub fn cairo_get_scaled_font(cr: *mut cairo_t) -> *mut cairo_scaled_font_t;
cairo_show_text(cr: *mut cairo_t, utf8: *const c_char)710     pub fn cairo_show_text(cr: *mut cairo_t, utf8: *const c_char);
cairo_show_glyphs(cr: *mut cairo_t, glyphs: *const Glyph, num_glyphs: c_int)711     pub fn cairo_show_glyphs(cr: *mut cairo_t, glyphs: *const Glyph, num_glyphs: c_int);
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, )712     pub fn cairo_show_text_glyphs(
713         cr: *mut cairo_t,
714         utf8: *const c_char,
715         utf8_len: c_int,
716         glyphs: *const Glyph,
717         num_glyphs: c_int,
718         clusters: *const TextCluster,
719         num_clusters: c_int,
720         cluster_flags: cairo_text_cluster_flags_t,
721     );
cairo_font_extents(cr: *mut cairo_t, extents: *mut FontExtents)722     pub fn cairo_font_extents(cr: *mut cairo_t, extents: *mut FontExtents);
cairo_text_extents(cr: *mut cairo_t, utf8: *const c_char, extents: *mut TextExtents)723     pub fn cairo_text_extents(cr: *mut cairo_t, utf8: *const c_char, extents: *mut TextExtents);
cairo_glyph_extents( cr: *mut cairo_t, glyphs: *const Glyph, num_glyphs: c_int, extents: *mut TextExtents, )724     pub fn cairo_glyph_extents(
725         cr: *mut cairo_t,
726         glyphs: *const Glyph,
727         num_glyphs: c_int,
728         extents: *mut TextExtents,
729     );
cairo_toy_font_face_create( family: *const c_char, slant: cairo_font_slant_t, weight: cairo_font_weight_t, ) -> *mut cairo_font_face_t730     pub fn cairo_toy_font_face_create(
731         family: *const c_char,
732         slant: cairo_font_slant_t,
733         weight: cairo_font_weight_t,
734     ) -> *mut cairo_font_face_t;
cairo_toy_font_face_get_family(font_face: *mut cairo_font_face_t) -> *const c_char735     pub fn cairo_toy_font_face_get_family(font_face: *mut cairo_font_face_t) -> *const c_char;
cairo_toy_font_face_get_slant(font_face: *mut cairo_font_face_t) -> cairo_font_slant_t736     pub fn cairo_toy_font_face_get_slant(font_face: *mut cairo_font_face_t) -> cairo_font_slant_t;
cairo_toy_font_face_get_weight(font_face: *mut cairo_font_face_t) -> cairo_font_weight_t737     pub fn cairo_toy_font_face_get_weight(font_face: *mut cairo_font_face_t)
738         -> cairo_font_weight_t;
cairo_glyph_allocate(num_glyphs: c_int) -> *mut Glyph739     pub fn cairo_glyph_allocate(num_glyphs: c_int) -> *mut Glyph;
cairo_glyph_free(glyphs: *mut Glyph)740     pub fn cairo_glyph_free(glyphs: *mut Glyph);
cairo_text_cluster_allocate(num_clusters: c_int) -> *mut TextCluster741     pub fn cairo_text_cluster_allocate(num_clusters: c_int) -> *mut TextCluster;
cairo_text_cluster_free(clusters: *mut TextCluster)742     pub fn cairo_text_cluster_free(clusters: *mut TextCluster);
cairo_ft_font_face_get_synthesize( font_face: *mut cairo_font_face_t, ) -> cairo_ft_synthesize_t743     pub fn cairo_ft_font_face_get_synthesize(
744         font_face: *mut cairo_font_face_t,
745     ) -> cairo_ft_synthesize_t;
cairo_ft_font_face_set_synthesize( font_face: *mut cairo_font_face_t, synth_flags: cairo_ft_synthesize_t, )746     pub fn cairo_ft_font_face_set_synthesize(
747         font_face: *mut cairo_font_face_t,
748         synth_flags: cairo_ft_synthesize_t,
749     );
cairo_ft_font_face_unset_synthesize( font_face: *mut cairo_font_face_t, synth_flags: cairo_ft_synthesize_t, )750     pub fn cairo_ft_font_face_unset_synthesize(
751         font_face: *mut cairo_font_face_t,
752         synth_flags: cairo_ft_synthesize_t,
753     );
754 
755     // CAIRO RASTER
756     //pub fn cairo_pattern_create_raster_source(user_data: *mut void, content: Content, width: c_int, height: c_int) -> *mut cairo_pattern_t;
757     //pub fn cairo_raster_source_pattern_set_callback_data(pattern: *mut cairo_pattern_t, data: *mut void);
758     //pub fn cairo_raster_source_pattern_get_callback_data(pattern: *mut cairo_pattern_t) -> *mut void;
759     /* FIXME how do we do these _func_t types?
760     pub fn cairo_raster_source_pattern_set_acquire(pattern: *mut cairo_pattern_t, acquire: cairo_raster_source_acquire_func_t, release: cairo_raster_source_release_func_t);
761     pub fn cairo_raster_source_pattern_get_acquire(pattern: *mut cairo_pattern_t, acquire: *mut cairo_raster_source_acquire_func_t, release: *mut cairo_raster_source_release_func_t);
762     pub fn cairo_raster_source_pattern_set_snapshot(pattern: *mut cairo_pattern_t, snapshot: cairo_raster_source_snapshot_func_t);
763     pub fn cairo_raster_source_pattern_get_snapshot(pattern: *mut cairo_pattern_t) -> cairo_raster_source_snapshot_func_t;
764     pub fn cairo_raster_source_pattern_set_copy(pattern: *mut cairo_pattern_t, copy: cairo_raster_source_copy_func_t);
765     pub fn cairo_raster_source_pattern_get_copy(pattern: *mut cairo_pattern_t) -> cairo_raster_source_copy_func_t;
766     pub fn cairo_raster_source_pattern_set_finish(pattern: *mut cairo_pattern_t, finish: cairo_raster_source_finish_func_t);
767     pub fn cairo_raster_source_pattern_get_finish(pattern: *mut cairo_pattern_t) -> cairo_raster_source_finish_func_t;
768     */
769 
770     //cairo_surface_t     (*mut cairo_raster_source_acquire_func_t)
771     //                                                        (pattern: *mut cairo_pattern_t, callback_data: *mut void, target: *mut cairo_surface_t, extents: *mut cairo_rectangle_int_t);
772     //void                (*mut cairo_raster_source_release_func_t)
773     //                                                        (pattern: *mut cairo_pattern_t, callback_data: *mut void, surface: *mut cairo_surface_t);
774     //Status      (*mut cairo_raster_source_snapshot_func_t)
775     //                                                        (pattern: *mut cairo_pattern_t, callback_data: *mut void);
776     //Status      (*mut cairo_raster_source_copy_func_t)  (pattern: *mut cairo_pattern_t, callback_data: *mut void, other: *mut cairo_pattern_t);
777     //void                (*mut cairo_raster_source_finish_func_t)
778     //                                                        (pattern: *mut cairo_pattern_t, callback_data: *mut void);
779 
780     //CAIRO FONT
cairo_font_face_reference(font_face: *mut cairo_font_face_t) -> *mut cairo_font_face_t781     pub fn cairo_font_face_reference(font_face: *mut cairo_font_face_t) -> *mut cairo_font_face_t;
cairo_font_face_destroy(font_face: *mut cairo_font_face_t)782     pub fn cairo_font_face_destroy(font_face: *mut cairo_font_face_t);
cairo_font_face_status(font_face: *mut cairo_font_face_t) -> cairo_status_t783     pub fn cairo_font_face_status(font_face: *mut cairo_font_face_t) -> cairo_status_t;
cairo_font_face_get_type(font_face: *mut cairo_font_face_t) -> cairo_font_type_t784     pub fn cairo_font_face_get_type(font_face: *mut cairo_font_face_t) -> cairo_font_type_t;
cairo_font_face_get_reference_count(font_face: *mut cairo_font_face_t) -> c_uint785     pub fn cairo_font_face_get_reference_count(font_face: *mut cairo_font_face_t) -> c_uint;
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_t786     pub fn cairo_font_face_set_user_data(
787         font_face: *mut cairo_font_face_t,
788         key: *const cairo_user_data_key_t,
789         user_data: *mut c_void,
790         destroy: cairo_destroy_func_t,
791     ) -> cairo_status_t;
cairo_font_face_get_user_data( font_face: *mut cairo_font_face_t, key: *const cairo_user_data_key_t, ) -> *mut c_void792     pub fn cairo_font_face_get_user_data(
793         font_face: *mut cairo_font_face_t,
794         key: *const cairo_user_data_key_t,
795     ) -> *mut c_void;
796 
797     // CAIRO SCALED FONT
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_t798     pub fn cairo_scaled_font_create(
799         font_face: *mut cairo_font_face_t,
800         font_matrix: *const Matrix,
801         ctm: *const Matrix,
802         options: *const cairo_font_options_t,
803     ) -> *mut cairo_scaled_font_t;
cairo_scaled_font_reference( scaled_font: *mut cairo_scaled_font_t, ) -> *mut cairo_scaled_font_t804     pub fn cairo_scaled_font_reference(
805         scaled_font: *mut cairo_scaled_font_t,
806     ) -> *mut cairo_scaled_font_t;
cairo_scaled_font_destroy(scaled_font: *mut cairo_scaled_font_t)807     pub fn cairo_scaled_font_destroy(scaled_font: *mut cairo_scaled_font_t);
cairo_scaled_font_status(scaled_font: *mut cairo_scaled_font_t) -> cairo_status_t808     pub fn cairo_scaled_font_status(scaled_font: *mut cairo_scaled_font_t) -> cairo_status_t;
cairo_scaled_font_extents( scaled_font: *mut cairo_scaled_font_t, extents: *mut FontExtents, )809     pub fn cairo_scaled_font_extents(
810         scaled_font: *mut cairo_scaled_font_t,
811         extents: *mut FontExtents,
812     );
cairo_scaled_font_text_extents( scaled_font: *mut cairo_scaled_font_t, utf8: *const c_char, extents: *mut TextExtents, )813     pub fn cairo_scaled_font_text_extents(
814         scaled_font: *mut cairo_scaled_font_t,
815         utf8: *const c_char,
816         extents: *mut TextExtents,
817     );
cairo_scaled_font_glyph_extents( scaled_font: *mut cairo_scaled_font_t, glyphs: *const Glyph, num_glyphs: c_int, extents: *mut TextExtents, )818     pub fn cairo_scaled_font_glyph_extents(
819         scaled_font: *mut cairo_scaled_font_t,
820         glyphs: *const Glyph,
821         num_glyphs: c_int,
822         extents: *mut TextExtents,
823     );
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_t824     pub fn cairo_scaled_font_text_to_glyphs(
825         scaled_font: *mut cairo_scaled_font_t,
826         x: c_double,
827         y: c_double,
828         utf8: *const c_char,
829         utf8_len: c_int,
830         glyphs: *mut *mut Glyph,
831         num_glyphs: *mut c_int,
832         clusters: *mut *mut TextCluster,
833         num_clusters: *mut c_int,
834         cluster_flags: *mut cairo_text_cluster_flags_t,
835     ) -> cairo_status_t;
cairo_scaled_font_get_font_face( scaled_font: *mut cairo_scaled_font_t, ) -> *mut cairo_font_face_t836     pub fn cairo_scaled_font_get_font_face(
837         scaled_font: *mut cairo_scaled_font_t,
838     ) -> *mut cairo_font_face_t;
cairo_scaled_font_get_font_options( scaled_font: *mut cairo_scaled_font_t, options: *mut cairo_font_options_t, )839     pub fn cairo_scaled_font_get_font_options(
840         scaled_font: *mut cairo_scaled_font_t,
841         options: *mut cairo_font_options_t,
842     );
cairo_scaled_font_get_font_matrix( scaled_font: *mut cairo_scaled_font_t, font_matrix: *mut Matrix, )843     pub fn cairo_scaled_font_get_font_matrix(
844         scaled_font: *mut cairo_scaled_font_t,
845         font_matrix: *mut Matrix,
846     );
cairo_scaled_font_get_ctm(scaled_font: *mut cairo_scaled_font_t, ctm: *mut Matrix)847     pub fn cairo_scaled_font_get_ctm(scaled_font: *mut cairo_scaled_font_t, ctm: *mut Matrix);
cairo_scaled_font_get_scale_matrix( scaled_font: *mut cairo_scaled_font_t, scale_matrix: *mut Matrix, )848     pub fn cairo_scaled_font_get_scale_matrix(
849         scaled_font: *mut cairo_scaled_font_t,
850         scale_matrix: *mut Matrix,
851     );
cairo_scaled_font_get_type(scaled_font: *mut cairo_scaled_font_t) -> cairo_font_type_t852     pub fn cairo_scaled_font_get_type(scaled_font: *mut cairo_scaled_font_t) -> cairo_font_type_t;
cairo_scaled_font_get_reference_count(font_face: *mut cairo_scaled_font_t) -> c_uint853     pub fn cairo_scaled_font_get_reference_count(font_face: *mut cairo_scaled_font_t) -> c_uint;
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_t854     pub fn cairo_scaled_font_set_user_data(
855         scaled_font: *mut cairo_scaled_font_t,
856         key: *const cairo_user_data_key_t,
857         user_data: *mut c_void,
858         destroy: cairo_destroy_func_t,
859     ) -> cairo_status_t;
cairo_scaled_font_get_user_data( scaled_font: *mut cairo_scaled_font_t, key: *const cairo_user_data_key_t, ) -> *mut c_void860     pub fn cairo_scaled_font_get_user_data(
861         scaled_font: *mut cairo_scaled_font_t,
862         key: *const cairo_user_data_key_t,
863     ) -> *mut c_void;
864 
865     // CAIRO FONT OPTIONS
cairo_font_options_create() -> *mut cairo_font_options_t866     pub fn cairo_font_options_create() -> *mut cairo_font_options_t;
cairo_font_options_copy( original: *const cairo_font_options_t, ) -> *mut cairo_font_options_t867     pub fn cairo_font_options_copy(
868         original: *const cairo_font_options_t,
869     ) -> *mut cairo_font_options_t;
cairo_font_options_destroy(options: *mut cairo_font_options_t)870     pub fn cairo_font_options_destroy(options: *mut cairo_font_options_t);
cairo_font_options_status(options: *mut cairo_font_options_t) -> cairo_status_t871     pub fn cairo_font_options_status(options: *mut cairo_font_options_t) -> cairo_status_t;
cairo_font_options_merge( options: *mut cairo_font_options_t, other: *const cairo_font_options_t, )872     pub fn cairo_font_options_merge(
873         options: *mut cairo_font_options_t,
874         other: *const cairo_font_options_t,
875     );
cairo_font_options_hash(options: *const cairo_font_options_t) -> c_ulong876     pub fn cairo_font_options_hash(options: *const cairo_font_options_t) -> c_ulong;
cairo_font_options_equal( options: *const cairo_font_options_t, other: *const cairo_font_options_t, ) -> cairo_bool_t877     pub fn cairo_font_options_equal(
878         options: *const cairo_font_options_t,
879         other: *const cairo_font_options_t,
880     ) -> cairo_bool_t;
cairo_font_options_set_antialias( options: *mut cairo_font_options_t, antialias: cairo_antialias_t, )881     pub fn cairo_font_options_set_antialias(
882         options: *mut cairo_font_options_t,
883         antialias: cairo_antialias_t,
884     );
cairo_font_options_get_antialias( options: *const cairo_font_options_t, ) -> cairo_antialias_t885     pub fn cairo_font_options_get_antialias(
886         options: *const cairo_font_options_t,
887     ) -> cairo_antialias_t;
cairo_font_options_set_subpixel_order( options: *mut cairo_font_options_t, subpixel_order: cairo_subpixel_order_t, )888     pub fn cairo_font_options_set_subpixel_order(
889         options: *mut cairo_font_options_t,
890         subpixel_order: cairo_subpixel_order_t,
891     );
cairo_font_options_get_subpixel_order( options: *const cairo_font_options_t, ) -> cairo_subpixel_order_t892     pub fn cairo_font_options_get_subpixel_order(
893         options: *const cairo_font_options_t,
894     ) -> cairo_subpixel_order_t;
cairo_font_options_set_hint_style( options: *mut cairo_font_options_t, hint_style: cairo_hint_style_t, )895     pub fn cairo_font_options_set_hint_style(
896         options: *mut cairo_font_options_t,
897         hint_style: cairo_hint_style_t,
898     );
cairo_font_options_get_hint_style( options: *const cairo_font_options_t, ) -> cairo_hint_style_t899     pub fn cairo_font_options_get_hint_style(
900         options: *const cairo_font_options_t,
901     ) -> cairo_hint_style_t;
cairo_font_options_set_hint_metrics( options: *mut cairo_font_options_t, hint_metrics: cairo_hint_metrics_t, )902     pub fn cairo_font_options_set_hint_metrics(
903         options: *mut cairo_font_options_t,
904         hint_metrics: cairo_hint_metrics_t,
905     );
cairo_font_options_get_hint_metrics( options: *const cairo_font_options_t, ) -> cairo_hint_metrics_t906     pub fn cairo_font_options_get_hint_metrics(
907         options: *const cairo_font_options_t,
908     ) -> cairo_hint_metrics_t;
909     #[cfg(any(feature = "v1_16", feature = "dox"))]
cairo_font_options_get_variations(options: *mut cairo_font_options_t) -> *const c_char910     pub fn cairo_font_options_get_variations(options: *mut cairo_font_options_t) -> *const c_char;
911     #[cfg(any(feature = "v1_16", feature = "dox"))]
cairo_font_options_set_variations( options: *mut cairo_font_options_t, variations: *const c_char, )912     pub fn cairo_font_options_set_variations(
913         options: *mut cairo_font_options_t,
914         variations: *const c_char,
915     );
916 
917     // CAIRO MATRIX
cairo_matrix_multiply(matrix: *mut Matrix, left: *const Matrix, right: *const Matrix)918     pub fn cairo_matrix_multiply(matrix: *mut Matrix, left: *const Matrix, right: *const Matrix);
cairo_matrix_init( matrix: *mut Matrix, xx: f64, yx: f64, xy: f64, yy: f64, x0: f64, y0: f64, )919     pub fn cairo_matrix_init(
920         matrix: *mut Matrix,
921         xx: f64,
922         yx: f64,
923         xy: f64,
924         yy: f64,
925         x0: f64,
926         y0: f64,
927     );
cairo_matrix_init_identity(matrix: *mut Matrix)928     pub fn cairo_matrix_init_identity(matrix: *mut Matrix);
cairo_matrix_translate(matrix: *mut Matrix, tx: f64, ty: f64)929     pub fn cairo_matrix_translate(matrix: *mut Matrix, tx: f64, ty: f64);
cairo_matrix_scale(matrix: *mut Matrix, sx: f64, sy: f64)930     pub fn cairo_matrix_scale(matrix: *mut Matrix, sx: f64, sy: f64);
cairo_matrix_rotate(matrix: *mut Matrix, angle: f64)931     pub fn cairo_matrix_rotate(matrix: *mut Matrix, angle: f64);
cairo_matrix_invert(matrix: *mut Matrix) -> cairo_status_t932     pub fn cairo_matrix_invert(matrix: *mut Matrix) -> cairo_status_t;
cairo_matrix_transform_distance(matrix: *const Matrix, dx: *mut f64, dy: *mut f64)933     pub fn cairo_matrix_transform_distance(matrix: *const Matrix, dx: *mut f64, dy: *mut f64);
cairo_matrix_transform_point(matrix: *const Matrix, x: *mut f64, y: *mut f64)934     pub fn cairo_matrix_transform_point(matrix: *const Matrix, x: *mut f64, y: *mut f64);
935 
936     // CAIRO SURFACE
cairo_surface_destroy(surface: *mut cairo_surface_t)937     pub fn cairo_surface_destroy(surface: *mut cairo_surface_t);
cairo_surface_flush(surface: *mut cairo_surface_t)938     pub fn cairo_surface_flush(surface: *mut cairo_surface_t);
cairo_surface_finish(surface: *mut cairo_surface_t)939     pub fn cairo_surface_finish(surface: *mut cairo_surface_t);
cairo_surface_status(surface: *mut cairo_surface_t) -> cairo_status_t940     pub fn cairo_surface_status(surface: *mut cairo_surface_t) -> cairo_status_t;
cairo_surface_get_type(surface: *mut cairo_surface_t) -> cairo_surface_type_t941     pub fn cairo_surface_get_type(surface: *mut cairo_surface_t) -> cairo_surface_type_t;
cairo_surface_reference(surface: *mut cairo_surface_t) -> *mut cairo_surface_t942     pub fn cairo_surface_reference(surface: *mut cairo_surface_t) -> *mut cairo_surface_t;
cairo_surface_get_user_data( surface: *mut cairo_surface_t, key: *const cairo_user_data_key_t, ) -> *mut c_void943     pub fn cairo_surface_get_user_data(
944         surface: *mut cairo_surface_t,
945         key: *const cairo_user_data_key_t,
946     ) -> *mut c_void;
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_t947     pub fn cairo_surface_set_user_data(
948         surface: *mut cairo_surface_t,
949         key: *const cairo_user_data_key_t,
950         user_data: *mut c_void,
951         destroy: cairo_destroy_func_t,
952     ) -> cairo_status_t;
cairo_surface_get_reference_count(surface: *mut cairo_surface_t) -> c_uint953     pub fn cairo_surface_get_reference_count(surface: *mut cairo_surface_t) -> c_uint;
cairo_surface_mark_dirty(surface: *mut cairo_surface_t)954     pub fn cairo_surface_mark_dirty(surface: *mut cairo_surface_t);
cairo_surface_create_similar( surface: *mut cairo_surface_t, content: cairo_content_t, width: c_int, height: c_int, ) -> *mut cairo_surface_t955     pub fn cairo_surface_create_similar(
956         surface: *mut cairo_surface_t,
957         content: cairo_content_t,
958         width: c_int,
959         height: c_int,
960     ) -> *mut cairo_surface_t;
cairo_surface_get_mime_data( surface: *mut cairo_surface_t, mime_type: *const c_char, data: *const *mut u8, length: *mut c_ulong, )961     pub fn cairo_surface_get_mime_data(
962         surface: *mut cairo_surface_t,
963         mime_type: *const c_char,
964         data: *const *mut u8,
965         length: *mut c_ulong,
966     );
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_t967     pub fn cairo_surface_set_mime_data(
968         surface: *mut cairo_surface_t,
969         mime_type: *const c_char,
970         data: *const u8,
971         length: c_ulong,
972         destroy: cairo_destroy_func_t,
973         closure: *const u8,
974     ) -> cairo_status_t;
cairo_surface_supports_mime_type( surface: *mut cairo_surface_t, mime_type: *const c_char, ) -> cairo_bool_t975     pub fn cairo_surface_supports_mime_type(
976         surface: *mut cairo_surface_t,
977         mime_type: *const c_char,
978     ) -> cairo_bool_t;
cairo_surface_set_device_offset( surface: *mut cairo_surface_t, x_offset: c_double, y_offset: c_double, )979     pub fn cairo_surface_set_device_offset(
980         surface: *mut cairo_surface_t,
981         x_offset: c_double,
982         y_offset: c_double,
983     );
cairo_surface_get_device_offset( surface: *mut cairo_surface_t, x_offset: *mut c_double, y_offset: *mut c_double, )984     pub fn cairo_surface_get_device_offset(
985         surface: *mut cairo_surface_t,
986         x_offset: *mut c_double,
987         y_offset: *mut c_double,
988     );
989     #[cfg(any(feature = "v1_14", feature = "dox"))]
cairo_surface_get_device_scale( surface: *mut cairo_surface_t, x_scale: *mut c_double, y_scale: *mut c_double, )990     pub fn cairo_surface_get_device_scale(
991         surface: *mut cairo_surface_t,
992         x_scale: *mut c_double,
993         y_scale: *mut c_double,
994     );
995     #[cfg(any(feature = "v1_14", feature = "dox"))]
cairo_surface_set_device_scale( surface: *mut cairo_surface_t, x_scale: c_double, y_scale: c_double, )996     pub fn cairo_surface_set_device_scale(
997         surface: *mut cairo_surface_t,
998         x_scale: c_double,
999         y_scale: c_double,
1000     );
cairo_surface_get_fallback_resolution( surface: *mut cairo_surface_t, x_pixels_per_inch: *mut c_double, y_pixels_per_inch: *mut c_double, )1001     pub fn cairo_surface_get_fallback_resolution(
1002         surface: *mut cairo_surface_t,
1003         x_pixels_per_inch: *mut c_double,
1004         y_pixels_per_inch: *mut c_double,
1005     );
cairo_surface_set_fallback_resolution( surface: *mut cairo_surface_t, x_pixels_per_inch: c_double, x_pixels_per_inch: c_double, )1006     pub fn cairo_surface_set_fallback_resolution(
1007         surface: *mut cairo_surface_t,
1008         x_pixels_per_inch: c_double,
1009         x_pixels_per_inch: c_double,
1010     );
cairo_recording_surface_get_extents( surface: *mut cairo_surface_t, extents: *mut cairo_rectangle_t, ) -> cairo_bool_t1011     pub fn cairo_recording_surface_get_extents(
1012         surface: *mut cairo_surface_t,
1013         extents: *mut cairo_rectangle_t,
1014     ) -> cairo_bool_t;
cairo_recording_surface_create( content: cairo_content_t, extents: *const cairo_rectangle_t, ) -> *mut cairo_surface_t1015     pub fn cairo_recording_surface_create(
1016         content: cairo_content_t,
1017         extents: *const cairo_rectangle_t,
1018     ) -> *mut cairo_surface_t;
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, )1019     pub fn cairo_recording_surface_ink_extents(
1020         surface: *mut cairo_surface_t,
1021         x0: *mut c_double,
1022         y0: *mut c_double,
1023         width: *mut c_double,
1024         height: *mut c_double,
1025     );
cairo_surface_create_similar_image( other: *mut cairo_surface_t, format: cairo_format_t, width: c_int, height: c_int, ) -> *mut cairo_surface_t1026     pub fn cairo_surface_create_similar_image(
1027         other: *mut cairo_surface_t,
1028         format: cairo_format_t,
1029         width: c_int,
1030         height: c_int,
1031     ) -> *mut cairo_surface_t;
cairo_surface_map_to_image( surface: *mut cairo_surface_t, extents: *const cairo_rectangle_int_t, ) -> *mut cairo_surface_t1032     pub fn cairo_surface_map_to_image(
1033         surface: *mut cairo_surface_t,
1034         extents: *const cairo_rectangle_int_t,
1035     ) -> *mut cairo_surface_t;
cairo_surface_unmap_image(surface: *mut cairo_surface_t, image: *mut cairo_surface_t)1036     pub fn cairo_surface_unmap_image(surface: *mut cairo_surface_t, image: *mut cairo_surface_t);
1037 
1038     // CAIRO IMAGE SURFACE
cairo_image_surface_create( format: cairo_format_t, width: c_int, height: c_int, ) -> *mut cairo_surface_t1039     pub fn cairo_image_surface_create(
1040         format: cairo_format_t,
1041         width: c_int,
1042         height: c_int,
1043     ) -> *mut cairo_surface_t;
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_t1044     pub fn cairo_image_surface_create_for_data(
1045         data: *mut u8,
1046         format: cairo_format_t,
1047         width: c_int,
1048         height: c_int,
1049         stride: c_int,
1050     ) -> *mut cairo_surface_t;
cairo_image_surface_get_data(surface: *mut cairo_surface_t) -> *mut u81051     pub fn cairo_image_surface_get_data(surface: *mut cairo_surface_t) -> *mut u8;
cairo_image_surface_get_format(surface: *mut cairo_surface_t) -> cairo_format_t1052     pub fn cairo_image_surface_get_format(surface: *mut cairo_surface_t) -> cairo_format_t;
cairo_image_surface_get_height(surface: *mut cairo_surface_t) -> c_int1053     pub fn cairo_image_surface_get_height(surface: *mut cairo_surface_t) -> c_int;
cairo_image_surface_get_stride(surface: *mut cairo_surface_t) -> c_int1054     pub fn cairo_image_surface_get_stride(surface: *mut cairo_surface_t) -> c_int;
cairo_image_surface_get_width(surface: *mut cairo_surface_t) -> c_int1055     pub fn cairo_image_surface_get_width(surface: *mut cairo_surface_t) -> c_int;
cairo_format_stride_for_width(format: cairo_format_t, width: c_int) -> c_int1056     pub fn cairo_format_stride_for_width(format: cairo_format_t, width: c_int) -> c_int;
1057     #[cfg(any(feature = "png", feature = "dox"))]
cairo_image_surface_create_from_png_stream( read_func: cairo_read_func_t, closure: *mut c_void, ) -> *mut cairo_surface_t1058     pub fn cairo_image_surface_create_from_png_stream(
1059         read_func: cairo_read_func_t,
1060         closure: *mut c_void,
1061     ) -> *mut cairo_surface_t;
1062     #[cfg(any(feature = "png", feature = "dox"))]
cairo_surface_write_to_png_stream( surface: *mut cairo_surface_t, write_func: cairo_write_func_t, closure: *mut c_void, ) -> cairo_status_t1063     pub fn cairo_surface_write_to_png_stream(
1064         surface: *mut cairo_surface_t,
1065         write_func: cairo_write_func_t,
1066         closure: *mut c_void,
1067     ) -> cairo_status_t;
1068 
1069     // CAIRO PDF
1070     #[cfg(any(feature = "pdf", feature = "dox"))]
cairo_pdf_surface_create( filename: *const c_char, width_in_points: c_double, height_in_points: c_double, ) -> *mut cairo_surface_t1071     pub fn cairo_pdf_surface_create(
1072         filename: *const c_char,
1073         width_in_points: c_double,
1074         height_in_points: c_double,
1075     ) -> *mut cairo_surface_t;
1076     #[cfg(any(feature = "pdf", feature = "dox"))]
cairo_pdf_surface_create_for_stream( write_func: cairo_write_func_t, closure: *mut c_void, width_in_points: c_double, height_in_points: c_double, ) -> *mut cairo_surface_t1077     pub fn cairo_pdf_surface_create_for_stream(
1078         write_func: cairo_write_func_t,
1079         closure: *mut c_void,
1080         width_in_points: c_double,
1081         height_in_points: c_double,
1082     ) -> *mut cairo_surface_t;
1083     #[cfg(any(feature = "pdf", feature = "dox"))]
cairo_pdf_surface_restrict_to_version( surface: *mut cairo_surface_t, version: cairo_pdf_version_t, )1084     pub fn cairo_pdf_surface_restrict_to_version(
1085         surface: *mut cairo_surface_t,
1086         version: cairo_pdf_version_t,
1087     );
1088     #[cfg(any(feature = "pdf", feature = "dox"))]
cairo_pdf_get_versions( versions: *mut *mut cairo_pdf_version_t, num_versions: *mut c_int, )1089     pub fn cairo_pdf_get_versions(
1090         versions: *mut *mut cairo_pdf_version_t,
1091         num_versions: *mut c_int,
1092     );
1093     #[cfg(any(feature = "pdf", feature = "dox"))]
cairo_pdf_version_to_string(version: cairo_pdf_version_t) -> *const c_char1094     pub fn cairo_pdf_version_to_string(version: cairo_pdf_version_t) -> *const c_char;
1095     #[cfg(any(feature = "pdf", feature = "dox"))]
cairo_pdf_surface_set_size( surface: *mut cairo_surface_t, width_in_points: f64, height_in_points: f64, )1096     pub fn cairo_pdf_surface_set_size(
1097         surface: *mut cairo_surface_t,
1098         width_in_points: f64,
1099         height_in_points: f64,
1100     );
1101     #[cfg(any(all(feature = "pdf", feature = "v1_16"), feature = "dox"))]
cairo_pdf_surface_add_outline( surface: *mut cairo_surface_t, parent_id: c_int, utf8: *const c_char, link_attribs: *const c_char, flags: cairo_pdf_outline_flags_t, ) -> c_int1102     pub fn cairo_pdf_surface_add_outline(
1103         surface: *mut cairo_surface_t,
1104         parent_id: c_int,
1105         utf8: *const c_char,
1106         link_attribs: *const c_char,
1107         flags: cairo_pdf_outline_flags_t,
1108     ) -> c_int;
1109     #[cfg(any(all(feature = "pdf", feature = "v1_16"), feature = "dox"))]
cairo_pdf_surface_set_metadata( surface: *mut cairo_surface_t, metadata: cairo_pdf_metadata_t, utf8: *const c_char, )1110     pub fn cairo_pdf_surface_set_metadata(
1111         surface: *mut cairo_surface_t,
1112         metadata: cairo_pdf_metadata_t,
1113         utf8: *const c_char,
1114     );
1115     #[cfg(any(all(feature = "pdf", feature = "v1_16"), feature = "dox"))]
cairo_pdf_surface_set_page_label(surface: *mut cairo_surface_t, utf8: *const c_char)1116     pub fn cairo_pdf_surface_set_page_label(surface: *mut cairo_surface_t, utf8: *const c_char);
1117     #[cfg(any(all(feature = "pdf", feature = "v1_16"), feature = "dox"))]
cairo_pdf_surface_set_thumbnail_size( surface: *mut cairo_surface_t, width: c_int, height: c_int, )1118     pub fn cairo_pdf_surface_set_thumbnail_size(
1119         surface: *mut cairo_surface_t,
1120         width: c_int,
1121         height: c_int,
1122     );
1123 
1124     // CAIRO SVG
1125     #[cfg(any(feature = "svg", feature = "dox"))]
cairo_svg_surface_create( filename: *const c_char, width_in_points: c_double, height_in_points: c_double, ) -> *mut cairo_surface_t1126     pub fn cairo_svg_surface_create(
1127         filename: *const c_char,
1128         width_in_points: c_double,
1129         height_in_points: c_double,
1130     ) -> *mut cairo_surface_t;
1131     #[cfg(any(feature = "svg", feature = "dox"))]
cairo_svg_surface_create_for_stream( write_func: cairo_write_func_t, closure: *mut c_void, width_in_points: c_double, height_in_points: c_double, ) -> *mut cairo_surface_t1132     pub fn cairo_svg_surface_create_for_stream(
1133         write_func: cairo_write_func_t,
1134         closure: *mut c_void,
1135         width_in_points: c_double,
1136         height_in_points: c_double,
1137     ) -> *mut cairo_surface_t;
1138     #[cfg(any(feature = "svg", feature = "dox"))]
cairo_svg_surface_restrict_to_version( surface: *mut cairo_surface_t, version: cairo_svg_version_t, )1139     pub fn cairo_svg_surface_restrict_to_version(
1140         surface: *mut cairo_surface_t,
1141         version: cairo_svg_version_t,
1142     );
1143     #[cfg(any(all(feature = "svg", feature = "v1_16"), feature = "dox"))]
cairo_svg_surface_get_document_unit(surface: *const cairo_surface_t) -> cairo_svg_unit_t1144     pub fn cairo_svg_surface_get_document_unit(surface: *const cairo_surface_t)
1145         -> cairo_svg_unit_t;
1146     #[cfg(any(all(feature = "svg", feature = "v1_16"), feature = "dox"))]
cairo_svg_surface_set_document_unit( surface: *mut cairo_surface_t, unit: cairo_svg_unit_t, )1147     pub fn cairo_svg_surface_set_document_unit(
1148         surface: *mut cairo_surface_t,
1149         unit: cairo_svg_unit_t,
1150     );
1151     #[cfg(any(feature = "svg", feature = "dox"))]
cairo_svg_get_versions( versions: *mut *mut cairo_svg_version_t, num_versions: *mut c_int, )1152     pub fn cairo_svg_get_versions(
1153         versions: *mut *mut cairo_svg_version_t,
1154         num_versions: *mut c_int,
1155     );
1156     #[cfg(any(feature = "svg", feature = "dox"))]
cairo_svg_version_to_string(version: cairo_svg_version_t) -> *const c_char1157     pub fn cairo_svg_version_to_string(version: cairo_svg_version_t) -> *const c_char;
1158 
1159     // CAIRO PS
1160     #[cfg(any(feature = "ps", feature = "dox"))]
cairo_ps_surface_create( filename: *const c_char, width_in_points: c_double, height_in_points: c_double, ) -> *mut cairo_surface_t1161     pub fn cairo_ps_surface_create(
1162         filename: *const c_char,
1163         width_in_points: c_double,
1164         height_in_points: c_double,
1165     ) -> *mut cairo_surface_t;
1166     #[cfg(any(feature = "ps", feature = "dox"))]
cairo_ps_surface_create_for_stream( write_func: cairo_write_func_t, closure: *mut c_void, width_in_points: c_double, height_in_points: c_double, ) -> *mut cairo_surface_t1167     pub fn cairo_ps_surface_create_for_stream(
1168         write_func: cairo_write_func_t,
1169         closure: *mut c_void,
1170         width_in_points: c_double,
1171         height_in_points: c_double,
1172     ) -> *mut cairo_surface_t;
1173     #[cfg(any(feature = "ps", feature = "dox"))]
cairo_ps_surface_restrict_to_level( surface: *mut cairo_surface_t, version: cairo_ps_level_t, )1174     pub fn cairo_ps_surface_restrict_to_level(
1175         surface: *mut cairo_surface_t,
1176         version: cairo_ps_level_t,
1177     );
1178     #[cfg(any(feature = "ps", feature = "dox"))]
cairo_ps_get_levels(levels: *mut *mut cairo_ps_level_t, num_levels: *mut c_int)1179     pub fn cairo_ps_get_levels(levels: *mut *mut cairo_ps_level_t, num_levels: *mut c_int);
1180     #[cfg(any(feature = "ps", feature = "dox"))]
cairo_ps_level_to_string(level: cairo_ps_level_t) -> *const c_char1181     pub fn cairo_ps_level_to_string(level: cairo_ps_level_t) -> *const c_char;
1182     #[cfg(any(feature = "ps", feature = "dox"))]
cairo_ps_surface_set_eps(surface: *mut cairo_surface_t, eps: cairo_bool_t)1183     pub fn cairo_ps_surface_set_eps(surface: *mut cairo_surface_t, eps: cairo_bool_t);
1184     #[cfg(any(feature = "ps", feature = "dox"))]
cairo_ps_surface_get_eps(surface: *mut cairo_surface_t) -> cairo_bool_t1185     pub fn cairo_ps_surface_get_eps(surface: *mut cairo_surface_t) -> cairo_bool_t;
1186     #[cfg(any(feature = "ps", feature = "dox"))]
cairo_ps_surface_set_size( surface: *mut cairo_surface_t, width_in_points: f64, height_in_points: f64, )1187     pub fn cairo_ps_surface_set_size(
1188         surface: *mut cairo_surface_t,
1189         width_in_points: f64,
1190         height_in_points: f64,
1191     );
1192     #[cfg(any(feature = "ps", feature = "dox"))]
cairo_ps_surface_dsc_begin_setup(surface: *mut cairo_surface_t)1193     pub fn cairo_ps_surface_dsc_begin_setup(surface: *mut cairo_surface_t);
1194     #[cfg(any(feature = "ps", feature = "dox"))]
cairo_ps_surface_dsc_begin_page_setup(surface: *mut cairo_surface_t)1195     pub fn cairo_ps_surface_dsc_begin_page_setup(surface: *mut cairo_surface_t);
1196     #[cfg(any(feature = "ps", feature = "dox"))]
cairo_ps_surface_dsc_comment(surface: *mut cairo_surface_t, comment: *const c_char)1197     pub fn cairo_ps_surface_dsc_comment(surface: *mut cairo_surface_t, comment: *const c_char);
1198 
1199     // CAIRO XCB
1200     #[cfg(any(feature = "xcb", feature = "dox"))]
cairo_xcb_surface_create( connection: *mut xcb_connection_t, drawable: xcb_drawable_t, visual: *mut xcb_visualtype_t, width: c_int, height: c_int, ) -> *mut cairo_surface_t1201     pub fn cairo_xcb_surface_create(
1202         connection: *mut xcb_connection_t,
1203         drawable: xcb_drawable_t,
1204         visual: *mut xcb_visualtype_t,
1205         width: c_int,
1206         height: c_int,
1207     ) -> *mut cairo_surface_t;
1208     #[cfg(any(feature = "xcb", feature = "dox"))]
cairo_xcb_surface_create_for_bitmap( connection: *mut xcb_connection_t, screen: *mut xcb_screen_t, bitmap: xcb_pixmap_t, width: c_int, height: c_int, ) -> *mut cairo_surface_t1209     pub fn cairo_xcb_surface_create_for_bitmap(
1210         connection: *mut xcb_connection_t,
1211         screen: *mut xcb_screen_t,
1212         bitmap: xcb_pixmap_t,
1213         width: c_int,
1214         height: c_int,
1215     ) -> *mut cairo_surface_t;
1216     #[cfg(any(feature = "xcb", feature = "dox"))]
cairo_xcb_surface_create_with_xrender_format( connection: *mut xcb_connection_t, screen: *mut xcb_screen_t, drawable: xcb_drawable_t, format: *mut xcb_render_pictforminfo_t, width: c_int, height: c_int, ) -> *mut cairo_surface_t1217     pub fn cairo_xcb_surface_create_with_xrender_format(
1218         connection: *mut xcb_connection_t,
1219         screen: *mut xcb_screen_t,
1220         drawable: xcb_drawable_t,
1221         format: *mut xcb_render_pictforminfo_t,
1222         width: c_int,
1223         height: c_int,
1224     ) -> *mut cairo_surface_t;
1225     #[cfg(any(feature = "xcb", feature = "dox"))]
cairo_xcb_surface_set_size(surface: *mut cairo_surface_t, width: c_int, height: c_int)1226     pub fn cairo_xcb_surface_set_size(surface: *mut cairo_surface_t, width: c_int, height: c_int);
1227     #[cfg(any(feature = "xcb", feature = "dox"))]
cairo_xcb_surface_set_drawable( surface: *mut cairo_surface_t, drawable: xcb_drawable_t, width: c_int, height: c_int, )1228     pub fn cairo_xcb_surface_set_drawable(
1229         surface: *mut cairo_surface_t,
1230         drawable: xcb_drawable_t,
1231         width: c_int,
1232         height: c_int,
1233     );
1234     #[cfg(any(feature = "xcb", feature = "dox"))]
cairo_xcb_device_get_connection(device: *mut cairo_device_t) -> *mut xcb_connection_t1235     pub fn cairo_xcb_device_get_connection(device: *mut cairo_device_t) -> *mut xcb_connection_t;
1236     #[cfg(any(feature = "xcb", feature = "dox"))]
cairo_xcb_device_debug_cap_xrender_version( device: *mut cairo_device_t, major_version: c_int, minor_version: c_int, )1237     pub fn cairo_xcb_device_debug_cap_xrender_version(
1238         device: *mut cairo_device_t,
1239         major_version: c_int,
1240         minor_version: c_int,
1241     );
1242     #[cfg(any(feature = "xcb", feature = "dox"))]
cairo_xcb_device_debug_cap_xshm_version( device: *mut cairo_device_t, major_version: c_int, minor_version: c_int, )1243     pub fn cairo_xcb_device_debug_cap_xshm_version(
1244         device: *mut cairo_device_t,
1245         major_version: c_int,
1246         minor_version: c_int,
1247     );
1248     #[cfg(any(feature = "xcb", feature = "dox"))]
cairo_xcb_device_debug_get_precision(device: *mut cairo_device_t) -> c_int1249     pub fn cairo_xcb_device_debug_get_precision(device: *mut cairo_device_t) -> c_int;
1250     #[cfg(any(feature = "xcb", feature = "dox"))]
cairo_xcb_device_debug_set_precision(device: *mut cairo_device_t, precision: c_int)1251     pub fn cairo_xcb_device_debug_set_precision(device: *mut cairo_device_t, precision: c_int);
1252 
1253     // CAIRO XLIB SURFACE
1254     #[cfg(any(feature = "xlib", feature = "dox"))]
cairo_xlib_surface_create( dpy: *mut xlib::Display, drawable: xlib::Drawable, visual: *mut xlib::Visual, width: c_int, height: c_int, ) -> *mut cairo_surface_t1255     pub fn cairo_xlib_surface_create(
1256         dpy: *mut xlib::Display,
1257         drawable: xlib::Drawable,
1258         visual: *mut xlib::Visual,
1259         width: c_int,
1260         height: c_int,
1261     ) -> *mut cairo_surface_t;
1262     #[cfg(any(feature = "xlib", feature = "dox"))]
cairo_xlib_surface_create_for_bitmap( dpy: *mut xlib::Display, bitmap: xlib::Pixmap, screen: *mut xlib::Screen, width: c_int, height: c_int, ) -> *mut cairo_surface_t1263     pub fn cairo_xlib_surface_create_for_bitmap(
1264         dpy: *mut xlib::Display,
1265         bitmap: xlib::Pixmap,
1266         screen: *mut xlib::Screen,
1267         width: c_int,
1268         height: c_int,
1269     ) -> *mut cairo_surface_t;
1270     #[cfg(any(feature = "xlib", feature = "dox"))]
cairo_xlib_surface_set_size(surface: *mut cairo_surface_t, width: c_int, height: c_int)1271     pub fn cairo_xlib_surface_set_size(surface: *mut cairo_surface_t, width: c_int, height: c_int);
1272     #[cfg(any(feature = "xlib", feature = "dox"))]
cairo_xlib_surface_set_drawable( surface: *mut cairo_surface_t, drawable: xlib::Drawable, width: c_int, height: c_int, )1273     pub fn cairo_xlib_surface_set_drawable(
1274         surface: *mut cairo_surface_t,
1275         drawable: xlib::Drawable,
1276         width: c_int,
1277         height: c_int,
1278     );
1279     #[cfg(any(feature = "xlib", feature = "dox"))]
cairo_xlib_surface_get_display(surface: *mut cairo_surface_t) -> *mut xlib::Display1280     pub fn cairo_xlib_surface_get_display(surface: *mut cairo_surface_t) -> *mut xlib::Display;
1281     #[cfg(any(feature = "xlib", feature = "dox"))]
cairo_xlib_surface_get_drawable(surface: *mut cairo_surface_t) -> xlib::Drawable1282     pub fn cairo_xlib_surface_get_drawable(surface: *mut cairo_surface_t) -> xlib::Drawable;
1283     #[cfg(any(feature = "xlib", feature = "dox"))]
cairo_xlib_surface_get_screen(surface: *mut cairo_surface_t) -> *mut xlib::Screen1284     pub fn cairo_xlib_surface_get_screen(surface: *mut cairo_surface_t) -> *mut xlib::Screen;
1285     #[cfg(any(feature = "xlib", feature = "dox"))]
cairo_xlib_surface_get_visual(surface: *mut cairo_surface_t) -> *mut xlib::Visual1286     pub fn cairo_xlib_surface_get_visual(surface: *mut cairo_surface_t) -> *mut xlib::Visual;
1287     #[cfg(any(feature = "xlib", feature = "dox"))]
cairo_xlib_surface_get_depth(surface: *mut cairo_surface_t) -> c_int1288     pub fn cairo_xlib_surface_get_depth(surface: *mut cairo_surface_t) -> c_int;
1289     #[cfg(any(feature = "xlib", feature = "dox"))]
cairo_xlib_surface_get_width(surface: *mut cairo_surface_t) -> c_int1290     pub fn cairo_xlib_surface_get_width(surface: *mut cairo_surface_t) -> c_int;
1291     #[cfg(any(feature = "xlib", feature = "dox"))]
cairo_xlib_surface_get_height(surface: *mut cairo_surface_t) -> c_int1292     pub fn cairo_xlib_surface_get_height(surface: *mut cairo_surface_t) -> c_int;
1293     #[cfg(any(feature = "xlib", feature = "dox"))]
cairo_xlib_device_debug_cap_xrender_version( device: *mut cairo_device_t, major_version: c_int, minor_version: c_int, )1294     pub fn cairo_xlib_device_debug_cap_xrender_version(
1295         device: *mut cairo_device_t,
1296         major_version: c_int,
1297         minor_version: c_int,
1298     );
1299     #[cfg(any(feature = "xlib", feature = "dox"))]
cairo_xlib_device_debug_get_precision(device: *mut cairo_device_t) -> c_int1300     pub fn cairo_xlib_device_debug_get_precision(device: *mut cairo_device_t) -> c_int;
1301     #[cfg(any(feature = "xlib", feature = "dox"))]
cairo_xlib_device_debug_set_precision(device: *mut cairo_device_t, precision: c_int)1302     pub fn cairo_xlib_device_debug_set_precision(device: *mut cairo_device_t, precision: c_int);
1303 
1304     // CAIRO WINDOWS SURFACE
1305     #[cfg(any(all(windows, feature = "win32-surface"), feature = "dox"))]
cairo_win32_surface_create(hdc: winapi::HDC) -> *mut cairo_surface_t1306     pub fn cairo_win32_surface_create(hdc: winapi::HDC) -> *mut cairo_surface_t;
1307     #[cfg(any(
1308         all(windows, feature = "win32-surface", feature = "v1_14"),
1309         feature = "dox"
1310     ))]
cairo_win32_surface_create_with_format( hdc: winapi::HDC, format: cairo_format_t, ) -> *mut cairo_surface_t1311     pub fn cairo_win32_surface_create_with_format(
1312         hdc: winapi::HDC,
1313         format: cairo_format_t,
1314     ) -> *mut cairo_surface_t;
1315     #[cfg(any(all(windows, feature = "win32-surface"), feature = "dox"))]
cairo_win32_surface_create_with_dib( format: cairo_format_t, width: c_int, height: c_int, ) -> *mut cairo_surface_t1316     pub fn cairo_win32_surface_create_with_dib(
1317         format: cairo_format_t,
1318         width: c_int,
1319         height: c_int,
1320     ) -> *mut cairo_surface_t;
1321     #[cfg(any(all(windows, feature = "win32-surface"), feature = "dox"))]
cairo_win32_surface_create_with_ddb( hdc: winapi::HDC, format: cairo_format_t, width: c_int, height: c_int, ) -> *mut cairo_surface_t1322     pub fn cairo_win32_surface_create_with_ddb(
1323         hdc: winapi::HDC,
1324         format: cairo_format_t,
1325         width: c_int,
1326         height: c_int,
1327     ) -> *mut cairo_surface_t;
1328     #[cfg(any(all(windows, feature = "win32-surface"), feature = "dox"))]
cairo_win32_printing_surface_create(hdc: winapi::HDC) -> *mut cairo_surface_t1329     pub fn cairo_win32_printing_surface_create(hdc: winapi::HDC) -> *mut cairo_surface_t;
1330     #[cfg(any(all(windows, feature = "win32-surface"), feature = "dox"))]
cairo_win32_surface_get_dc(surface: *mut cairo_surface_t) -> winapi::HDC1331     pub fn cairo_win32_surface_get_dc(surface: *mut cairo_surface_t) -> winapi::HDC;
1332     #[cfg(any(all(windows, feature = "win32-surface"), feature = "dox"))]
cairo_win32_surface_get_image(surface: *mut cairo_surface_t) -> *mut cairo_surface_t1333     pub fn cairo_win32_surface_get_image(surface: *mut cairo_surface_t) -> *mut cairo_surface_t;
1334 
1335     #[cfg(any(target_os = "macos", target_os = "ios", feature = "dox"))]
cairo_quartz_surface_create( format: cairo_format_t, width: c_uint, height: c_uint, ) -> *mut cairo_surface_t1336     pub fn cairo_quartz_surface_create(
1337         format: cairo_format_t,
1338         width: c_uint,
1339         height: c_uint,
1340     ) -> *mut cairo_surface_t;
1341     #[cfg(any(target_os = "macos", target_os = "ios", feature = "dox"))]
cairo_quartz_surface_create_for_cg_context( cg_context: CGContextRef, width: c_uint, height: c_uint, ) -> *mut cairo_surface_t1342     pub fn cairo_quartz_surface_create_for_cg_context(
1343         cg_context: CGContextRef,
1344         width: c_uint,
1345         height: c_uint,
1346     ) -> *mut cairo_surface_t;
1347     #[cfg(any(target_os = "macos", target_os = "ios", feature = "dox"))]
cairo_quartz_surface_get_cg_context(surface: *mut cairo_surface_t) -> CGContextRef1348     pub fn cairo_quartz_surface_get_cg_context(surface: *mut cairo_surface_t) -> CGContextRef;
1349 
1350     // CAIRO SCRIPT
cairo_script_create(filename: *const c_char) -> *mut cairo_device_t1351     pub fn cairo_script_create(filename: *const c_char) -> *mut cairo_device_t;
cairo_script_create_for_stream( write_func: cairo_write_func_t, closure: *mut c_void, ) -> cairo_status_t1352     pub fn cairo_script_create_for_stream(
1353         write_func: cairo_write_func_t,
1354         closure: *mut c_void,
1355     ) -> cairo_status_t;
cairo_script_from_recording_surface( script: *mut cairo_device_t, surface: *mut cairo_surface_t, ) -> cairo_status_t1356     pub fn cairo_script_from_recording_surface(
1357         script: *mut cairo_device_t,
1358         surface: *mut cairo_surface_t,
1359     ) -> cairo_status_t;
cairo_script_get_mode(script: *mut cairo_device_t) -> cairo_script_mode_t1360     pub fn cairo_script_get_mode(script: *mut cairo_device_t) -> cairo_script_mode_t;
cairo_script_set_mode(script: *mut cairo_device_t, mode: cairo_script_mode_t)1361     pub fn cairo_script_set_mode(script: *mut cairo_device_t, mode: cairo_script_mode_t);
cairo_script_surface_create( script: *mut cairo_device_t, content: cairo_content_t, width: c_double, height: c_double, ) -> *mut cairo_surface_t1362     pub fn cairo_script_surface_create(
1363         script: *mut cairo_device_t,
1364         content: cairo_content_t,
1365         width: c_double,
1366         height: c_double,
1367     ) -> *mut cairo_surface_t;
cairo_script_surface_create_for_target( script: *mut cairo_device_t, target: *mut cairo_surface_t, ) -> *mut cairo_surface_t1368     pub fn cairo_script_surface_create_for_target(
1369         script: *mut cairo_device_t,
1370         target: *mut cairo_surface_t,
1371     ) -> *mut cairo_surface_t;
cairo_script_write_comment( script: *mut cairo_device_t, comment: *const c_char, len: c_int, )1372     pub fn cairo_script_write_comment(
1373         script: *mut cairo_device_t,
1374         comment: *const c_char,
1375         len: c_int,
1376     );
cairo_device_destroy(device: *mut cairo_device_t)1377     pub fn cairo_device_destroy(device: *mut cairo_device_t);
cairo_device_status(device: *mut cairo_device_t) -> cairo_status_t1378     pub fn cairo_device_status(device: *mut cairo_device_t) -> cairo_status_t;
cairo_device_finish(device: *mut cairo_device_t)1379     pub fn cairo_device_finish(device: *mut cairo_device_t);
cairo_device_flush(device: *mut cairo_device_t)1380     pub fn cairo_device_flush(device: *mut cairo_device_t);
cairo_device_get_type(device: *mut cairo_device_t) -> cairo_device_type_t1381     pub fn cairo_device_get_type(device: *mut cairo_device_t) -> cairo_device_type_t;
cairo_device_reference(device: *mut cairo_device_t) -> *mut cairo_device_t1382     pub fn cairo_device_reference(device: *mut cairo_device_t) -> *mut cairo_device_t;
cairo_device_get_reference_count(device: *mut cairo_device_t) -> c_uint1383     pub fn cairo_device_get_reference_count(device: *mut cairo_device_t) -> c_uint;
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_t1384     pub fn cairo_device_set_user_data(
1385         device: *mut cairo_device_t,
1386         key: *const cairo_user_data_key_t,
1387         user_data: *mut c_void,
1388         destroy: cairo_destroy_func_t,
1389     ) -> cairo_status_t;
cairo_device_get_user_data( device: *mut cairo_device_t, key: *const cairo_user_data_key_t, ) -> *mut c_void1390     pub fn cairo_device_get_user_data(
1391         device: *mut cairo_device_t,
1392         key: *const cairo_user_data_key_t,
1393     ) -> *mut c_void;
cairo_device_acquire(device: *mut cairo_device_t) -> cairo_status_t1394     pub fn cairo_device_acquire(device: *mut cairo_device_t) -> cairo_status_t;
cairo_device_release(device: *mut cairo_device_t)1395     pub fn cairo_device_release(device: *mut cairo_device_t);
cairo_device_observer_elapsed(device: *mut cairo_device_t) -> c_double1396     pub fn cairo_device_observer_elapsed(device: *mut cairo_device_t) -> c_double;
cairo_device_observer_fill_elapsed(device: *mut cairo_device_t) -> c_double1397     pub fn cairo_device_observer_fill_elapsed(device: *mut cairo_device_t) -> c_double;
cairo_device_observer_glyphs_elapsed(device: *mut cairo_device_t) -> c_double1398     pub fn cairo_device_observer_glyphs_elapsed(device: *mut cairo_device_t) -> c_double;
cairo_device_observer_mask_elapsed(device: *mut cairo_device_t) -> c_double1399     pub fn cairo_device_observer_mask_elapsed(device: *mut cairo_device_t) -> c_double;
cairo_device_observer_paint_elapsed(device: *mut cairo_device_t) -> c_double1400     pub fn cairo_device_observer_paint_elapsed(device: *mut cairo_device_t) -> c_double;
cairo_device_observer_stroke_elapsed(device: *mut cairo_device_t) -> c_double1401     pub fn cairo_device_observer_stroke_elapsed(device: *mut cairo_device_t) -> c_double;
cairo_device_observer_print( device: *mut cairo_device_t, write_func: cairo_write_func_t, closure: *mut c_void, ) -> cairo_status_t1402     pub fn cairo_device_observer_print(
1403         device: *mut cairo_device_t,
1404         write_func: cairo_write_func_t,
1405         closure: *mut c_void,
1406     ) -> cairo_status_t;
1407 }
1408 
1409 #[cfg(feature = "use_glib")]
1410 pub mod gobject;
1411 
1412 pub const STATUS_SUCCESS: i32 = 0;
1413 pub const STATUS_NO_MEMORY: i32 = 1;
1414 pub const STATUS_INVALID_RESTORE: i32 = 2;
1415 pub const STATUS_INVALID_POP_GROUP: i32 = 3;
1416 pub const STATUS_NO_CURRENT_POINT: i32 = 4;
1417 pub const STATUS_INVALID_MATRIX: i32 = 5;
1418 pub const STATUS_INVALID_STATUS: i32 = 6;
1419 pub const STATUS_NULL_POINTER: i32 = 7;
1420 pub const STATUS_INVALID_STRING: i32 = 8;
1421 pub const STATUS_INVALID_PATH_DATA: i32 = 9;
1422 pub const STATUS_READ_ERROR: i32 = 10;
1423 pub const STATUS_WRITE_ERROR: i32 = 11;
1424 pub const STATUS_SURFACE_FINISHED: i32 = 12;
1425 pub const STATUS_SURFACE_TYPE_MISMATCH: i32 = 13;
1426 pub const STATUS_PATTERN_TYPE_MISMATCH: i32 = 14;
1427 pub const STATUS_INVALID_CONTENT: i32 = 15;
1428 pub const STATUS_INVALID_FORMAT: i32 = 16;
1429 pub const STATUS_INVALID_VISUAL: i32 = 17;
1430 pub const STATUS_FILE_NOT_FOUND: i32 = 18;
1431 pub const STATUS_INVALID_DASH: i32 = 19;
1432 pub const STATUS_INVALID_DSC_COMMENT: i32 = 20;
1433 pub const STATUS_INVALID_INDEX: i32 = 21;
1434 pub const STATUS_CLIP_NOT_REPRESENTABLE: i32 = 22;
1435 pub const STATUS_TEMP_FILE_ERROR: i32 = 23;
1436 pub const STATUS_INVALID_STRIDE: i32 = 24;
1437 pub const STATUS_FONT_TYPE_MISMATCH: i32 = 25;
1438 pub const STATUS_USER_FONT_IMMUTABLE: i32 = 26;
1439 pub const STATUS_USER_FONT_ERROR: i32 = 27;
1440 pub const STATUS_NEGATIVE_COUNT: i32 = 28;
1441 pub const STATUS_INVALID_CLUSTERS: i32 = 29;
1442 pub const STATUS_INVALID_SLANT: i32 = 30;
1443 pub const STATUS_INVALID_WEIGHT: i32 = 31;
1444 pub const STATUS_INVALID_SIZE: i32 = 32;
1445 pub const STATUS_USER_FONT_NOT_IMPLEMENTED: i32 = 33;
1446 pub const STATUS_DEVICE_TYPE_MISMATCH: i32 = 34;
1447 pub const STATUS_DEVICE_ERROR: i32 = 35;
1448 pub const STATUS_INVALID_MESH_CONSTRUCTION: i32 = 36;
1449 pub const STATUS_DEVICE_FINISHED: i32 = 37;
1450 pub const STATUS_J_BIG2_GLOBAL_MISSING: i32 = 38;
1451 pub const STATUS_PNG_ERROR: i32 = 39;
1452 pub const STATUS_FREETYPE_ERROR: i32 = 40;
1453 pub const STATUS_WIN32_GDI_ERROR: i32 = 41;
1454 pub const STATUS_LAST_STATUS: i32 = 42;
1455 pub const ANTIALIAS_DEFAULT: i32 = 0;
1456 pub const ANTIALIAS_NONE: i32 = 1;
1457 pub const ANTIALIAS_GRAY: i32 = 2;
1458 pub const ANTIALIAS_SUBPIXEL: i32 = 3;
1459 pub const ANTIALIAS_FAST: i32 = 4;
1460 pub const ANTIALIAS_GOOD: i32 = 5;
1461 pub const ANTIALIAS_BEST: i32 = 6;
1462 pub const FILL_RULE_WINDING: i32 = 0;
1463 pub const FILL_RULE_EVEN_ODD: i32 = 1;
1464 pub const LINE_CAP_BUTT: i32 = 0;
1465 pub const LINE_CAP_ROUND: i32 = 1;
1466 pub const LINE_CAP_SQUARE: i32 = 2;
1467 pub const LINE_JOIN_MITER: i32 = 0;
1468 pub const LINE_JOIN_ROUND: i32 = 1;
1469 pub const LINE_JOIN_BEVEL: i32 = 2;
1470 pub const OPERATOR_CLEAR: i32 = 0;
1471 pub const OPERATOR_SOURCE: i32 = 1;
1472 pub const OPERATOR_OVER: i32 = 2;
1473 pub const OPERATOR_IN: i32 = 3;
1474 pub const OPERATOR_OUT: i32 = 4;
1475 pub const OPERATOR_ATOP: i32 = 5;
1476 pub const OPERATOR_DEST: i32 = 6;
1477 pub const OPERATOR_DEST_OVER: i32 = 7;
1478 pub const OPERATOR_DEST_IN: i32 = 8;
1479 pub const OPERATOR_DEST_OUT: i32 = 9;
1480 pub const OPERATOR_DEST_ATOP: i32 = 10;
1481 pub const OPERATOR_XOR: i32 = 11;
1482 pub const OPERATOR_ADD: i32 = 12;
1483 pub const OPERATOR_SATURATE: i32 = 13;
1484 pub const OPERATOR_MULTIPLY: i32 = 14;
1485 pub const OPERATOR_SCREEN: i32 = 15;
1486 pub const OPERATOR_OVERLAY: i32 = 16;
1487 pub const OPERATOR_DARKEN: i32 = 17;
1488 pub const OPERATOR_LIGHTEN: i32 = 18;
1489 pub const OPERATOR_COLOR_DODGE: i32 = 19;
1490 pub const OPERATOR_COLOR_BURN: i32 = 20;
1491 pub const OPERATOR_HARD_LIGHT: i32 = 21;
1492 pub const OPERATOR_SOFT_LIGHT: i32 = 22;
1493 pub const OPERATOR_DIFFERENCE: i32 = 23;
1494 pub const OPERATOR_EXCLUSION: i32 = 24;
1495 pub const OPERATOR_HSL_HUE: i32 = 25;
1496 pub const OPERATOR_HSL_SATURATION: i32 = 26;
1497 pub const OPERATOR_HSL_COLOR: i32 = 27;
1498 pub const OPERATOR_HSL_LUMINOSITY: i32 = 28;
1499 pub const PATH_DATA_TYPE_MOVE_TO: i32 = 0;
1500 pub const PATH_DATA_TYPE_LINE_TO: i32 = 1;
1501 pub const PATH_DATA_TYPE_CURVE_TO: i32 = 2;
1502 pub const PATH_DATA_TYPE_CLOSE_PATH: i32 = 3;
1503 pub const CONTENT_COLOR: i32 = 0x1000;
1504 pub const CONTENT_ALPHA: i32 = 0x2000;
1505 pub const CONTENT_COLOR_ALPHA: i32 = 0x3000;
1506 pub const EXTEND_NONE: i32 = 0;
1507 pub const EXTEND_REPEAT: i32 = 1;
1508 pub const EXTEND_REFLECT: i32 = 2;
1509 pub const EXTEND_PAD: i32 = 3;
1510 pub const FILTER_FAST: i32 = 0;
1511 pub const FILTER_GOOD: i32 = 1;
1512 pub const FILTER_BEST: i32 = 2;
1513 pub const FILTER_NEAREST: i32 = 3;
1514 pub const FILTER_BILINEAR: i32 = 4;
1515 pub const FILTER_GAUSSIAN: i32 = 5;
1516 pub const PATTERN_TYPE_SOLID: i32 = 0;
1517 pub const PATTERN_TYPE_SURFACE: i32 = 1;
1518 pub const PATTERN_TYPE_LINEAR_GRADIENT: i32 = 2;
1519 pub const PATTERN_TYPE_RADIAL_GRADIENT: i32 = 3;
1520 pub const PATTERN_TYPE_MESH: i32 = 4;
1521 pub const PATTERN_TYPE_RASTER_SOURCE: i32 = 5;
1522 pub const FONT_SLANT_NORMAL: i32 = 0;
1523 pub const FONT_SLANT_ITALIC: i32 = 1;
1524 pub const FONT_SLANT_OBLIQUE: i32 = 2;
1525 pub const FONT_WEIGHT_NORMAL: i32 = 0;
1526 pub const FONT_WEIGHT_BOLD: i32 = 1;
1527 pub const TEXT_CLUSTER_FLAGS_NONE: i32 = 0x00000000;
1528 pub const TEXT_CLUSTER_FLAGS_BACKWARD: i32 = 0x00000001;
1529 pub const FONT_TYPE_FONT_TYPE_TOY: i32 = 0;
1530 pub const FONT_TYPE_FONT_TYPE_FT: i32 = 1;
1531 pub const FONT_TYPE_FONT_TYPE_WIN32: i32 = 2;
1532 pub const FONT_TYPE_FONT_TYPE_QUARTZ: i32 = 3;
1533 pub const FONT_TYPE_FONT_TYPE_USER: i32 = 4;
1534 pub const SUBPIXEL_ORDER_DEFAULT: i32 = 0;
1535 pub const SUBPIXEL_ORDER_RGB: i32 = 1;
1536 pub const SUBPIXEL_ORDER_BGR: i32 = 2;
1537 pub const SUBPIXEL_ORDER_VRGB: i32 = 3;
1538 pub const SUBPIXEL_ORDER_VBGR: i32 = 4;
1539 pub const HINT_STYLE_DEFAULT: i32 = 0;
1540 pub const HINT_STYLE_NONE: i32 = 1;
1541 pub const HINT_STYLE_SLIGHT: i32 = 2;
1542 pub const HINT_STYLE_MEDIUM: i32 = 3;
1543 pub const HINT_STYLE_FULL: i32 = 4;
1544 pub const HINT_METRICS_DEFAULT: i32 = 0;
1545 pub const HINT_METRICS_OFF: i32 = 1;
1546 pub const HINT_METRICS_ON: i32 = 2;
1547 pub const SURFACE_TYPE_IMAGE: i32 = 0;
1548 pub const SURFACE_TYPE_PDF: i32 = 1;
1549 pub const SURFACE_TYPE_PS: i32 = 2;
1550 pub const SURFACE_TYPE_XLIB: i32 = 3;
1551 pub const SURFACE_TYPE_XCB: i32 = 4;
1552 pub const SURFACE_TYPE_GLITZ: i32 = 5;
1553 pub const SURFACE_TYPE_QUARTZ: i32 = 6;
1554 pub const SURFACE_TYPE_WIN32: i32 = 7;
1555 pub const SURFACE_TYPE_BE_OS: i32 = 8;
1556 pub const SURFACE_TYPE_DIRECT_FB: i32 = 9;
1557 pub const SURFACE_TYPE_SVG: i32 = 10;
1558 pub const SURFACE_TYPE_OS2: i32 = 11;
1559 pub const SURFACE_TYPE_WIN32_PRINTING: i32 = 12;
1560 pub const SURFACE_TYPE_QUARTZ_IMAGE: i32 = 13;
1561 pub const SURFACE_TYPE_SCRIPT: i32 = 14;
1562 pub const SURFACE_TYPE_QT: i32 = 15;
1563 pub const SURFACE_TYPE_RECORDING: i32 = 16;
1564 pub const SURFACE_TYPE_VG: i32 = 17;
1565 pub const SURFACE_TYPE_GL: i32 = 18;
1566 pub const SURFACE_TYPE_DRM: i32 = 19;
1567 pub const SURFACE_TYPE_TEE: i32 = 20;
1568 pub const SURFACE_TYPE_XML: i32 = 21;
1569 pub const SURFACE_TYPE_SKIA: i32 = 22;
1570 pub const SURFACE_TYPE_SUBSURFACE: i32 = 23;
1571 pub const SURFACE_TYPE_COGL: i32 = 24;
1572 pub const SVG_UNIT_USER: i32 = 0;
1573 pub const SVG_UNIT_EM: i32 = 1;
1574 pub const SVG_UNIT_EX: i32 = 2;
1575 pub const SVG_UNIT_PX: i32 = 3;
1576 pub const SVG_UNIT_IN: i32 = 4;
1577 pub const SVG_UNIT_CM: i32 = 5;
1578 pub const SVG_UNIT_MM: i32 = 6;
1579 pub const SVG_UNIT_PT: i32 = 7;
1580 pub const SVG_UNIT_PC: i32 = 8;
1581 pub const SVG_UNIT_PERCENT: i32 = 9;
1582 pub const FORMAT_INVALID: i32 = -1;
1583 pub const FORMAT_A_RGB32: i32 = 0;
1584 pub const FORMAT_RGB24: i32 = 1;
1585 pub const FORMAT_A8: i32 = 2;
1586 pub const FORMAT_A1: i32 = 3;
1587 pub const FORMAT_RGB16_565: i32 = 4;
1588 pub const FORMAT_RGB30: i32 = 5;
1589 pub const REGION_OVERLAP_IN: i32 = 0;
1590 pub const REGION_OVERLAP_OUT: i32 = 1;
1591 pub const REGION_OVERLAP_PART: i32 = 2;
1592 pub const PDF_OUTLINE_FLAG_OPEN: i32 = 0x1;
1593 pub const PDF_OUTLINE_FLAG_BOLD: i32 = 0x2;
1594 pub const PDF_OUTLINE_FLAG_ITALIC: i32 = 0x4;
1595 pub const PDF_METADATA_TITLE: i32 = 0;
1596 pub const PDF_METADATA_AUTHOR: i32 = 1;
1597 pub const PDF_METADATA_SUBJECT: i32 = 2;
1598 pub const PDF_METADATA_KEYWORDS: i32 = 3;
1599 pub const PDF_METADATA_CREATOR: i32 = 4;
1600 pub const PDF_METADATA_CREATE_DATE: i32 = 5;
1601 pub const PDF_METADATA_MOD_DATE: i32 = 6;
1602 pub const PDF_VERSION__1_4: i32 = 0;
1603 pub const PDF_VERSION__1_5: i32 = 1;
1604 pub const SVG_VERSION__1_1: i32 = 0;
1605 pub const SVG_VERSION__1_2: i32 = 1;
1606 pub const PS_LEVEL__2: i32 = 0;
1607 pub const PS_LEVEL__3: i32 = 1;
1608 pub const MESH_CORNER_MESH_CORNER0: u32 = 0;
1609 pub const MESH_CORNER_MESH_CORNER1: u32 = 1;
1610 pub const MESH_CORNER_MESH_CORNER2: u32 = 2;
1611 pub const MESH_CORNER_MESH_CORNER3: u32 = 3;
1612 pub const CAIRO_FT_SYNTHESIZE_BOLD: u32 = 1;
1613 pub const CAIRO_FT_SYNTHESIZE_OBLIQUE: u32 = 2;
1614 pub const CAIRO_SCRIPT_MODE_ASCII: i32 = 0;
1615 pub const CAIRO_SCRIPT_MODE_BINARY: i32 = 1;
1616 
1617 pub const CAIRO_DEVICE_TYPE_DRM: i32 = 0;
1618 pub const CAIRO_DEVICE_TYPE_GL: i32 = 1;
1619 pub const CAIRO_DEVICE_TYPE_SCRIPT: i32 = 2;
1620 pub const CAIRO_DEVICE_TYPE_XCB: i32 = 3;
1621 pub const CAIRO_DEVICE_TYPE_XLIB: i32 = 4;
1622 pub const CAIRO_DEVICE_TYPE_XML: i32 = 5;
1623 pub const CAIRO_DEVICE_TYPE_COGL: i32 = 6;
1624 pub const CAIRO_DEVICE_TYPE_WIN32: i32 = 7;
1625 pub const CAIRO_DEVICE_TYPE_INVALID: i32 = -1;
1626