renderkit/opt/rustwide/target/x86_64-unknown-linux-gnu/debug/build/renderkit-6dd54f3176b1cbf6/out/
bindings.rs

1/* automatically generated by rust-bindgen 0.63.0 */
2
3pub const RAYLIB_VERSION: &[u8; 4usize] = b"4.2\0";
4pub const PI: f64 = 3.141592653589793;
5pub const DEG2RAD: f64 = 0.017453292519943295;
6pub const RAD2DEG: f64 = 57.29577951308232;
7pub const __bool_true_false_are_defined: u32 = 1;
8pub const true_: u32 = 1;
9pub const false_: u32 = 0;
10pub type __gnuc_va_list = __builtin_va_list;
11pub type va_list = __builtin_va_list;
12#[repr(C)]
13#[derive(Debug, Copy, Clone)]
14pub struct Vector2 {
15    pub x: f32,
16    pub y: f32,
17}
18#[test]
19fn bindgen_test_layout_Vector2() {
20    const UNINIT: ::std::mem::MaybeUninit<Vector2> = ::std::mem::MaybeUninit::uninit();
21    let ptr = UNINIT.as_ptr();
22    assert_eq!(
23        ::std::mem::size_of::<Vector2>(),
24        8usize,
25        concat!("Size of: ", stringify!(Vector2))
26    );
27    assert_eq!(
28        ::std::mem::align_of::<Vector2>(),
29        4usize,
30        concat!("Alignment of ", stringify!(Vector2))
31    );
32    assert_eq!(
33        unsafe { ::std::ptr::addr_of!((*ptr).x) as usize - ptr as usize },
34        0usize,
35        concat!(
36            "Offset of field: ",
37            stringify!(Vector2),
38            "::",
39            stringify!(x)
40        )
41    );
42    assert_eq!(
43        unsafe { ::std::ptr::addr_of!((*ptr).y) as usize - ptr as usize },
44        4usize,
45        concat!(
46            "Offset of field: ",
47            stringify!(Vector2),
48            "::",
49            stringify!(y)
50        )
51    );
52}
53#[repr(C)]
54#[derive(Debug, Copy, Clone)]
55pub struct Vector3 {
56    pub x: f32,
57    pub y: f32,
58    pub z: f32,
59}
60#[test]
61fn bindgen_test_layout_Vector3() {
62    const UNINIT: ::std::mem::MaybeUninit<Vector3> = ::std::mem::MaybeUninit::uninit();
63    let ptr = UNINIT.as_ptr();
64    assert_eq!(
65        ::std::mem::size_of::<Vector3>(),
66        12usize,
67        concat!("Size of: ", stringify!(Vector3))
68    );
69    assert_eq!(
70        ::std::mem::align_of::<Vector3>(),
71        4usize,
72        concat!("Alignment of ", stringify!(Vector3))
73    );
74    assert_eq!(
75        unsafe { ::std::ptr::addr_of!((*ptr).x) as usize - ptr as usize },
76        0usize,
77        concat!(
78            "Offset of field: ",
79            stringify!(Vector3),
80            "::",
81            stringify!(x)
82        )
83    );
84    assert_eq!(
85        unsafe { ::std::ptr::addr_of!((*ptr).y) as usize - ptr as usize },
86        4usize,
87        concat!(
88            "Offset of field: ",
89            stringify!(Vector3),
90            "::",
91            stringify!(y)
92        )
93    );
94    assert_eq!(
95        unsafe { ::std::ptr::addr_of!((*ptr).z) as usize - ptr as usize },
96        8usize,
97        concat!(
98            "Offset of field: ",
99            stringify!(Vector3),
100            "::",
101            stringify!(z)
102        )
103    );
104}
105#[repr(C)]
106#[derive(Debug, Copy, Clone)]
107pub struct Vector4 {
108    pub x: f32,
109    pub y: f32,
110    pub z: f32,
111    pub w: f32,
112}
113#[test]
114fn bindgen_test_layout_Vector4() {
115    const UNINIT: ::std::mem::MaybeUninit<Vector4> = ::std::mem::MaybeUninit::uninit();
116    let ptr = UNINIT.as_ptr();
117    assert_eq!(
118        ::std::mem::size_of::<Vector4>(),
119        16usize,
120        concat!("Size of: ", stringify!(Vector4))
121    );
122    assert_eq!(
123        ::std::mem::align_of::<Vector4>(),
124        4usize,
125        concat!("Alignment of ", stringify!(Vector4))
126    );
127    assert_eq!(
128        unsafe { ::std::ptr::addr_of!((*ptr).x) as usize - ptr as usize },
129        0usize,
130        concat!(
131            "Offset of field: ",
132            stringify!(Vector4),
133            "::",
134            stringify!(x)
135        )
136    );
137    assert_eq!(
138        unsafe { ::std::ptr::addr_of!((*ptr).y) as usize - ptr as usize },
139        4usize,
140        concat!(
141            "Offset of field: ",
142            stringify!(Vector4),
143            "::",
144            stringify!(y)
145        )
146    );
147    assert_eq!(
148        unsafe { ::std::ptr::addr_of!((*ptr).z) as usize - ptr as usize },
149        8usize,
150        concat!(
151            "Offset of field: ",
152            stringify!(Vector4),
153            "::",
154            stringify!(z)
155        )
156    );
157    assert_eq!(
158        unsafe { ::std::ptr::addr_of!((*ptr).w) as usize - ptr as usize },
159        12usize,
160        concat!(
161            "Offset of field: ",
162            stringify!(Vector4),
163            "::",
164            stringify!(w)
165        )
166    );
167}
168pub type Quaternion = Vector4;
169#[repr(C)]
170#[derive(Debug, Copy, Clone)]
171pub struct Matrix {
172    pub m0: f32,
173    pub m4: f32,
174    pub m8: f32,
175    pub m12: f32,
176    pub m1: f32,
177    pub m5: f32,
178    pub m9: f32,
179    pub m13: f32,
180    pub m2: f32,
181    pub m6: f32,
182    pub m10: f32,
183    pub m14: f32,
184    pub m3: f32,
185    pub m7: f32,
186    pub m11: f32,
187    pub m15: f32,
188}
189#[test]
190fn bindgen_test_layout_Matrix() {
191    const UNINIT: ::std::mem::MaybeUninit<Matrix> = ::std::mem::MaybeUninit::uninit();
192    let ptr = UNINIT.as_ptr();
193    assert_eq!(
194        ::std::mem::size_of::<Matrix>(),
195        64usize,
196        concat!("Size of: ", stringify!(Matrix))
197    );
198    assert_eq!(
199        ::std::mem::align_of::<Matrix>(),
200        4usize,
201        concat!("Alignment of ", stringify!(Matrix))
202    );
203    assert_eq!(
204        unsafe { ::std::ptr::addr_of!((*ptr).m0) as usize - ptr as usize },
205        0usize,
206        concat!(
207            "Offset of field: ",
208            stringify!(Matrix),
209            "::",
210            stringify!(m0)
211        )
212    );
213    assert_eq!(
214        unsafe { ::std::ptr::addr_of!((*ptr).m4) as usize - ptr as usize },
215        4usize,
216        concat!(
217            "Offset of field: ",
218            stringify!(Matrix),
219            "::",
220            stringify!(m4)
221        )
222    );
223    assert_eq!(
224        unsafe { ::std::ptr::addr_of!((*ptr).m8) as usize - ptr as usize },
225        8usize,
226        concat!(
227            "Offset of field: ",
228            stringify!(Matrix),
229            "::",
230            stringify!(m8)
231        )
232    );
233    assert_eq!(
234        unsafe { ::std::ptr::addr_of!((*ptr).m12) as usize - ptr as usize },
235        12usize,
236        concat!(
237            "Offset of field: ",
238            stringify!(Matrix),
239            "::",
240            stringify!(m12)
241        )
242    );
243    assert_eq!(
244        unsafe { ::std::ptr::addr_of!((*ptr).m1) as usize - ptr as usize },
245        16usize,
246        concat!(
247            "Offset of field: ",
248            stringify!(Matrix),
249            "::",
250            stringify!(m1)
251        )
252    );
253    assert_eq!(
254        unsafe { ::std::ptr::addr_of!((*ptr).m5) as usize - ptr as usize },
255        20usize,
256        concat!(
257            "Offset of field: ",
258            stringify!(Matrix),
259            "::",
260            stringify!(m5)
261        )
262    );
263    assert_eq!(
264        unsafe { ::std::ptr::addr_of!((*ptr).m9) as usize - ptr as usize },
265        24usize,
266        concat!(
267            "Offset of field: ",
268            stringify!(Matrix),
269            "::",
270            stringify!(m9)
271        )
272    );
273    assert_eq!(
274        unsafe { ::std::ptr::addr_of!((*ptr).m13) as usize - ptr as usize },
275        28usize,
276        concat!(
277            "Offset of field: ",
278            stringify!(Matrix),
279            "::",
280            stringify!(m13)
281        )
282    );
283    assert_eq!(
284        unsafe { ::std::ptr::addr_of!((*ptr).m2) as usize - ptr as usize },
285        32usize,
286        concat!(
287            "Offset of field: ",
288            stringify!(Matrix),
289            "::",
290            stringify!(m2)
291        )
292    );
293    assert_eq!(
294        unsafe { ::std::ptr::addr_of!((*ptr).m6) as usize - ptr as usize },
295        36usize,
296        concat!(
297            "Offset of field: ",
298            stringify!(Matrix),
299            "::",
300            stringify!(m6)
301        )
302    );
303    assert_eq!(
304        unsafe { ::std::ptr::addr_of!((*ptr).m10) as usize - ptr as usize },
305        40usize,
306        concat!(
307            "Offset of field: ",
308            stringify!(Matrix),
309            "::",
310            stringify!(m10)
311        )
312    );
313    assert_eq!(
314        unsafe { ::std::ptr::addr_of!((*ptr).m14) as usize - ptr as usize },
315        44usize,
316        concat!(
317            "Offset of field: ",
318            stringify!(Matrix),
319            "::",
320            stringify!(m14)
321        )
322    );
323    assert_eq!(
324        unsafe { ::std::ptr::addr_of!((*ptr).m3) as usize - ptr as usize },
325        48usize,
326        concat!(
327            "Offset of field: ",
328            stringify!(Matrix),
329            "::",
330            stringify!(m3)
331        )
332    );
333    assert_eq!(
334        unsafe { ::std::ptr::addr_of!((*ptr).m7) as usize - ptr as usize },
335        52usize,
336        concat!(
337            "Offset of field: ",
338            stringify!(Matrix),
339            "::",
340            stringify!(m7)
341        )
342    );
343    assert_eq!(
344        unsafe { ::std::ptr::addr_of!((*ptr).m11) as usize - ptr as usize },
345        56usize,
346        concat!(
347            "Offset of field: ",
348            stringify!(Matrix),
349            "::",
350            stringify!(m11)
351        )
352    );
353    assert_eq!(
354        unsafe { ::std::ptr::addr_of!((*ptr).m15) as usize - ptr as usize },
355        60usize,
356        concat!(
357            "Offset of field: ",
358            stringify!(Matrix),
359            "::",
360            stringify!(m15)
361        )
362    );
363}
364#[repr(C)]
365#[derive(Debug, Copy, Clone)]
366pub struct Color {
367    pub r: ::std::os::raw::c_uchar,
368    pub g: ::std::os::raw::c_uchar,
369    pub b: ::std::os::raw::c_uchar,
370    pub a: ::std::os::raw::c_uchar,
371}
372#[test]
373fn bindgen_test_layout_Color() {
374    const UNINIT: ::std::mem::MaybeUninit<Color> = ::std::mem::MaybeUninit::uninit();
375    let ptr = UNINIT.as_ptr();
376    assert_eq!(
377        ::std::mem::size_of::<Color>(),
378        4usize,
379        concat!("Size of: ", stringify!(Color))
380    );
381    assert_eq!(
382        ::std::mem::align_of::<Color>(),
383        1usize,
384        concat!("Alignment of ", stringify!(Color))
385    );
386    assert_eq!(
387        unsafe { ::std::ptr::addr_of!((*ptr).r) as usize - ptr as usize },
388        0usize,
389        concat!("Offset of field: ", stringify!(Color), "::", stringify!(r))
390    );
391    assert_eq!(
392        unsafe { ::std::ptr::addr_of!((*ptr).g) as usize - ptr as usize },
393        1usize,
394        concat!("Offset of field: ", stringify!(Color), "::", stringify!(g))
395    );
396    assert_eq!(
397        unsafe { ::std::ptr::addr_of!((*ptr).b) as usize - ptr as usize },
398        2usize,
399        concat!("Offset of field: ", stringify!(Color), "::", stringify!(b))
400    );
401    assert_eq!(
402        unsafe { ::std::ptr::addr_of!((*ptr).a) as usize - ptr as usize },
403        3usize,
404        concat!("Offset of field: ", stringify!(Color), "::", stringify!(a))
405    );
406}
407#[repr(C)]
408#[derive(Debug, Copy, Clone)]
409pub struct Rectangle {
410    pub x: f32,
411    pub y: f32,
412    pub width: f32,
413    pub height: f32,
414}
415#[test]
416fn bindgen_test_layout_Rectangle() {
417    const UNINIT: ::std::mem::MaybeUninit<Rectangle> = ::std::mem::MaybeUninit::uninit();
418    let ptr = UNINIT.as_ptr();
419    assert_eq!(
420        ::std::mem::size_of::<Rectangle>(),
421        16usize,
422        concat!("Size of: ", stringify!(Rectangle))
423    );
424    assert_eq!(
425        ::std::mem::align_of::<Rectangle>(),
426        4usize,
427        concat!("Alignment of ", stringify!(Rectangle))
428    );
429    assert_eq!(
430        unsafe { ::std::ptr::addr_of!((*ptr).x) as usize - ptr as usize },
431        0usize,
432        concat!(
433            "Offset of field: ",
434            stringify!(Rectangle),
435            "::",
436            stringify!(x)
437        )
438    );
439    assert_eq!(
440        unsafe { ::std::ptr::addr_of!((*ptr).y) as usize - ptr as usize },
441        4usize,
442        concat!(
443            "Offset of field: ",
444            stringify!(Rectangle),
445            "::",
446            stringify!(y)
447        )
448    );
449    assert_eq!(
450        unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize },
451        8usize,
452        concat!(
453            "Offset of field: ",
454            stringify!(Rectangle),
455            "::",
456            stringify!(width)
457        )
458    );
459    assert_eq!(
460        unsafe { ::std::ptr::addr_of!((*ptr).height) as usize - ptr as usize },
461        12usize,
462        concat!(
463            "Offset of field: ",
464            stringify!(Rectangle),
465            "::",
466            stringify!(height)
467        )
468    );
469}
470#[repr(C)]
471#[derive(Debug, Copy, Clone)]
472pub struct Image {
473    pub data: *mut ::std::os::raw::c_void,
474    pub width: ::std::os::raw::c_int,
475    pub height: ::std::os::raw::c_int,
476    pub mipmaps: ::std::os::raw::c_int,
477    pub format: ::std::os::raw::c_int,
478}
479#[test]
480fn bindgen_test_layout_Image() {
481    const UNINIT: ::std::mem::MaybeUninit<Image> = ::std::mem::MaybeUninit::uninit();
482    let ptr = UNINIT.as_ptr();
483    assert_eq!(
484        ::std::mem::size_of::<Image>(),
485        24usize,
486        concat!("Size of: ", stringify!(Image))
487    );
488    assert_eq!(
489        ::std::mem::align_of::<Image>(),
490        8usize,
491        concat!("Alignment of ", stringify!(Image))
492    );
493    assert_eq!(
494        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
495        0usize,
496        concat!(
497            "Offset of field: ",
498            stringify!(Image),
499            "::",
500            stringify!(data)
501        )
502    );
503    assert_eq!(
504        unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize },
505        8usize,
506        concat!(
507            "Offset of field: ",
508            stringify!(Image),
509            "::",
510            stringify!(width)
511        )
512    );
513    assert_eq!(
514        unsafe { ::std::ptr::addr_of!((*ptr).height) as usize - ptr as usize },
515        12usize,
516        concat!(
517            "Offset of field: ",
518            stringify!(Image),
519            "::",
520            stringify!(height)
521        )
522    );
523    assert_eq!(
524        unsafe { ::std::ptr::addr_of!((*ptr).mipmaps) as usize - ptr as usize },
525        16usize,
526        concat!(
527            "Offset of field: ",
528            stringify!(Image),
529            "::",
530            stringify!(mipmaps)
531        )
532    );
533    assert_eq!(
534        unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize },
535        20usize,
536        concat!(
537            "Offset of field: ",
538            stringify!(Image),
539            "::",
540            stringify!(format)
541        )
542    );
543}
544#[repr(C)]
545#[derive(Debug, Copy, Clone)]
546pub struct Texture {
547    pub id: ::std::os::raw::c_uint,
548    pub width: ::std::os::raw::c_int,
549    pub height: ::std::os::raw::c_int,
550    pub mipmaps: ::std::os::raw::c_int,
551    pub format: ::std::os::raw::c_int,
552}
553#[test]
554fn bindgen_test_layout_Texture() {
555    const UNINIT: ::std::mem::MaybeUninit<Texture> = ::std::mem::MaybeUninit::uninit();
556    let ptr = UNINIT.as_ptr();
557    assert_eq!(
558        ::std::mem::size_of::<Texture>(),
559        20usize,
560        concat!("Size of: ", stringify!(Texture))
561    );
562    assert_eq!(
563        ::std::mem::align_of::<Texture>(),
564        4usize,
565        concat!("Alignment of ", stringify!(Texture))
566    );
567    assert_eq!(
568        unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize },
569        0usize,
570        concat!(
571            "Offset of field: ",
572            stringify!(Texture),
573            "::",
574            stringify!(id)
575        )
576    );
577    assert_eq!(
578        unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize },
579        4usize,
580        concat!(
581            "Offset of field: ",
582            stringify!(Texture),
583            "::",
584            stringify!(width)
585        )
586    );
587    assert_eq!(
588        unsafe { ::std::ptr::addr_of!((*ptr).height) as usize - ptr as usize },
589        8usize,
590        concat!(
591            "Offset of field: ",
592            stringify!(Texture),
593            "::",
594            stringify!(height)
595        )
596    );
597    assert_eq!(
598        unsafe { ::std::ptr::addr_of!((*ptr).mipmaps) as usize - ptr as usize },
599        12usize,
600        concat!(
601            "Offset of field: ",
602            stringify!(Texture),
603            "::",
604            stringify!(mipmaps)
605        )
606    );
607    assert_eq!(
608        unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize },
609        16usize,
610        concat!(
611            "Offset of field: ",
612            stringify!(Texture),
613            "::",
614            stringify!(format)
615        )
616    );
617}
618pub type Texture2D = Texture;
619pub type TextureCubemap = Texture;
620#[repr(C)]
621#[derive(Debug, Copy, Clone)]
622pub struct RenderTexture {
623    pub id: ::std::os::raw::c_uint,
624    pub texture: Texture,
625    pub depth: Texture,
626}
627#[test]
628fn bindgen_test_layout_RenderTexture() {
629    const UNINIT: ::std::mem::MaybeUninit<RenderTexture> = ::std::mem::MaybeUninit::uninit();
630    let ptr = UNINIT.as_ptr();
631    assert_eq!(
632        ::std::mem::size_of::<RenderTexture>(),
633        44usize,
634        concat!("Size of: ", stringify!(RenderTexture))
635    );
636    assert_eq!(
637        ::std::mem::align_of::<RenderTexture>(),
638        4usize,
639        concat!("Alignment of ", stringify!(RenderTexture))
640    );
641    assert_eq!(
642        unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize },
643        0usize,
644        concat!(
645            "Offset of field: ",
646            stringify!(RenderTexture),
647            "::",
648            stringify!(id)
649        )
650    );
651    assert_eq!(
652        unsafe { ::std::ptr::addr_of!((*ptr).texture) as usize - ptr as usize },
653        4usize,
654        concat!(
655            "Offset of field: ",
656            stringify!(RenderTexture),
657            "::",
658            stringify!(texture)
659        )
660    );
661    assert_eq!(
662        unsafe { ::std::ptr::addr_of!((*ptr).depth) as usize - ptr as usize },
663        24usize,
664        concat!(
665            "Offset of field: ",
666            stringify!(RenderTexture),
667            "::",
668            stringify!(depth)
669        )
670    );
671}
672pub type RenderTexture2D = RenderTexture;
673#[repr(C)]
674#[derive(Debug, Copy, Clone)]
675pub struct NPatchInfo {
676    pub source: Rectangle,
677    pub left: ::std::os::raw::c_int,
678    pub top: ::std::os::raw::c_int,
679    pub right: ::std::os::raw::c_int,
680    pub bottom: ::std::os::raw::c_int,
681    pub layout: ::std::os::raw::c_int,
682}
683#[test]
684fn bindgen_test_layout_NPatchInfo() {
685    const UNINIT: ::std::mem::MaybeUninit<NPatchInfo> = ::std::mem::MaybeUninit::uninit();
686    let ptr = UNINIT.as_ptr();
687    assert_eq!(
688        ::std::mem::size_of::<NPatchInfo>(),
689        36usize,
690        concat!("Size of: ", stringify!(NPatchInfo))
691    );
692    assert_eq!(
693        ::std::mem::align_of::<NPatchInfo>(),
694        4usize,
695        concat!("Alignment of ", stringify!(NPatchInfo))
696    );
697    assert_eq!(
698        unsafe { ::std::ptr::addr_of!((*ptr).source) as usize - ptr as usize },
699        0usize,
700        concat!(
701            "Offset of field: ",
702            stringify!(NPatchInfo),
703            "::",
704            stringify!(source)
705        )
706    );
707    assert_eq!(
708        unsafe { ::std::ptr::addr_of!((*ptr).left) as usize - ptr as usize },
709        16usize,
710        concat!(
711            "Offset of field: ",
712            stringify!(NPatchInfo),
713            "::",
714            stringify!(left)
715        )
716    );
717    assert_eq!(
718        unsafe { ::std::ptr::addr_of!((*ptr).top) as usize - ptr as usize },
719        20usize,
720        concat!(
721            "Offset of field: ",
722            stringify!(NPatchInfo),
723            "::",
724            stringify!(top)
725        )
726    );
727    assert_eq!(
728        unsafe { ::std::ptr::addr_of!((*ptr).right) as usize - ptr as usize },
729        24usize,
730        concat!(
731            "Offset of field: ",
732            stringify!(NPatchInfo),
733            "::",
734            stringify!(right)
735        )
736    );
737    assert_eq!(
738        unsafe { ::std::ptr::addr_of!((*ptr).bottom) as usize - ptr as usize },
739        28usize,
740        concat!(
741            "Offset of field: ",
742            stringify!(NPatchInfo),
743            "::",
744            stringify!(bottom)
745        )
746    );
747    assert_eq!(
748        unsafe { ::std::ptr::addr_of!((*ptr).layout) as usize - ptr as usize },
749        32usize,
750        concat!(
751            "Offset of field: ",
752            stringify!(NPatchInfo),
753            "::",
754            stringify!(layout)
755        )
756    );
757}
758#[repr(C)]
759#[derive(Debug, Copy, Clone)]
760pub struct GlyphInfo {
761    pub value: ::std::os::raw::c_int,
762    pub offsetX: ::std::os::raw::c_int,
763    pub offsetY: ::std::os::raw::c_int,
764    pub advanceX: ::std::os::raw::c_int,
765    pub image: Image,
766}
767#[test]
768fn bindgen_test_layout_GlyphInfo() {
769    const UNINIT: ::std::mem::MaybeUninit<GlyphInfo> = ::std::mem::MaybeUninit::uninit();
770    let ptr = UNINIT.as_ptr();
771    assert_eq!(
772        ::std::mem::size_of::<GlyphInfo>(),
773        40usize,
774        concat!("Size of: ", stringify!(GlyphInfo))
775    );
776    assert_eq!(
777        ::std::mem::align_of::<GlyphInfo>(),
778        8usize,
779        concat!("Alignment of ", stringify!(GlyphInfo))
780    );
781    assert_eq!(
782        unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize },
783        0usize,
784        concat!(
785            "Offset of field: ",
786            stringify!(GlyphInfo),
787            "::",
788            stringify!(value)
789        )
790    );
791    assert_eq!(
792        unsafe { ::std::ptr::addr_of!((*ptr).offsetX) as usize - ptr as usize },
793        4usize,
794        concat!(
795            "Offset of field: ",
796            stringify!(GlyphInfo),
797            "::",
798            stringify!(offsetX)
799        )
800    );
801    assert_eq!(
802        unsafe { ::std::ptr::addr_of!((*ptr).offsetY) as usize - ptr as usize },
803        8usize,
804        concat!(
805            "Offset of field: ",
806            stringify!(GlyphInfo),
807            "::",
808            stringify!(offsetY)
809        )
810    );
811    assert_eq!(
812        unsafe { ::std::ptr::addr_of!((*ptr).advanceX) as usize - ptr as usize },
813        12usize,
814        concat!(
815            "Offset of field: ",
816            stringify!(GlyphInfo),
817            "::",
818            stringify!(advanceX)
819        )
820    );
821    assert_eq!(
822        unsafe { ::std::ptr::addr_of!((*ptr).image) as usize - ptr as usize },
823        16usize,
824        concat!(
825            "Offset of field: ",
826            stringify!(GlyphInfo),
827            "::",
828            stringify!(image)
829        )
830    );
831}
832#[repr(C)]
833#[derive(Debug, Copy, Clone)]
834pub struct Font {
835    pub baseSize: ::std::os::raw::c_int,
836    pub glyphCount: ::std::os::raw::c_int,
837    pub glyphPadding: ::std::os::raw::c_int,
838    pub texture: Texture2D,
839    pub recs: *mut Rectangle,
840    pub glyphs: *mut GlyphInfo,
841}
842#[test]
843fn bindgen_test_layout_Font() {
844    const UNINIT: ::std::mem::MaybeUninit<Font> = ::std::mem::MaybeUninit::uninit();
845    let ptr = UNINIT.as_ptr();
846    assert_eq!(
847        ::std::mem::size_of::<Font>(),
848        48usize,
849        concat!("Size of: ", stringify!(Font))
850    );
851    assert_eq!(
852        ::std::mem::align_of::<Font>(),
853        8usize,
854        concat!("Alignment of ", stringify!(Font))
855    );
856    assert_eq!(
857        unsafe { ::std::ptr::addr_of!((*ptr).baseSize) as usize - ptr as usize },
858        0usize,
859        concat!(
860            "Offset of field: ",
861            stringify!(Font),
862            "::",
863            stringify!(baseSize)
864        )
865    );
866    assert_eq!(
867        unsafe { ::std::ptr::addr_of!((*ptr).glyphCount) as usize - ptr as usize },
868        4usize,
869        concat!(
870            "Offset of field: ",
871            stringify!(Font),
872            "::",
873            stringify!(glyphCount)
874        )
875    );
876    assert_eq!(
877        unsafe { ::std::ptr::addr_of!((*ptr).glyphPadding) as usize - ptr as usize },
878        8usize,
879        concat!(
880            "Offset of field: ",
881            stringify!(Font),
882            "::",
883            stringify!(glyphPadding)
884        )
885    );
886    assert_eq!(
887        unsafe { ::std::ptr::addr_of!((*ptr).texture) as usize - ptr as usize },
888        12usize,
889        concat!(
890            "Offset of field: ",
891            stringify!(Font),
892            "::",
893            stringify!(texture)
894        )
895    );
896    assert_eq!(
897        unsafe { ::std::ptr::addr_of!((*ptr).recs) as usize - ptr as usize },
898        32usize,
899        concat!(
900            "Offset of field: ",
901            stringify!(Font),
902            "::",
903            stringify!(recs)
904        )
905    );
906    assert_eq!(
907        unsafe { ::std::ptr::addr_of!((*ptr).glyphs) as usize - ptr as usize },
908        40usize,
909        concat!(
910            "Offset of field: ",
911            stringify!(Font),
912            "::",
913            stringify!(glyphs)
914        )
915    );
916}
917#[repr(C)]
918#[derive(Debug, Copy, Clone)]
919pub struct Camera3D {
920    pub position: Vector3,
921    pub target: Vector3,
922    pub up: Vector3,
923    pub fovy: f32,
924    pub projection: ::std::os::raw::c_int,
925}
926#[test]
927fn bindgen_test_layout_Camera3D() {
928    const UNINIT: ::std::mem::MaybeUninit<Camera3D> = ::std::mem::MaybeUninit::uninit();
929    let ptr = UNINIT.as_ptr();
930    assert_eq!(
931        ::std::mem::size_of::<Camera3D>(),
932        44usize,
933        concat!("Size of: ", stringify!(Camera3D))
934    );
935    assert_eq!(
936        ::std::mem::align_of::<Camera3D>(),
937        4usize,
938        concat!("Alignment of ", stringify!(Camera3D))
939    );
940    assert_eq!(
941        unsafe { ::std::ptr::addr_of!((*ptr).position) as usize - ptr as usize },
942        0usize,
943        concat!(
944            "Offset of field: ",
945            stringify!(Camera3D),
946            "::",
947            stringify!(position)
948        )
949    );
950    assert_eq!(
951        unsafe { ::std::ptr::addr_of!((*ptr).target) as usize - ptr as usize },
952        12usize,
953        concat!(
954            "Offset of field: ",
955            stringify!(Camera3D),
956            "::",
957            stringify!(target)
958        )
959    );
960    assert_eq!(
961        unsafe { ::std::ptr::addr_of!((*ptr).up) as usize - ptr as usize },
962        24usize,
963        concat!(
964            "Offset of field: ",
965            stringify!(Camera3D),
966            "::",
967            stringify!(up)
968        )
969    );
970    assert_eq!(
971        unsafe { ::std::ptr::addr_of!((*ptr).fovy) as usize - ptr as usize },
972        36usize,
973        concat!(
974            "Offset of field: ",
975            stringify!(Camera3D),
976            "::",
977            stringify!(fovy)
978        )
979    );
980    assert_eq!(
981        unsafe { ::std::ptr::addr_of!((*ptr).projection) as usize - ptr as usize },
982        40usize,
983        concat!(
984            "Offset of field: ",
985            stringify!(Camera3D),
986            "::",
987            stringify!(projection)
988        )
989    );
990}
991pub type Camera = Camera3D;
992#[repr(C)]
993#[derive(Debug, Copy, Clone)]
994pub struct Camera2D {
995    pub offset: Vector2,
996    pub target: Vector2,
997    pub rotation: f32,
998    pub zoom: f32,
999}
1000#[test]
1001fn bindgen_test_layout_Camera2D() {
1002    const UNINIT: ::std::mem::MaybeUninit<Camera2D> = ::std::mem::MaybeUninit::uninit();
1003    let ptr = UNINIT.as_ptr();
1004    assert_eq!(
1005        ::std::mem::size_of::<Camera2D>(),
1006        24usize,
1007        concat!("Size of: ", stringify!(Camera2D))
1008    );
1009    assert_eq!(
1010        ::std::mem::align_of::<Camera2D>(),
1011        4usize,
1012        concat!("Alignment of ", stringify!(Camera2D))
1013    );
1014    assert_eq!(
1015        unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize },
1016        0usize,
1017        concat!(
1018            "Offset of field: ",
1019            stringify!(Camera2D),
1020            "::",
1021            stringify!(offset)
1022        )
1023    );
1024    assert_eq!(
1025        unsafe { ::std::ptr::addr_of!((*ptr).target) as usize - ptr as usize },
1026        8usize,
1027        concat!(
1028            "Offset of field: ",
1029            stringify!(Camera2D),
1030            "::",
1031            stringify!(target)
1032        )
1033    );
1034    assert_eq!(
1035        unsafe { ::std::ptr::addr_of!((*ptr).rotation) as usize - ptr as usize },
1036        16usize,
1037        concat!(
1038            "Offset of field: ",
1039            stringify!(Camera2D),
1040            "::",
1041            stringify!(rotation)
1042        )
1043    );
1044    assert_eq!(
1045        unsafe { ::std::ptr::addr_of!((*ptr).zoom) as usize - ptr as usize },
1046        20usize,
1047        concat!(
1048            "Offset of field: ",
1049            stringify!(Camera2D),
1050            "::",
1051            stringify!(zoom)
1052        )
1053    );
1054}
1055#[repr(C)]
1056#[derive(Debug, Copy, Clone)]
1057pub struct Mesh {
1058    pub vertexCount: ::std::os::raw::c_int,
1059    pub triangleCount: ::std::os::raw::c_int,
1060    pub vertices: *mut f32,
1061    pub texcoords: *mut f32,
1062    pub texcoords2: *mut f32,
1063    pub normals: *mut f32,
1064    pub tangents: *mut f32,
1065    pub colors: *mut ::std::os::raw::c_uchar,
1066    pub indices: *mut ::std::os::raw::c_ushort,
1067    pub animVertices: *mut f32,
1068    pub animNormals: *mut f32,
1069    pub boneIds: *mut ::std::os::raw::c_uchar,
1070    pub boneWeights: *mut f32,
1071    pub vaoId: ::std::os::raw::c_uint,
1072    pub vboId: *mut ::std::os::raw::c_uint,
1073}
1074#[test]
1075fn bindgen_test_layout_Mesh() {
1076    const UNINIT: ::std::mem::MaybeUninit<Mesh> = ::std::mem::MaybeUninit::uninit();
1077    let ptr = UNINIT.as_ptr();
1078    assert_eq!(
1079        ::std::mem::size_of::<Mesh>(),
1080        112usize,
1081        concat!("Size of: ", stringify!(Mesh))
1082    );
1083    assert_eq!(
1084        ::std::mem::align_of::<Mesh>(),
1085        8usize,
1086        concat!("Alignment of ", stringify!(Mesh))
1087    );
1088    assert_eq!(
1089        unsafe { ::std::ptr::addr_of!((*ptr).vertexCount) as usize - ptr as usize },
1090        0usize,
1091        concat!(
1092            "Offset of field: ",
1093            stringify!(Mesh),
1094            "::",
1095            stringify!(vertexCount)
1096        )
1097    );
1098    assert_eq!(
1099        unsafe { ::std::ptr::addr_of!((*ptr).triangleCount) as usize - ptr as usize },
1100        4usize,
1101        concat!(
1102            "Offset of field: ",
1103            stringify!(Mesh),
1104            "::",
1105            stringify!(triangleCount)
1106        )
1107    );
1108    assert_eq!(
1109        unsafe { ::std::ptr::addr_of!((*ptr).vertices) as usize - ptr as usize },
1110        8usize,
1111        concat!(
1112            "Offset of field: ",
1113            stringify!(Mesh),
1114            "::",
1115            stringify!(vertices)
1116        )
1117    );
1118    assert_eq!(
1119        unsafe { ::std::ptr::addr_of!((*ptr).texcoords) as usize - ptr as usize },
1120        16usize,
1121        concat!(
1122            "Offset of field: ",
1123            stringify!(Mesh),
1124            "::",
1125            stringify!(texcoords)
1126        )
1127    );
1128    assert_eq!(
1129        unsafe { ::std::ptr::addr_of!((*ptr).texcoords2) as usize - ptr as usize },
1130        24usize,
1131        concat!(
1132            "Offset of field: ",
1133            stringify!(Mesh),
1134            "::",
1135            stringify!(texcoords2)
1136        )
1137    );
1138    assert_eq!(
1139        unsafe { ::std::ptr::addr_of!((*ptr).normals) as usize - ptr as usize },
1140        32usize,
1141        concat!(
1142            "Offset of field: ",
1143            stringify!(Mesh),
1144            "::",
1145            stringify!(normals)
1146        )
1147    );
1148    assert_eq!(
1149        unsafe { ::std::ptr::addr_of!((*ptr).tangents) as usize - ptr as usize },
1150        40usize,
1151        concat!(
1152            "Offset of field: ",
1153            stringify!(Mesh),
1154            "::",
1155            stringify!(tangents)
1156        )
1157    );
1158    assert_eq!(
1159        unsafe { ::std::ptr::addr_of!((*ptr).colors) as usize - ptr as usize },
1160        48usize,
1161        concat!(
1162            "Offset of field: ",
1163            stringify!(Mesh),
1164            "::",
1165            stringify!(colors)
1166        )
1167    );
1168    assert_eq!(
1169        unsafe { ::std::ptr::addr_of!((*ptr).indices) as usize - ptr as usize },
1170        56usize,
1171        concat!(
1172            "Offset of field: ",
1173            stringify!(Mesh),
1174            "::",
1175            stringify!(indices)
1176        )
1177    );
1178    assert_eq!(
1179        unsafe { ::std::ptr::addr_of!((*ptr).animVertices) as usize - ptr as usize },
1180        64usize,
1181        concat!(
1182            "Offset of field: ",
1183            stringify!(Mesh),
1184            "::",
1185            stringify!(animVertices)
1186        )
1187    );
1188    assert_eq!(
1189        unsafe { ::std::ptr::addr_of!((*ptr).animNormals) as usize - ptr as usize },
1190        72usize,
1191        concat!(
1192            "Offset of field: ",
1193            stringify!(Mesh),
1194            "::",
1195            stringify!(animNormals)
1196        )
1197    );
1198    assert_eq!(
1199        unsafe { ::std::ptr::addr_of!((*ptr).boneIds) as usize - ptr as usize },
1200        80usize,
1201        concat!(
1202            "Offset of field: ",
1203            stringify!(Mesh),
1204            "::",
1205            stringify!(boneIds)
1206        )
1207    );
1208    assert_eq!(
1209        unsafe { ::std::ptr::addr_of!((*ptr).boneWeights) as usize - ptr as usize },
1210        88usize,
1211        concat!(
1212            "Offset of field: ",
1213            stringify!(Mesh),
1214            "::",
1215            stringify!(boneWeights)
1216        )
1217    );
1218    assert_eq!(
1219        unsafe { ::std::ptr::addr_of!((*ptr).vaoId) as usize - ptr as usize },
1220        96usize,
1221        concat!(
1222            "Offset of field: ",
1223            stringify!(Mesh),
1224            "::",
1225            stringify!(vaoId)
1226        )
1227    );
1228    assert_eq!(
1229        unsafe { ::std::ptr::addr_of!((*ptr).vboId) as usize - ptr as usize },
1230        104usize,
1231        concat!(
1232            "Offset of field: ",
1233            stringify!(Mesh),
1234            "::",
1235            stringify!(vboId)
1236        )
1237    );
1238}
1239#[repr(C)]
1240#[derive(Debug, Copy, Clone)]
1241pub struct Shader {
1242    pub id: ::std::os::raw::c_uint,
1243    pub locs: *mut ::std::os::raw::c_int,
1244}
1245#[test]
1246fn bindgen_test_layout_Shader() {
1247    const UNINIT: ::std::mem::MaybeUninit<Shader> = ::std::mem::MaybeUninit::uninit();
1248    let ptr = UNINIT.as_ptr();
1249    assert_eq!(
1250        ::std::mem::size_of::<Shader>(),
1251        16usize,
1252        concat!("Size of: ", stringify!(Shader))
1253    );
1254    assert_eq!(
1255        ::std::mem::align_of::<Shader>(),
1256        8usize,
1257        concat!("Alignment of ", stringify!(Shader))
1258    );
1259    assert_eq!(
1260        unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize },
1261        0usize,
1262        concat!(
1263            "Offset of field: ",
1264            stringify!(Shader),
1265            "::",
1266            stringify!(id)
1267        )
1268    );
1269    assert_eq!(
1270        unsafe { ::std::ptr::addr_of!((*ptr).locs) as usize - ptr as usize },
1271        8usize,
1272        concat!(
1273            "Offset of field: ",
1274            stringify!(Shader),
1275            "::",
1276            stringify!(locs)
1277        )
1278    );
1279}
1280#[repr(C)]
1281#[derive(Debug, Copy, Clone)]
1282pub struct MaterialMap {
1283    pub texture: Texture2D,
1284    pub color: Color,
1285    pub value: f32,
1286}
1287#[test]
1288fn bindgen_test_layout_MaterialMap() {
1289    const UNINIT: ::std::mem::MaybeUninit<MaterialMap> = ::std::mem::MaybeUninit::uninit();
1290    let ptr = UNINIT.as_ptr();
1291    assert_eq!(
1292        ::std::mem::size_of::<MaterialMap>(),
1293        28usize,
1294        concat!("Size of: ", stringify!(MaterialMap))
1295    );
1296    assert_eq!(
1297        ::std::mem::align_of::<MaterialMap>(),
1298        4usize,
1299        concat!("Alignment of ", stringify!(MaterialMap))
1300    );
1301    assert_eq!(
1302        unsafe { ::std::ptr::addr_of!((*ptr).texture) as usize - ptr as usize },
1303        0usize,
1304        concat!(
1305            "Offset of field: ",
1306            stringify!(MaterialMap),
1307            "::",
1308            stringify!(texture)
1309        )
1310    );
1311    assert_eq!(
1312        unsafe { ::std::ptr::addr_of!((*ptr).color) as usize - ptr as usize },
1313        20usize,
1314        concat!(
1315            "Offset of field: ",
1316            stringify!(MaterialMap),
1317            "::",
1318            stringify!(color)
1319        )
1320    );
1321    assert_eq!(
1322        unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize },
1323        24usize,
1324        concat!(
1325            "Offset of field: ",
1326            stringify!(MaterialMap),
1327            "::",
1328            stringify!(value)
1329        )
1330    );
1331}
1332#[repr(C)]
1333#[derive(Debug, Copy, Clone)]
1334pub struct Material {
1335    pub shader: Shader,
1336    pub maps: *mut MaterialMap,
1337    pub params: [f32; 4usize],
1338}
1339#[test]
1340fn bindgen_test_layout_Material() {
1341    const UNINIT: ::std::mem::MaybeUninit<Material> = ::std::mem::MaybeUninit::uninit();
1342    let ptr = UNINIT.as_ptr();
1343    assert_eq!(
1344        ::std::mem::size_of::<Material>(),
1345        40usize,
1346        concat!("Size of: ", stringify!(Material))
1347    );
1348    assert_eq!(
1349        ::std::mem::align_of::<Material>(),
1350        8usize,
1351        concat!("Alignment of ", stringify!(Material))
1352    );
1353    assert_eq!(
1354        unsafe { ::std::ptr::addr_of!((*ptr).shader) as usize - ptr as usize },
1355        0usize,
1356        concat!(
1357            "Offset of field: ",
1358            stringify!(Material),
1359            "::",
1360            stringify!(shader)
1361        )
1362    );
1363    assert_eq!(
1364        unsafe { ::std::ptr::addr_of!((*ptr).maps) as usize - ptr as usize },
1365        16usize,
1366        concat!(
1367            "Offset of field: ",
1368            stringify!(Material),
1369            "::",
1370            stringify!(maps)
1371        )
1372    );
1373    assert_eq!(
1374        unsafe { ::std::ptr::addr_of!((*ptr).params) as usize - ptr as usize },
1375        24usize,
1376        concat!(
1377            "Offset of field: ",
1378            stringify!(Material),
1379            "::",
1380            stringify!(params)
1381        )
1382    );
1383}
1384#[repr(C)]
1385#[derive(Debug, Copy, Clone)]
1386pub struct Transform {
1387    pub translation: Vector3,
1388    pub rotation: Quaternion,
1389    pub scale: Vector3,
1390}
1391#[test]
1392fn bindgen_test_layout_Transform() {
1393    const UNINIT: ::std::mem::MaybeUninit<Transform> = ::std::mem::MaybeUninit::uninit();
1394    let ptr = UNINIT.as_ptr();
1395    assert_eq!(
1396        ::std::mem::size_of::<Transform>(),
1397        40usize,
1398        concat!("Size of: ", stringify!(Transform))
1399    );
1400    assert_eq!(
1401        ::std::mem::align_of::<Transform>(),
1402        4usize,
1403        concat!("Alignment of ", stringify!(Transform))
1404    );
1405    assert_eq!(
1406        unsafe { ::std::ptr::addr_of!((*ptr).translation) as usize - ptr as usize },
1407        0usize,
1408        concat!(
1409            "Offset of field: ",
1410            stringify!(Transform),
1411            "::",
1412            stringify!(translation)
1413        )
1414    );
1415    assert_eq!(
1416        unsafe { ::std::ptr::addr_of!((*ptr).rotation) as usize - ptr as usize },
1417        12usize,
1418        concat!(
1419            "Offset of field: ",
1420            stringify!(Transform),
1421            "::",
1422            stringify!(rotation)
1423        )
1424    );
1425    assert_eq!(
1426        unsafe { ::std::ptr::addr_of!((*ptr).scale) as usize - ptr as usize },
1427        28usize,
1428        concat!(
1429            "Offset of field: ",
1430            stringify!(Transform),
1431            "::",
1432            stringify!(scale)
1433        )
1434    );
1435}
1436#[repr(C)]
1437#[derive(Debug, Copy, Clone)]
1438pub struct BoneInfo {
1439    pub name: [::std::os::raw::c_char; 32usize],
1440    pub parent: ::std::os::raw::c_int,
1441}
1442#[test]
1443fn bindgen_test_layout_BoneInfo() {
1444    const UNINIT: ::std::mem::MaybeUninit<BoneInfo> = ::std::mem::MaybeUninit::uninit();
1445    let ptr = UNINIT.as_ptr();
1446    assert_eq!(
1447        ::std::mem::size_of::<BoneInfo>(),
1448        36usize,
1449        concat!("Size of: ", stringify!(BoneInfo))
1450    );
1451    assert_eq!(
1452        ::std::mem::align_of::<BoneInfo>(),
1453        4usize,
1454        concat!("Alignment of ", stringify!(BoneInfo))
1455    );
1456    assert_eq!(
1457        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
1458        0usize,
1459        concat!(
1460            "Offset of field: ",
1461            stringify!(BoneInfo),
1462            "::",
1463            stringify!(name)
1464        )
1465    );
1466    assert_eq!(
1467        unsafe { ::std::ptr::addr_of!((*ptr).parent) as usize - ptr as usize },
1468        32usize,
1469        concat!(
1470            "Offset of field: ",
1471            stringify!(BoneInfo),
1472            "::",
1473            stringify!(parent)
1474        )
1475    );
1476}
1477#[repr(C)]
1478#[derive(Debug, Copy, Clone)]
1479pub struct Model {
1480    pub transform: Matrix,
1481    pub meshCount: ::std::os::raw::c_int,
1482    pub materialCount: ::std::os::raw::c_int,
1483    pub meshes: *mut Mesh,
1484    pub materials: *mut Material,
1485    pub meshMaterial: *mut ::std::os::raw::c_int,
1486    pub boneCount: ::std::os::raw::c_int,
1487    pub bones: *mut BoneInfo,
1488    pub bindPose: *mut Transform,
1489}
1490#[test]
1491fn bindgen_test_layout_Model() {
1492    const UNINIT: ::std::mem::MaybeUninit<Model> = ::std::mem::MaybeUninit::uninit();
1493    let ptr = UNINIT.as_ptr();
1494    assert_eq!(
1495        ::std::mem::size_of::<Model>(),
1496        120usize,
1497        concat!("Size of: ", stringify!(Model))
1498    );
1499    assert_eq!(
1500        ::std::mem::align_of::<Model>(),
1501        8usize,
1502        concat!("Alignment of ", stringify!(Model))
1503    );
1504    assert_eq!(
1505        unsafe { ::std::ptr::addr_of!((*ptr).transform) as usize - ptr as usize },
1506        0usize,
1507        concat!(
1508            "Offset of field: ",
1509            stringify!(Model),
1510            "::",
1511            stringify!(transform)
1512        )
1513    );
1514    assert_eq!(
1515        unsafe { ::std::ptr::addr_of!((*ptr).meshCount) as usize - ptr as usize },
1516        64usize,
1517        concat!(
1518            "Offset of field: ",
1519            stringify!(Model),
1520            "::",
1521            stringify!(meshCount)
1522        )
1523    );
1524    assert_eq!(
1525        unsafe { ::std::ptr::addr_of!((*ptr).materialCount) as usize - ptr as usize },
1526        68usize,
1527        concat!(
1528            "Offset of field: ",
1529            stringify!(Model),
1530            "::",
1531            stringify!(materialCount)
1532        )
1533    );
1534    assert_eq!(
1535        unsafe { ::std::ptr::addr_of!((*ptr).meshes) as usize - ptr as usize },
1536        72usize,
1537        concat!(
1538            "Offset of field: ",
1539            stringify!(Model),
1540            "::",
1541            stringify!(meshes)
1542        )
1543    );
1544    assert_eq!(
1545        unsafe { ::std::ptr::addr_of!((*ptr).materials) as usize - ptr as usize },
1546        80usize,
1547        concat!(
1548            "Offset of field: ",
1549            stringify!(Model),
1550            "::",
1551            stringify!(materials)
1552        )
1553    );
1554    assert_eq!(
1555        unsafe { ::std::ptr::addr_of!((*ptr).meshMaterial) as usize - ptr as usize },
1556        88usize,
1557        concat!(
1558            "Offset of field: ",
1559            stringify!(Model),
1560            "::",
1561            stringify!(meshMaterial)
1562        )
1563    );
1564    assert_eq!(
1565        unsafe { ::std::ptr::addr_of!((*ptr).boneCount) as usize - ptr as usize },
1566        96usize,
1567        concat!(
1568            "Offset of field: ",
1569            stringify!(Model),
1570            "::",
1571            stringify!(boneCount)
1572        )
1573    );
1574    assert_eq!(
1575        unsafe { ::std::ptr::addr_of!((*ptr).bones) as usize - ptr as usize },
1576        104usize,
1577        concat!(
1578            "Offset of field: ",
1579            stringify!(Model),
1580            "::",
1581            stringify!(bones)
1582        )
1583    );
1584    assert_eq!(
1585        unsafe { ::std::ptr::addr_of!((*ptr).bindPose) as usize - ptr as usize },
1586        112usize,
1587        concat!(
1588            "Offset of field: ",
1589            stringify!(Model),
1590            "::",
1591            stringify!(bindPose)
1592        )
1593    );
1594}
1595#[repr(C)]
1596#[derive(Debug, Copy, Clone)]
1597pub struct ModelAnimation {
1598    pub boneCount: ::std::os::raw::c_int,
1599    pub frameCount: ::std::os::raw::c_int,
1600    pub bones: *mut BoneInfo,
1601    pub framePoses: *mut *mut Transform,
1602}
1603#[test]
1604fn bindgen_test_layout_ModelAnimation() {
1605    const UNINIT: ::std::mem::MaybeUninit<ModelAnimation> = ::std::mem::MaybeUninit::uninit();
1606    let ptr = UNINIT.as_ptr();
1607    assert_eq!(
1608        ::std::mem::size_of::<ModelAnimation>(),
1609        24usize,
1610        concat!("Size of: ", stringify!(ModelAnimation))
1611    );
1612    assert_eq!(
1613        ::std::mem::align_of::<ModelAnimation>(),
1614        8usize,
1615        concat!("Alignment of ", stringify!(ModelAnimation))
1616    );
1617    assert_eq!(
1618        unsafe { ::std::ptr::addr_of!((*ptr).boneCount) as usize - ptr as usize },
1619        0usize,
1620        concat!(
1621            "Offset of field: ",
1622            stringify!(ModelAnimation),
1623            "::",
1624            stringify!(boneCount)
1625        )
1626    );
1627    assert_eq!(
1628        unsafe { ::std::ptr::addr_of!((*ptr).frameCount) as usize - ptr as usize },
1629        4usize,
1630        concat!(
1631            "Offset of field: ",
1632            stringify!(ModelAnimation),
1633            "::",
1634            stringify!(frameCount)
1635        )
1636    );
1637    assert_eq!(
1638        unsafe { ::std::ptr::addr_of!((*ptr).bones) as usize - ptr as usize },
1639        8usize,
1640        concat!(
1641            "Offset of field: ",
1642            stringify!(ModelAnimation),
1643            "::",
1644            stringify!(bones)
1645        )
1646    );
1647    assert_eq!(
1648        unsafe { ::std::ptr::addr_of!((*ptr).framePoses) as usize - ptr as usize },
1649        16usize,
1650        concat!(
1651            "Offset of field: ",
1652            stringify!(ModelAnimation),
1653            "::",
1654            stringify!(framePoses)
1655        )
1656    );
1657}
1658#[repr(C)]
1659#[derive(Debug, Copy, Clone)]
1660pub struct Ray {
1661    pub position: Vector3,
1662    pub direction: Vector3,
1663}
1664#[test]
1665fn bindgen_test_layout_Ray() {
1666    const UNINIT: ::std::mem::MaybeUninit<Ray> = ::std::mem::MaybeUninit::uninit();
1667    let ptr = UNINIT.as_ptr();
1668    assert_eq!(
1669        ::std::mem::size_of::<Ray>(),
1670        24usize,
1671        concat!("Size of: ", stringify!(Ray))
1672    );
1673    assert_eq!(
1674        ::std::mem::align_of::<Ray>(),
1675        4usize,
1676        concat!("Alignment of ", stringify!(Ray))
1677    );
1678    assert_eq!(
1679        unsafe { ::std::ptr::addr_of!((*ptr).position) as usize - ptr as usize },
1680        0usize,
1681        concat!(
1682            "Offset of field: ",
1683            stringify!(Ray),
1684            "::",
1685            stringify!(position)
1686        )
1687    );
1688    assert_eq!(
1689        unsafe { ::std::ptr::addr_of!((*ptr).direction) as usize - ptr as usize },
1690        12usize,
1691        concat!(
1692            "Offset of field: ",
1693            stringify!(Ray),
1694            "::",
1695            stringify!(direction)
1696        )
1697    );
1698}
1699#[repr(C)]
1700#[derive(Debug, Copy, Clone)]
1701pub struct RayCollision {
1702    pub hit: bool,
1703    pub distance: f32,
1704    pub point: Vector3,
1705    pub normal: Vector3,
1706}
1707#[test]
1708fn bindgen_test_layout_RayCollision() {
1709    const UNINIT: ::std::mem::MaybeUninit<RayCollision> = ::std::mem::MaybeUninit::uninit();
1710    let ptr = UNINIT.as_ptr();
1711    assert_eq!(
1712        ::std::mem::size_of::<RayCollision>(),
1713        32usize,
1714        concat!("Size of: ", stringify!(RayCollision))
1715    );
1716    assert_eq!(
1717        ::std::mem::align_of::<RayCollision>(),
1718        4usize,
1719        concat!("Alignment of ", stringify!(RayCollision))
1720    );
1721    assert_eq!(
1722        unsafe { ::std::ptr::addr_of!((*ptr).hit) as usize - ptr as usize },
1723        0usize,
1724        concat!(
1725            "Offset of field: ",
1726            stringify!(RayCollision),
1727            "::",
1728            stringify!(hit)
1729        )
1730    );
1731    assert_eq!(
1732        unsafe { ::std::ptr::addr_of!((*ptr).distance) as usize - ptr as usize },
1733        4usize,
1734        concat!(
1735            "Offset of field: ",
1736            stringify!(RayCollision),
1737            "::",
1738            stringify!(distance)
1739        )
1740    );
1741    assert_eq!(
1742        unsafe { ::std::ptr::addr_of!((*ptr).point) as usize - ptr as usize },
1743        8usize,
1744        concat!(
1745            "Offset of field: ",
1746            stringify!(RayCollision),
1747            "::",
1748            stringify!(point)
1749        )
1750    );
1751    assert_eq!(
1752        unsafe { ::std::ptr::addr_of!((*ptr).normal) as usize - ptr as usize },
1753        20usize,
1754        concat!(
1755            "Offset of field: ",
1756            stringify!(RayCollision),
1757            "::",
1758            stringify!(normal)
1759        )
1760    );
1761}
1762#[repr(C)]
1763#[derive(Debug, Copy, Clone)]
1764pub struct BoundingBox {
1765    pub min: Vector3,
1766    pub max: Vector3,
1767}
1768#[test]
1769fn bindgen_test_layout_BoundingBox() {
1770    const UNINIT: ::std::mem::MaybeUninit<BoundingBox> = ::std::mem::MaybeUninit::uninit();
1771    let ptr = UNINIT.as_ptr();
1772    assert_eq!(
1773        ::std::mem::size_of::<BoundingBox>(),
1774        24usize,
1775        concat!("Size of: ", stringify!(BoundingBox))
1776    );
1777    assert_eq!(
1778        ::std::mem::align_of::<BoundingBox>(),
1779        4usize,
1780        concat!("Alignment of ", stringify!(BoundingBox))
1781    );
1782    assert_eq!(
1783        unsafe { ::std::ptr::addr_of!((*ptr).min) as usize - ptr as usize },
1784        0usize,
1785        concat!(
1786            "Offset of field: ",
1787            stringify!(BoundingBox),
1788            "::",
1789            stringify!(min)
1790        )
1791    );
1792    assert_eq!(
1793        unsafe { ::std::ptr::addr_of!((*ptr).max) as usize - ptr as usize },
1794        12usize,
1795        concat!(
1796            "Offset of field: ",
1797            stringify!(BoundingBox),
1798            "::",
1799            stringify!(max)
1800        )
1801    );
1802}
1803#[repr(C)]
1804#[derive(Debug, Copy, Clone)]
1805pub struct Wave {
1806    pub frameCount: ::std::os::raw::c_uint,
1807    pub sampleRate: ::std::os::raw::c_uint,
1808    pub sampleSize: ::std::os::raw::c_uint,
1809    pub channels: ::std::os::raw::c_uint,
1810    pub data: *mut ::std::os::raw::c_void,
1811}
1812#[test]
1813fn bindgen_test_layout_Wave() {
1814    const UNINIT: ::std::mem::MaybeUninit<Wave> = ::std::mem::MaybeUninit::uninit();
1815    let ptr = UNINIT.as_ptr();
1816    assert_eq!(
1817        ::std::mem::size_of::<Wave>(),
1818        24usize,
1819        concat!("Size of: ", stringify!(Wave))
1820    );
1821    assert_eq!(
1822        ::std::mem::align_of::<Wave>(),
1823        8usize,
1824        concat!("Alignment of ", stringify!(Wave))
1825    );
1826    assert_eq!(
1827        unsafe { ::std::ptr::addr_of!((*ptr).frameCount) as usize - ptr as usize },
1828        0usize,
1829        concat!(
1830            "Offset of field: ",
1831            stringify!(Wave),
1832            "::",
1833            stringify!(frameCount)
1834        )
1835    );
1836    assert_eq!(
1837        unsafe { ::std::ptr::addr_of!((*ptr).sampleRate) as usize - ptr as usize },
1838        4usize,
1839        concat!(
1840            "Offset of field: ",
1841            stringify!(Wave),
1842            "::",
1843            stringify!(sampleRate)
1844        )
1845    );
1846    assert_eq!(
1847        unsafe { ::std::ptr::addr_of!((*ptr).sampleSize) as usize - ptr as usize },
1848        8usize,
1849        concat!(
1850            "Offset of field: ",
1851            stringify!(Wave),
1852            "::",
1853            stringify!(sampleSize)
1854        )
1855    );
1856    assert_eq!(
1857        unsafe { ::std::ptr::addr_of!((*ptr).channels) as usize - ptr as usize },
1858        12usize,
1859        concat!(
1860            "Offset of field: ",
1861            stringify!(Wave),
1862            "::",
1863            stringify!(channels)
1864        )
1865    );
1866    assert_eq!(
1867        unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize },
1868        16usize,
1869        concat!(
1870            "Offset of field: ",
1871            stringify!(Wave),
1872            "::",
1873            stringify!(data)
1874        )
1875    );
1876}
1877#[repr(C)]
1878#[derive(Debug, Copy, Clone)]
1879pub struct rAudioBuffer {
1880    _unused: [u8; 0],
1881}
1882#[repr(C)]
1883#[derive(Debug, Copy, Clone)]
1884pub struct rAudioProcessor {
1885    _unused: [u8; 0],
1886}
1887#[repr(C)]
1888#[derive(Debug, Copy, Clone)]
1889pub struct AudioStream {
1890    pub buffer: *mut rAudioBuffer,
1891    pub processor: *mut rAudioProcessor,
1892    pub sampleRate: ::std::os::raw::c_uint,
1893    pub sampleSize: ::std::os::raw::c_uint,
1894    pub channels: ::std::os::raw::c_uint,
1895}
1896#[test]
1897fn bindgen_test_layout_AudioStream() {
1898    const UNINIT: ::std::mem::MaybeUninit<AudioStream> = ::std::mem::MaybeUninit::uninit();
1899    let ptr = UNINIT.as_ptr();
1900    assert_eq!(
1901        ::std::mem::size_of::<AudioStream>(),
1902        32usize,
1903        concat!("Size of: ", stringify!(AudioStream))
1904    );
1905    assert_eq!(
1906        ::std::mem::align_of::<AudioStream>(),
1907        8usize,
1908        concat!("Alignment of ", stringify!(AudioStream))
1909    );
1910    assert_eq!(
1911        unsafe { ::std::ptr::addr_of!((*ptr).buffer) as usize - ptr as usize },
1912        0usize,
1913        concat!(
1914            "Offset of field: ",
1915            stringify!(AudioStream),
1916            "::",
1917            stringify!(buffer)
1918        )
1919    );
1920    assert_eq!(
1921        unsafe { ::std::ptr::addr_of!((*ptr).processor) as usize - ptr as usize },
1922        8usize,
1923        concat!(
1924            "Offset of field: ",
1925            stringify!(AudioStream),
1926            "::",
1927            stringify!(processor)
1928        )
1929    );
1930    assert_eq!(
1931        unsafe { ::std::ptr::addr_of!((*ptr).sampleRate) as usize - ptr as usize },
1932        16usize,
1933        concat!(
1934            "Offset of field: ",
1935            stringify!(AudioStream),
1936            "::",
1937            stringify!(sampleRate)
1938        )
1939    );
1940    assert_eq!(
1941        unsafe { ::std::ptr::addr_of!((*ptr).sampleSize) as usize - ptr as usize },
1942        20usize,
1943        concat!(
1944            "Offset of field: ",
1945            stringify!(AudioStream),
1946            "::",
1947            stringify!(sampleSize)
1948        )
1949    );
1950    assert_eq!(
1951        unsafe { ::std::ptr::addr_of!((*ptr).channels) as usize - ptr as usize },
1952        24usize,
1953        concat!(
1954            "Offset of field: ",
1955            stringify!(AudioStream),
1956            "::",
1957            stringify!(channels)
1958        )
1959    );
1960}
1961#[repr(C)]
1962#[derive(Debug, Copy, Clone)]
1963pub struct Sound {
1964    pub stream: AudioStream,
1965    pub frameCount: ::std::os::raw::c_uint,
1966}
1967#[test]
1968fn bindgen_test_layout_Sound() {
1969    const UNINIT: ::std::mem::MaybeUninit<Sound> = ::std::mem::MaybeUninit::uninit();
1970    let ptr = UNINIT.as_ptr();
1971    assert_eq!(
1972        ::std::mem::size_of::<Sound>(),
1973        40usize,
1974        concat!("Size of: ", stringify!(Sound))
1975    );
1976    assert_eq!(
1977        ::std::mem::align_of::<Sound>(),
1978        8usize,
1979        concat!("Alignment of ", stringify!(Sound))
1980    );
1981    assert_eq!(
1982        unsafe { ::std::ptr::addr_of!((*ptr).stream) as usize - ptr as usize },
1983        0usize,
1984        concat!(
1985            "Offset of field: ",
1986            stringify!(Sound),
1987            "::",
1988            stringify!(stream)
1989        )
1990    );
1991    assert_eq!(
1992        unsafe { ::std::ptr::addr_of!((*ptr).frameCount) as usize - ptr as usize },
1993        32usize,
1994        concat!(
1995            "Offset of field: ",
1996            stringify!(Sound),
1997            "::",
1998            stringify!(frameCount)
1999        )
2000    );
2001}
2002#[repr(C)]
2003#[derive(Debug, Copy, Clone)]
2004pub struct Music {
2005    pub stream: AudioStream,
2006    pub frameCount: ::std::os::raw::c_uint,
2007    pub looping: bool,
2008    pub ctxType: ::std::os::raw::c_int,
2009    pub ctxData: *mut ::std::os::raw::c_void,
2010}
2011#[test]
2012fn bindgen_test_layout_Music() {
2013    const UNINIT: ::std::mem::MaybeUninit<Music> = ::std::mem::MaybeUninit::uninit();
2014    let ptr = UNINIT.as_ptr();
2015    assert_eq!(
2016        ::std::mem::size_of::<Music>(),
2017        56usize,
2018        concat!("Size of: ", stringify!(Music))
2019    );
2020    assert_eq!(
2021        ::std::mem::align_of::<Music>(),
2022        8usize,
2023        concat!("Alignment of ", stringify!(Music))
2024    );
2025    assert_eq!(
2026        unsafe { ::std::ptr::addr_of!((*ptr).stream) as usize - ptr as usize },
2027        0usize,
2028        concat!(
2029            "Offset of field: ",
2030            stringify!(Music),
2031            "::",
2032            stringify!(stream)
2033        )
2034    );
2035    assert_eq!(
2036        unsafe { ::std::ptr::addr_of!((*ptr).frameCount) as usize - ptr as usize },
2037        32usize,
2038        concat!(
2039            "Offset of field: ",
2040            stringify!(Music),
2041            "::",
2042            stringify!(frameCount)
2043        )
2044    );
2045    assert_eq!(
2046        unsafe { ::std::ptr::addr_of!((*ptr).looping) as usize - ptr as usize },
2047        36usize,
2048        concat!(
2049            "Offset of field: ",
2050            stringify!(Music),
2051            "::",
2052            stringify!(looping)
2053        )
2054    );
2055    assert_eq!(
2056        unsafe { ::std::ptr::addr_of!((*ptr).ctxType) as usize - ptr as usize },
2057        40usize,
2058        concat!(
2059            "Offset of field: ",
2060            stringify!(Music),
2061            "::",
2062            stringify!(ctxType)
2063        )
2064    );
2065    assert_eq!(
2066        unsafe { ::std::ptr::addr_of!((*ptr).ctxData) as usize - ptr as usize },
2067        48usize,
2068        concat!(
2069            "Offset of field: ",
2070            stringify!(Music),
2071            "::",
2072            stringify!(ctxData)
2073        )
2074    );
2075}
2076#[repr(C)]
2077#[derive(Debug, Copy, Clone)]
2078pub struct VrDeviceInfo {
2079    pub hResolution: ::std::os::raw::c_int,
2080    pub vResolution: ::std::os::raw::c_int,
2081    pub hScreenSize: f32,
2082    pub vScreenSize: f32,
2083    pub vScreenCenter: f32,
2084    pub eyeToScreenDistance: f32,
2085    pub lensSeparationDistance: f32,
2086    pub interpupillaryDistance: f32,
2087    pub lensDistortionValues: [f32; 4usize],
2088    pub chromaAbCorrection: [f32; 4usize],
2089}
2090#[test]
2091fn bindgen_test_layout_VrDeviceInfo() {
2092    const UNINIT: ::std::mem::MaybeUninit<VrDeviceInfo> = ::std::mem::MaybeUninit::uninit();
2093    let ptr = UNINIT.as_ptr();
2094    assert_eq!(
2095        ::std::mem::size_of::<VrDeviceInfo>(),
2096        64usize,
2097        concat!("Size of: ", stringify!(VrDeviceInfo))
2098    );
2099    assert_eq!(
2100        ::std::mem::align_of::<VrDeviceInfo>(),
2101        4usize,
2102        concat!("Alignment of ", stringify!(VrDeviceInfo))
2103    );
2104    assert_eq!(
2105        unsafe { ::std::ptr::addr_of!((*ptr).hResolution) as usize - ptr as usize },
2106        0usize,
2107        concat!(
2108            "Offset of field: ",
2109            stringify!(VrDeviceInfo),
2110            "::",
2111            stringify!(hResolution)
2112        )
2113    );
2114    assert_eq!(
2115        unsafe { ::std::ptr::addr_of!((*ptr).vResolution) as usize - ptr as usize },
2116        4usize,
2117        concat!(
2118            "Offset of field: ",
2119            stringify!(VrDeviceInfo),
2120            "::",
2121            stringify!(vResolution)
2122        )
2123    );
2124    assert_eq!(
2125        unsafe { ::std::ptr::addr_of!((*ptr).hScreenSize) as usize - ptr as usize },
2126        8usize,
2127        concat!(
2128            "Offset of field: ",
2129            stringify!(VrDeviceInfo),
2130            "::",
2131            stringify!(hScreenSize)
2132        )
2133    );
2134    assert_eq!(
2135        unsafe { ::std::ptr::addr_of!((*ptr).vScreenSize) as usize - ptr as usize },
2136        12usize,
2137        concat!(
2138            "Offset of field: ",
2139            stringify!(VrDeviceInfo),
2140            "::",
2141            stringify!(vScreenSize)
2142        )
2143    );
2144    assert_eq!(
2145        unsafe { ::std::ptr::addr_of!((*ptr).vScreenCenter) as usize - ptr as usize },
2146        16usize,
2147        concat!(
2148            "Offset of field: ",
2149            stringify!(VrDeviceInfo),
2150            "::",
2151            stringify!(vScreenCenter)
2152        )
2153    );
2154    assert_eq!(
2155        unsafe { ::std::ptr::addr_of!((*ptr).eyeToScreenDistance) as usize - ptr as usize },
2156        20usize,
2157        concat!(
2158            "Offset of field: ",
2159            stringify!(VrDeviceInfo),
2160            "::",
2161            stringify!(eyeToScreenDistance)
2162        )
2163    );
2164    assert_eq!(
2165        unsafe { ::std::ptr::addr_of!((*ptr).lensSeparationDistance) as usize - ptr as usize },
2166        24usize,
2167        concat!(
2168            "Offset of field: ",
2169            stringify!(VrDeviceInfo),
2170            "::",
2171            stringify!(lensSeparationDistance)
2172        )
2173    );
2174    assert_eq!(
2175        unsafe { ::std::ptr::addr_of!((*ptr).interpupillaryDistance) as usize - ptr as usize },
2176        28usize,
2177        concat!(
2178            "Offset of field: ",
2179            stringify!(VrDeviceInfo),
2180            "::",
2181            stringify!(interpupillaryDistance)
2182        )
2183    );
2184    assert_eq!(
2185        unsafe { ::std::ptr::addr_of!((*ptr).lensDistortionValues) as usize - ptr as usize },
2186        32usize,
2187        concat!(
2188            "Offset of field: ",
2189            stringify!(VrDeviceInfo),
2190            "::",
2191            stringify!(lensDistortionValues)
2192        )
2193    );
2194    assert_eq!(
2195        unsafe { ::std::ptr::addr_of!((*ptr).chromaAbCorrection) as usize - ptr as usize },
2196        48usize,
2197        concat!(
2198            "Offset of field: ",
2199            stringify!(VrDeviceInfo),
2200            "::",
2201            stringify!(chromaAbCorrection)
2202        )
2203    );
2204}
2205#[repr(C)]
2206#[derive(Debug, Copy, Clone)]
2207pub struct VrStereoConfig {
2208    pub projection: [Matrix; 2usize],
2209    pub viewOffset: [Matrix; 2usize],
2210    pub leftLensCenter: [f32; 2usize],
2211    pub rightLensCenter: [f32; 2usize],
2212    pub leftScreenCenter: [f32; 2usize],
2213    pub rightScreenCenter: [f32; 2usize],
2214    pub scale: [f32; 2usize],
2215    pub scaleIn: [f32; 2usize],
2216}
2217#[test]
2218fn bindgen_test_layout_VrStereoConfig() {
2219    const UNINIT: ::std::mem::MaybeUninit<VrStereoConfig> = ::std::mem::MaybeUninit::uninit();
2220    let ptr = UNINIT.as_ptr();
2221    assert_eq!(
2222        ::std::mem::size_of::<VrStereoConfig>(),
2223        304usize,
2224        concat!("Size of: ", stringify!(VrStereoConfig))
2225    );
2226    assert_eq!(
2227        ::std::mem::align_of::<VrStereoConfig>(),
2228        4usize,
2229        concat!("Alignment of ", stringify!(VrStereoConfig))
2230    );
2231    assert_eq!(
2232        unsafe { ::std::ptr::addr_of!((*ptr).projection) as usize - ptr as usize },
2233        0usize,
2234        concat!(
2235            "Offset of field: ",
2236            stringify!(VrStereoConfig),
2237            "::",
2238            stringify!(projection)
2239        )
2240    );
2241    assert_eq!(
2242        unsafe { ::std::ptr::addr_of!((*ptr).viewOffset) as usize - ptr as usize },
2243        128usize,
2244        concat!(
2245            "Offset of field: ",
2246            stringify!(VrStereoConfig),
2247            "::",
2248            stringify!(viewOffset)
2249        )
2250    );
2251    assert_eq!(
2252        unsafe { ::std::ptr::addr_of!((*ptr).leftLensCenter) as usize - ptr as usize },
2253        256usize,
2254        concat!(
2255            "Offset of field: ",
2256            stringify!(VrStereoConfig),
2257            "::",
2258            stringify!(leftLensCenter)
2259        )
2260    );
2261    assert_eq!(
2262        unsafe { ::std::ptr::addr_of!((*ptr).rightLensCenter) as usize - ptr as usize },
2263        264usize,
2264        concat!(
2265            "Offset of field: ",
2266            stringify!(VrStereoConfig),
2267            "::",
2268            stringify!(rightLensCenter)
2269        )
2270    );
2271    assert_eq!(
2272        unsafe { ::std::ptr::addr_of!((*ptr).leftScreenCenter) as usize - ptr as usize },
2273        272usize,
2274        concat!(
2275            "Offset of field: ",
2276            stringify!(VrStereoConfig),
2277            "::",
2278            stringify!(leftScreenCenter)
2279        )
2280    );
2281    assert_eq!(
2282        unsafe { ::std::ptr::addr_of!((*ptr).rightScreenCenter) as usize - ptr as usize },
2283        280usize,
2284        concat!(
2285            "Offset of field: ",
2286            stringify!(VrStereoConfig),
2287            "::",
2288            stringify!(rightScreenCenter)
2289        )
2290    );
2291    assert_eq!(
2292        unsafe { ::std::ptr::addr_of!((*ptr).scale) as usize - ptr as usize },
2293        288usize,
2294        concat!(
2295            "Offset of field: ",
2296            stringify!(VrStereoConfig),
2297            "::",
2298            stringify!(scale)
2299        )
2300    );
2301    assert_eq!(
2302        unsafe { ::std::ptr::addr_of!((*ptr).scaleIn) as usize - ptr as usize },
2303        296usize,
2304        concat!(
2305            "Offset of field: ",
2306            stringify!(VrStereoConfig),
2307            "::",
2308            stringify!(scaleIn)
2309        )
2310    );
2311}
2312#[repr(C)]
2313#[derive(Debug, Copy, Clone)]
2314pub struct FilePathList {
2315    pub capacity: ::std::os::raw::c_uint,
2316    pub count: ::std::os::raw::c_uint,
2317    pub paths: *mut *mut ::std::os::raw::c_char,
2318}
2319#[test]
2320fn bindgen_test_layout_FilePathList() {
2321    const UNINIT: ::std::mem::MaybeUninit<FilePathList> = ::std::mem::MaybeUninit::uninit();
2322    let ptr = UNINIT.as_ptr();
2323    assert_eq!(
2324        ::std::mem::size_of::<FilePathList>(),
2325        16usize,
2326        concat!("Size of: ", stringify!(FilePathList))
2327    );
2328    assert_eq!(
2329        ::std::mem::align_of::<FilePathList>(),
2330        8usize,
2331        concat!("Alignment of ", stringify!(FilePathList))
2332    );
2333    assert_eq!(
2334        unsafe { ::std::ptr::addr_of!((*ptr).capacity) as usize - ptr as usize },
2335        0usize,
2336        concat!(
2337            "Offset of field: ",
2338            stringify!(FilePathList),
2339            "::",
2340            stringify!(capacity)
2341        )
2342    );
2343    assert_eq!(
2344        unsafe { ::std::ptr::addr_of!((*ptr).count) as usize - ptr as usize },
2345        4usize,
2346        concat!(
2347            "Offset of field: ",
2348            stringify!(FilePathList),
2349            "::",
2350            stringify!(count)
2351        )
2352    );
2353    assert_eq!(
2354        unsafe { ::std::ptr::addr_of!((*ptr).paths) as usize - ptr as usize },
2355        8usize,
2356        concat!(
2357            "Offset of field: ",
2358            stringify!(FilePathList),
2359            "::",
2360            stringify!(paths)
2361        )
2362    );
2363}
2364pub const ConfigFlags_FLAG_VSYNC_HINT: ConfigFlags = 64;
2365pub const ConfigFlags_FLAG_FULLSCREEN_MODE: ConfigFlags = 2;
2366pub const ConfigFlags_FLAG_WINDOW_RESIZABLE: ConfigFlags = 4;
2367pub const ConfigFlags_FLAG_WINDOW_UNDECORATED: ConfigFlags = 8;
2368pub const ConfigFlags_FLAG_WINDOW_HIDDEN: ConfigFlags = 128;
2369pub const ConfigFlags_FLAG_WINDOW_MINIMIZED: ConfigFlags = 512;
2370pub const ConfigFlags_FLAG_WINDOW_MAXIMIZED: ConfigFlags = 1024;
2371pub const ConfigFlags_FLAG_WINDOW_UNFOCUSED: ConfigFlags = 2048;
2372pub const ConfigFlags_FLAG_WINDOW_TOPMOST: ConfigFlags = 4096;
2373pub const ConfigFlags_FLAG_WINDOW_ALWAYS_RUN: ConfigFlags = 256;
2374pub const ConfigFlags_FLAG_WINDOW_TRANSPARENT: ConfigFlags = 16;
2375pub const ConfigFlags_FLAG_WINDOW_HIGHDPI: ConfigFlags = 8192;
2376pub const ConfigFlags_FLAG_WINDOW_MOUSE_PASSTHROUGH: ConfigFlags = 16384;
2377pub const ConfigFlags_FLAG_MSAA_4X_HINT: ConfigFlags = 32;
2378pub const ConfigFlags_FLAG_INTERLACED_HINT: ConfigFlags = 65536;
2379pub type ConfigFlags = ::std::os::raw::c_uint;
2380pub const TraceLogLevel_LOG_ALL: TraceLogLevel = 0;
2381pub const TraceLogLevel_LOG_TRACE: TraceLogLevel = 1;
2382pub const TraceLogLevel_LOG_DEBUG: TraceLogLevel = 2;
2383pub const TraceLogLevel_LOG_INFO: TraceLogLevel = 3;
2384pub const TraceLogLevel_LOG_WARNING: TraceLogLevel = 4;
2385pub const TraceLogLevel_LOG_ERROR: TraceLogLevel = 5;
2386pub const TraceLogLevel_LOG_FATAL: TraceLogLevel = 6;
2387pub const TraceLogLevel_LOG_NONE: TraceLogLevel = 7;
2388pub type TraceLogLevel = ::std::os::raw::c_uint;
2389pub const KeyboardKey_KEY_NULL: KeyboardKey = 0;
2390pub const KeyboardKey_KEY_APOSTROPHE: KeyboardKey = 39;
2391pub const KeyboardKey_KEY_COMMA: KeyboardKey = 44;
2392pub const KeyboardKey_KEY_MINUS: KeyboardKey = 45;
2393pub const KeyboardKey_KEY_PERIOD: KeyboardKey = 46;
2394pub const KeyboardKey_KEY_SLASH: KeyboardKey = 47;
2395pub const KeyboardKey_KEY_ZERO: KeyboardKey = 48;
2396pub const KeyboardKey_KEY_ONE: KeyboardKey = 49;
2397pub const KeyboardKey_KEY_TWO: KeyboardKey = 50;
2398pub const KeyboardKey_KEY_THREE: KeyboardKey = 51;
2399pub const KeyboardKey_KEY_FOUR: KeyboardKey = 52;
2400pub const KeyboardKey_KEY_FIVE: KeyboardKey = 53;
2401pub const KeyboardKey_KEY_SIX: KeyboardKey = 54;
2402pub const KeyboardKey_KEY_SEVEN: KeyboardKey = 55;
2403pub const KeyboardKey_KEY_EIGHT: KeyboardKey = 56;
2404pub const KeyboardKey_KEY_NINE: KeyboardKey = 57;
2405pub const KeyboardKey_KEY_SEMICOLON: KeyboardKey = 59;
2406pub const KeyboardKey_KEY_EQUAL: KeyboardKey = 61;
2407pub const KeyboardKey_KEY_A: KeyboardKey = 65;
2408pub const KeyboardKey_KEY_B: KeyboardKey = 66;
2409pub const KeyboardKey_KEY_C: KeyboardKey = 67;
2410pub const KeyboardKey_KEY_D: KeyboardKey = 68;
2411pub const KeyboardKey_KEY_E: KeyboardKey = 69;
2412pub const KeyboardKey_KEY_F: KeyboardKey = 70;
2413pub const KeyboardKey_KEY_G: KeyboardKey = 71;
2414pub const KeyboardKey_KEY_H: KeyboardKey = 72;
2415pub const KeyboardKey_KEY_I: KeyboardKey = 73;
2416pub const KeyboardKey_KEY_J: KeyboardKey = 74;
2417pub const KeyboardKey_KEY_K: KeyboardKey = 75;
2418pub const KeyboardKey_KEY_L: KeyboardKey = 76;
2419pub const KeyboardKey_KEY_M: KeyboardKey = 77;
2420pub const KeyboardKey_KEY_N: KeyboardKey = 78;
2421pub const KeyboardKey_KEY_O: KeyboardKey = 79;
2422pub const KeyboardKey_KEY_P: KeyboardKey = 80;
2423pub const KeyboardKey_KEY_Q: KeyboardKey = 81;
2424pub const KeyboardKey_KEY_R: KeyboardKey = 82;
2425pub const KeyboardKey_KEY_S: KeyboardKey = 83;
2426pub const KeyboardKey_KEY_T: KeyboardKey = 84;
2427pub const KeyboardKey_KEY_U: KeyboardKey = 85;
2428pub const KeyboardKey_KEY_V: KeyboardKey = 86;
2429pub const KeyboardKey_KEY_W: KeyboardKey = 87;
2430pub const KeyboardKey_KEY_X: KeyboardKey = 88;
2431pub const KeyboardKey_KEY_Y: KeyboardKey = 89;
2432pub const KeyboardKey_KEY_Z: KeyboardKey = 90;
2433pub const KeyboardKey_KEY_LEFT_BRACKET: KeyboardKey = 91;
2434pub const KeyboardKey_KEY_BACKSLASH: KeyboardKey = 92;
2435pub const KeyboardKey_KEY_RIGHT_BRACKET: KeyboardKey = 93;
2436pub const KeyboardKey_KEY_GRAVE: KeyboardKey = 96;
2437pub const KeyboardKey_KEY_SPACE: KeyboardKey = 32;
2438pub const KeyboardKey_KEY_ESCAPE: KeyboardKey = 256;
2439pub const KeyboardKey_KEY_ENTER: KeyboardKey = 257;
2440pub const KeyboardKey_KEY_TAB: KeyboardKey = 258;
2441pub const KeyboardKey_KEY_BACKSPACE: KeyboardKey = 259;
2442pub const KeyboardKey_KEY_INSERT: KeyboardKey = 260;
2443pub const KeyboardKey_KEY_DELETE: KeyboardKey = 261;
2444pub const KeyboardKey_KEY_RIGHT: KeyboardKey = 262;
2445pub const KeyboardKey_KEY_LEFT: KeyboardKey = 263;
2446pub const KeyboardKey_KEY_DOWN: KeyboardKey = 264;
2447pub const KeyboardKey_KEY_UP: KeyboardKey = 265;
2448pub const KeyboardKey_KEY_PAGE_UP: KeyboardKey = 266;
2449pub const KeyboardKey_KEY_PAGE_DOWN: KeyboardKey = 267;
2450pub const KeyboardKey_KEY_HOME: KeyboardKey = 268;
2451pub const KeyboardKey_KEY_END: KeyboardKey = 269;
2452pub const KeyboardKey_KEY_CAPS_LOCK: KeyboardKey = 280;
2453pub const KeyboardKey_KEY_SCROLL_LOCK: KeyboardKey = 281;
2454pub const KeyboardKey_KEY_NUM_LOCK: KeyboardKey = 282;
2455pub const KeyboardKey_KEY_PRINT_SCREEN: KeyboardKey = 283;
2456pub const KeyboardKey_KEY_PAUSE: KeyboardKey = 284;
2457pub const KeyboardKey_KEY_F1: KeyboardKey = 290;
2458pub const KeyboardKey_KEY_F2: KeyboardKey = 291;
2459pub const KeyboardKey_KEY_F3: KeyboardKey = 292;
2460pub const KeyboardKey_KEY_F4: KeyboardKey = 293;
2461pub const KeyboardKey_KEY_F5: KeyboardKey = 294;
2462pub const KeyboardKey_KEY_F6: KeyboardKey = 295;
2463pub const KeyboardKey_KEY_F7: KeyboardKey = 296;
2464pub const KeyboardKey_KEY_F8: KeyboardKey = 297;
2465pub const KeyboardKey_KEY_F9: KeyboardKey = 298;
2466pub const KeyboardKey_KEY_F10: KeyboardKey = 299;
2467pub const KeyboardKey_KEY_F11: KeyboardKey = 300;
2468pub const KeyboardKey_KEY_F12: KeyboardKey = 301;
2469pub const KeyboardKey_KEY_LEFT_SHIFT: KeyboardKey = 340;
2470pub const KeyboardKey_KEY_LEFT_CONTROL: KeyboardKey = 341;
2471pub const KeyboardKey_KEY_LEFT_ALT: KeyboardKey = 342;
2472pub const KeyboardKey_KEY_LEFT_SUPER: KeyboardKey = 343;
2473pub const KeyboardKey_KEY_RIGHT_SHIFT: KeyboardKey = 344;
2474pub const KeyboardKey_KEY_RIGHT_CONTROL: KeyboardKey = 345;
2475pub const KeyboardKey_KEY_RIGHT_ALT: KeyboardKey = 346;
2476pub const KeyboardKey_KEY_RIGHT_SUPER: KeyboardKey = 347;
2477pub const KeyboardKey_KEY_KB_MENU: KeyboardKey = 348;
2478pub const KeyboardKey_KEY_KP_0: KeyboardKey = 320;
2479pub const KeyboardKey_KEY_KP_1: KeyboardKey = 321;
2480pub const KeyboardKey_KEY_KP_2: KeyboardKey = 322;
2481pub const KeyboardKey_KEY_KP_3: KeyboardKey = 323;
2482pub const KeyboardKey_KEY_KP_4: KeyboardKey = 324;
2483pub const KeyboardKey_KEY_KP_5: KeyboardKey = 325;
2484pub const KeyboardKey_KEY_KP_6: KeyboardKey = 326;
2485pub const KeyboardKey_KEY_KP_7: KeyboardKey = 327;
2486pub const KeyboardKey_KEY_KP_8: KeyboardKey = 328;
2487pub const KeyboardKey_KEY_KP_9: KeyboardKey = 329;
2488pub const KeyboardKey_KEY_KP_DECIMAL: KeyboardKey = 330;
2489pub const KeyboardKey_KEY_KP_DIVIDE: KeyboardKey = 331;
2490pub const KeyboardKey_KEY_KP_MULTIPLY: KeyboardKey = 332;
2491pub const KeyboardKey_KEY_KP_SUBTRACT: KeyboardKey = 333;
2492pub const KeyboardKey_KEY_KP_ADD: KeyboardKey = 334;
2493pub const KeyboardKey_KEY_KP_ENTER: KeyboardKey = 335;
2494pub const KeyboardKey_KEY_KP_EQUAL: KeyboardKey = 336;
2495pub const KeyboardKey_KEY_BACK: KeyboardKey = 4;
2496pub const KeyboardKey_KEY_MENU: KeyboardKey = 82;
2497pub const KeyboardKey_KEY_VOLUME_UP: KeyboardKey = 24;
2498pub const KeyboardKey_KEY_VOLUME_DOWN: KeyboardKey = 25;
2499pub type KeyboardKey = ::std::os::raw::c_uint;
2500pub const MouseButton_MOUSE_BUTTON_LEFT: MouseButton = 0;
2501pub const MouseButton_MOUSE_BUTTON_RIGHT: MouseButton = 1;
2502pub const MouseButton_MOUSE_BUTTON_MIDDLE: MouseButton = 2;
2503pub const MouseButton_MOUSE_BUTTON_SIDE: MouseButton = 3;
2504pub const MouseButton_MOUSE_BUTTON_EXTRA: MouseButton = 4;
2505pub const MouseButton_MOUSE_BUTTON_FORWARD: MouseButton = 5;
2506pub const MouseButton_MOUSE_BUTTON_BACK: MouseButton = 6;
2507pub type MouseButton = ::std::os::raw::c_uint;
2508pub const MouseCursor_MOUSE_CURSOR_DEFAULT: MouseCursor = 0;
2509pub const MouseCursor_MOUSE_CURSOR_ARROW: MouseCursor = 1;
2510pub const MouseCursor_MOUSE_CURSOR_IBEAM: MouseCursor = 2;
2511pub const MouseCursor_MOUSE_CURSOR_CROSSHAIR: MouseCursor = 3;
2512pub const MouseCursor_MOUSE_CURSOR_POINTING_HAND: MouseCursor = 4;
2513pub const MouseCursor_MOUSE_CURSOR_RESIZE_EW: MouseCursor = 5;
2514pub const MouseCursor_MOUSE_CURSOR_RESIZE_NS: MouseCursor = 6;
2515pub const MouseCursor_MOUSE_CURSOR_RESIZE_NWSE: MouseCursor = 7;
2516pub const MouseCursor_MOUSE_CURSOR_RESIZE_NESW: MouseCursor = 8;
2517pub const MouseCursor_MOUSE_CURSOR_RESIZE_ALL: MouseCursor = 9;
2518pub const MouseCursor_MOUSE_CURSOR_NOT_ALLOWED: MouseCursor = 10;
2519pub type MouseCursor = ::std::os::raw::c_uint;
2520pub const GamepadButton_GAMEPAD_BUTTON_UNKNOWN: GamepadButton = 0;
2521pub const GamepadButton_GAMEPAD_BUTTON_LEFT_FACE_UP: GamepadButton = 1;
2522pub const GamepadButton_GAMEPAD_BUTTON_LEFT_FACE_RIGHT: GamepadButton = 2;
2523pub const GamepadButton_GAMEPAD_BUTTON_LEFT_FACE_DOWN: GamepadButton = 3;
2524pub const GamepadButton_GAMEPAD_BUTTON_LEFT_FACE_LEFT: GamepadButton = 4;
2525pub const GamepadButton_GAMEPAD_BUTTON_RIGHT_FACE_UP: GamepadButton = 5;
2526pub const GamepadButton_GAMEPAD_BUTTON_RIGHT_FACE_RIGHT: GamepadButton = 6;
2527pub const GamepadButton_GAMEPAD_BUTTON_RIGHT_FACE_DOWN: GamepadButton = 7;
2528pub const GamepadButton_GAMEPAD_BUTTON_RIGHT_FACE_LEFT: GamepadButton = 8;
2529pub const GamepadButton_GAMEPAD_BUTTON_LEFT_TRIGGER_1: GamepadButton = 9;
2530pub const GamepadButton_GAMEPAD_BUTTON_LEFT_TRIGGER_2: GamepadButton = 10;
2531pub const GamepadButton_GAMEPAD_BUTTON_RIGHT_TRIGGER_1: GamepadButton = 11;
2532pub const GamepadButton_GAMEPAD_BUTTON_RIGHT_TRIGGER_2: GamepadButton = 12;
2533pub const GamepadButton_GAMEPAD_BUTTON_MIDDLE_LEFT: GamepadButton = 13;
2534pub const GamepadButton_GAMEPAD_BUTTON_MIDDLE: GamepadButton = 14;
2535pub const GamepadButton_GAMEPAD_BUTTON_MIDDLE_RIGHT: GamepadButton = 15;
2536pub const GamepadButton_GAMEPAD_BUTTON_LEFT_THUMB: GamepadButton = 16;
2537pub const GamepadButton_GAMEPAD_BUTTON_RIGHT_THUMB: GamepadButton = 17;
2538pub type GamepadButton = ::std::os::raw::c_uint;
2539pub const GamepadAxis_GAMEPAD_AXIS_LEFT_X: GamepadAxis = 0;
2540pub const GamepadAxis_GAMEPAD_AXIS_LEFT_Y: GamepadAxis = 1;
2541pub const GamepadAxis_GAMEPAD_AXIS_RIGHT_X: GamepadAxis = 2;
2542pub const GamepadAxis_GAMEPAD_AXIS_RIGHT_Y: GamepadAxis = 3;
2543pub const GamepadAxis_GAMEPAD_AXIS_LEFT_TRIGGER: GamepadAxis = 4;
2544pub const GamepadAxis_GAMEPAD_AXIS_RIGHT_TRIGGER: GamepadAxis = 5;
2545pub type GamepadAxis = ::std::os::raw::c_uint;
2546pub const MaterialMapIndex_MATERIAL_MAP_ALBEDO: MaterialMapIndex = 0;
2547pub const MaterialMapIndex_MATERIAL_MAP_METALNESS: MaterialMapIndex = 1;
2548pub const MaterialMapIndex_MATERIAL_MAP_NORMAL: MaterialMapIndex = 2;
2549pub const MaterialMapIndex_MATERIAL_MAP_ROUGHNESS: MaterialMapIndex = 3;
2550pub const MaterialMapIndex_MATERIAL_MAP_OCCLUSION: MaterialMapIndex = 4;
2551pub const MaterialMapIndex_MATERIAL_MAP_EMISSION: MaterialMapIndex = 5;
2552pub const MaterialMapIndex_MATERIAL_MAP_HEIGHT: MaterialMapIndex = 6;
2553pub const MaterialMapIndex_MATERIAL_MAP_CUBEMAP: MaterialMapIndex = 7;
2554pub const MaterialMapIndex_MATERIAL_MAP_IRRADIANCE: MaterialMapIndex = 8;
2555pub const MaterialMapIndex_MATERIAL_MAP_PREFILTER: MaterialMapIndex = 9;
2556pub const MaterialMapIndex_MATERIAL_MAP_BRDF: MaterialMapIndex = 10;
2557pub type MaterialMapIndex = ::std::os::raw::c_uint;
2558pub const ShaderLocationIndex_SHADER_LOC_VERTEX_POSITION: ShaderLocationIndex = 0;
2559pub const ShaderLocationIndex_SHADER_LOC_VERTEX_TEXCOORD01: ShaderLocationIndex = 1;
2560pub const ShaderLocationIndex_SHADER_LOC_VERTEX_TEXCOORD02: ShaderLocationIndex = 2;
2561pub const ShaderLocationIndex_SHADER_LOC_VERTEX_NORMAL: ShaderLocationIndex = 3;
2562pub const ShaderLocationIndex_SHADER_LOC_VERTEX_TANGENT: ShaderLocationIndex = 4;
2563pub const ShaderLocationIndex_SHADER_LOC_VERTEX_COLOR: ShaderLocationIndex = 5;
2564pub const ShaderLocationIndex_SHADER_LOC_MATRIX_MVP: ShaderLocationIndex = 6;
2565pub const ShaderLocationIndex_SHADER_LOC_MATRIX_VIEW: ShaderLocationIndex = 7;
2566pub const ShaderLocationIndex_SHADER_LOC_MATRIX_PROJECTION: ShaderLocationIndex = 8;
2567pub const ShaderLocationIndex_SHADER_LOC_MATRIX_MODEL: ShaderLocationIndex = 9;
2568pub const ShaderLocationIndex_SHADER_LOC_MATRIX_NORMAL: ShaderLocationIndex = 10;
2569pub const ShaderLocationIndex_SHADER_LOC_VECTOR_VIEW: ShaderLocationIndex = 11;
2570pub const ShaderLocationIndex_SHADER_LOC_COLOR_DIFFUSE: ShaderLocationIndex = 12;
2571pub const ShaderLocationIndex_SHADER_LOC_COLOR_SPECULAR: ShaderLocationIndex = 13;
2572pub const ShaderLocationIndex_SHADER_LOC_COLOR_AMBIENT: ShaderLocationIndex = 14;
2573pub const ShaderLocationIndex_SHADER_LOC_MAP_ALBEDO: ShaderLocationIndex = 15;
2574pub const ShaderLocationIndex_SHADER_LOC_MAP_METALNESS: ShaderLocationIndex = 16;
2575pub const ShaderLocationIndex_SHADER_LOC_MAP_NORMAL: ShaderLocationIndex = 17;
2576pub const ShaderLocationIndex_SHADER_LOC_MAP_ROUGHNESS: ShaderLocationIndex = 18;
2577pub const ShaderLocationIndex_SHADER_LOC_MAP_OCCLUSION: ShaderLocationIndex = 19;
2578pub const ShaderLocationIndex_SHADER_LOC_MAP_EMISSION: ShaderLocationIndex = 20;
2579pub const ShaderLocationIndex_SHADER_LOC_MAP_HEIGHT: ShaderLocationIndex = 21;
2580pub const ShaderLocationIndex_SHADER_LOC_MAP_CUBEMAP: ShaderLocationIndex = 22;
2581pub const ShaderLocationIndex_SHADER_LOC_MAP_IRRADIANCE: ShaderLocationIndex = 23;
2582pub const ShaderLocationIndex_SHADER_LOC_MAP_PREFILTER: ShaderLocationIndex = 24;
2583pub const ShaderLocationIndex_SHADER_LOC_MAP_BRDF: ShaderLocationIndex = 25;
2584pub type ShaderLocationIndex = ::std::os::raw::c_uint;
2585pub const ShaderUniformDataType_SHADER_UNIFORM_FLOAT: ShaderUniformDataType = 0;
2586pub const ShaderUniformDataType_SHADER_UNIFORM_VEC2: ShaderUniformDataType = 1;
2587pub const ShaderUniformDataType_SHADER_UNIFORM_VEC3: ShaderUniformDataType = 2;
2588pub const ShaderUniformDataType_SHADER_UNIFORM_VEC4: ShaderUniformDataType = 3;
2589pub const ShaderUniformDataType_SHADER_UNIFORM_INT: ShaderUniformDataType = 4;
2590pub const ShaderUniformDataType_SHADER_UNIFORM_IVEC2: ShaderUniformDataType = 5;
2591pub const ShaderUniformDataType_SHADER_UNIFORM_IVEC3: ShaderUniformDataType = 6;
2592pub const ShaderUniformDataType_SHADER_UNIFORM_IVEC4: ShaderUniformDataType = 7;
2593pub const ShaderUniformDataType_SHADER_UNIFORM_SAMPLER2D: ShaderUniformDataType = 8;
2594pub type ShaderUniformDataType = ::std::os::raw::c_uint;
2595pub const ShaderAttributeDataType_SHADER_ATTRIB_FLOAT: ShaderAttributeDataType = 0;
2596pub const ShaderAttributeDataType_SHADER_ATTRIB_VEC2: ShaderAttributeDataType = 1;
2597pub const ShaderAttributeDataType_SHADER_ATTRIB_VEC3: ShaderAttributeDataType = 2;
2598pub const ShaderAttributeDataType_SHADER_ATTRIB_VEC4: ShaderAttributeDataType = 3;
2599pub type ShaderAttributeDataType = ::std::os::raw::c_uint;
2600pub const PixelFormat_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: PixelFormat = 1;
2601pub const PixelFormat_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: PixelFormat = 2;
2602pub const PixelFormat_PIXELFORMAT_UNCOMPRESSED_R5G6B5: PixelFormat = 3;
2603pub const PixelFormat_PIXELFORMAT_UNCOMPRESSED_R8G8B8: PixelFormat = 4;
2604pub const PixelFormat_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1: PixelFormat = 5;
2605pub const PixelFormat_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4: PixelFormat = 6;
2606pub const PixelFormat_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: PixelFormat = 7;
2607pub const PixelFormat_PIXELFORMAT_UNCOMPRESSED_R32: PixelFormat = 8;
2608pub const PixelFormat_PIXELFORMAT_UNCOMPRESSED_R32G32B32: PixelFormat = 9;
2609pub const PixelFormat_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: PixelFormat = 10;
2610pub const PixelFormat_PIXELFORMAT_COMPRESSED_DXT1_RGB: PixelFormat = 11;
2611pub const PixelFormat_PIXELFORMAT_COMPRESSED_DXT1_RGBA: PixelFormat = 12;
2612pub const PixelFormat_PIXELFORMAT_COMPRESSED_DXT3_RGBA: PixelFormat = 13;
2613pub const PixelFormat_PIXELFORMAT_COMPRESSED_DXT5_RGBA: PixelFormat = 14;
2614pub const PixelFormat_PIXELFORMAT_COMPRESSED_ETC1_RGB: PixelFormat = 15;
2615pub const PixelFormat_PIXELFORMAT_COMPRESSED_ETC2_RGB: PixelFormat = 16;
2616pub const PixelFormat_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA: PixelFormat = 17;
2617pub const PixelFormat_PIXELFORMAT_COMPRESSED_PVRT_RGB: PixelFormat = 18;
2618pub const PixelFormat_PIXELFORMAT_COMPRESSED_PVRT_RGBA: PixelFormat = 19;
2619pub const PixelFormat_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA: PixelFormat = 20;
2620pub const PixelFormat_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA: PixelFormat = 21;
2621pub type PixelFormat = ::std::os::raw::c_uint;
2622pub const TextureFilter_TEXTURE_FILTER_POINT: TextureFilter = 0;
2623pub const TextureFilter_TEXTURE_FILTER_BILINEAR: TextureFilter = 1;
2624pub const TextureFilter_TEXTURE_FILTER_TRILINEAR: TextureFilter = 2;
2625pub const TextureFilter_TEXTURE_FILTER_ANISOTROPIC_4X: TextureFilter = 3;
2626pub const TextureFilter_TEXTURE_FILTER_ANISOTROPIC_8X: TextureFilter = 4;
2627pub const TextureFilter_TEXTURE_FILTER_ANISOTROPIC_16X: TextureFilter = 5;
2628pub type TextureFilter = ::std::os::raw::c_uint;
2629pub const TextureWrap_TEXTURE_WRAP_REPEAT: TextureWrap = 0;
2630pub const TextureWrap_TEXTURE_WRAP_CLAMP: TextureWrap = 1;
2631pub const TextureWrap_TEXTURE_WRAP_MIRROR_REPEAT: TextureWrap = 2;
2632pub const TextureWrap_TEXTURE_WRAP_MIRROR_CLAMP: TextureWrap = 3;
2633pub type TextureWrap = ::std::os::raw::c_uint;
2634pub const CubemapLayout_CUBEMAP_LAYOUT_AUTO_DETECT: CubemapLayout = 0;
2635pub const CubemapLayout_CUBEMAP_LAYOUT_LINE_VERTICAL: CubemapLayout = 1;
2636pub const CubemapLayout_CUBEMAP_LAYOUT_LINE_HORIZONTAL: CubemapLayout = 2;
2637pub const CubemapLayout_CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR: CubemapLayout = 3;
2638pub const CubemapLayout_CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE: CubemapLayout = 4;
2639pub const CubemapLayout_CUBEMAP_LAYOUT_PANORAMA: CubemapLayout = 5;
2640pub type CubemapLayout = ::std::os::raw::c_uint;
2641pub const FontType_FONT_DEFAULT: FontType = 0;
2642pub const FontType_FONT_BITMAP: FontType = 1;
2643pub const FontType_FONT_SDF: FontType = 2;
2644pub type FontType = ::std::os::raw::c_uint;
2645pub const BlendMode_BLEND_ALPHA: BlendMode = 0;
2646pub const BlendMode_BLEND_ADDITIVE: BlendMode = 1;
2647pub const BlendMode_BLEND_MULTIPLIED: BlendMode = 2;
2648pub const BlendMode_BLEND_ADD_COLORS: BlendMode = 3;
2649pub const BlendMode_BLEND_SUBTRACT_COLORS: BlendMode = 4;
2650pub const BlendMode_BLEND_ALPHA_PREMULTIPLY: BlendMode = 5;
2651pub const BlendMode_BLEND_CUSTOM: BlendMode = 6;
2652pub type BlendMode = ::std::os::raw::c_uint;
2653pub const Gesture_GESTURE_NONE: Gesture = 0;
2654pub const Gesture_GESTURE_TAP: Gesture = 1;
2655pub const Gesture_GESTURE_DOUBLETAP: Gesture = 2;
2656pub const Gesture_GESTURE_HOLD: Gesture = 4;
2657pub const Gesture_GESTURE_DRAG: Gesture = 8;
2658pub const Gesture_GESTURE_SWIPE_RIGHT: Gesture = 16;
2659pub const Gesture_GESTURE_SWIPE_LEFT: Gesture = 32;
2660pub const Gesture_GESTURE_SWIPE_UP: Gesture = 64;
2661pub const Gesture_GESTURE_SWIPE_DOWN: Gesture = 128;
2662pub const Gesture_GESTURE_PINCH_IN: Gesture = 256;
2663pub const Gesture_GESTURE_PINCH_OUT: Gesture = 512;
2664pub type Gesture = ::std::os::raw::c_uint;
2665pub const CameraMode_CAMERA_CUSTOM: CameraMode = 0;
2666pub const CameraMode_CAMERA_FREE: CameraMode = 1;
2667pub const CameraMode_CAMERA_ORBITAL: CameraMode = 2;
2668pub const CameraMode_CAMERA_FIRST_PERSON: CameraMode = 3;
2669pub const CameraMode_CAMERA_THIRD_PERSON: CameraMode = 4;
2670pub type CameraMode = ::std::os::raw::c_uint;
2671pub const CameraProjection_CAMERA_PERSPECTIVE: CameraProjection = 0;
2672pub const CameraProjection_CAMERA_ORTHOGRAPHIC: CameraProjection = 1;
2673pub type CameraProjection = ::std::os::raw::c_uint;
2674pub const NPatchLayout_NPATCH_NINE_PATCH: NPatchLayout = 0;
2675pub const NPatchLayout_NPATCH_THREE_PATCH_VERTICAL: NPatchLayout = 1;
2676pub const NPatchLayout_NPATCH_THREE_PATCH_HORIZONTAL: NPatchLayout = 2;
2677pub type NPatchLayout = ::std::os::raw::c_uint;
2678pub type TraceLogCallback = ::std::option::Option<
2679    unsafe extern "C" fn(
2680        logLevel: ::std::os::raw::c_int,
2681        text: *const ::std::os::raw::c_char,
2682        args: *mut __va_list_tag,
2683    ),
2684>;
2685pub type LoadFileDataCallback = ::std::option::Option<
2686    unsafe extern "C" fn(
2687        fileName: *const ::std::os::raw::c_char,
2688        bytesRead: *mut ::std::os::raw::c_uint,
2689    ) -> *mut ::std::os::raw::c_uchar,
2690>;
2691pub type SaveFileDataCallback = ::std::option::Option<
2692    unsafe extern "C" fn(
2693        fileName: *const ::std::os::raw::c_char,
2694        data: *mut ::std::os::raw::c_void,
2695        bytesToWrite: ::std::os::raw::c_uint,
2696    ) -> bool,
2697>;
2698pub type LoadFileTextCallback = ::std::option::Option<
2699    unsafe extern "C" fn(fileName: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char,
2700>;
2701pub type SaveFileTextCallback = ::std::option::Option<
2702    unsafe extern "C" fn(
2703        fileName: *const ::std::os::raw::c_char,
2704        text: *mut ::std::os::raw::c_char,
2705    ) -> bool,
2706>;
2707extern "C" {
2708    pub fn InitWindow(
2709        width: ::std::os::raw::c_int,
2710        height: ::std::os::raw::c_int,
2711        title: *const ::std::os::raw::c_char,
2712    );
2713}
2714extern "C" {
2715    pub fn WindowShouldClose() -> bool;
2716}
2717extern "C" {
2718    pub fn CloseWindow();
2719}
2720extern "C" {
2721    pub fn IsWindowReady() -> bool;
2722}
2723extern "C" {
2724    pub fn IsWindowFullscreen() -> bool;
2725}
2726extern "C" {
2727    pub fn IsWindowHidden() -> bool;
2728}
2729extern "C" {
2730    pub fn IsWindowMinimized() -> bool;
2731}
2732extern "C" {
2733    pub fn IsWindowMaximized() -> bool;
2734}
2735extern "C" {
2736    pub fn IsWindowFocused() -> bool;
2737}
2738extern "C" {
2739    pub fn IsWindowResized() -> bool;
2740}
2741extern "C" {
2742    pub fn IsWindowState(flag: ::std::os::raw::c_uint) -> bool;
2743}
2744extern "C" {
2745    pub fn SetWindowState(flags: ::std::os::raw::c_uint);
2746}
2747extern "C" {
2748    pub fn ClearWindowState(flags: ::std::os::raw::c_uint);
2749}
2750extern "C" {
2751    pub fn ToggleFullscreen();
2752}
2753extern "C" {
2754    pub fn MaximizeWindow();
2755}
2756extern "C" {
2757    pub fn MinimizeWindow();
2758}
2759extern "C" {
2760    pub fn RestoreWindow();
2761}
2762extern "C" {
2763    pub fn SetWindowIcon(image: Image);
2764}
2765extern "C" {
2766    pub fn SetWindowTitle(title: *const ::std::os::raw::c_char);
2767}
2768extern "C" {
2769    pub fn SetWindowPosition(x: ::std::os::raw::c_int, y: ::std::os::raw::c_int);
2770}
2771extern "C" {
2772    pub fn SetWindowMonitor(monitor: ::std::os::raw::c_int);
2773}
2774extern "C" {
2775    pub fn SetWindowMinSize(width: ::std::os::raw::c_int, height: ::std::os::raw::c_int);
2776}
2777extern "C" {
2778    pub fn SetWindowSize(width: ::std::os::raw::c_int, height: ::std::os::raw::c_int);
2779}
2780extern "C" {
2781    pub fn SetWindowOpacity(opacity: f32);
2782}
2783extern "C" {
2784    pub fn GetWindowHandle() -> *mut ::std::os::raw::c_void;
2785}
2786extern "C" {
2787    pub fn GetScreenWidth() -> ::std::os::raw::c_int;
2788}
2789extern "C" {
2790    pub fn GetScreenHeight() -> ::std::os::raw::c_int;
2791}
2792extern "C" {
2793    pub fn GetRenderWidth() -> ::std::os::raw::c_int;
2794}
2795extern "C" {
2796    pub fn GetRenderHeight() -> ::std::os::raw::c_int;
2797}
2798extern "C" {
2799    pub fn GetMonitorCount() -> ::std::os::raw::c_int;
2800}
2801extern "C" {
2802    pub fn GetCurrentMonitor() -> ::std::os::raw::c_int;
2803}
2804extern "C" {
2805    pub fn GetMonitorPosition(monitor: ::std::os::raw::c_int) -> Vector2;
2806}
2807extern "C" {
2808    pub fn GetMonitorWidth(monitor: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
2809}
2810extern "C" {
2811    pub fn GetMonitorHeight(monitor: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
2812}
2813extern "C" {
2814    pub fn GetMonitorPhysicalWidth(monitor: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
2815}
2816extern "C" {
2817    pub fn GetMonitorPhysicalHeight(monitor: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
2818}
2819extern "C" {
2820    pub fn GetMonitorRefreshRate(monitor: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
2821}
2822extern "C" {
2823    pub fn GetWindowPosition() -> Vector2;
2824}
2825extern "C" {
2826    pub fn GetWindowScaleDPI() -> Vector2;
2827}
2828extern "C" {
2829    pub fn GetMonitorName(monitor: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
2830}
2831extern "C" {
2832    pub fn SetClipboardText(text: *const ::std::os::raw::c_char);
2833}
2834extern "C" {
2835    pub fn GetClipboardText() -> *const ::std::os::raw::c_char;
2836}
2837extern "C" {
2838    pub fn EnableEventWaiting();
2839}
2840extern "C" {
2841    pub fn DisableEventWaiting();
2842}
2843extern "C" {
2844    pub fn SwapScreenBuffer();
2845}
2846extern "C" {
2847    pub fn PollInputEvents();
2848}
2849extern "C" {
2850    pub fn WaitTime(seconds: f64);
2851}
2852extern "C" {
2853    pub fn ShowCursor();
2854}
2855extern "C" {
2856    pub fn HideCursor();
2857}
2858extern "C" {
2859    pub fn IsCursorHidden() -> bool;
2860}
2861extern "C" {
2862    pub fn EnableCursor();
2863}
2864extern "C" {
2865    pub fn DisableCursor();
2866}
2867extern "C" {
2868    pub fn IsCursorOnScreen() -> bool;
2869}
2870extern "C" {
2871    pub fn ClearBackground(color: Color);
2872}
2873extern "C" {
2874    pub fn BeginDrawing();
2875}
2876extern "C" {
2877    pub fn EndDrawing();
2878}
2879extern "C" {
2880    pub fn BeginMode2D(camera: Camera2D);
2881}
2882extern "C" {
2883    pub fn EndMode2D();
2884}
2885extern "C" {
2886    pub fn BeginMode3D(camera: Camera3D);
2887}
2888extern "C" {
2889    pub fn EndMode3D();
2890}
2891extern "C" {
2892    pub fn BeginTextureMode(target: RenderTexture2D);
2893}
2894extern "C" {
2895    pub fn EndTextureMode();
2896}
2897extern "C" {
2898    pub fn BeginShaderMode(shader: Shader);
2899}
2900extern "C" {
2901    pub fn EndShaderMode();
2902}
2903extern "C" {
2904    pub fn BeginBlendMode(mode: ::std::os::raw::c_int);
2905}
2906extern "C" {
2907    pub fn EndBlendMode();
2908}
2909extern "C" {
2910    pub fn BeginScissorMode(
2911        x: ::std::os::raw::c_int,
2912        y: ::std::os::raw::c_int,
2913        width: ::std::os::raw::c_int,
2914        height: ::std::os::raw::c_int,
2915    );
2916}
2917extern "C" {
2918    pub fn EndScissorMode();
2919}
2920extern "C" {
2921    pub fn BeginVrStereoMode(config: VrStereoConfig);
2922}
2923extern "C" {
2924    pub fn EndVrStereoMode();
2925}
2926extern "C" {
2927    pub fn LoadVrStereoConfig(device: VrDeviceInfo) -> VrStereoConfig;
2928}
2929extern "C" {
2930    pub fn UnloadVrStereoConfig(config: VrStereoConfig);
2931}
2932extern "C" {
2933    pub fn LoadShader(
2934        vsFileName: *const ::std::os::raw::c_char,
2935        fsFileName: *const ::std::os::raw::c_char,
2936    ) -> Shader;
2937}
2938extern "C" {
2939    pub fn LoadShaderFromMemory(
2940        vsCode: *const ::std::os::raw::c_char,
2941        fsCode: *const ::std::os::raw::c_char,
2942    ) -> Shader;
2943}
2944extern "C" {
2945    pub fn GetShaderLocation(
2946        shader: Shader,
2947        uniformName: *const ::std::os::raw::c_char,
2948    ) -> ::std::os::raw::c_int;
2949}
2950extern "C" {
2951    pub fn GetShaderLocationAttrib(
2952        shader: Shader,
2953        attribName: *const ::std::os::raw::c_char,
2954    ) -> ::std::os::raw::c_int;
2955}
2956extern "C" {
2957    pub fn SetShaderValue(
2958        shader: Shader,
2959        locIndex: ::std::os::raw::c_int,
2960        value: *const ::std::os::raw::c_void,
2961        uniformType: ::std::os::raw::c_int,
2962    );
2963}
2964extern "C" {
2965    pub fn SetShaderValueV(
2966        shader: Shader,
2967        locIndex: ::std::os::raw::c_int,
2968        value: *const ::std::os::raw::c_void,
2969        uniformType: ::std::os::raw::c_int,
2970        count: ::std::os::raw::c_int,
2971    );
2972}
2973extern "C" {
2974    pub fn SetShaderValueMatrix(shader: Shader, locIndex: ::std::os::raw::c_int, mat: Matrix);
2975}
2976extern "C" {
2977    pub fn SetShaderValueTexture(
2978        shader: Shader,
2979        locIndex: ::std::os::raw::c_int,
2980        texture: Texture2D,
2981    );
2982}
2983extern "C" {
2984    pub fn UnloadShader(shader: Shader);
2985}
2986extern "C" {
2987    pub fn GetMouseRay(mousePosition: Vector2, camera: Camera) -> Ray;
2988}
2989extern "C" {
2990    pub fn GetCameraMatrix(camera: Camera) -> Matrix;
2991}
2992extern "C" {
2993    pub fn GetCameraMatrix2D(camera: Camera2D) -> Matrix;
2994}
2995extern "C" {
2996    pub fn GetWorldToScreen(position: Vector3, camera: Camera) -> Vector2;
2997}
2998extern "C" {
2999    pub fn GetScreenToWorld2D(position: Vector2, camera: Camera2D) -> Vector2;
3000}
3001extern "C" {
3002    pub fn GetWorldToScreenEx(
3003        position: Vector3,
3004        camera: Camera,
3005        width: ::std::os::raw::c_int,
3006        height: ::std::os::raw::c_int,
3007    ) -> Vector2;
3008}
3009extern "C" {
3010    pub fn GetWorldToScreen2D(position: Vector2, camera: Camera2D) -> Vector2;
3011}
3012extern "C" {
3013    pub fn SetTargetFPS(fps: ::std::os::raw::c_int);
3014}
3015extern "C" {
3016    pub fn GetFPS() -> ::std::os::raw::c_int;
3017}
3018extern "C" {
3019    pub fn GetFrameTime() -> f32;
3020}
3021extern "C" {
3022    pub fn GetTime() -> f64;
3023}
3024extern "C" {
3025    pub fn GetRandomValue(
3026        min: ::std::os::raw::c_int,
3027        max: ::std::os::raw::c_int,
3028    ) -> ::std::os::raw::c_int;
3029}
3030extern "C" {
3031    pub fn SetRandomSeed(seed: ::std::os::raw::c_uint);
3032}
3033extern "C" {
3034    pub fn TakeScreenshot(fileName: *const ::std::os::raw::c_char);
3035}
3036extern "C" {
3037    pub fn SetConfigFlags(flags: ::std::os::raw::c_uint);
3038}
3039extern "C" {
3040    pub fn TraceLog(logLevel: ::std::os::raw::c_int, text: *const ::std::os::raw::c_char, ...);
3041}
3042extern "C" {
3043    pub fn SetTraceLogLevel(logLevel: ::std::os::raw::c_int);
3044}
3045extern "C" {
3046    pub fn MemAlloc(size: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_void;
3047}
3048extern "C" {
3049    pub fn MemRealloc(
3050        ptr: *mut ::std::os::raw::c_void,
3051        size: ::std::os::raw::c_int,
3052    ) -> *mut ::std::os::raw::c_void;
3053}
3054extern "C" {
3055    pub fn MemFree(ptr: *mut ::std::os::raw::c_void);
3056}
3057extern "C" {
3058    pub fn OpenURL(url: *const ::std::os::raw::c_char);
3059}
3060extern "C" {
3061    pub fn SetTraceLogCallback(callback: TraceLogCallback);
3062}
3063extern "C" {
3064    pub fn SetLoadFileDataCallback(callback: LoadFileDataCallback);
3065}
3066extern "C" {
3067    pub fn SetSaveFileDataCallback(callback: SaveFileDataCallback);
3068}
3069extern "C" {
3070    pub fn SetLoadFileTextCallback(callback: LoadFileTextCallback);
3071}
3072extern "C" {
3073    pub fn SetSaveFileTextCallback(callback: SaveFileTextCallback);
3074}
3075extern "C" {
3076    pub fn LoadFileData(
3077        fileName: *const ::std::os::raw::c_char,
3078        bytesRead: *mut ::std::os::raw::c_uint,
3079    ) -> *mut ::std::os::raw::c_uchar;
3080}
3081extern "C" {
3082    pub fn UnloadFileData(data: *mut ::std::os::raw::c_uchar);
3083}
3084extern "C" {
3085    pub fn SaveFileData(
3086        fileName: *const ::std::os::raw::c_char,
3087        data: *mut ::std::os::raw::c_void,
3088        bytesToWrite: ::std::os::raw::c_uint,
3089    ) -> bool;
3090}
3091extern "C" {
3092    pub fn ExportDataAsCode(
3093        data: *const ::std::os::raw::c_char,
3094        size: ::std::os::raw::c_uint,
3095        fileName: *const ::std::os::raw::c_char,
3096    ) -> bool;
3097}
3098extern "C" {
3099    pub fn LoadFileText(fileName: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
3100}
3101extern "C" {
3102    pub fn UnloadFileText(text: *mut ::std::os::raw::c_char);
3103}
3104extern "C" {
3105    pub fn SaveFileText(
3106        fileName: *const ::std::os::raw::c_char,
3107        text: *mut ::std::os::raw::c_char,
3108    ) -> bool;
3109}
3110extern "C" {
3111    pub fn FileExists(fileName: *const ::std::os::raw::c_char) -> bool;
3112}
3113extern "C" {
3114    pub fn DirectoryExists(dirPath: *const ::std::os::raw::c_char) -> bool;
3115}
3116extern "C" {
3117    pub fn IsFileExtension(
3118        fileName: *const ::std::os::raw::c_char,
3119        ext: *const ::std::os::raw::c_char,
3120    ) -> bool;
3121}
3122extern "C" {
3123    pub fn GetFileLength(fileName: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
3124}
3125extern "C" {
3126    pub fn GetFileExtension(
3127        fileName: *const ::std::os::raw::c_char,
3128    ) -> *const ::std::os::raw::c_char;
3129}
3130extern "C" {
3131    pub fn GetFileName(filePath: *const ::std::os::raw::c_char) -> *const ::std::os::raw::c_char;
3132}
3133extern "C" {
3134    pub fn GetFileNameWithoutExt(
3135        filePath: *const ::std::os::raw::c_char,
3136    ) -> *const ::std::os::raw::c_char;
3137}
3138extern "C" {
3139    pub fn GetDirectoryPath(
3140        filePath: *const ::std::os::raw::c_char,
3141    ) -> *const ::std::os::raw::c_char;
3142}
3143extern "C" {
3144    pub fn GetPrevDirectoryPath(
3145        dirPath: *const ::std::os::raw::c_char,
3146    ) -> *const ::std::os::raw::c_char;
3147}
3148extern "C" {
3149    pub fn GetWorkingDirectory() -> *const ::std::os::raw::c_char;
3150}
3151extern "C" {
3152    pub fn GetApplicationDirectory() -> *const ::std::os::raw::c_char;
3153}
3154extern "C" {
3155    pub fn ChangeDirectory(dir: *const ::std::os::raw::c_char) -> bool;
3156}
3157extern "C" {
3158    pub fn IsPathFile(path: *const ::std::os::raw::c_char) -> bool;
3159}
3160extern "C" {
3161    pub fn LoadDirectoryFiles(dirPath: *const ::std::os::raw::c_char) -> FilePathList;
3162}
3163extern "C" {
3164    pub fn LoadDirectoryFilesEx(
3165        basePath: *const ::std::os::raw::c_char,
3166        filter: *const ::std::os::raw::c_char,
3167        scanSubdirs: bool,
3168    ) -> FilePathList;
3169}
3170extern "C" {
3171    pub fn UnloadDirectoryFiles(files: FilePathList);
3172}
3173extern "C" {
3174    pub fn IsFileDropped() -> bool;
3175}
3176extern "C" {
3177    pub fn LoadDroppedFiles() -> FilePathList;
3178}
3179extern "C" {
3180    pub fn UnloadDroppedFiles(files: FilePathList);
3181}
3182extern "C" {
3183    pub fn GetFileModTime(fileName: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long;
3184}
3185extern "C" {
3186    pub fn CompressData(
3187        data: *const ::std::os::raw::c_uchar,
3188        dataSize: ::std::os::raw::c_int,
3189        compDataSize: *mut ::std::os::raw::c_int,
3190    ) -> *mut ::std::os::raw::c_uchar;
3191}
3192extern "C" {
3193    pub fn DecompressData(
3194        compData: *const ::std::os::raw::c_uchar,
3195        compDataSize: ::std::os::raw::c_int,
3196        dataSize: *mut ::std::os::raw::c_int,
3197    ) -> *mut ::std::os::raw::c_uchar;
3198}
3199extern "C" {
3200    pub fn EncodeDataBase64(
3201        data: *const ::std::os::raw::c_uchar,
3202        dataSize: ::std::os::raw::c_int,
3203        outputSize: *mut ::std::os::raw::c_int,
3204    ) -> *mut ::std::os::raw::c_char;
3205}
3206extern "C" {
3207    pub fn DecodeDataBase64(
3208        data: *const ::std::os::raw::c_uchar,
3209        outputSize: *mut ::std::os::raw::c_int,
3210    ) -> *mut ::std::os::raw::c_uchar;
3211}
3212extern "C" {
3213    pub fn IsKeyPressed(key: ::std::os::raw::c_int) -> bool;
3214}
3215extern "C" {
3216    pub fn IsKeyDown(key: ::std::os::raw::c_int) -> bool;
3217}
3218extern "C" {
3219    pub fn IsKeyReleased(key: ::std::os::raw::c_int) -> bool;
3220}
3221extern "C" {
3222    pub fn IsKeyUp(key: ::std::os::raw::c_int) -> bool;
3223}
3224extern "C" {
3225    pub fn SetExitKey(key: ::std::os::raw::c_int);
3226}
3227extern "C" {
3228    pub fn GetKeyPressed() -> ::std::os::raw::c_int;
3229}
3230extern "C" {
3231    pub fn GetCharPressed() -> ::std::os::raw::c_int;
3232}
3233extern "C" {
3234    pub fn IsGamepadAvailable(gamepad: ::std::os::raw::c_int) -> bool;
3235}
3236extern "C" {
3237    pub fn GetGamepadName(gamepad: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
3238}
3239extern "C" {
3240    pub fn IsGamepadButtonPressed(
3241        gamepad: ::std::os::raw::c_int,
3242        button: ::std::os::raw::c_int,
3243    ) -> bool;
3244}
3245extern "C" {
3246    pub fn IsGamepadButtonDown(
3247        gamepad: ::std::os::raw::c_int,
3248        button: ::std::os::raw::c_int,
3249    ) -> bool;
3250}
3251extern "C" {
3252    pub fn IsGamepadButtonReleased(
3253        gamepad: ::std::os::raw::c_int,
3254        button: ::std::os::raw::c_int,
3255    ) -> bool;
3256}
3257extern "C" {
3258    pub fn IsGamepadButtonUp(gamepad: ::std::os::raw::c_int, button: ::std::os::raw::c_int)
3259        -> bool;
3260}
3261extern "C" {
3262    pub fn GetGamepadButtonPressed() -> ::std::os::raw::c_int;
3263}
3264extern "C" {
3265    pub fn GetGamepadAxisCount(gamepad: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3266}
3267extern "C" {
3268    pub fn GetGamepadAxisMovement(
3269        gamepad: ::std::os::raw::c_int,
3270        axis: ::std::os::raw::c_int,
3271    ) -> f32;
3272}
3273extern "C" {
3274    pub fn SetGamepadMappings(mappings: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
3275}
3276extern "C" {
3277    pub fn IsMouseButtonPressed(button: ::std::os::raw::c_int) -> bool;
3278}
3279extern "C" {
3280    pub fn IsMouseButtonDown(button: ::std::os::raw::c_int) -> bool;
3281}
3282extern "C" {
3283    pub fn IsMouseButtonReleased(button: ::std::os::raw::c_int) -> bool;
3284}
3285extern "C" {
3286    pub fn IsMouseButtonUp(button: ::std::os::raw::c_int) -> bool;
3287}
3288extern "C" {
3289    pub fn GetMouseX() -> ::std::os::raw::c_int;
3290}
3291extern "C" {
3292    pub fn GetMouseY() -> ::std::os::raw::c_int;
3293}
3294extern "C" {
3295    pub fn GetMousePosition() -> Vector2;
3296}
3297extern "C" {
3298    pub fn GetMouseDelta() -> Vector2;
3299}
3300extern "C" {
3301    pub fn SetMousePosition(x: ::std::os::raw::c_int, y: ::std::os::raw::c_int);
3302}
3303extern "C" {
3304    pub fn SetMouseOffset(offsetX: ::std::os::raw::c_int, offsetY: ::std::os::raw::c_int);
3305}
3306extern "C" {
3307    pub fn SetMouseScale(scaleX: f32, scaleY: f32);
3308}
3309extern "C" {
3310    pub fn GetMouseWheelMove() -> f32;
3311}
3312extern "C" {
3313    pub fn GetMouseWheelMoveV() -> Vector2;
3314}
3315extern "C" {
3316    pub fn SetMouseCursor(cursor: ::std::os::raw::c_int);
3317}
3318extern "C" {
3319    pub fn GetTouchX() -> ::std::os::raw::c_int;
3320}
3321extern "C" {
3322    pub fn GetTouchY() -> ::std::os::raw::c_int;
3323}
3324extern "C" {
3325    pub fn GetTouchPosition(index: ::std::os::raw::c_int) -> Vector2;
3326}
3327extern "C" {
3328    pub fn GetTouchPointId(index: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3329}
3330extern "C" {
3331    pub fn GetTouchPointCount() -> ::std::os::raw::c_int;
3332}
3333extern "C" {
3334    pub fn SetGesturesEnabled(flags: ::std::os::raw::c_uint);
3335}
3336extern "C" {
3337    pub fn IsGestureDetected(gesture: ::std::os::raw::c_int) -> bool;
3338}
3339extern "C" {
3340    pub fn GetGestureDetected() -> ::std::os::raw::c_int;
3341}
3342extern "C" {
3343    pub fn GetGestureHoldDuration() -> f32;
3344}
3345extern "C" {
3346    pub fn GetGestureDragVector() -> Vector2;
3347}
3348extern "C" {
3349    pub fn GetGestureDragAngle() -> f32;
3350}
3351extern "C" {
3352    pub fn GetGesturePinchVector() -> Vector2;
3353}
3354extern "C" {
3355    pub fn GetGesturePinchAngle() -> f32;
3356}
3357extern "C" {
3358    pub fn SetCameraMode(camera: Camera, mode: ::std::os::raw::c_int);
3359}
3360extern "C" {
3361    pub fn UpdateCamera(camera: *mut Camera);
3362}
3363extern "C" {
3364    pub fn SetCameraPanControl(keyPan: ::std::os::raw::c_int);
3365}
3366extern "C" {
3367    pub fn SetCameraAltControl(keyAlt: ::std::os::raw::c_int);
3368}
3369extern "C" {
3370    pub fn SetCameraSmoothZoomControl(keySmoothZoom: ::std::os::raw::c_int);
3371}
3372extern "C" {
3373    pub fn SetCameraMoveControls(
3374        keyFront: ::std::os::raw::c_int,
3375        keyBack: ::std::os::raw::c_int,
3376        keyRight: ::std::os::raw::c_int,
3377        keyLeft: ::std::os::raw::c_int,
3378        keyUp: ::std::os::raw::c_int,
3379        keyDown: ::std::os::raw::c_int,
3380    );
3381}
3382extern "C" {
3383    pub fn SetShapesTexture(texture: Texture2D, source: Rectangle);
3384}
3385extern "C" {
3386    pub fn DrawPixel(posX: ::std::os::raw::c_int, posY: ::std::os::raw::c_int, color: Color);
3387}
3388extern "C" {
3389    pub fn DrawPixelV(position: Vector2, color: Color);
3390}
3391extern "C" {
3392    pub fn DrawLine(
3393        startPosX: ::std::os::raw::c_int,
3394        startPosY: ::std::os::raw::c_int,
3395        endPosX: ::std::os::raw::c_int,
3396        endPosY: ::std::os::raw::c_int,
3397        color: Color,
3398    );
3399}
3400extern "C" {
3401    pub fn DrawLineV(startPos: Vector2, endPos: Vector2, color: Color);
3402}
3403extern "C" {
3404    pub fn DrawLineEx(startPos: Vector2, endPos: Vector2, thick: f32, color: Color);
3405}
3406extern "C" {
3407    pub fn DrawLineBezier(startPos: Vector2, endPos: Vector2, thick: f32, color: Color);
3408}
3409extern "C" {
3410    pub fn DrawLineBezierQuad(
3411        startPos: Vector2,
3412        endPos: Vector2,
3413        controlPos: Vector2,
3414        thick: f32,
3415        color: Color,
3416    );
3417}
3418extern "C" {
3419    pub fn DrawLineBezierCubic(
3420        startPos: Vector2,
3421        endPos: Vector2,
3422        startControlPos: Vector2,
3423        endControlPos: Vector2,
3424        thick: f32,
3425        color: Color,
3426    );
3427}
3428extern "C" {
3429    pub fn DrawLineStrip(points: *mut Vector2, pointCount: ::std::os::raw::c_int, color: Color);
3430}
3431extern "C" {
3432    pub fn DrawCircle(
3433        centerX: ::std::os::raw::c_int,
3434        centerY: ::std::os::raw::c_int,
3435        radius: f32,
3436        color: Color,
3437    );
3438}
3439extern "C" {
3440    pub fn DrawCircleSector(
3441        center: Vector2,
3442        radius: f32,
3443        startAngle: f32,
3444        endAngle: f32,
3445        segments: ::std::os::raw::c_int,
3446        color: Color,
3447    );
3448}
3449extern "C" {
3450    pub fn DrawCircleSectorLines(
3451        center: Vector2,
3452        radius: f32,
3453        startAngle: f32,
3454        endAngle: f32,
3455        segments: ::std::os::raw::c_int,
3456        color: Color,
3457    );
3458}
3459extern "C" {
3460    pub fn DrawCircleGradient(
3461        centerX: ::std::os::raw::c_int,
3462        centerY: ::std::os::raw::c_int,
3463        radius: f32,
3464        color1: Color,
3465        color2: Color,
3466    );
3467}
3468extern "C" {
3469    pub fn DrawCircleV(center: Vector2, radius: f32, color: Color);
3470}
3471extern "C" {
3472    pub fn DrawCircleLines(
3473        centerX: ::std::os::raw::c_int,
3474        centerY: ::std::os::raw::c_int,
3475        radius: f32,
3476        color: Color,
3477    );
3478}
3479extern "C" {
3480    pub fn DrawEllipse(
3481        centerX: ::std::os::raw::c_int,
3482        centerY: ::std::os::raw::c_int,
3483        radiusH: f32,
3484        radiusV: f32,
3485        color: Color,
3486    );
3487}
3488extern "C" {
3489    pub fn DrawEllipseLines(
3490        centerX: ::std::os::raw::c_int,
3491        centerY: ::std::os::raw::c_int,
3492        radiusH: f32,
3493        radiusV: f32,
3494        color: Color,
3495    );
3496}
3497extern "C" {
3498    pub fn DrawRing(
3499        center: Vector2,
3500        innerRadius: f32,
3501        outerRadius: f32,
3502        startAngle: f32,
3503        endAngle: f32,
3504        segments: ::std::os::raw::c_int,
3505        color: Color,
3506    );
3507}
3508extern "C" {
3509    pub fn DrawRingLines(
3510        center: Vector2,
3511        innerRadius: f32,
3512        outerRadius: f32,
3513        startAngle: f32,
3514        endAngle: f32,
3515        segments: ::std::os::raw::c_int,
3516        color: Color,
3517    );
3518}
3519extern "C" {
3520    pub fn DrawRectangle(
3521        posX: ::std::os::raw::c_int,
3522        posY: ::std::os::raw::c_int,
3523        width: ::std::os::raw::c_int,
3524        height: ::std::os::raw::c_int,
3525        color: Color,
3526    );
3527}
3528extern "C" {
3529    pub fn DrawRectangleV(position: Vector2, size: Vector2, color: Color);
3530}
3531extern "C" {
3532    pub fn DrawRectangleRec(rec: Rectangle, color: Color);
3533}
3534extern "C" {
3535    pub fn DrawRectanglePro(rec: Rectangle, origin: Vector2, rotation: f32, color: Color);
3536}
3537extern "C" {
3538    pub fn DrawRectangleGradientV(
3539        posX: ::std::os::raw::c_int,
3540        posY: ::std::os::raw::c_int,
3541        width: ::std::os::raw::c_int,
3542        height: ::std::os::raw::c_int,
3543        color1: Color,
3544        color2: Color,
3545    );
3546}
3547extern "C" {
3548    pub fn DrawRectangleGradientH(
3549        posX: ::std::os::raw::c_int,
3550        posY: ::std::os::raw::c_int,
3551        width: ::std::os::raw::c_int,
3552        height: ::std::os::raw::c_int,
3553        color1: Color,
3554        color2: Color,
3555    );
3556}
3557extern "C" {
3558    pub fn DrawRectangleGradientEx(
3559        rec: Rectangle,
3560        col1: Color,
3561        col2: Color,
3562        col3: Color,
3563        col4: Color,
3564    );
3565}
3566extern "C" {
3567    pub fn DrawRectangleLines(
3568        posX: ::std::os::raw::c_int,
3569        posY: ::std::os::raw::c_int,
3570        width: ::std::os::raw::c_int,
3571        height: ::std::os::raw::c_int,
3572        color: Color,
3573    );
3574}
3575extern "C" {
3576    pub fn DrawRectangleLinesEx(rec: Rectangle, lineThick: f32, color: Color);
3577}
3578extern "C" {
3579    pub fn DrawRectangleRounded(
3580        rec: Rectangle,
3581        roundness: f32,
3582        segments: ::std::os::raw::c_int,
3583        color: Color,
3584    );
3585}
3586extern "C" {
3587    pub fn DrawRectangleRoundedLines(
3588        rec: Rectangle,
3589        roundness: f32,
3590        segments: ::std::os::raw::c_int,
3591        lineThick: f32,
3592        color: Color,
3593    );
3594}
3595extern "C" {
3596    pub fn DrawTriangle(v1: Vector2, v2: Vector2, v3: Vector2, color: Color);
3597}
3598extern "C" {
3599    pub fn DrawTriangleLines(v1: Vector2, v2: Vector2, v3: Vector2, color: Color);
3600}
3601extern "C" {
3602    pub fn DrawTriangleFan(points: *mut Vector2, pointCount: ::std::os::raw::c_int, color: Color);
3603}
3604extern "C" {
3605    pub fn DrawTriangleStrip(points: *mut Vector2, pointCount: ::std::os::raw::c_int, color: Color);
3606}
3607extern "C" {
3608    pub fn DrawPoly(
3609        center: Vector2,
3610        sides: ::std::os::raw::c_int,
3611        radius: f32,
3612        rotation: f32,
3613        color: Color,
3614    );
3615}
3616extern "C" {
3617    pub fn DrawPolyLines(
3618        center: Vector2,
3619        sides: ::std::os::raw::c_int,
3620        radius: f32,
3621        rotation: f32,
3622        color: Color,
3623    );
3624}
3625extern "C" {
3626    pub fn DrawPolyLinesEx(
3627        center: Vector2,
3628        sides: ::std::os::raw::c_int,
3629        radius: f32,
3630        rotation: f32,
3631        lineThick: f32,
3632        color: Color,
3633    );
3634}
3635extern "C" {
3636    pub fn CheckCollisionRecs(rec1: Rectangle, rec2: Rectangle) -> bool;
3637}
3638extern "C" {
3639    pub fn CheckCollisionCircles(
3640        center1: Vector2,
3641        radius1: f32,
3642        center2: Vector2,
3643        radius2: f32,
3644    ) -> bool;
3645}
3646extern "C" {
3647    pub fn CheckCollisionCircleRec(center: Vector2, radius: f32, rec: Rectangle) -> bool;
3648}
3649extern "C" {
3650    pub fn CheckCollisionPointRec(point: Vector2, rec: Rectangle) -> bool;
3651}
3652extern "C" {
3653    pub fn CheckCollisionPointCircle(point: Vector2, center: Vector2, radius: f32) -> bool;
3654}
3655extern "C" {
3656    pub fn CheckCollisionPointTriangle(
3657        point: Vector2,
3658        p1: Vector2,
3659        p2: Vector2,
3660        p3: Vector2,
3661    ) -> bool;
3662}
3663extern "C" {
3664    pub fn CheckCollisionLines(
3665        startPos1: Vector2,
3666        endPos1: Vector2,
3667        startPos2: Vector2,
3668        endPos2: Vector2,
3669        collisionPoint: *mut Vector2,
3670    ) -> bool;
3671}
3672extern "C" {
3673    pub fn CheckCollisionPointLine(
3674        point: Vector2,
3675        p1: Vector2,
3676        p2: Vector2,
3677        threshold: ::std::os::raw::c_int,
3678    ) -> bool;
3679}
3680extern "C" {
3681    pub fn GetCollisionRec(rec1: Rectangle, rec2: Rectangle) -> Rectangle;
3682}
3683extern "C" {
3684    pub fn LoadImage(fileName: *const ::std::os::raw::c_char) -> Image;
3685}
3686extern "C" {
3687    pub fn LoadImageRaw(
3688        fileName: *const ::std::os::raw::c_char,
3689        width: ::std::os::raw::c_int,
3690        height: ::std::os::raw::c_int,
3691        format: ::std::os::raw::c_int,
3692        headerSize: ::std::os::raw::c_int,
3693    ) -> Image;
3694}
3695extern "C" {
3696    pub fn LoadImageAnim(
3697        fileName: *const ::std::os::raw::c_char,
3698        frames: *mut ::std::os::raw::c_int,
3699    ) -> Image;
3700}
3701extern "C" {
3702    pub fn LoadImageFromMemory(
3703        fileType: *const ::std::os::raw::c_char,
3704        fileData: *const ::std::os::raw::c_uchar,
3705        dataSize: ::std::os::raw::c_int,
3706    ) -> Image;
3707}
3708extern "C" {
3709    pub fn LoadImageFromTexture(texture: Texture2D) -> Image;
3710}
3711extern "C" {
3712    pub fn LoadImageFromScreen() -> Image;
3713}
3714extern "C" {
3715    pub fn UnloadImage(image: Image);
3716}
3717extern "C" {
3718    pub fn ExportImage(image: Image, fileName: *const ::std::os::raw::c_char) -> bool;
3719}
3720extern "C" {
3721    pub fn ExportImageAsCode(image: Image, fileName: *const ::std::os::raw::c_char) -> bool;
3722}
3723extern "C" {
3724    pub fn GenImageColor(
3725        width: ::std::os::raw::c_int,
3726        height: ::std::os::raw::c_int,
3727        color: Color,
3728    ) -> Image;
3729}
3730extern "C" {
3731    pub fn GenImageGradientV(
3732        width: ::std::os::raw::c_int,
3733        height: ::std::os::raw::c_int,
3734        top: Color,
3735        bottom: Color,
3736    ) -> Image;
3737}
3738extern "C" {
3739    pub fn GenImageGradientH(
3740        width: ::std::os::raw::c_int,
3741        height: ::std::os::raw::c_int,
3742        left: Color,
3743        right: Color,
3744    ) -> Image;
3745}
3746extern "C" {
3747    pub fn GenImageGradientRadial(
3748        width: ::std::os::raw::c_int,
3749        height: ::std::os::raw::c_int,
3750        density: f32,
3751        inner: Color,
3752        outer: Color,
3753    ) -> Image;
3754}
3755extern "C" {
3756    pub fn GenImageChecked(
3757        width: ::std::os::raw::c_int,
3758        height: ::std::os::raw::c_int,
3759        checksX: ::std::os::raw::c_int,
3760        checksY: ::std::os::raw::c_int,
3761        col1: Color,
3762        col2: Color,
3763    ) -> Image;
3764}
3765extern "C" {
3766    pub fn GenImageWhiteNoise(
3767        width: ::std::os::raw::c_int,
3768        height: ::std::os::raw::c_int,
3769        factor: f32,
3770    ) -> Image;
3771}
3772extern "C" {
3773    pub fn GenImageCellular(
3774        width: ::std::os::raw::c_int,
3775        height: ::std::os::raw::c_int,
3776        tileSize: ::std::os::raw::c_int,
3777    ) -> Image;
3778}
3779extern "C" {
3780    pub fn ImageCopy(image: Image) -> Image;
3781}
3782extern "C" {
3783    pub fn ImageFromImage(image: Image, rec: Rectangle) -> Image;
3784}
3785extern "C" {
3786    pub fn ImageText(
3787        text: *const ::std::os::raw::c_char,
3788        fontSize: ::std::os::raw::c_int,
3789        color: Color,
3790    ) -> Image;
3791}
3792extern "C" {
3793    pub fn ImageTextEx(
3794        font: Font,
3795        text: *const ::std::os::raw::c_char,
3796        fontSize: f32,
3797        spacing: f32,
3798        tint: Color,
3799    ) -> Image;
3800}
3801extern "C" {
3802    pub fn ImageFormat(image: *mut Image, newFormat: ::std::os::raw::c_int);
3803}
3804extern "C" {
3805    pub fn ImageToPOT(image: *mut Image, fill: Color);
3806}
3807extern "C" {
3808    pub fn ImageCrop(image: *mut Image, crop: Rectangle);
3809}
3810extern "C" {
3811    pub fn ImageAlphaCrop(image: *mut Image, threshold: f32);
3812}
3813extern "C" {
3814    pub fn ImageAlphaClear(image: *mut Image, color: Color, threshold: f32);
3815}
3816extern "C" {
3817    pub fn ImageAlphaMask(image: *mut Image, alphaMask: Image);
3818}
3819extern "C" {
3820    pub fn ImageAlphaPremultiply(image: *mut Image);
3821}
3822extern "C" {
3823    pub fn ImageResize(
3824        image: *mut Image,
3825        newWidth: ::std::os::raw::c_int,
3826        newHeight: ::std::os::raw::c_int,
3827    );
3828}
3829extern "C" {
3830    pub fn ImageResizeNN(
3831        image: *mut Image,
3832        newWidth: ::std::os::raw::c_int,
3833        newHeight: ::std::os::raw::c_int,
3834    );
3835}
3836extern "C" {
3837    pub fn ImageResizeCanvas(
3838        image: *mut Image,
3839        newWidth: ::std::os::raw::c_int,
3840        newHeight: ::std::os::raw::c_int,
3841        offsetX: ::std::os::raw::c_int,
3842        offsetY: ::std::os::raw::c_int,
3843        fill: Color,
3844    );
3845}
3846extern "C" {
3847    pub fn ImageMipmaps(image: *mut Image);
3848}
3849extern "C" {
3850    pub fn ImageDither(
3851        image: *mut Image,
3852        rBpp: ::std::os::raw::c_int,
3853        gBpp: ::std::os::raw::c_int,
3854        bBpp: ::std::os::raw::c_int,
3855        aBpp: ::std::os::raw::c_int,
3856    );
3857}
3858extern "C" {
3859    pub fn ImageFlipVertical(image: *mut Image);
3860}
3861extern "C" {
3862    pub fn ImageFlipHorizontal(image: *mut Image);
3863}
3864extern "C" {
3865    pub fn ImageRotateCW(image: *mut Image);
3866}
3867extern "C" {
3868    pub fn ImageRotateCCW(image: *mut Image);
3869}
3870extern "C" {
3871    pub fn ImageColorTint(image: *mut Image, color: Color);
3872}
3873extern "C" {
3874    pub fn ImageColorInvert(image: *mut Image);
3875}
3876extern "C" {
3877    pub fn ImageColorGrayscale(image: *mut Image);
3878}
3879extern "C" {
3880    pub fn ImageColorContrast(image: *mut Image, contrast: f32);
3881}
3882extern "C" {
3883    pub fn ImageColorBrightness(image: *mut Image, brightness: ::std::os::raw::c_int);
3884}
3885extern "C" {
3886    pub fn ImageColorReplace(image: *mut Image, color: Color, replace: Color);
3887}
3888extern "C" {
3889    pub fn LoadImageColors(image: Image) -> *mut Color;
3890}
3891extern "C" {
3892    pub fn LoadImagePalette(
3893        image: Image,
3894        maxPaletteSize: ::std::os::raw::c_int,
3895        colorCount: *mut ::std::os::raw::c_int,
3896    ) -> *mut Color;
3897}
3898extern "C" {
3899    pub fn UnloadImageColors(colors: *mut Color);
3900}
3901extern "C" {
3902    pub fn UnloadImagePalette(colors: *mut Color);
3903}
3904extern "C" {
3905    pub fn GetImageAlphaBorder(image: Image, threshold: f32) -> Rectangle;
3906}
3907extern "C" {
3908    pub fn GetImageColor(image: Image, x: ::std::os::raw::c_int, y: ::std::os::raw::c_int)
3909        -> Color;
3910}
3911extern "C" {
3912    pub fn ImageClearBackground(dst: *mut Image, color: Color);
3913}
3914extern "C" {
3915    pub fn ImageDrawPixel(
3916        dst: *mut Image,
3917        posX: ::std::os::raw::c_int,
3918        posY: ::std::os::raw::c_int,
3919        color: Color,
3920    );
3921}
3922extern "C" {
3923    pub fn ImageDrawPixelV(dst: *mut Image, position: Vector2, color: Color);
3924}
3925extern "C" {
3926    pub fn ImageDrawLine(
3927        dst: *mut Image,
3928        startPosX: ::std::os::raw::c_int,
3929        startPosY: ::std::os::raw::c_int,
3930        endPosX: ::std::os::raw::c_int,
3931        endPosY: ::std::os::raw::c_int,
3932        color: Color,
3933    );
3934}
3935extern "C" {
3936    pub fn ImageDrawLineV(dst: *mut Image, start: Vector2, end: Vector2, color: Color);
3937}
3938extern "C" {
3939    pub fn ImageDrawCircle(
3940        dst: *mut Image,
3941        centerX: ::std::os::raw::c_int,
3942        centerY: ::std::os::raw::c_int,
3943        radius: ::std::os::raw::c_int,
3944        color: Color,
3945    );
3946}
3947extern "C" {
3948    pub fn ImageDrawCircleV(
3949        dst: *mut Image,
3950        center: Vector2,
3951        radius: ::std::os::raw::c_int,
3952        color: Color,
3953    );
3954}
3955extern "C" {
3956    pub fn ImageDrawRectangle(
3957        dst: *mut Image,
3958        posX: ::std::os::raw::c_int,
3959        posY: ::std::os::raw::c_int,
3960        width: ::std::os::raw::c_int,
3961        height: ::std::os::raw::c_int,
3962        color: Color,
3963    );
3964}
3965extern "C" {
3966    pub fn ImageDrawRectangleV(dst: *mut Image, position: Vector2, size: Vector2, color: Color);
3967}
3968extern "C" {
3969    pub fn ImageDrawRectangleRec(dst: *mut Image, rec: Rectangle, color: Color);
3970}
3971extern "C" {
3972    pub fn ImageDrawRectangleLines(
3973        dst: *mut Image,
3974        rec: Rectangle,
3975        thick: ::std::os::raw::c_int,
3976        color: Color,
3977    );
3978}
3979extern "C" {
3980    pub fn ImageDraw(
3981        dst: *mut Image,
3982        src: Image,
3983        srcRec: Rectangle,
3984        dstRec: Rectangle,
3985        tint: Color,
3986    );
3987}
3988extern "C" {
3989    pub fn ImageDrawText(
3990        dst: *mut Image,
3991        text: *const ::std::os::raw::c_char,
3992        posX: ::std::os::raw::c_int,
3993        posY: ::std::os::raw::c_int,
3994        fontSize: ::std::os::raw::c_int,
3995        color: Color,
3996    );
3997}
3998extern "C" {
3999    pub fn ImageDrawTextEx(
4000        dst: *mut Image,
4001        font: Font,
4002        text: *const ::std::os::raw::c_char,
4003        position: Vector2,
4004        fontSize: f32,
4005        spacing: f32,
4006        tint: Color,
4007    );
4008}
4009extern "C" {
4010    pub fn LoadTexture(fileName: *const ::std::os::raw::c_char) -> Texture2D;
4011}
4012extern "C" {
4013    pub fn LoadTextureFromImage(image: Image) -> Texture2D;
4014}
4015extern "C" {
4016    pub fn LoadTextureCubemap(image: Image, layout: ::std::os::raw::c_int) -> TextureCubemap;
4017}
4018extern "C" {
4019    pub fn LoadRenderTexture(
4020        width: ::std::os::raw::c_int,
4021        height: ::std::os::raw::c_int,
4022    ) -> RenderTexture2D;
4023}
4024extern "C" {
4025    pub fn UnloadTexture(texture: Texture2D);
4026}
4027extern "C" {
4028    pub fn UnloadRenderTexture(target: RenderTexture2D);
4029}
4030extern "C" {
4031    pub fn UpdateTexture(texture: Texture2D, pixels: *const ::std::os::raw::c_void);
4032}
4033extern "C" {
4034    pub fn UpdateTextureRec(
4035        texture: Texture2D,
4036        rec: Rectangle,
4037        pixels: *const ::std::os::raw::c_void,
4038    );
4039}
4040extern "C" {
4041    pub fn GenTextureMipmaps(texture: *mut Texture2D);
4042}
4043extern "C" {
4044    pub fn SetTextureFilter(texture: Texture2D, filter: ::std::os::raw::c_int);
4045}
4046extern "C" {
4047    pub fn SetTextureWrap(texture: Texture2D, wrap: ::std::os::raw::c_int);
4048}
4049extern "C" {
4050    pub fn DrawTexture(
4051        texture: Texture2D,
4052        posX: ::std::os::raw::c_int,
4053        posY: ::std::os::raw::c_int,
4054        tint: Color,
4055    );
4056}
4057extern "C" {
4058    pub fn DrawTextureV(texture: Texture2D, position: Vector2, tint: Color);
4059}
4060extern "C" {
4061    pub fn DrawTextureEx(
4062        texture: Texture2D,
4063        position: Vector2,
4064        rotation: f32,
4065        scale: f32,
4066        tint: Color,
4067    );
4068}
4069extern "C" {
4070    pub fn DrawTextureRec(texture: Texture2D, source: Rectangle, position: Vector2, tint: Color);
4071}
4072extern "C" {
4073    pub fn DrawTextureQuad(
4074        texture: Texture2D,
4075        tiling: Vector2,
4076        offset: Vector2,
4077        quad: Rectangle,
4078        tint: Color,
4079    );
4080}
4081extern "C" {
4082    pub fn DrawTextureTiled(
4083        texture: Texture2D,
4084        source: Rectangle,
4085        dest: Rectangle,
4086        origin: Vector2,
4087        rotation: f32,
4088        scale: f32,
4089        tint: Color,
4090    );
4091}
4092extern "C" {
4093    pub fn DrawTexturePro(
4094        texture: Texture2D,
4095        source: Rectangle,
4096        dest: Rectangle,
4097        origin: Vector2,
4098        rotation: f32,
4099        tint: Color,
4100    );
4101}
4102extern "C" {
4103    pub fn DrawTextureNPatch(
4104        texture: Texture2D,
4105        nPatchInfo: NPatchInfo,
4106        dest: Rectangle,
4107        origin: Vector2,
4108        rotation: f32,
4109        tint: Color,
4110    );
4111}
4112extern "C" {
4113    pub fn DrawTexturePoly(
4114        texture: Texture2D,
4115        center: Vector2,
4116        points: *mut Vector2,
4117        texcoords: *mut Vector2,
4118        pointCount: ::std::os::raw::c_int,
4119        tint: Color,
4120    );
4121}
4122extern "C" {
4123    pub fn Fade(color: Color, alpha: f32) -> Color;
4124}
4125extern "C" {
4126    pub fn ColorToInt(color: Color) -> ::std::os::raw::c_int;
4127}
4128extern "C" {
4129    pub fn ColorNormalize(color: Color) -> Vector4;
4130}
4131extern "C" {
4132    pub fn ColorFromNormalized(normalized: Vector4) -> Color;
4133}
4134extern "C" {
4135    pub fn ColorToHSV(color: Color) -> Vector3;
4136}
4137extern "C" {
4138    pub fn ColorFromHSV(hue: f32, saturation: f32, value: f32) -> Color;
4139}
4140extern "C" {
4141    pub fn ColorAlpha(color: Color, alpha: f32) -> Color;
4142}
4143extern "C" {
4144    pub fn ColorAlphaBlend(dst: Color, src: Color, tint: Color) -> Color;
4145}
4146extern "C" {
4147    pub fn GetColor(hexValue: ::std::os::raw::c_uint) -> Color;
4148}
4149extern "C" {
4150    pub fn GetPixelColor(
4151        srcPtr: *mut ::std::os::raw::c_void,
4152        format: ::std::os::raw::c_int,
4153    ) -> Color;
4154}
4155extern "C" {
4156    pub fn SetPixelColor(
4157        dstPtr: *mut ::std::os::raw::c_void,
4158        color: Color,
4159        format: ::std::os::raw::c_int,
4160    );
4161}
4162extern "C" {
4163    pub fn GetPixelDataSize(
4164        width: ::std::os::raw::c_int,
4165        height: ::std::os::raw::c_int,
4166        format: ::std::os::raw::c_int,
4167    ) -> ::std::os::raw::c_int;
4168}
4169extern "C" {
4170    pub fn GetFontDefault() -> Font;
4171}
4172extern "C" {
4173    pub fn LoadFont(fileName: *const ::std::os::raw::c_char) -> Font;
4174}
4175extern "C" {
4176    pub fn LoadFontEx(
4177        fileName: *const ::std::os::raw::c_char,
4178        fontSize: ::std::os::raw::c_int,
4179        fontChars: *mut ::std::os::raw::c_int,
4180        glyphCount: ::std::os::raw::c_int,
4181    ) -> Font;
4182}
4183extern "C" {
4184    pub fn LoadFontFromImage(image: Image, key: Color, firstChar: ::std::os::raw::c_int) -> Font;
4185}
4186extern "C" {
4187    pub fn LoadFontFromMemory(
4188        fileType: *const ::std::os::raw::c_char,
4189        fileData: *const ::std::os::raw::c_uchar,
4190        dataSize: ::std::os::raw::c_int,
4191        fontSize: ::std::os::raw::c_int,
4192        fontChars: *mut ::std::os::raw::c_int,
4193        glyphCount: ::std::os::raw::c_int,
4194    ) -> Font;
4195}
4196extern "C" {
4197    pub fn LoadFontData(
4198        fileData: *const ::std::os::raw::c_uchar,
4199        dataSize: ::std::os::raw::c_int,
4200        fontSize: ::std::os::raw::c_int,
4201        fontChars: *mut ::std::os::raw::c_int,
4202        glyphCount: ::std::os::raw::c_int,
4203        type_: ::std::os::raw::c_int,
4204    ) -> *mut GlyphInfo;
4205}
4206extern "C" {
4207    pub fn GenImageFontAtlas(
4208        chars: *const GlyphInfo,
4209        recs: *mut *mut Rectangle,
4210        glyphCount: ::std::os::raw::c_int,
4211        fontSize: ::std::os::raw::c_int,
4212        padding: ::std::os::raw::c_int,
4213        packMethod: ::std::os::raw::c_int,
4214    ) -> Image;
4215}
4216extern "C" {
4217    pub fn UnloadFontData(chars: *mut GlyphInfo, glyphCount: ::std::os::raw::c_int);
4218}
4219extern "C" {
4220    pub fn UnloadFont(font: Font);
4221}
4222extern "C" {
4223    pub fn ExportFontAsCode(font: Font, fileName: *const ::std::os::raw::c_char) -> bool;
4224}
4225extern "C" {
4226    pub fn DrawFPS(posX: ::std::os::raw::c_int, posY: ::std::os::raw::c_int);
4227}
4228extern "C" {
4229    pub fn DrawText(
4230        text: *const ::std::os::raw::c_char,
4231        posX: ::std::os::raw::c_int,
4232        posY: ::std::os::raw::c_int,
4233        fontSize: ::std::os::raw::c_int,
4234        color: Color,
4235    );
4236}
4237extern "C" {
4238    pub fn DrawTextEx(
4239        font: Font,
4240        text: *const ::std::os::raw::c_char,
4241        position: Vector2,
4242        fontSize: f32,
4243        spacing: f32,
4244        tint: Color,
4245    );
4246}
4247extern "C" {
4248    pub fn DrawTextPro(
4249        font: Font,
4250        text: *const ::std::os::raw::c_char,
4251        position: Vector2,
4252        origin: Vector2,
4253        rotation: f32,
4254        fontSize: f32,
4255        spacing: f32,
4256        tint: Color,
4257    );
4258}
4259extern "C" {
4260    pub fn DrawTextCodepoint(
4261        font: Font,
4262        codepoint: ::std::os::raw::c_int,
4263        position: Vector2,
4264        fontSize: f32,
4265        tint: Color,
4266    );
4267}
4268extern "C" {
4269    pub fn DrawTextCodepoints(
4270        font: Font,
4271        codepoints: *const ::std::os::raw::c_int,
4272        count: ::std::os::raw::c_int,
4273        position: Vector2,
4274        fontSize: f32,
4275        spacing: f32,
4276        tint: Color,
4277    );
4278}
4279extern "C" {
4280    pub fn MeasureText(
4281        text: *const ::std::os::raw::c_char,
4282        fontSize: ::std::os::raw::c_int,
4283    ) -> ::std::os::raw::c_int;
4284}
4285extern "C" {
4286    pub fn MeasureTextEx(
4287        font: Font,
4288        text: *const ::std::os::raw::c_char,
4289        fontSize: f32,
4290        spacing: f32,
4291    ) -> Vector2;
4292}
4293extern "C" {
4294    pub fn GetGlyphIndex(font: Font, codepoint: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
4295}
4296extern "C" {
4297    pub fn GetGlyphInfo(font: Font, codepoint: ::std::os::raw::c_int) -> GlyphInfo;
4298}
4299extern "C" {
4300    pub fn GetGlyphAtlasRec(font: Font, codepoint: ::std::os::raw::c_int) -> Rectangle;
4301}
4302extern "C" {
4303    pub fn LoadCodepoints(
4304        text: *const ::std::os::raw::c_char,
4305        count: *mut ::std::os::raw::c_int,
4306    ) -> *mut ::std::os::raw::c_int;
4307}
4308extern "C" {
4309    pub fn UnloadCodepoints(codepoints: *mut ::std::os::raw::c_int);
4310}
4311extern "C" {
4312    pub fn GetCodepointCount(text: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
4313}
4314extern "C" {
4315    pub fn GetCodepoint(
4316        text: *const ::std::os::raw::c_char,
4317        bytesProcessed: *mut ::std::os::raw::c_int,
4318    ) -> ::std::os::raw::c_int;
4319}
4320extern "C" {
4321    pub fn CodepointToUTF8(
4322        codepoint: ::std::os::raw::c_int,
4323        byteSize: *mut ::std::os::raw::c_int,
4324    ) -> *const ::std::os::raw::c_char;
4325}
4326extern "C" {
4327    pub fn TextCodepointsToUTF8(
4328        codepoints: *const ::std::os::raw::c_int,
4329        length: ::std::os::raw::c_int,
4330    ) -> *mut ::std::os::raw::c_char;
4331}
4332extern "C" {
4333    pub fn TextCopy(
4334        dst: *mut ::std::os::raw::c_char,
4335        src: *const ::std::os::raw::c_char,
4336    ) -> ::std::os::raw::c_int;
4337}
4338extern "C" {
4339    pub fn TextIsEqual(
4340        text1: *const ::std::os::raw::c_char,
4341        text2: *const ::std::os::raw::c_char,
4342    ) -> bool;
4343}
4344extern "C" {
4345    pub fn TextLength(text: *const ::std::os::raw::c_char) -> ::std::os::raw::c_uint;
4346}
4347extern "C" {
4348    pub fn TextFormat(text: *const ::std::os::raw::c_char, ...) -> *const ::std::os::raw::c_char;
4349}
4350extern "C" {
4351    pub fn TextSubtext(
4352        text: *const ::std::os::raw::c_char,
4353        position: ::std::os::raw::c_int,
4354        length: ::std::os::raw::c_int,
4355    ) -> *const ::std::os::raw::c_char;
4356}
4357extern "C" {
4358    pub fn TextReplace(
4359        text: *mut ::std::os::raw::c_char,
4360        replace: *const ::std::os::raw::c_char,
4361        by: *const ::std::os::raw::c_char,
4362    ) -> *mut ::std::os::raw::c_char;
4363}
4364extern "C" {
4365    pub fn TextInsert(
4366        text: *const ::std::os::raw::c_char,
4367        insert: *const ::std::os::raw::c_char,
4368        position: ::std::os::raw::c_int,
4369    ) -> *mut ::std::os::raw::c_char;
4370}
4371extern "C" {
4372    pub fn TextJoin(
4373        textList: *mut *const ::std::os::raw::c_char,
4374        count: ::std::os::raw::c_int,
4375        delimiter: *const ::std::os::raw::c_char,
4376    ) -> *const ::std::os::raw::c_char;
4377}
4378extern "C" {
4379    pub fn TextSplit(
4380        text: *const ::std::os::raw::c_char,
4381        delimiter: ::std::os::raw::c_char,
4382        count: *mut ::std::os::raw::c_int,
4383    ) -> *mut *const ::std::os::raw::c_char;
4384}
4385extern "C" {
4386    pub fn TextAppend(
4387        text: *mut ::std::os::raw::c_char,
4388        append: *const ::std::os::raw::c_char,
4389        position: *mut ::std::os::raw::c_int,
4390    );
4391}
4392extern "C" {
4393    pub fn TextFindIndex(
4394        text: *const ::std::os::raw::c_char,
4395        find: *const ::std::os::raw::c_char,
4396    ) -> ::std::os::raw::c_int;
4397}
4398extern "C" {
4399    pub fn TextToUpper(text: *const ::std::os::raw::c_char) -> *const ::std::os::raw::c_char;
4400}
4401extern "C" {
4402    pub fn TextToLower(text: *const ::std::os::raw::c_char) -> *const ::std::os::raw::c_char;
4403}
4404extern "C" {
4405    pub fn TextToPascal(text: *const ::std::os::raw::c_char) -> *const ::std::os::raw::c_char;
4406}
4407extern "C" {
4408    pub fn TextToInteger(text: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
4409}
4410extern "C" {
4411    pub fn DrawLine3D(startPos: Vector3, endPos: Vector3, color: Color);
4412}
4413extern "C" {
4414    pub fn DrawPoint3D(position: Vector3, color: Color);
4415}
4416extern "C" {
4417    pub fn DrawCircle3D(
4418        center: Vector3,
4419        radius: f32,
4420        rotationAxis: Vector3,
4421        rotationAngle: f32,
4422        color: Color,
4423    );
4424}
4425extern "C" {
4426    pub fn DrawTriangle3D(v1: Vector3, v2: Vector3, v3: Vector3, color: Color);
4427}
4428extern "C" {
4429    pub fn DrawTriangleStrip3D(
4430        points: *mut Vector3,
4431        pointCount: ::std::os::raw::c_int,
4432        color: Color,
4433    );
4434}
4435extern "C" {
4436    pub fn DrawCube(position: Vector3, width: f32, height: f32, length: f32, color: Color);
4437}
4438extern "C" {
4439    pub fn DrawCubeV(position: Vector3, size: Vector3, color: Color);
4440}
4441extern "C" {
4442    pub fn DrawCubeWires(position: Vector3, width: f32, height: f32, length: f32, color: Color);
4443}
4444extern "C" {
4445    pub fn DrawCubeWiresV(position: Vector3, size: Vector3, color: Color);
4446}
4447extern "C" {
4448    pub fn DrawCubeTexture(
4449        texture: Texture2D,
4450        position: Vector3,
4451        width: f32,
4452        height: f32,
4453        length: f32,
4454        color: Color,
4455    );
4456}
4457extern "C" {
4458    pub fn DrawCubeTextureRec(
4459        texture: Texture2D,
4460        source: Rectangle,
4461        position: Vector3,
4462        width: f32,
4463        height: f32,
4464        length: f32,
4465        color: Color,
4466    );
4467}
4468extern "C" {
4469    pub fn DrawSphere(centerPos: Vector3, radius: f32, color: Color);
4470}
4471extern "C" {
4472    pub fn DrawSphereEx(
4473        centerPos: Vector3,
4474        radius: f32,
4475        rings: ::std::os::raw::c_int,
4476        slices: ::std::os::raw::c_int,
4477        color: Color,
4478    );
4479}
4480extern "C" {
4481    pub fn DrawSphereWires(
4482        centerPos: Vector3,
4483        radius: f32,
4484        rings: ::std::os::raw::c_int,
4485        slices: ::std::os::raw::c_int,
4486        color: Color,
4487    );
4488}
4489extern "C" {
4490    pub fn DrawCylinder(
4491        position: Vector3,
4492        radiusTop: f32,
4493        radiusBottom: f32,
4494        height: f32,
4495        slices: ::std::os::raw::c_int,
4496        color: Color,
4497    );
4498}
4499extern "C" {
4500    pub fn DrawCylinderEx(
4501        startPos: Vector3,
4502        endPos: Vector3,
4503        startRadius: f32,
4504        endRadius: f32,
4505        sides: ::std::os::raw::c_int,
4506        color: Color,
4507    );
4508}
4509extern "C" {
4510    pub fn DrawCylinderWires(
4511        position: Vector3,
4512        radiusTop: f32,
4513        radiusBottom: f32,
4514        height: f32,
4515        slices: ::std::os::raw::c_int,
4516        color: Color,
4517    );
4518}
4519extern "C" {
4520    pub fn DrawCylinderWiresEx(
4521        startPos: Vector3,
4522        endPos: Vector3,
4523        startRadius: f32,
4524        endRadius: f32,
4525        sides: ::std::os::raw::c_int,
4526        color: Color,
4527    );
4528}
4529extern "C" {
4530    pub fn DrawPlane(centerPos: Vector3, size: Vector2, color: Color);
4531}
4532extern "C" {
4533    pub fn DrawRay(ray: Ray, color: Color);
4534}
4535extern "C" {
4536    pub fn DrawGrid(slices: ::std::os::raw::c_int, spacing: f32);
4537}
4538extern "C" {
4539    pub fn LoadModel(fileName: *const ::std::os::raw::c_char) -> Model;
4540}
4541extern "C" {
4542    pub fn LoadModelFromMesh(mesh: Mesh) -> Model;
4543}
4544extern "C" {
4545    pub fn UnloadModel(model: Model);
4546}
4547extern "C" {
4548    pub fn UnloadModelKeepMeshes(model: Model);
4549}
4550extern "C" {
4551    pub fn GetModelBoundingBox(model: Model) -> BoundingBox;
4552}
4553extern "C" {
4554    pub fn DrawModel(model: Model, position: Vector3, scale: f32, tint: Color);
4555}
4556extern "C" {
4557    pub fn DrawModelEx(
4558        model: Model,
4559        position: Vector3,
4560        rotationAxis: Vector3,
4561        rotationAngle: f32,
4562        scale: Vector3,
4563        tint: Color,
4564    );
4565}
4566extern "C" {
4567    pub fn DrawModelWires(model: Model, position: Vector3, scale: f32, tint: Color);
4568}
4569extern "C" {
4570    pub fn DrawModelWiresEx(
4571        model: Model,
4572        position: Vector3,
4573        rotationAxis: Vector3,
4574        rotationAngle: f32,
4575        scale: Vector3,
4576        tint: Color,
4577    );
4578}
4579extern "C" {
4580    pub fn DrawBoundingBox(box_: BoundingBox, color: Color);
4581}
4582extern "C" {
4583    pub fn DrawBillboard(
4584        camera: Camera,
4585        texture: Texture2D,
4586        position: Vector3,
4587        size: f32,
4588        tint: Color,
4589    );
4590}
4591extern "C" {
4592    pub fn DrawBillboardRec(
4593        camera: Camera,
4594        texture: Texture2D,
4595        source: Rectangle,
4596        position: Vector3,
4597        size: Vector2,
4598        tint: Color,
4599    );
4600}
4601extern "C" {
4602    pub fn DrawBillboardPro(
4603        camera: Camera,
4604        texture: Texture2D,
4605        source: Rectangle,
4606        position: Vector3,
4607        up: Vector3,
4608        size: Vector2,
4609        origin: Vector2,
4610        rotation: f32,
4611        tint: Color,
4612    );
4613}
4614extern "C" {
4615    pub fn UploadMesh(mesh: *mut Mesh, dynamic: bool);
4616}
4617extern "C" {
4618    pub fn UpdateMeshBuffer(
4619        mesh: Mesh,
4620        index: ::std::os::raw::c_int,
4621        data: *const ::std::os::raw::c_void,
4622        dataSize: ::std::os::raw::c_int,
4623        offset: ::std::os::raw::c_int,
4624    );
4625}
4626extern "C" {
4627    pub fn UnloadMesh(mesh: Mesh);
4628}
4629extern "C" {
4630    pub fn DrawMesh(mesh: Mesh, material: Material, transform: Matrix);
4631}
4632extern "C" {
4633    pub fn DrawMeshInstanced(
4634        mesh: Mesh,
4635        material: Material,
4636        transforms: *const Matrix,
4637        instances: ::std::os::raw::c_int,
4638    );
4639}
4640extern "C" {
4641    pub fn ExportMesh(mesh: Mesh, fileName: *const ::std::os::raw::c_char) -> bool;
4642}
4643extern "C" {
4644    pub fn GetMeshBoundingBox(mesh: Mesh) -> BoundingBox;
4645}
4646extern "C" {
4647    pub fn GenMeshTangents(mesh: *mut Mesh);
4648}
4649extern "C" {
4650    pub fn GenMeshPoly(sides: ::std::os::raw::c_int, radius: f32) -> Mesh;
4651}
4652extern "C" {
4653    pub fn GenMeshPlane(
4654        width: f32,
4655        length: f32,
4656        resX: ::std::os::raw::c_int,
4657        resZ: ::std::os::raw::c_int,
4658    ) -> Mesh;
4659}
4660extern "C" {
4661    pub fn GenMeshCube(width: f32, height: f32, length: f32) -> Mesh;
4662}
4663extern "C" {
4664    pub fn GenMeshSphere(
4665        radius: f32,
4666        rings: ::std::os::raw::c_int,
4667        slices: ::std::os::raw::c_int,
4668    ) -> Mesh;
4669}
4670extern "C" {
4671    pub fn GenMeshHemiSphere(
4672        radius: f32,
4673        rings: ::std::os::raw::c_int,
4674        slices: ::std::os::raw::c_int,
4675    ) -> Mesh;
4676}
4677extern "C" {
4678    pub fn GenMeshCylinder(radius: f32, height: f32, slices: ::std::os::raw::c_int) -> Mesh;
4679}
4680extern "C" {
4681    pub fn GenMeshCone(radius: f32, height: f32, slices: ::std::os::raw::c_int) -> Mesh;
4682}
4683extern "C" {
4684    pub fn GenMeshTorus(
4685        radius: f32,
4686        size: f32,
4687        radSeg: ::std::os::raw::c_int,
4688        sides: ::std::os::raw::c_int,
4689    ) -> Mesh;
4690}
4691extern "C" {
4692    pub fn GenMeshKnot(
4693        radius: f32,
4694        size: f32,
4695        radSeg: ::std::os::raw::c_int,
4696        sides: ::std::os::raw::c_int,
4697    ) -> Mesh;
4698}
4699extern "C" {
4700    pub fn GenMeshHeightmap(heightmap: Image, size: Vector3) -> Mesh;
4701}
4702extern "C" {
4703    pub fn GenMeshCubicmap(cubicmap: Image, cubeSize: Vector3) -> Mesh;
4704}
4705extern "C" {
4706    pub fn LoadMaterials(
4707        fileName: *const ::std::os::raw::c_char,
4708        materialCount: *mut ::std::os::raw::c_int,
4709    ) -> *mut Material;
4710}
4711extern "C" {
4712    pub fn LoadMaterialDefault() -> Material;
4713}
4714extern "C" {
4715    pub fn UnloadMaterial(material: Material);
4716}
4717extern "C" {
4718    pub fn SetMaterialTexture(
4719        material: *mut Material,
4720        mapType: ::std::os::raw::c_int,
4721        texture: Texture2D,
4722    );
4723}
4724extern "C" {
4725    pub fn SetModelMeshMaterial(
4726        model: *mut Model,
4727        meshId: ::std::os::raw::c_int,
4728        materialId: ::std::os::raw::c_int,
4729    );
4730}
4731extern "C" {
4732    pub fn LoadModelAnimations(
4733        fileName: *const ::std::os::raw::c_char,
4734        animCount: *mut ::std::os::raw::c_uint,
4735    ) -> *mut ModelAnimation;
4736}
4737extern "C" {
4738    pub fn UpdateModelAnimation(model: Model, anim: ModelAnimation, frame: ::std::os::raw::c_int);
4739}
4740extern "C" {
4741    pub fn UnloadModelAnimation(anim: ModelAnimation);
4742}
4743extern "C" {
4744    pub fn UnloadModelAnimations(animations: *mut ModelAnimation, count: ::std::os::raw::c_uint);
4745}
4746extern "C" {
4747    pub fn IsModelAnimationValid(model: Model, anim: ModelAnimation) -> bool;
4748}
4749extern "C" {
4750    pub fn CheckCollisionSpheres(
4751        center1: Vector3,
4752        radius1: f32,
4753        center2: Vector3,
4754        radius2: f32,
4755    ) -> bool;
4756}
4757extern "C" {
4758    pub fn CheckCollisionBoxes(box1: BoundingBox, box2: BoundingBox) -> bool;
4759}
4760extern "C" {
4761    pub fn CheckCollisionBoxSphere(box_: BoundingBox, center: Vector3, radius: f32) -> bool;
4762}
4763extern "C" {
4764    pub fn GetRayCollisionSphere(ray: Ray, center: Vector3, radius: f32) -> RayCollision;
4765}
4766extern "C" {
4767    pub fn GetRayCollisionBox(ray: Ray, box_: BoundingBox) -> RayCollision;
4768}
4769extern "C" {
4770    pub fn GetRayCollisionMesh(ray: Ray, mesh: Mesh, transform: Matrix) -> RayCollision;
4771}
4772extern "C" {
4773    pub fn GetRayCollisionTriangle(ray: Ray, p1: Vector3, p2: Vector3, p3: Vector3)
4774        -> RayCollision;
4775}
4776extern "C" {
4777    pub fn GetRayCollisionQuad(
4778        ray: Ray,
4779        p1: Vector3,
4780        p2: Vector3,
4781        p3: Vector3,
4782        p4: Vector3,
4783    ) -> RayCollision;
4784}
4785pub type AudioCallback = ::std::option::Option<
4786    unsafe extern "C" fn(bufferData: *mut ::std::os::raw::c_void, frames: ::std::os::raw::c_uint),
4787>;
4788extern "C" {
4789    pub fn InitAudioDevice();
4790}
4791extern "C" {
4792    pub fn CloseAudioDevice();
4793}
4794extern "C" {
4795    pub fn IsAudioDeviceReady() -> bool;
4796}
4797extern "C" {
4798    pub fn SetMasterVolume(volume: f32);
4799}
4800extern "C" {
4801    pub fn LoadWave(fileName: *const ::std::os::raw::c_char) -> Wave;
4802}
4803extern "C" {
4804    pub fn LoadWaveFromMemory(
4805        fileType: *const ::std::os::raw::c_char,
4806        fileData: *const ::std::os::raw::c_uchar,
4807        dataSize: ::std::os::raw::c_int,
4808    ) -> Wave;
4809}
4810extern "C" {
4811    pub fn LoadSound(fileName: *const ::std::os::raw::c_char) -> Sound;
4812}
4813extern "C" {
4814    pub fn LoadSoundFromWave(wave: Wave) -> Sound;
4815}
4816extern "C" {
4817    pub fn UpdateSound(
4818        sound: Sound,
4819        data: *const ::std::os::raw::c_void,
4820        sampleCount: ::std::os::raw::c_int,
4821    );
4822}
4823extern "C" {
4824    pub fn UnloadWave(wave: Wave);
4825}
4826extern "C" {
4827    pub fn UnloadSound(sound: Sound);
4828}
4829extern "C" {
4830    pub fn ExportWave(wave: Wave, fileName: *const ::std::os::raw::c_char) -> bool;
4831}
4832extern "C" {
4833    pub fn ExportWaveAsCode(wave: Wave, fileName: *const ::std::os::raw::c_char) -> bool;
4834}
4835extern "C" {
4836    pub fn PlaySound(sound: Sound);
4837}
4838extern "C" {
4839    pub fn StopSound(sound: Sound);
4840}
4841extern "C" {
4842    pub fn PauseSound(sound: Sound);
4843}
4844extern "C" {
4845    pub fn ResumeSound(sound: Sound);
4846}
4847extern "C" {
4848    pub fn PlaySoundMulti(sound: Sound);
4849}
4850extern "C" {
4851    pub fn StopSoundMulti();
4852}
4853extern "C" {
4854    pub fn GetSoundsPlaying() -> ::std::os::raw::c_int;
4855}
4856extern "C" {
4857    pub fn IsSoundPlaying(sound: Sound) -> bool;
4858}
4859extern "C" {
4860    pub fn SetSoundVolume(sound: Sound, volume: f32);
4861}
4862extern "C" {
4863    pub fn SetSoundPitch(sound: Sound, pitch: f32);
4864}
4865extern "C" {
4866    pub fn SetSoundPan(sound: Sound, pan: f32);
4867}
4868extern "C" {
4869    pub fn WaveCopy(wave: Wave) -> Wave;
4870}
4871extern "C" {
4872    pub fn WaveCrop(
4873        wave: *mut Wave,
4874        initSample: ::std::os::raw::c_int,
4875        finalSample: ::std::os::raw::c_int,
4876    );
4877}
4878extern "C" {
4879    pub fn WaveFormat(
4880        wave: *mut Wave,
4881        sampleRate: ::std::os::raw::c_int,
4882        sampleSize: ::std::os::raw::c_int,
4883        channels: ::std::os::raw::c_int,
4884    );
4885}
4886extern "C" {
4887    pub fn LoadWaveSamples(wave: Wave) -> *mut f32;
4888}
4889extern "C" {
4890    pub fn UnloadWaveSamples(samples: *mut f32);
4891}
4892extern "C" {
4893    pub fn LoadMusicStream(fileName: *const ::std::os::raw::c_char) -> Music;
4894}
4895extern "C" {
4896    pub fn LoadMusicStreamFromMemory(
4897        fileType: *const ::std::os::raw::c_char,
4898        data: *const ::std::os::raw::c_uchar,
4899        dataSize: ::std::os::raw::c_int,
4900    ) -> Music;
4901}
4902extern "C" {
4903    pub fn UnloadMusicStream(music: Music);
4904}
4905extern "C" {
4906    pub fn PlayMusicStream(music: Music);
4907}
4908extern "C" {
4909    pub fn IsMusicStreamPlaying(music: Music) -> bool;
4910}
4911extern "C" {
4912    pub fn UpdateMusicStream(music: Music);
4913}
4914extern "C" {
4915    pub fn StopMusicStream(music: Music);
4916}
4917extern "C" {
4918    pub fn PauseMusicStream(music: Music);
4919}
4920extern "C" {
4921    pub fn ResumeMusicStream(music: Music);
4922}
4923extern "C" {
4924    pub fn SeekMusicStream(music: Music, position: f32);
4925}
4926extern "C" {
4927    pub fn SetMusicVolume(music: Music, volume: f32);
4928}
4929extern "C" {
4930    pub fn SetMusicPitch(music: Music, pitch: f32);
4931}
4932extern "C" {
4933    pub fn SetMusicPan(music: Music, pan: f32);
4934}
4935extern "C" {
4936    pub fn GetMusicTimeLength(music: Music) -> f32;
4937}
4938extern "C" {
4939    pub fn GetMusicTimePlayed(music: Music) -> f32;
4940}
4941extern "C" {
4942    pub fn LoadAudioStream(
4943        sampleRate: ::std::os::raw::c_uint,
4944        sampleSize: ::std::os::raw::c_uint,
4945        channels: ::std::os::raw::c_uint,
4946    ) -> AudioStream;
4947}
4948extern "C" {
4949    pub fn UnloadAudioStream(stream: AudioStream);
4950}
4951extern "C" {
4952    pub fn UpdateAudioStream(
4953        stream: AudioStream,
4954        data: *const ::std::os::raw::c_void,
4955        frameCount: ::std::os::raw::c_int,
4956    );
4957}
4958extern "C" {
4959    pub fn IsAudioStreamProcessed(stream: AudioStream) -> bool;
4960}
4961extern "C" {
4962    pub fn PlayAudioStream(stream: AudioStream);
4963}
4964extern "C" {
4965    pub fn PauseAudioStream(stream: AudioStream);
4966}
4967extern "C" {
4968    pub fn ResumeAudioStream(stream: AudioStream);
4969}
4970extern "C" {
4971    pub fn IsAudioStreamPlaying(stream: AudioStream) -> bool;
4972}
4973extern "C" {
4974    pub fn StopAudioStream(stream: AudioStream);
4975}
4976extern "C" {
4977    pub fn SetAudioStreamVolume(stream: AudioStream, volume: f32);
4978}
4979extern "C" {
4980    pub fn SetAudioStreamPitch(stream: AudioStream, pitch: f32);
4981}
4982extern "C" {
4983    pub fn SetAudioStreamPan(stream: AudioStream, pan: f32);
4984}
4985extern "C" {
4986    pub fn SetAudioStreamBufferSizeDefault(size: ::std::os::raw::c_int);
4987}
4988extern "C" {
4989    pub fn SetAudioStreamCallback(stream: AudioStream, callback: AudioCallback);
4990}
4991extern "C" {
4992    pub fn AttachAudioStreamProcessor(stream: AudioStream, processor: AudioCallback);
4993}
4994extern "C" {
4995    pub fn DetachAudioStreamProcessor(stream: AudioStream, processor: AudioCallback);
4996}
4997pub type __builtin_va_list = [__va_list_tag; 1usize];
4998#[repr(C)]
4999#[derive(Debug, Copy, Clone)]
5000pub struct __va_list_tag {
5001    pub gp_offset: ::std::os::raw::c_uint,
5002    pub fp_offset: ::std::os::raw::c_uint,
5003    pub overflow_arg_area: *mut ::std::os::raw::c_void,
5004    pub reg_save_area: *mut ::std::os::raw::c_void,
5005}
5006#[test]
5007fn bindgen_test_layout___va_list_tag() {
5008    const UNINIT: ::std::mem::MaybeUninit<__va_list_tag> = ::std::mem::MaybeUninit::uninit();
5009    let ptr = UNINIT.as_ptr();
5010    assert_eq!(
5011        ::std::mem::size_of::<__va_list_tag>(),
5012        24usize,
5013        concat!("Size of: ", stringify!(__va_list_tag))
5014    );
5015    assert_eq!(
5016        ::std::mem::align_of::<__va_list_tag>(),
5017        8usize,
5018        concat!("Alignment of ", stringify!(__va_list_tag))
5019    );
5020    assert_eq!(
5021        unsafe { ::std::ptr::addr_of!((*ptr).gp_offset) as usize - ptr as usize },
5022        0usize,
5023        concat!(
5024            "Offset of field: ",
5025            stringify!(__va_list_tag),
5026            "::",
5027            stringify!(gp_offset)
5028        )
5029    );
5030    assert_eq!(
5031        unsafe { ::std::ptr::addr_of!((*ptr).fp_offset) as usize - ptr as usize },
5032        4usize,
5033        concat!(
5034            "Offset of field: ",
5035            stringify!(__va_list_tag),
5036            "::",
5037            stringify!(fp_offset)
5038        )
5039    );
5040    assert_eq!(
5041        unsafe { ::std::ptr::addr_of!((*ptr).overflow_arg_area) as usize - ptr as usize },
5042        8usize,
5043        concat!(
5044            "Offset of field: ",
5045            stringify!(__va_list_tag),
5046            "::",
5047            stringify!(overflow_arg_area)
5048        )
5049    );
5050    assert_eq!(
5051        unsafe { ::std::ptr::addr_of!((*ptr).reg_save_area) as usize - ptr as usize },
5052        16usize,
5053        concat!(
5054            "Offset of field: ",
5055            stringify!(__va_list_tag),
5056            "::",
5057            stringify!(reg_save_area)
5058        )
5059    );
5060}