pixman_sys/
lib.rs

1#![allow(non_upper_case_globals)]
2#![allow(non_camel_case_types)]
3#![allow(non_snake_case)]
4
5pub const PIXMAN_MAX_INDEXED: u32 = 256;
6
7pub const PIXMAN_TYPE_OTHER: u32 = 0;
8pub const PIXMAN_TYPE_A: u32 = 1;
9pub const PIXMAN_TYPE_ARGB: u32 = 2;
10pub const PIXMAN_TYPE_ABGR: u32 = 3;
11pub const PIXMAN_TYPE_COLOR: u32 = 4;
12pub const PIXMAN_TYPE_GRAY: u32 = 5;
13pub const PIXMAN_TYPE_YUY2: u32 = 6;
14pub const PIXMAN_TYPE_YV12: u32 = 7;
15pub const PIXMAN_TYPE_BGRA: u32 = 8;
16pub const PIXMAN_TYPE_RGBA: u32 = 9;
17pub const PIXMAN_TYPE_ARGB_SRGB: u32 = 10;
18pub const PIXMAN_TYPE_RGBA_FLOAT: u32 = 11;
19
20pub const pixman_repeat_t_PIXMAN_REPEAT_NONE: pixman_repeat_t = 0;
21pub const pixman_repeat_t_PIXMAN_REPEAT_NORMAL: pixman_repeat_t = 1;
22pub const pixman_repeat_t_PIXMAN_REPEAT_PAD: pixman_repeat_t = 2;
23pub const pixman_repeat_t_PIXMAN_REPEAT_REFLECT: pixman_repeat_t = 3;
24
25pub const pixman_dither_t_PIXMAN_DITHER_NONE: pixman_dither_t = 0;
26pub const pixman_dither_t_PIXMAN_DITHER_FAST: pixman_dither_t = 1;
27pub const pixman_dither_t_PIXMAN_DITHER_GOOD: pixman_dither_t = 2;
28pub const pixman_dither_t_PIXMAN_DITHER_BEST: pixman_dither_t = 3;
29pub const pixman_dither_t_PIXMAN_DITHER_ORDERED_BAYER_8: pixman_dither_t = 4;
30pub const pixman_dither_t_PIXMAN_DITHER_ORDERED_BLUE_NOISE_64: pixman_dither_t = 5;
31
32pub const pixman_filter_t_PIXMAN_FILTER_FAST: pixman_filter_t = 0;
33pub const pixman_filter_t_PIXMAN_FILTER_GOOD: pixman_filter_t = 1;
34pub const pixman_filter_t_PIXMAN_FILTER_BEST: pixman_filter_t = 2;
35pub const pixman_filter_t_PIXMAN_FILTER_NEAREST: pixman_filter_t = 3;
36pub const pixman_filter_t_PIXMAN_FILTER_BILINEAR: pixman_filter_t = 4;
37pub const pixman_filter_t_PIXMAN_FILTER_CONVOLUTION: pixman_filter_t = 5;
38pub const pixman_filter_t_PIXMAN_FILTER_SEPARABLE_CONVOLUTION: pixman_filter_t = 6;
39
40pub const pixman_op_t_PIXMAN_OP_CLEAR: pixman_op_t = 0;
41pub const pixman_op_t_PIXMAN_OP_SRC: pixman_op_t = 1;
42pub const pixman_op_t_PIXMAN_OP_DST: pixman_op_t = 2;
43pub const pixman_op_t_PIXMAN_OP_OVER: pixman_op_t = 3;
44pub const pixman_op_t_PIXMAN_OP_OVER_REVERSE: pixman_op_t = 4;
45pub const pixman_op_t_PIXMAN_OP_IN: pixman_op_t = 5;
46pub const pixman_op_t_PIXMAN_OP_IN_REVERSE: pixman_op_t = 6;
47pub const pixman_op_t_PIXMAN_OP_OUT: pixman_op_t = 7;
48pub const pixman_op_t_PIXMAN_OP_OUT_REVERSE: pixman_op_t = 8;
49pub const pixman_op_t_PIXMAN_OP_ATOP: pixman_op_t = 9;
50pub const pixman_op_t_PIXMAN_OP_ATOP_REVERSE: pixman_op_t = 10;
51pub const pixman_op_t_PIXMAN_OP_XOR: pixman_op_t = 11;
52pub const pixman_op_t_PIXMAN_OP_ADD: pixman_op_t = 12;
53pub const pixman_op_t_PIXMAN_OP_SATURATE: pixman_op_t = 13;
54pub const pixman_op_t_PIXMAN_OP_DISJOINT_CLEAR: pixman_op_t = 16;
55pub const pixman_op_t_PIXMAN_OP_DISJOINT_SRC: pixman_op_t = 17;
56pub const pixman_op_t_PIXMAN_OP_DISJOINT_DST: pixman_op_t = 18;
57pub const pixman_op_t_PIXMAN_OP_DISJOINT_OVER: pixman_op_t = 19;
58pub const pixman_op_t_PIXMAN_OP_DISJOINT_OVER_REVERSE: pixman_op_t = 20;
59pub const pixman_op_t_PIXMAN_OP_DISJOINT_IN: pixman_op_t = 21;
60pub const pixman_op_t_PIXMAN_OP_DISJOINT_IN_REVERSE: pixman_op_t = 22;
61pub const pixman_op_t_PIXMAN_OP_DISJOINT_OUT: pixman_op_t = 23;
62pub const pixman_op_t_PIXMAN_OP_DISJOINT_OUT_REVERSE: pixman_op_t = 24;
63pub const pixman_op_t_PIXMAN_OP_DISJOINT_ATOP: pixman_op_t = 25;
64pub const pixman_op_t_PIXMAN_OP_DISJOINT_ATOP_REVERSE: pixman_op_t = 26;
65pub const pixman_op_t_PIXMAN_OP_DISJOINT_XOR: pixman_op_t = 27;
66pub const pixman_op_t_PIXMAN_OP_CONJOINT_CLEAR: pixman_op_t = 32;
67pub const pixman_op_t_PIXMAN_OP_CONJOINT_SRC: pixman_op_t = 33;
68pub const pixman_op_t_PIXMAN_OP_CONJOINT_DST: pixman_op_t = 34;
69pub const pixman_op_t_PIXMAN_OP_CONJOINT_OVER: pixman_op_t = 35;
70pub const pixman_op_t_PIXMAN_OP_CONJOINT_OVER_REVERSE: pixman_op_t = 36;
71pub const pixman_op_t_PIXMAN_OP_CONJOINT_IN: pixman_op_t = 37;
72pub const pixman_op_t_PIXMAN_OP_CONJOINT_IN_REVERSE: pixman_op_t = 38;
73pub const pixman_op_t_PIXMAN_OP_CONJOINT_OUT: pixman_op_t = 39;
74pub const pixman_op_t_PIXMAN_OP_CONJOINT_OUT_REVERSE: pixman_op_t = 40;
75pub const pixman_op_t_PIXMAN_OP_CONJOINT_ATOP: pixman_op_t = 41;
76pub const pixman_op_t_PIXMAN_OP_CONJOINT_ATOP_REVERSE: pixman_op_t = 42;
77pub const pixman_op_t_PIXMAN_OP_CONJOINT_XOR: pixman_op_t = 43;
78pub const pixman_op_t_PIXMAN_OP_MULTIPLY: pixman_op_t = 48;
79pub const pixman_op_t_PIXMAN_OP_SCREEN: pixman_op_t = 49;
80pub const pixman_op_t_PIXMAN_OP_OVERLAY: pixman_op_t = 50;
81pub const pixman_op_t_PIXMAN_OP_DARKEN: pixman_op_t = 51;
82pub const pixman_op_t_PIXMAN_OP_LIGHTEN: pixman_op_t = 52;
83pub const pixman_op_t_PIXMAN_OP_COLOR_DODGE: pixman_op_t = 53;
84pub const pixman_op_t_PIXMAN_OP_COLOR_BURN: pixman_op_t = 54;
85pub const pixman_op_t_PIXMAN_OP_HARD_LIGHT: pixman_op_t = 55;
86pub const pixman_op_t_PIXMAN_OP_SOFT_LIGHT: pixman_op_t = 56;
87pub const pixman_op_t_PIXMAN_OP_DIFFERENCE: pixman_op_t = 57;
88pub const pixman_op_t_PIXMAN_OP_EXCLUSION: pixman_op_t = 58;
89pub const pixman_op_t_PIXMAN_OP_HSL_HUE: pixman_op_t = 59;
90pub const pixman_op_t_PIXMAN_OP_HSL_SATURATION: pixman_op_t = 60;
91pub const pixman_op_t_PIXMAN_OP_HSL_COLOR: pixman_op_t = 61;
92pub const pixman_op_t_PIXMAN_OP_HSL_LUMINOSITY: pixman_op_t = 62;
93
94pub const pixman_region_overlap_t_PIXMAN_REGION_OUT: pixman_region_overlap_t = 0;
95pub const pixman_region_overlap_t_PIXMAN_REGION_IN: pixman_region_overlap_t = 1;
96pub const pixman_region_overlap_t_PIXMAN_REGION_PART: pixman_region_overlap_t = 2;
97
98pub const pixman_format_code_t_PIXMAN_rgba_float: pixman_format_code_t = 281756740;
99pub const pixman_format_code_t_PIXMAN_rgb_float: pixman_format_code_t = 214631492;
100pub const pixman_format_code_t_PIXMAN_a8r8g8b8: pixman_format_code_t = 537036936;
101pub const pixman_format_code_t_PIXMAN_x8r8g8b8: pixman_format_code_t = 537004168;
102pub const pixman_format_code_t_PIXMAN_a8b8g8r8: pixman_format_code_t = 537102472;
103pub const pixman_format_code_t_PIXMAN_x8b8g8r8: pixman_format_code_t = 537069704;
104pub const pixman_format_code_t_PIXMAN_b8g8r8a8: pixman_format_code_t = 537430152;
105pub const pixman_format_code_t_PIXMAN_b8g8r8x8: pixman_format_code_t = 537397384;
106pub const pixman_format_code_t_PIXMAN_r8g8b8a8: pixman_format_code_t = 537495688;
107pub const pixman_format_code_t_PIXMAN_r8g8b8x8: pixman_format_code_t = 537462920;
108pub const pixman_format_code_t_PIXMAN_x14r6g6b6: pixman_format_code_t = 537003622;
109pub const pixman_format_code_t_PIXMAN_x2r10g10b10: pixman_format_code_t = 537004714;
110pub const pixman_format_code_t_PIXMAN_a2r10g10b10: pixman_format_code_t = 537012906;
111pub const pixman_format_code_t_PIXMAN_x2b10g10r10: pixman_format_code_t = 537070250;
112pub const pixman_format_code_t_PIXMAN_a2b10g10r10: pixman_format_code_t = 537078442;
113pub const pixman_format_code_t_PIXMAN_a8r8g8b8_sRGB: pixman_format_code_t = 537561224;
114pub const pixman_format_code_t_PIXMAN_r8g8b8: pixman_format_code_t = 402786440;
115pub const pixman_format_code_t_PIXMAN_b8g8r8: pixman_format_code_t = 402851976;
116pub const pixman_format_code_t_PIXMAN_r5g6b5: pixman_format_code_t = 268567909;
117pub const pixman_format_code_t_PIXMAN_b5g6r5: pixman_format_code_t = 268633445;
118pub const pixman_format_code_t_PIXMAN_a1r5g5b5: pixman_format_code_t = 268571989;
119pub const pixman_format_code_t_PIXMAN_x1r5g5b5: pixman_format_code_t = 268567893;
120pub const pixman_format_code_t_PIXMAN_a1b5g5r5: pixman_format_code_t = 268637525;
121pub const pixman_format_code_t_PIXMAN_x1b5g5r5: pixman_format_code_t = 268633429;
122pub const pixman_format_code_t_PIXMAN_a4r4g4b4: pixman_format_code_t = 268584004;
123pub const pixman_format_code_t_PIXMAN_x4r4g4b4: pixman_format_code_t = 268567620;
124pub const pixman_format_code_t_PIXMAN_a4b4g4r4: pixman_format_code_t = 268649540;
125pub const pixman_format_code_t_PIXMAN_x4b4g4r4: pixman_format_code_t = 268633156;
126pub const pixman_format_code_t_PIXMAN_a8: pixman_format_code_t = 134316032;
127pub const pixman_format_code_t_PIXMAN_r3g3b2: pixman_format_code_t = 134349618;
128pub const pixman_format_code_t_PIXMAN_b2g3r3: pixman_format_code_t = 134415154;
129pub const pixman_format_code_t_PIXMAN_a2r2g2b2: pixman_format_code_t = 134357538;
130pub const pixman_format_code_t_PIXMAN_a2b2g2r2: pixman_format_code_t = 134423074;
131pub const pixman_format_code_t_PIXMAN_c8: pixman_format_code_t = 134479872;
132pub const pixman_format_code_t_PIXMAN_g8: pixman_format_code_t = 134545408;
133pub const pixman_format_code_t_PIXMAN_x4a4: pixman_format_code_t = 134299648;
134pub const pixman_format_code_t_PIXMAN_x4c4: pixman_format_code_t = 134479872;
135pub const pixman_format_code_t_PIXMAN_x4g4: pixman_format_code_t = 134545408;
136pub const pixman_format_code_t_PIXMAN_a4: pixman_format_code_t = 67190784;
137pub const pixman_format_code_t_PIXMAN_r1g2b1: pixman_format_code_t = 67240225;
138pub const pixman_format_code_t_PIXMAN_b1g2r1: pixman_format_code_t = 67305761;
139pub const pixman_format_code_t_PIXMAN_a1r1g1b1: pixman_format_code_t = 67244305;
140pub const pixman_format_code_t_PIXMAN_a1b1g1r1: pixman_format_code_t = 67309841;
141pub const pixman_format_code_t_PIXMAN_c4: pixman_format_code_t = 67371008;
142pub const pixman_format_code_t_PIXMAN_g4: pixman_format_code_t = 67436544;
143pub const pixman_format_code_t_PIXMAN_a1: pixman_format_code_t = 16846848;
144pub const pixman_format_code_t_PIXMAN_g1: pixman_format_code_t = 17104896;
145pub const pixman_format_code_t_PIXMAN_yuy2: pixman_format_code_t = 268828672;
146pub const pixman_format_code_t_PIXMAN_yv12: pixman_format_code_t = 201785344;
147
148pub const pixman_kernel_t_PIXMAN_KERNEL_IMPULSE: pixman_kernel_t = 0;
149pub const pixman_kernel_t_PIXMAN_KERNEL_BOX: pixman_kernel_t = 1;
150pub const pixman_kernel_t_PIXMAN_KERNEL_LINEAR: pixman_kernel_t = 2;
151pub const pixman_kernel_t_PIXMAN_KERNEL_CUBIC: pixman_kernel_t = 3;
152pub const pixman_kernel_t_PIXMAN_KERNEL_GAUSSIAN: pixman_kernel_t = 4;
153pub const pixman_kernel_t_PIXMAN_KERNEL_LANCZOS2: pixman_kernel_t = 5;
154pub const pixman_kernel_t_PIXMAN_KERNEL_LANCZOS3: pixman_kernel_t = 6;
155pub const pixman_kernel_t_PIXMAN_KERNEL_LANCZOS3_STRETCHED: pixman_kernel_t = 7;
156
157pub type pixman_bool_t = ::std::os::raw::c_int;
158pub type pixman_fixed_32_32_t = i64;
159pub type pixman_fixed_48_16_t = pixman_fixed_32_32_t;
160pub type pixman_fixed_1_31_t = u32;
161pub type pixman_fixed_1_16_t = u32;
162pub type pixman_fixed_16_16_t = i32;
163pub type pixman_fixed_t = pixman_fixed_16_16_t;
164pub type pixman_color_t = pixman_color;
165pub type pixman_point_fixed_t = pixman_point_fixed;
166pub type pixman_line_fixed_t = pixman_line_fixed;
167pub type pixman_vector_t = pixman_vector;
168pub type pixman_transform_t = pixman_transform;
169pub type pixman_image_t = pixman_image;
170pub type pixman_f_transform_t = pixman_f_transform;
171pub type pixman_f_vector_t = pixman_f_vector;
172pub type pixman_repeat_t = ::std::os::raw::c_uint;
173pub type pixman_dither_t = ::std::os::raw::c_uint;
174pub type pixman_filter_t = ::std::os::raw::c_uint;
175pub type pixman_op_t = ::std::os::raw::c_uint;
176pub type pixman_region16_data_t = pixman_region16_data;
177pub type pixman_box16_t = pixman_box16;
178pub type pixman_rectangle16_t = pixman_rectangle16;
179pub type pixman_region16_t = pixman_region16;
180pub type pixman_region_overlap_t = ::std::os::raw::c_uint;
181pub type pixman_region32_data_t = pixman_region32_data;
182pub type pixman_box32_t = pixman_box32;
183pub type pixman_rectangle32_t = pixman_rectangle32;
184pub type pixman_region32_t = pixman_region32;
185pub type pixman_indexed_t = pixman_indexed;
186pub type pixman_gradient_stop_t = pixman_gradient_stop;
187pub type pixman_index_type = u8;
188pub type pixman_format_code_t = ::std::os::raw::c_uint;
189pub type pixman_kernel_t = ::std::os::raw::c_uint;
190pub type pixman_edge_t = pixman_edge;
191pub type pixman_trapezoid_t = pixman_trapezoid;
192pub type pixman_trap_t = pixman_trap;
193pub type pixman_span_fix_t = pixman_span_fix;
194pub type pixman_triangle_t = pixman_triangle;
195
196pub type pixman_read_memory_func_t = ::std::option::Option<
197    unsafe extern "C" fn(src: *const ::std::os::raw::c_void, size: ::std::os::raw::c_int) -> u32,
198>;
199pub type pixman_write_memory_func_t = ::std::option::Option<
200    unsafe extern "C" fn(dst: *mut ::std::os::raw::c_void, value: u32, size: ::std::os::raw::c_int),
201>;
202pub type pixman_image_destroy_func_t = ::std::option::Option<
203    unsafe extern "C" fn(image: *mut pixman_image_t, data: *mut ::std::os::raw::c_void),
204>;
205
206#[repr(C)]
207#[derive(Debug, Copy, Clone)]
208pub struct pixman_color {
209    pub red: u16,
210    pub green: u16,
211    pub blue: u16,
212    pub alpha: u16,
213}
214
215#[repr(C)]
216#[derive(Debug, Copy, Clone)]
217pub struct pixman_point_fixed {
218    pub x: pixman_fixed_t,
219    pub y: pixman_fixed_t,
220}
221
222#[repr(C)]
223#[derive(Debug, Copy, Clone)]
224pub struct pixman_line_fixed {
225    pub p1: pixman_point_fixed_t,
226    pub p2: pixman_point_fixed_t,
227}
228
229#[repr(C)]
230#[derive(Debug, Copy, Clone)]
231pub struct pixman_vector {
232    pub vector: [pixman_fixed_t; 3usize],
233}
234
235#[repr(C)]
236#[derive(Debug, Copy, Clone)]
237pub struct pixman_transform {
238    pub matrix: [[pixman_fixed_t; 3usize]; 3usize],
239}
240
241#[repr(C)]
242#[derive(Copy, Clone)]
243pub struct pixman_image {
244    _unused: [u8; 0],
245}
246
247#[repr(C)]
248#[derive(Debug, Copy, Clone)]
249pub struct pixman_f_vector {
250    pub v: [f64; 3usize],
251}
252
253#[repr(C)]
254#[derive(Debug, Copy, Clone)]
255pub struct pixman_f_transform {
256    pub m: [[f64; 3usize]; 3usize],
257}
258
259#[repr(C)]
260#[derive(Debug, Copy, Clone)]
261pub struct pixman_region16_data {
262    pub size: ::std::os::raw::c_long,
263    pub numRects: ::std::os::raw::c_long,
264}
265
266#[repr(C)]
267#[derive(Debug, Copy, Clone)]
268pub struct pixman_rectangle16 {
269    pub x: i16,
270    pub y: i16,
271    pub width: u16,
272    pub height: u16,
273}
274
275#[repr(C)]
276#[derive(Debug, Copy, Clone)]
277pub struct pixman_box16 {
278    pub x1: i16,
279    pub y1: i16,
280    pub x2: i16,
281    pub y2: i16,
282}
283
284#[repr(C)]
285#[derive(Debug, Copy, Clone)]
286pub struct pixman_region16 {
287    pub extents: pixman_box16_t,
288    pub data: *mut pixman_region16_data_t,
289}
290
291#[repr(C)]
292#[derive(Debug, Copy, Clone)]
293pub struct pixman_region32_data {
294    pub size: ::std::os::raw::c_long,
295    pub numRects: ::std::os::raw::c_long,
296}
297
298#[repr(C)]
299#[derive(Debug, Copy, Clone)]
300pub struct pixman_rectangle32 {
301    pub x: i32,
302    pub y: i32,
303    pub width: u32,
304    pub height: u32,
305}
306
307#[repr(C)]
308#[derive(Debug, Copy, Clone)]
309pub struct pixman_box32 {
310    pub x1: i32,
311    pub y1: i32,
312    pub x2: i32,
313    pub y2: i32,
314}
315
316#[repr(C)]
317#[derive(Debug, Copy, Clone)]
318pub struct pixman_region32 {
319    pub extents: pixman_box32_t,
320    pub data: *mut pixman_region32_data_t,
321}
322
323#[repr(C)]
324#[derive(Debug, Copy, Clone)]
325pub struct pixman_gradient_stop {
326    pub x: pixman_fixed_t,
327    pub color: pixman_color_t,
328}
329
330#[repr(C)]
331#[derive(Debug, Copy, Clone)]
332pub struct pixman_indexed {
333    pub color: pixman_bool_t,
334    pub rgba: [u32; 256usize],
335    pub ent: [pixman_index_type; 32768usize],
336}
337
338#[repr(C)]
339#[derive(Debug, Copy, Clone)]
340pub struct pixman_glyph_cache_t {
341    _unused: [u8; 0],
342}
343#[repr(C)]
344#[derive(Debug, Copy, Clone)]
345pub struct pixman_glyph_t {
346    pub x: ::std::os::raw::c_int,
347    pub y: ::std::os::raw::c_int,
348    pub glyph: *const ::std::os::raw::c_void,
349}
350
351#[repr(C)]
352#[derive(Debug, Copy, Clone)]
353pub struct pixman_edge {
354    pub x: pixman_fixed_t,
355    pub e: pixman_fixed_t,
356    pub stepx: pixman_fixed_t,
357    pub signdx: pixman_fixed_t,
358    pub dy: pixman_fixed_t,
359    pub dx: pixman_fixed_t,
360    pub stepx_small: pixman_fixed_t,
361    pub stepx_big: pixman_fixed_t,
362    pub dx_small: pixman_fixed_t,
363    pub dx_big: pixman_fixed_t,
364}
365
366#[repr(C)]
367#[derive(Debug, Copy, Clone)]
368pub struct pixman_trapezoid {
369    pub top: pixman_fixed_t,
370    pub bottom: pixman_fixed_t,
371    pub left: pixman_line_fixed_t,
372    pub right: pixman_line_fixed_t,
373}
374
375#[repr(C)]
376#[derive(Debug, Copy, Clone)]
377pub struct pixman_triangle {
378    pub p1: pixman_point_fixed_t,
379    pub p2: pixman_point_fixed_t,
380    pub p3: pixman_point_fixed_t,
381}
382
383#[repr(C)]
384#[derive(Debug, Copy, Clone)]
385pub struct pixman_span_fix {
386    pub l: pixman_fixed_t,
387    pub r: pixman_fixed_t,
388    pub y: pixman_fixed_t,
389}
390
391#[repr(C)]
392#[derive(Debug, Copy, Clone)]
393pub struct pixman_trap {
394    pub top: pixman_span_fix_t,
395    pub bot: pixman_span_fix_t,
396}
397
398extern "C" {
399    pub fn pixman_transform_init_identity(matrix: *mut pixman_transform);
400}
401extern "C" {
402    pub fn pixman_transform_point_3d(
403        transform: *const pixman_transform,
404        vector: *mut pixman_vector,
405    ) -> pixman_bool_t;
406}
407extern "C" {
408    pub fn pixman_transform_point(
409        transform: *const pixman_transform,
410        vector: *mut pixman_vector,
411    ) -> pixman_bool_t;
412}
413extern "C" {
414    pub fn pixman_transform_multiply(
415        dst: *mut pixman_transform,
416        l: *const pixman_transform,
417        r: *const pixman_transform,
418    ) -> pixman_bool_t;
419}
420extern "C" {
421    pub fn pixman_transform_init_scale(
422        t: *mut pixman_transform,
423        sx: pixman_fixed_t,
424        sy: pixman_fixed_t,
425    );
426}
427extern "C" {
428    pub fn pixman_transform_scale(
429        forward: *mut pixman_transform,
430        reverse: *mut pixman_transform,
431        sx: pixman_fixed_t,
432        sy: pixman_fixed_t,
433    ) -> pixman_bool_t;
434}
435extern "C" {
436    pub fn pixman_transform_init_rotate(
437        t: *mut pixman_transform,
438        cos: pixman_fixed_t,
439        sin: pixman_fixed_t,
440    );
441}
442extern "C" {
443    pub fn pixman_transform_rotate(
444        forward: *mut pixman_transform,
445        reverse: *mut pixman_transform,
446        c: pixman_fixed_t,
447        s: pixman_fixed_t,
448    ) -> pixman_bool_t;
449}
450extern "C" {
451    pub fn pixman_transform_init_translate(
452        t: *mut pixman_transform,
453        tx: pixman_fixed_t,
454        ty: pixman_fixed_t,
455    );
456}
457extern "C" {
458    pub fn pixman_transform_translate(
459        forward: *mut pixman_transform,
460        reverse: *mut pixman_transform,
461        tx: pixman_fixed_t,
462        ty: pixman_fixed_t,
463    ) -> pixman_bool_t;
464}
465extern "C" {
466    pub fn pixman_transform_bounds(
467        matrix: *const pixman_transform,
468        b: *mut pixman_box16,
469    ) -> pixman_bool_t;
470}
471extern "C" {
472    pub fn pixman_transform_invert(
473        dst: *mut pixman_transform,
474        src: *const pixman_transform,
475    ) -> pixman_bool_t;
476}
477extern "C" {
478    pub fn pixman_transform_is_identity(t: *const pixman_transform) -> pixman_bool_t;
479}
480extern "C" {
481    pub fn pixman_transform_is_scale(t: *const pixman_transform) -> pixman_bool_t;
482}
483extern "C" {
484    pub fn pixman_transform_is_int_translate(t: *const pixman_transform) -> pixman_bool_t;
485}
486extern "C" {
487    pub fn pixman_transform_is_inverse(
488        a: *const pixman_transform,
489        b: *const pixman_transform,
490    ) -> pixman_bool_t;
491}
492extern "C" {
493    pub fn pixman_transform_from_pixman_f_transform(
494        t: *mut pixman_transform,
495        ft: *const pixman_f_transform,
496    ) -> pixman_bool_t;
497}
498extern "C" {
499    pub fn pixman_f_transform_from_pixman_transform(
500        ft: *mut pixman_f_transform,
501        t: *const pixman_transform,
502    );
503}
504extern "C" {
505    pub fn pixman_f_transform_invert(
506        dst: *mut pixman_f_transform,
507        src: *const pixman_f_transform,
508    ) -> pixman_bool_t;
509}
510extern "C" {
511    pub fn pixman_f_transform_point(
512        t: *const pixman_f_transform,
513        v: *mut pixman_f_vector,
514    ) -> pixman_bool_t;
515}
516extern "C" {
517    pub fn pixman_f_transform_point_3d(t: *const pixman_f_transform, v: *mut pixman_f_vector);
518}
519extern "C" {
520    pub fn pixman_f_transform_multiply(
521        dst: *mut pixman_f_transform,
522        l: *const pixman_f_transform,
523        r: *const pixman_f_transform,
524    );
525}
526extern "C" {
527    pub fn pixman_f_transform_init_scale(t: *mut pixman_f_transform, sx: f64, sy: f64);
528}
529extern "C" {
530    pub fn pixman_f_transform_scale(
531        forward: *mut pixman_f_transform,
532        reverse: *mut pixman_f_transform,
533        sx: f64,
534        sy: f64,
535    ) -> pixman_bool_t;
536}
537extern "C" {
538    pub fn pixman_f_transform_init_rotate(t: *mut pixman_f_transform, cos: f64, sin: f64);
539}
540extern "C" {
541    pub fn pixman_f_transform_rotate(
542        forward: *mut pixman_f_transform,
543        reverse: *mut pixman_f_transform,
544        c: f64,
545        s: f64,
546    ) -> pixman_bool_t;
547}
548extern "C" {
549    pub fn pixman_f_transform_init_translate(t: *mut pixman_f_transform, tx: f64, ty: f64);
550}
551extern "C" {
552    pub fn pixman_f_transform_translate(
553        forward: *mut pixman_f_transform,
554        reverse: *mut pixman_f_transform,
555        tx: f64,
556        ty: f64,
557    ) -> pixman_bool_t;
558}
559extern "C" {
560    pub fn pixman_f_transform_bounds(
561        t: *const pixman_f_transform,
562        b: *mut pixman_box16,
563    ) -> pixman_bool_t;
564}
565extern "C" {
566    pub fn pixman_f_transform_init_identity(t: *mut pixman_f_transform);
567}
568extern "C" {
569    pub fn pixman_region_set_static_pointers(
570        empty_box: *mut pixman_box16_t,
571        empty_data: *mut pixman_region16_data_t,
572        broken_data: *mut pixman_region16_data_t,
573    );
574}
575extern "C" {
576    pub fn pixman_region_init(region: *mut pixman_region16_t);
577}
578extern "C" {
579    pub fn pixman_region_init_rect(
580        region: *mut pixman_region16_t,
581        x: ::std::os::raw::c_int,
582        y: ::std::os::raw::c_int,
583        width: ::std::os::raw::c_uint,
584        height: ::std::os::raw::c_uint,
585    );
586}
587extern "C" {
588    pub fn pixman_region_init_rects(
589        region: *mut pixman_region16_t,
590        boxes: *const pixman_box16_t,
591        count: ::std::os::raw::c_int,
592    ) -> pixman_bool_t;
593}
594extern "C" {
595    pub fn pixman_region_init_with_extents(
596        region: *mut pixman_region16_t,
597        extents: *const pixman_box16_t,
598    );
599}
600extern "C" {
601    pub fn pixman_region_init_from_image(
602        region: *mut pixman_region16_t,
603        image: *mut pixman_image_t,
604    );
605}
606extern "C" {
607    pub fn pixman_region_fini(region: *mut pixman_region16_t);
608}
609extern "C" {
610    pub fn pixman_region_translate(
611        region: *mut pixman_region16_t,
612        x: ::std::os::raw::c_int,
613        y: ::std::os::raw::c_int,
614    );
615}
616extern "C" {
617    pub fn pixman_region_copy(
618        dest: *mut pixman_region16_t,
619        source: *const pixman_region16_t,
620    ) -> pixman_bool_t;
621}
622extern "C" {
623    pub fn pixman_region_intersect(
624        new_reg: *mut pixman_region16_t,
625        reg1: *const pixman_region16_t,
626        reg2: *const pixman_region16_t,
627    ) -> pixman_bool_t;
628}
629extern "C" {
630    pub fn pixman_region_union(
631        new_reg: *mut pixman_region16_t,
632        reg1: *const pixman_region16_t,
633        reg2: *const pixman_region16_t,
634    ) -> pixman_bool_t;
635}
636extern "C" {
637    pub fn pixman_region_union_rect(
638        dest: *mut pixman_region16_t,
639        source: *const pixman_region16_t,
640        x: ::std::os::raw::c_int,
641        y: ::std::os::raw::c_int,
642        width: ::std::os::raw::c_uint,
643        height: ::std::os::raw::c_uint,
644    ) -> pixman_bool_t;
645}
646extern "C" {
647    pub fn pixman_region_intersect_rect(
648        dest: *mut pixman_region16_t,
649        source: *const pixman_region16_t,
650        x: ::std::os::raw::c_int,
651        y: ::std::os::raw::c_int,
652        width: ::std::os::raw::c_uint,
653        height: ::std::os::raw::c_uint,
654    ) -> pixman_bool_t;
655}
656extern "C" {
657    pub fn pixman_region_subtract(
658        reg_d: *mut pixman_region16_t,
659        reg_m: *const pixman_region16_t,
660        reg_s: *const pixman_region16_t,
661    ) -> pixman_bool_t;
662}
663extern "C" {
664    pub fn pixman_region_inverse(
665        new_reg: *mut pixman_region16_t,
666        reg1: *const pixman_region16_t,
667        inv_rect: *const pixman_box16_t,
668    ) -> pixman_bool_t;
669}
670extern "C" {
671    pub fn pixman_region_contains_point(
672        region: *const pixman_region16_t,
673        x: ::std::os::raw::c_int,
674        y: ::std::os::raw::c_int,
675        box_: *mut pixman_box16_t,
676    ) -> pixman_bool_t;
677}
678extern "C" {
679    pub fn pixman_region_contains_rectangle(
680        region: *const pixman_region16_t,
681        prect: *const pixman_box16_t,
682    ) -> pixman_region_overlap_t;
683}
684extern "C" {
685    pub fn pixman_region_not_empty(region: *const pixman_region16_t) -> pixman_bool_t;
686}
687extern "C" {
688    pub fn pixman_region_extents(region: *const pixman_region16_t) -> *mut pixman_box16_t;
689}
690extern "C" {
691    pub fn pixman_region_n_rects(region: *const pixman_region16_t) -> ::std::os::raw::c_int;
692}
693extern "C" {
694    pub fn pixman_region_rectangles(
695        region: *const pixman_region16_t,
696        n_rects: *mut ::std::os::raw::c_int,
697    ) -> *mut pixman_box16_t;
698}
699extern "C" {
700    pub fn pixman_region_equal(
701        region1: *const pixman_region16_t,
702        region2: *const pixman_region16_t,
703    ) -> pixman_bool_t;
704}
705extern "C" {
706    pub fn pixman_region_selfcheck(region: *mut pixman_region16_t) -> pixman_bool_t;
707}
708extern "C" {
709    pub fn pixman_region_reset(region: *mut pixman_region16_t, box_: *const pixman_box16_t);
710}
711extern "C" {
712    pub fn pixman_region_clear(region: *mut pixman_region16_t);
713}
714extern "C" {
715    pub fn pixman_region32_init(region: *mut pixman_region32_t);
716}
717extern "C" {
718    pub fn pixman_region32_init_rect(
719        region: *mut pixman_region32_t,
720        x: ::std::os::raw::c_int,
721        y: ::std::os::raw::c_int,
722        width: ::std::os::raw::c_uint,
723        height: ::std::os::raw::c_uint,
724    );
725}
726extern "C" {
727    pub fn pixman_region32_init_rects(
728        region: *mut pixman_region32_t,
729        boxes: *const pixman_box32_t,
730        count: ::std::os::raw::c_int,
731    ) -> pixman_bool_t;
732}
733extern "C" {
734    pub fn pixman_region32_init_with_extents(
735        region: *mut pixman_region32_t,
736        extents: *const pixman_box32_t,
737    );
738}
739extern "C" {
740    pub fn pixman_region32_init_from_image(
741        region: *mut pixman_region32_t,
742        image: *mut pixman_image_t,
743    );
744}
745extern "C" {
746    pub fn pixman_region32_fini(region: *mut pixman_region32_t);
747}
748extern "C" {
749    pub fn pixman_region32_translate(
750        region: *mut pixman_region32_t,
751        x: ::std::os::raw::c_int,
752        y: ::std::os::raw::c_int,
753    );
754}
755extern "C" {
756    pub fn pixman_region32_copy(
757        dest: *mut pixman_region32_t,
758        source: *const pixman_region32_t,
759    ) -> pixman_bool_t;
760}
761extern "C" {
762    pub fn pixman_region32_intersect(
763        new_reg: *mut pixman_region32_t,
764        reg1: *const pixman_region32_t,
765        reg2: *const pixman_region32_t,
766    ) -> pixman_bool_t;
767}
768extern "C" {
769    pub fn pixman_region32_union(
770        new_reg: *mut pixman_region32_t,
771        reg1: *const pixman_region32_t,
772        reg2: *const pixman_region32_t,
773    ) -> pixman_bool_t;
774}
775extern "C" {
776    pub fn pixman_region32_intersect_rect(
777        dest: *mut pixman_region32_t,
778        source: *const pixman_region32_t,
779        x: ::std::os::raw::c_int,
780        y: ::std::os::raw::c_int,
781        width: ::std::os::raw::c_uint,
782        height: ::std::os::raw::c_uint,
783    ) -> pixman_bool_t;
784}
785extern "C" {
786    pub fn pixman_region32_union_rect(
787        dest: *mut pixman_region32_t,
788        source: *const pixman_region32_t,
789        x: ::std::os::raw::c_int,
790        y: ::std::os::raw::c_int,
791        width: ::std::os::raw::c_uint,
792        height: ::std::os::raw::c_uint,
793    ) -> pixman_bool_t;
794}
795extern "C" {
796    pub fn pixman_region32_subtract(
797        reg_d: *mut pixman_region32_t,
798        reg_m: *const pixman_region32_t,
799        reg_s: *const pixman_region32_t,
800    ) -> pixman_bool_t;
801}
802extern "C" {
803    pub fn pixman_region32_inverse(
804        new_reg: *mut pixman_region32_t,
805        reg1: *const pixman_region32_t,
806        inv_rect: *const pixman_box32_t,
807    ) -> pixman_bool_t;
808}
809extern "C" {
810    pub fn pixman_region32_contains_point(
811        region: *const pixman_region32_t,
812        x: ::std::os::raw::c_int,
813        y: ::std::os::raw::c_int,
814        box_: *mut pixman_box32_t,
815    ) -> pixman_bool_t;
816}
817extern "C" {
818    pub fn pixman_region32_contains_rectangle(
819        region: *const pixman_region32_t,
820        prect: *const pixman_box32_t,
821    ) -> pixman_region_overlap_t;
822}
823extern "C" {
824    pub fn pixman_region32_not_empty(region: *const pixman_region32_t) -> pixman_bool_t;
825}
826extern "C" {
827    pub fn pixman_region32_extents(region: *const pixman_region32_t) -> *mut pixman_box32_t;
828}
829extern "C" {
830    pub fn pixman_region32_n_rects(region: *const pixman_region32_t) -> ::std::os::raw::c_int;
831}
832extern "C" {
833    pub fn pixman_region32_rectangles(
834        region: *const pixman_region32_t,
835        n_rects: *mut ::std::os::raw::c_int,
836    ) -> *mut pixman_box32_t;
837}
838extern "C" {
839    pub fn pixman_region32_equal(
840        region1: *const pixman_region32_t,
841        region2: *const pixman_region32_t,
842    ) -> pixman_bool_t;
843}
844extern "C" {
845    pub fn pixman_region32_selfcheck(region: *mut pixman_region32_t) -> pixman_bool_t;
846}
847extern "C" {
848    pub fn pixman_region32_reset(region: *mut pixman_region32_t, box_: *const pixman_box32_t);
849}
850extern "C" {
851    pub fn pixman_region32_clear(region: *mut pixman_region32_t);
852}
853extern "C" {
854    pub fn pixman_blt(
855        src_bits: *mut u32,
856        dst_bits: *mut u32,
857        src_stride: ::std::os::raw::c_int,
858        dst_stride: ::std::os::raw::c_int,
859        src_bpp: ::std::os::raw::c_int,
860        dst_bpp: ::std::os::raw::c_int,
861        src_x: ::std::os::raw::c_int,
862        src_y: ::std::os::raw::c_int,
863        dest_x: ::std::os::raw::c_int,
864        dest_y: ::std::os::raw::c_int,
865        width: ::std::os::raw::c_int,
866        height: ::std::os::raw::c_int,
867    ) -> pixman_bool_t;
868}
869extern "C" {
870    pub fn pixman_fill(
871        bits: *mut u32,
872        stride: ::std::os::raw::c_int,
873        bpp: ::std::os::raw::c_int,
874        x: ::std::os::raw::c_int,
875        y: ::std::os::raw::c_int,
876        width: ::std::os::raw::c_int,
877        height: ::std::os::raw::c_int,
878        _xor: u32,
879    ) -> pixman_bool_t;
880}
881extern "C" {
882    pub fn pixman_version() -> ::std::os::raw::c_int;
883}
884extern "C" {
885    pub fn pixman_version_string() -> *const ::std::os::raw::c_char;
886}
887extern "C" {
888    pub fn pixman_format_supported_destination(format: pixman_format_code_t) -> pixman_bool_t;
889}
890extern "C" {
891    pub fn pixman_format_supported_source(format: pixman_format_code_t) -> pixman_bool_t;
892}
893extern "C" {
894    pub fn pixman_image_create_solid_fill(color: *const pixman_color_t) -> *mut pixman_image_t;
895}
896extern "C" {
897    pub fn pixman_image_create_linear_gradient(
898        p1: *const pixman_point_fixed_t,
899        p2: *const pixman_point_fixed_t,
900        stops: *const pixman_gradient_stop_t,
901        n_stops: ::std::os::raw::c_int,
902    ) -> *mut pixman_image_t;
903}
904extern "C" {
905    pub fn pixman_image_create_radial_gradient(
906        inner: *const pixman_point_fixed_t,
907        outer: *const pixman_point_fixed_t,
908        inner_radius: pixman_fixed_t,
909        outer_radius: pixman_fixed_t,
910        stops: *const pixman_gradient_stop_t,
911        n_stops: ::std::os::raw::c_int,
912    ) -> *mut pixman_image_t;
913}
914extern "C" {
915    pub fn pixman_image_create_conical_gradient(
916        center: *const pixman_point_fixed_t,
917        angle: pixman_fixed_t,
918        stops: *const pixman_gradient_stop_t,
919        n_stops: ::std::os::raw::c_int,
920    ) -> *mut pixman_image_t;
921}
922extern "C" {
923    pub fn pixman_image_create_bits(
924        format: pixman_format_code_t,
925        width: ::std::os::raw::c_int,
926        height: ::std::os::raw::c_int,
927        bits: *mut u32,
928        rowstride_bytes: ::std::os::raw::c_int,
929    ) -> *mut pixman_image_t;
930}
931extern "C" {
932    pub fn pixman_image_create_bits_no_clear(
933        format: pixman_format_code_t,
934        width: ::std::os::raw::c_int,
935        height: ::std::os::raw::c_int,
936        bits: *mut u32,
937        rowstride_bytes: ::std::os::raw::c_int,
938    ) -> *mut pixman_image_t;
939}
940extern "C" {
941    pub fn pixman_image_ref(image: *mut pixman_image_t) -> *mut pixman_image_t;
942}
943extern "C" {
944    pub fn pixman_image_unref(image: *mut pixman_image_t) -> pixman_bool_t;
945}
946extern "C" {
947    pub fn pixman_image_set_destroy_function(
948        image: *mut pixman_image_t,
949        function: pixman_image_destroy_func_t,
950        data: *mut ::std::os::raw::c_void,
951    );
952}
953extern "C" {
954    pub fn pixman_image_get_destroy_data(image: *mut pixman_image_t)
955        -> *mut ::std::os::raw::c_void;
956}
957extern "C" {
958    pub fn pixman_image_set_clip_region(
959        image: *mut pixman_image_t,
960        region: *const pixman_region16_t,
961    ) -> pixman_bool_t;
962}
963extern "C" {
964    pub fn pixman_image_set_clip_region32(
965        image: *mut pixman_image_t,
966        region: *const pixman_region32_t,
967    ) -> pixman_bool_t;
968}
969extern "C" {
970    pub fn pixman_image_set_has_client_clip(image: *mut pixman_image_t, clien_clip: pixman_bool_t);
971}
972extern "C" {
973    pub fn pixman_image_set_transform(
974        image: *mut pixman_image_t,
975        transform: *const pixman_transform_t,
976    ) -> pixman_bool_t;
977}
978extern "C" {
979    pub fn pixman_image_set_repeat(image: *mut pixman_image_t, repeat: pixman_repeat_t);
980}
981extern "C" {
982    pub fn pixman_image_set_dither(image: *mut pixman_image_t, dither: pixman_dither_t);
983}
984extern "C" {
985    pub fn pixman_image_set_dither_offset(
986        image: *mut pixman_image_t,
987        offset_x: ::std::os::raw::c_int,
988        offset_y: ::std::os::raw::c_int,
989    );
990}
991extern "C" {
992    pub fn pixman_image_set_filter(
993        image: *mut pixman_image_t,
994        filter: pixman_filter_t,
995        filter_params: *const pixman_fixed_t,
996        n_filter_params: ::std::os::raw::c_int,
997    ) -> pixman_bool_t;
998}
999extern "C" {
1000    pub fn pixman_image_set_source_clipping(
1001        image: *mut pixman_image_t,
1002        source_clipping: pixman_bool_t,
1003    );
1004}
1005extern "C" {
1006    pub fn pixman_image_set_alpha_map(
1007        image: *mut pixman_image_t,
1008        alpha_map: *mut pixman_image_t,
1009        x: i16,
1010        y: i16,
1011    );
1012}
1013extern "C" {
1014    pub fn pixman_image_set_component_alpha(
1015        image: *mut pixman_image_t,
1016        component_alpha: pixman_bool_t,
1017    );
1018}
1019extern "C" {
1020    pub fn pixman_image_get_component_alpha(image: *mut pixman_image_t) -> pixman_bool_t;
1021}
1022extern "C" {
1023    pub fn pixman_image_set_accessors(
1024        image: *mut pixman_image_t,
1025        read_func: pixman_read_memory_func_t,
1026        write_func: pixman_write_memory_func_t,
1027    );
1028}
1029extern "C" {
1030    pub fn pixman_image_set_indexed(image: *mut pixman_image_t, indexed: *const pixman_indexed_t);
1031}
1032extern "C" {
1033    pub fn pixman_image_get_data(image: *mut pixman_image_t) -> *mut u32;
1034}
1035extern "C" {
1036    pub fn pixman_image_get_width(image: *mut pixman_image_t) -> ::std::os::raw::c_int;
1037}
1038extern "C" {
1039    pub fn pixman_image_get_height(image: *mut pixman_image_t) -> ::std::os::raw::c_int;
1040}
1041extern "C" {
1042    pub fn pixman_image_get_stride(image: *mut pixman_image_t) -> ::std::os::raw::c_int;
1043}
1044extern "C" {
1045    pub fn pixman_image_get_depth(image: *mut pixman_image_t) -> ::std::os::raw::c_int;
1046}
1047extern "C" {
1048    pub fn pixman_image_get_format(image: *mut pixman_image_t) -> pixman_format_code_t;
1049}
1050extern "C" {
1051    pub fn pixman_filter_create_separable_convolution(
1052        n_values: *mut ::std::os::raw::c_int,
1053        scale_x: pixman_fixed_t,
1054        scale_y: pixman_fixed_t,
1055        reconstruct_x: pixman_kernel_t,
1056        reconstruct_y: pixman_kernel_t,
1057        sample_x: pixman_kernel_t,
1058        sample_y: pixman_kernel_t,
1059        subsample_bits_x: ::std::os::raw::c_int,
1060        subsample_bits_y: ::std::os::raw::c_int,
1061    ) -> *mut pixman_fixed_t;
1062}
1063extern "C" {
1064    pub fn pixman_image_fill_rectangles(
1065        op: pixman_op_t,
1066        image: *mut pixman_image_t,
1067        color: *const pixman_color_t,
1068        n_rects: ::std::os::raw::c_int,
1069        rects: *const pixman_rectangle16_t,
1070    ) -> pixman_bool_t;
1071}
1072extern "C" {
1073    pub fn pixman_image_fill_boxes(
1074        op: pixman_op_t,
1075        dest: *mut pixman_image_t,
1076        color: *const pixman_color_t,
1077        n_boxes: ::std::os::raw::c_int,
1078        boxes: *const pixman_box32_t,
1079    ) -> pixman_bool_t;
1080}
1081extern "C" {
1082    pub fn pixman_compute_composite_region(
1083        region: *mut pixman_region16_t,
1084        src_image: *mut pixman_image_t,
1085        mask_image: *mut pixman_image_t,
1086        dest_image: *mut pixman_image_t,
1087        src_x: i16,
1088        src_y: i16,
1089        mask_x: i16,
1090        mask_y: i16,
1091        dest_x: i16,
1092        dest_y: i16,
1093        width: u16,
1094        height: u16,
1095    ) -> pixman_bool_t;
1096}
1097extern "C" {
1098    pub fn pixman_image_composite(
1099        op: pixman_op_t,
1100        src: *mut pixman_image_t,
1101        mask: *mut pixman_image_t,
1102        dest: *mut pixman_image_t,
1103        src_x: i16,
1104        src_y: i16,
1105        mask_x: i16,
1106        mask_y: i16,
1107        dest_x: i16,
1108        dest_y: i16,
1109        width: u16,
1110        height: u16,
1111    );
1112}
1113extern "C" {
1114    pub fn pixman_image_composite32(
1115        op: pixman_op_t,
1116        src: *mut pixman_image_t,
1117        mask: *mut pixman_image_t,
1118        dest: *mut pixman_image_t,
1119        src_x: i32,
1120        src_y: i32,
1121        mask_x: i32,
1122        mask_y: i32,
1123        dest_x: i32,
1124        dest_y: i32,
1125        width: i32,
1126        height: i32,
1127    );
1128}
1129extern "C" {
1130    pub fn pixman_disable_out_of_bounds_workaround();
1131}
1132extern "C" {
1133    pub fn pixman_glyph_cache_create() -> *mut pixman_glyph_cache_t;
1134}
1135extern "C" {
1136    pub fn pixman_glyph_cache_destroy(cache: *mut pixman_glyph_cache_t);
1137}
1138extern "C" {
1139    pub fn pixman_glyph_cache_freeze(cache: *mut pixman_glyph_cache_t);
1140}
1141extern "C" {
1142    pub fn pixman_glyph_cache_thaw(cache: *mut pixman_glyph_cache_t);
1143}
1144extern "C" {
1145    pub fn pixman_glyph_cache_lookup(
1146        cache: *mut pixman_glyph_cache_t,
1147        font_key: *mut ::std::os::raw::c_void,
1148        glyph_key: *mut ::std::os::raw::c_void,
1149    ) -> *const ::std::os::raw::c_void;
1150}
1151extern "C" {
1152    pub fn pixman_glyph_cache_insert(
1153        cache: *mut pixman_glyph_cache_t,
1154        font_key: *mut ::std::os::raw::c_void,
1155        glyph_key: *mut ::std::os::raw::c_void,
1156        origin_x: ::std::os::raw::c_int,
1157        origin_y: ::std::os::raw::c_int,
1158        glyph_image: *mut pixman_image_t,
1159    ) -> *const ::std::os::raw::c_void;
1160}
1161extern "C" {
1162    pub fn pixman_glyph_cache_remove(
1163        cache: *mut pixman_glyph_cache_t,
1164        font_key: *mut ::std::os::raw::c_void,
1165        glyph_key: *mut ::std::os::raw::c_void,
1166    );
1167}
1168extern "C" {
1169    pub fn pixman_glyph_get_extents(
1170        cache: *mut pixman_glyph_cache_t,
1171        n_glyphs: ::std::os::raw::c_int,
1172        glyphs: *mut pixman_glyph_t,
1173        extents: *mut pixman_box32_t,
1174    );
1175}
1176extern "C" {
1177    pub fn pixman_glyph_get_mask_format(
1178        cache: *mut pixman_glyph_cache_t,
1179        n_glyphs: ::std::os::raw::c_int,
1180        glyphs: *const pixman_glyph_t,
1181    ) -> pixman_format_code_t;
1182}
1183extern "C" {
1184    pub fn pixman_composite_glyphs(
1185        op: pixman_op_t,
1186        src: *mut pixman_image_t,
1187        dest: *mut pixman_image_t,
1188        mask_format: pixman_format_code_t,
1189        src_x: i32,
1190        src_y: i32,
1191        mask_x: i32,
1192        mask_y: i32,
1193        dest_x: i32,
1194        dest_y: i32,
1195        width: i32,
1196        height: i32,
1197        cache: *mut pixman_glyph_cache_t,
1198        n_glyphs: ::std::os::raw::c_int,
1199        glyphs: *const pixman_glyph_t,
1200    );
1201}
1202extern "C" {
1203    pub fn pixman_composite_glyphs_no_mask(
1204        op: pixman_op_t,
1205        src: *mut pixman_image_t,
1206        dest: *mut pixman_image_t,
1207        src_x: i32,
1208        src_y: i32,
1209        dest_x: i32,
1210        dest_y: i32,
1211        cache: *mut pixman_glyph_cache_t,
1212        n_glyphs: ::std::os::raw::c_int,
1213        glyphs: *const pixman_glyph_t,
1214    );
1215}
1216extern "C" {
1217    pub fn pixman_sample_ceil_y(y: pixman_fixed_t, bpp: ::std::os::raw::c_int) -> pixman_fixed_t;
1218}
1219extern "C" {
1220    pub fn pixman_sample_floor_y(y: pixman_fixed_t, bpp: ::std::os::raw::c_int) -> pixman_fixed_t;
1221}
1222extern "C" {
1223    pub fn pixman_edge_step(e: *mut pixman_edge_t, n: ::std::os::raw::c_int);
1224}
1225extern "C" {
1226    pub fn pixman_edge_init(
1227        e: *mut pixman_edge_t,
1228        bpp: ::std::os::raw::c_int,
1229        y_start: pixman_fixed_t,
1230        x_top: pixman_fixed_t,
1231        y_top: pixman_fixed_t,
1232        x_bot: pixman_fixed_t,
1233        y_bot: pixman_fixed_t,
1234    );
1235}
1236extern "C" {
1237    pub fn pixman_line_fixed_edge_init(
1238        e: *mut pixman_edge_t,
1239        bpp: ::std::os::raw::c_int,
1240        y: pixman_fixed_t,
1241        line: *const pixman_line_fixed_t,
1242        x_off: ::std::os::raw::c_int,
1243        y_off: ::std::os::raw::c_int,
1244    );
1245}
1246extern "C" {
1247    pub fn pixman_rasterize_edges(
1248        image: *mut pixman_image_t,
1249        l: *mut pixman_edge_t,
1250        r: *mut pixman_edge_t,
1251        t: pixman_fixed_t,
1252        b: pixman_fixed_t,
1253    );
1254}
1255extern "C" {
1256    pub fn pixman_add_traps(
1257        image: *mut pixman_image_t,
1258        x_off: i16,
1259        y_off: i16,
1260        ntrap: ::std::os::raw::c_int,
1261        traps: *const pixman_trap_t,
1262    );
1263}
1264extern "C" {
1265    pub fn pixman_add_trapezoids(
1266        image: *mut pixman_image_t,
1267        x_off: i16,
1268        y_off: ::std::os::raw::c_int,
1269        ntraps: ::std::os::raw::c_int,
1270        traps: *const pixman_trapezoid_t,
1271    );
1272}
1273extern "C" {
1274    pub fn pixman_rasterize_trapezoid(
1275        image: *mut pixman_image_t,
1276        trap: *const pixman_trapezoid_t,
1277        x_off: ::std::os::raw::c_int,
1278        y_off: ::std::os::raw::c_int,
1279    );
1280}
1281extern "C" {
1282    pub fn pixman_composite_trapezoids(
1283        op: pixman_op_t,
1284        src: *mut pixman_image_t,
1285        dst: *mut pixman_image_t,
1286        mask_format: pixman_format_code_t,
1287        x_src: ::std::os::raw::c_int,
1288        y_src: ::std::os::raw::c_int,
1289        x_dst: ::std::os::raw::c_int,
1290        y_dst: ::std::os::raw::c_int,
1291        n_traps: ::std::os::raw::c_int,
1292        traps: *const pixman_trapezoid_t,
1293    );
1294}
1295extern "C" {
1296    pub fn pixman_composite_triangles(
1297        op: pixman_op_t,
1298        src: *mut pixman_image_t,
1299        dst: *mut pixman_image_t,
1300        mask_format: pixman_format_code_t,
1301        x_src: ::std::os::raw::c_int,
1302        y_src: ::std::os::raw::c_int,
1303        x_dst: ::std::os::raw::c_int,
1304        y_dst: ::std::os::raw::c_int,
1305        n_tris: ::std::os::raw::c_int,
1306        tris: *const pixman_triangle_t,
1307    );
1308}
1309extern "C" {
1310    pub fn pixman_add_triangles(
1311        image: *mut pixman_image_t,
1312        x_off: i32,
1313        y_off: i32,
1314        n_tris: ::std::os::raw::c_int,
1315        tris: *const pixman_triangle_t,
1316    );
1317}