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