raylib_wasm/native/
fns.rs

1use crate::shared::structs::*;
2use crate::shared::enums::KeyboardKey;
3
4pub type __gnuc_va_list = __builtin_va_list;
5pub type va_list = __builtin_va_list;
6pub type __builtin_va_list = [__va_list_tag; 1usize];
7#[repr(C)]
8#[derive(Debug, Copy, Clone)]
9pub struct __va_list_tag {
10    pub gp_offset: ::std::os::raw::c_uint,
11    pub fp_offset: ::std::os::raw::c_uint,
12    pub overflow_arg_area: *mut ::std::os::raw::c_void,
13    pub reg_save_area: *mut ::std::os::raw::c_void,
14}
15pub type TraceLogCallback = ::std::option::Option<
16    unsafe extern "C" fn(
17        logLevel: ::std::os::raw::c_int,
18        text: *const ::std::os::raw::c_char,
19        args: *mut __va_list_tag,
20    ),
21>;
22pub type LoadFileDataCallback = ::std::option::Option<
23    unsafe extern "C" fn(
24        fileName: *const ::std::os::raw::c_char,
25        dataSize: *mut ::std::os::raw::c_int,
26    ) -> *mut ::std::os::raw::c_uchar,
27>;
28pub type SaveFileDataCallback = ::std::option::Option<
29    unsafe extern "C" fn(
30        fileName: *const ::std::os::raw::c_char,
31        data: *mut ::std::os::raw::c_void,
32        dataSize: ::std::os::raw::c_int,
33    ) -> bool,
34>;
35pub type LoadFileTextCallback = ::std::option::Option<
36    unsafe extern "C" fn(fileName: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char,
37>;
38pub type SaveFileTextCallback = ::std::option::Option<
39    unsafe extern "C" fn(
40        fileName: *const ::std::os::raw::c_char,
41        text: *mut ::std::os::raw::c_char,
42    ) -> bool,
43>;
44extern "C" {
45    pub fn InitWindow(
46        width: ::std::os::raw::c_int,
47        height: ::std::os::raw::c_int,
48        title: *const ::std::os::raw::c_char,
49    );
50}
51extern "C" {
52    pub fn CloseWindow();
53}
54extern "C" {
55    pub fn WindowShouldClose() -> bool;
56}
57extern "C" {
58    pub fn IsWindowReady() -> bool;
59}
60extern "C" {
61    pub fn IsWindowFullscreen() -> bool;
62}
63extern "C" {
64    pub fn IsWindowHidden() -> bool;
65}
66extern "C" {
67    pub fn IsWindowMinimized() -> bool;
68}
69extern "C" {
70    pub fn IsWindowMaximized() -> bool;
71}
72extern "C" {
73    pub fn IsWindowFocused() -> bool;
74}
75extern "C" {
76    pub fn IsWindowResized() -> bool;
77}
78extern "C" {
79    pub fn IsWindowState(flag: ::std::os::raw::c_uint) -> bool;
80}
81extern "C" {
82    pub fn SetWindowState(flags: ::std::os::raw::c_uint);
83}
84extern "C" {
85    pub fn ClearWindowState(flags: ::std::os::raw::c_uint);
86}
87extern "C" {
88    pub fn ToggleFullscreen();
89}
90extern "C" {
91    pub fn ToggleBorderlessWindowed();
92}
93extern "C" {
94    pub fn MaximizeWindow();
95}
96extern "C" {
97    pub fn MinimizeWindow();
98}
99extern "C" {
100    pub fn RestoreWindow();
101}
102extern "C" {
103    pub fn SetWindowIcon(image: Image);
104}
105extern "C" {
106    pub fn SetWindowIcons(images: *mut Image, count: ::std::os::raw::c_int);
107}
108extern "C" {
109    pub fn SetWindowTitle(title: *const ::std::os::raw::c_char);
110}
111extern "C" {
112    pub fn SetWindowPosition(x: ::std::os::raw::c_int, y: ::std::os::raw::c_int);
113}
114extern "C" {
115    pub fn SetWindowMonitor(monitor: ::std::os::raw::c_int);
116}
117extern "C" {
118    pub fn SetWindowMinSize(width: ::std::os::raw::c_int, height: ::std::os::raw::c_int);
119}
120extern "C" {
121    pub fn SetWindowMaxSize(width: ::std::os::raw::c_int, height: ::std::os::raw::c_int);
122}
123extern "C" {
124    pub fn SetWindowSize(width: ::std::os::raw::c_int, height: ::std::os::raw::c_int);
125}
126extern "C" {
127    pub fn SetWindowOpacity(opacity: f32);
128}
129extern "C" {
130    pub fn SetWindowFocused();
131}
132extern "C" {
133    pub fn GetWindowHandle() -> *mut ::std::os::raw::c_void;
134}
135extern "C" {
136    pub fn GetScreenWidth() -> ::std::os::raw::c_int;
137}
138extern "C" {
139    pub fn GetScreenHeight() -> ::std::os::raw::c_int;
140}
141extern "C" {
142    pub fn GetRenderWidth() -> ::std::os::raw::c_int;
143}
144extern "C" {
145    pub fn GetRenderHeight() -> ::std::os::raw::c_int;
146}
147extern "C" {
148    pub fn GetMonitorCount() -> ::std::os::raw::c_int;
149}
150extern "C" {
151    pub fn GetCurrentMonitor() -> ::std::os::raw::c_int;
152}
153extern "C" {
154    pub fn GetMonitorPosition(monitor: ::std::os::raw::c_int) -> Vector2;
155}
156extern "C" {
157    pub fn GetMonitorWidth(monitor: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
158}
159extern "C" {
160    pub fn GetMonitorHeight(monitor: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
161}
162extern "C" {
163    pub fn GetMonitorPhysicalWidth(monitor: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
164}
165extern "C" {
166    pub fn GetMonitorPhysicalHeight(monitor: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
167}
168extern "C" {
169    pub fn GetMonitorRefreshRate(monitor: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
170}
171extern "C" {
172    pub fn GetWindowPosition() -> Vector2;
173}
174extern "C" {
175    pub fn GetWindowScaleDPI() -> Vector2;
176}
177extern "C" {
178    pub fn GetMonitorName(monitor: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
179}
180extern "C" {
181    pub fn SetClipboardText(text: *const ::std::os::raw::c_char);
182}
183extern "C" {
184    pub fn GetClipboardText() -> *const ::std::os::raw::c_char;
185}
186extern "C" {
187    pub fn EnableEventWaiting();
188}
189extern "C" {
190    pub fn DisableEventWaiting();
191}
192extern "C" {
193    pub fn ShowCursor();
194}
195extern "C" {
196    pub fn HideCursor();
197}
198extern "C" {
199    pub fn IsCursorHidden() -> bool;
200}
201extern "C" {
202    pub fn EnableCursor();
203}
204extern "C" {
205    pub fn DisableCursor();
206}
207extern "C" {
208    pub fn IsCursorOnScreen() -> bool;
209}
210extern "C" {
211    pub fn ClearBackground(color: Color);
212}
213extern "C" {
214    pub fn BeginDrawing();
215}
216extern "C" {
217    pub fn EndDrawing();
218}
219extern "C" {
220    pub fn BeginMode2D(camera: Camera2D);
221}
222extern "C" {
223    pub fn EndMode2D();
224}
225extern "C" {
226    pub fn BeginMode3D(camera: Camera3D);
227}
228extern "C" {
229    pub fn EndMode3D();
230}
231extern "C" {
232    pub fn BeginTextureMode(target: RenderTexture2D);
233}
234extern "C" {
235    pub fn EndTextureMode();
236}
237extern "C" {
238    pub fn BeginShaderMode(shader: Shader);
239}
240extern "C" {
241    pub fn EndShaderMode();
242}
243extern "C" {
244    pub fn BeginBlendMode(mode: ::std::os::raw::c_int);
245}
246extern "C" {
247    pub fn EndBlendMode();
248}
249extern "C" {
250    pub fn BeginScissorMode(
251        x: ::std::os::raw::c_int,
252        y: ::std::os::raw::c_int,
253        width: ::std::os::raw::c_int,
254        height: ::std::os::raw::c_int,
255    );
256}
257extern "C" {
258    pub fn EndScissorMode();
259}
260extern "C" {
261    pub fn BeginVrStereoMode(config: VrStereoConfig);
262}
263extern "C" {
264    pub fn EndVrStereoMode();
265}
266extern "C" {
267    pub fn LoadVrStereoConfig(device: VrDeviceInfo) -> VrStereoConfig;
268}
269extern "C" {
270    pub fn UnloadVrStereoConfig(config: VrStereoConfig);
271}
272extern "C" {
273    pub fn LoadShader(
274        vsFileName: *const ::std::os::raw::c_char,
275        fsFileName: *const ::std::os::raw::c_char,
276    ) -> Shader;
277}
278extern "C" {
279    pub fn LoadShaderFromMemory(
280        vsCode: *const ::std::os::raw::c_char,
281        fsCode: *const ::std::os::raw::c_char,
282    ) -> Shader;
283}
284extern "C" {
285    pub fn IsShaderReady(shader: Shader) -> bool;
286}
287extern "C" {
288    pub fn GetShaderLocation(
289        shader: Shader,
290        uniformName: *const ::std::os::raw::c_char,
291    ) -> ::std::os::raw::c_int;
292}
293extern "C" {
294    pub fn GetShaderLocationAttrib(
295        shader: Shader,
296        attribName: *const ::std::os::raw::c_char,
297    ) -> ::std::os::raw::c_int;
298}
299extern "C" {
300    pub fn SetShaderValue(
301        shader: Shader,
302        locIndex: ::std::os::raw::c_int,
303        value: *const ::std::os::raw::c_void,
304        uniformType: ::std::os::raw::c_int,
305    );
306}
307extern "C" {
308    pub fn SetShaderValueV(
309        shader: Shader,
310        locIndex: ::std::os::raw::c_int,
311        value: *const ::std::os::raw::c_void,
312        uniformType: ::std::os::raw::c_int,
313        count: ::std::os::raw::c_int,
314    );
315}
316extern "C" {
317    pub fn SetShaderValueMatrix(shader: Shader, locIndex: ::std::os::raw::c_int, mat: Matrix);
318}
319extern "C" {
320    pub fn SetShaderValueTexture(
321        shader: Shader,
322        locIndex: ::std::os::raw::c_int,
323        texture: Texture2D,
324    );
325}
326extern "C" {
327    pub fn UnloadShader(shader: Shader);
328}
329extern "C" {
330    pub fn GetMouseRay(mousePosition: Vector2, camera: Camera) -> Ray;
331}
332extern "C" {
333    pub fn GetCameraMatrix(camera: Camera) -> Matrix;
334}
335extern "C" {
336    pub fn GetCameraMatrix2D(camera: Camera2D) -> Matrix;
337}
338extern "C" {
339    pub fn GetWorldToScreen(position: Vector3, camera: Camera) -> Vector2;
340}
341extern "C" {
342    pub fn GetScreenToWorld2D(position: Vector2, camera: Camera2D) -> Vector2;
343}
344extern "C" {
345    pub fn GetWorldToScreenEx(
346        position: Vector3,
347        camera: Camera,
348        width: ::std::os::raw::c_int,
349        height: ::std::os::raw::c_int,
350    ) -> Vector2;
351}
352extern "C" {
353    pub fn GetWorldToScreen2D(position: Vector2, camera: Camera2D) -> Vector2;
354}
355extern "C" {
356    pub fn SetTargetFPS(fps: ::std::os::raw::c_int);
357}
358extern "C" {
359    pub fn GetFrameTime() -> f32;
360}
361extern "C" {
362    pub fn GetTime() -> f64;
363}
364extern "C" {
365    pub fn GetFPS() -> ::std::os::raw::c_int;
366}
367extern "C" {
368    pub fn SwapScreenBuffer();
369}
370extern "C" {
371    pub fn PollInputEvents();
372}
373extern "C" {
374    pub fn WaitTime(seconds: f64);
375}
376extern "C" {
377    pub fn SetRandomSeed(seed: ::std::os::raw::c_uint);
378}
379extern "C" {
380    pub fn GetRandomValue(
381        min: ::std::os::raw::c_int,
382        max: ::std::os::raw::c_int,
383    ) -> ::std::os::raw::c_int;
384}
385extern "C" {
386    pub fn LoadRandomSequence(
387        count: ::std::os::raw::c_uint,
388        min: ::std::os::raw::c_int,
389        max: ::std::os::raw::c_int,
390    ) -> *mut ::std::os::raw::c_int;
391}
392extern "C" {
393    pub fn UnloadRandomSequence(sequence: *mut ::std::os::raw::c_int);
394}
395extern "C" {
396    pub fn TakeScreenshot(fileName: *const ::std::os::raw::c_char);
397}
398extern "C" {
399    pub fn SetConfigFlags(flags: ::std::os::raw::c_uint);
400}
401extern "C" {
402    pub fn OpenURL(url: *const ::std::os::raw::c_char);
403}
404extern "C" {
405    pub fn TraceLog(logLevel: ::std::os::raw::c_int, text: *const ::std::os::raw::c_char, ...);
406}
407extern "C" {
408    pub fn SetTraceLogLevel(logLevel: ::std::os::raw::c_int);
409}
410extern "C" {
411    pub fn MemAlloc(size: ::std::os::raw::c_uint) -> *mut ::std::os::raw::c_void;
412}
413extern "C" {
414    pub fn MemRealloc(
415        ptr: *mut ::std::os::raw::c_void,
416        size: ::std::os::raw::c_uint,
417    ) -> *mut ::std::os::raw::c_void;
418}
419extern "C" {
420    pub fn MemFree(ptr: *mut ::std::os::raw::c_void);
421}
422extern "C" {
423    pub fn SetTraceLogCallback(callback: TraceLogCallback);
424}
425extern "C" {
426    pub fn SetLoadFileDataCallback(callback: LoadFileDataCallback);
427}
428extern "C" {
429    pub fn SetSaveFileDataCallback(callback: SaveFileDataCallback);
430}
431extern "C" {
432    pub fn SetLoadFileTextCallback(callback: LoadFileTextCallback);
433}
434extern "C" {
435    pub fn SetSaveFileTextCallback(callback: SaveFileTextCallback);
436}
437extern "C" {
438    pub fn LoadFileData(
439        fileName: *const ::std::os::raw::c_char,
440        dataSize: *mut ::std::os::raw::c_int,
441    ) -> *mut ::std::os::raw::c_uchar;
442}
443extern "C" {
444    pub fn UnloadFileData(data: *mut ::std::os::raw::c_uchar);
445}
446extern "C" {
447    pub fn SaveFileData(
448        fileName: *const ::std::os::raw::c_char,
449        data: *mut ::std::os::raw::c_void,
450        dataSize: ::std::os::raw::c_int,
451    ) -> bool;
452}
453extern "C" {
454    pub fn ExportDataAsCode(
455        data: *const ::std::os::raw::c_uchar,
456        dataSize: ::std::os::raw::c_int,
457        fileName: *const ::std::os::raw::c_char,
458    ) -> bool;
459}
460extern "C" {
461    pub fn LoadFileText(fileName: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
462}
463extern "C" {
464    pub fn UnloadFileText(text: *mut ::std::os::raw::c_char);
465}
466extern "C" {
467    pub fn SaveFileText(
468        fileName: *const ::std::os::raw::c_char,
469        text: *mut ::std::os::raw::c_char,
470    ) -> bool;
471}
472extern "C" {
473    pub fn FileExists(fileName: *const ::std::os::raw::c_char) -> bool;
474}
475extern "C" {
476    pub fn DirectoryExists(dirPath: *const ::std::os::raw::c_char) -> bool;
477}
478extern "C" {
479    pub fn IsFileExtension(
480        fileName: *const ::std::os::raw::c_char,
481        ext: *const ::std::os::raw::c_char,
482    ) -> bool;
483}
484extern "C" {
485    pub fn GetFileLength(fileName: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
486}
487extern "C" {
488    pub fn GetFileExtension(
489        fileName: *const ::std::os::raw::c_char,
490    ) -> *const ::std::os::raw::c_char;
491}
492extern "C" {
493    pub fn GetFileName(filePath: *const ::std::os::raw::c_char) -> *const ::std::os::raw::c_char;
494}
495extern "C" {
496    pub fn GetFileNameWithoutExt(
497        filePath: *const ::std::os::raw::c_char,
498    ) -> *const ::std::os::raw::c_char;
499}
500extern "C" {
501    pub fn GetDirectoryPath(
502        filePath: *const ::std::os::raw::c_char,
503    ) -> *const ::std::os::raw::c_char;
504}
505extern "C" {
506    pub fn GetPrevDirectoryPath(
507        dirPath: *const ::std::os::raw::c_char,
508    ) -> *const ::std::os::raw::c_char;
509}
510extern "C" {
511    pub fn GetWorkingDirectory() -> *const ::std::os::raw::c_char;
512}
513extern "C" {
514    pub fn GetApplicationDirectory() -> *const ::std::os::raw::c_char;
515}
516extern "C" {
517    pub fn ChangeDirectory(dir: *const ::std::os::raw::c_char) -> bool;
518}
519extern "C" {
520    pub fn IsPathFile(path: *const ::std::os::raw::c_char) -> bool;
521}
522extern "C" {
523    pub fn LoadDirectoryFiles(dirPath: *const ::std::os::raw::c_char) -> FilePathList;
524}
525extern "C" {
526    pub fn LoadDirectoryFilesEx(
527        basePath: *const ::std::os::raw::c_char,
528        filter: *const ::std::os::raw::c_char,
529        scanSubdirs: bool,
530    ) -> FilePathList;
531}
532extern "C" {
533    pub fn UnloadDirectoryFiles(files: FilePathList);
534}
535extern "C" {
536    pub fn IsFileDropped() -> bool;
537}
538extern "C" {
539    pub fn LoadDroppedFiles() -> FilePathList;
540}
541extern "C" {
542    pub fn UnloadDroppedFiles(files: FilePathList);
543}
544extern "C" {
545    pub fn GetFileModTime(fileName: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long;
546}
547extern "C" {
548    pub fn CompressData(
549        data: *const ::std::os::raw::c_uchar,
550        dataSize: ::std::os::raw::c_int,
551        compDataSize: *mut ::std::os::raw::c_int,
552    ) -> *mut ::std::os::raw::c_uchar;
553}
554extern "C" {
555    pub fn DecompressData(
556        compData: *const ::std::os::raw::c_uchar,
557        compDataSize: ::std::os::raw::c_int,
558        dataSize: *mut ::std::os::raw::c_int,
559    ) -> *mut ::std::os::raw::c_uchar;
560}
561extern "C" {
562    pub fn EncodeDataBase64(
563        data: *const ::std::os::raw::c_uchar,
564        dataSize: ::std::os::raw::c_int,
565        outputSize: *mut ::std::os::raw::c_int,
566    ) -> *mut ::std::os::raw::c_char;
567}
568extern "C" {
569    pub fn DecodeDataBase64(
570        data: *const ::std::os::raw::c_uchar,
571        outputSize: *mut ::std::os::raw::c_int,
572    ) -> *mut ::std::os::raw::c_uchar;
573}
574extern "C" {
575    pub fn LoadAutomationEventList(fileName: *const ::std::os::raw::c_char) -> AutomationEventList;
576}
577extern "C" {
578    pub fn UnloadAutomationEventList(list: *mut AutomationEventList);
579}
580extern "C" {
581    pub fn ExportAutomationEventList(
582        list: AutomationEventList,
583        fileName: *const ::std::os::raw::c_char,
584    ) -> bool;
585}
586extern "C" {
587    pub fn SetAutomationEventList(list: *mut AutomationEventList);
588}
589extern "C" {
590    pub fn SetAutomationEventBaseFrame(frame: ::std::os::raw::c_int);
591}
592extern "C" {
593    pub fn StartAutomationEventRecording();
594}
595extern "C" {
596    pub fn StopAutomationEventRecording();
597}
598extern "C" {
599    pub fn PlayAutomationEvent(event: AutomationEvent);
600}
601
602extern "C" {
603    pub fn IsKeyPressed(key: KeyboardKey) -> bool;
604}
605extern "C" {
606    pub fn IsKeyPressedRepeat(key: KeyboardKey) -> bool;
607}
608extern "C" {
609    pub fn IsKeyDown(key: KeyboardKey) -> bool;
610}
611extern "C" {
612    pub fn IsKeyReleased(key: KeyboardKey) -> bool;
613}
614extern "C" {
615    pub fn IsKeyUp(key: KeyboardKey) -> bool;
616}
617extern "C" {
618    pub fn GetKeyPressed() -> KeyboardKey;
619}
620extern "C" {
621    pub fn GetCharPressed() -> KeyboardKey;
622}
623extern "C" {
624    pub fn SetExitKey(key: KeyboardKey);
625}
626
627extern "C" {
628    pub fn IsGamepadAvailable(gamepad: ::std::os::raw::c_int) -> bool;
629}
630extern "C" {
631    pub fn GetGamepadName(gamepad: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
632}
633extern "C" {
634    pub fn IsGamepadButtonPressed(
635        gamepad: ::std::os::raw::c_int,
636        button: ::std::os::raw::c_int,
637    ) -> bool;
638}
639extern "C" {
640    pub fn IsGamepadButtonDown(
641        gamepad: ::std::os::raw::c_int,
642        button: ::std::os::raw::c_int,
643    ) -> bool;
644}
645extern "C" {
646    pub fn IsGamepadButtonReleased(
647        gamepad: ::std::os::raw::c_int,
648        button: ::std::os::raw::c_int,
649    ) -> bool;
650}
651extern "C" {
652    pub fn IsGamepadButtonUp(gamepad: ::std::os::raw::c_int, button: ::std::os::raw::c_int)
653        -> bool;
654}
655extern "C" {
656    pub fn GetGamepadButtonPressed() -> ::std::os::raw::c_int;
657}
658extern "C" {
659    pub fn GetGamepadAxisCount(gamepad: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
660}
661extern "C" {
662    pub fn GetGamepadAxisMovement(
663        gamepad: ::std::os::raw::c_int,
664        axis: ::std::os::raw::c_int,
665    ) -> f32;
666}
667extern "C" {
668    pub fn SetGamepadMappings(mappings: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
669}
670extern "C" {
671    pub fn IsMouseButtonPressed(button: ::std::os::raw::c_int) -> bool;
672}
673extern "C" {
674    pub fn IsMouseButtonDown(button: ::std::os::raw::c_int) -> bool;
675}
676extern "C" {
677    pub fn IsMouseButtonReleased(button: ::std::os::raw::c_int) -> bool;
678}
679extern "C" {
680    pub fn IsMouseButtonUp(button: ::std::os::raw::c_int) -> bool;
681}
682extern "C" {
683    pub fn GetMouseX() -> ::std::os::raw::c_int;
684}
685extern "C" {
686    pub fn GetMouseY() -> ::std::os::raw::c_int;
687}
688extern "C" {
689    pub fn GetMousePosition() -> Vector2;
690}
691extern "C" {
692    pub fn GetMouseDelta() -> Vector2;
693}
694extern "C" {
695    pub fn SetMousePosition(x: ::std::os::raw::c_int, y: ::std::os::raw::c_int);
696}
697extern "C" {
698    pub fn SetMouseOffset(offsetX: ::std::os::raw::c_int, offsetY: ::std::os::raw::c_int);
699}
700extern "C" {
701    pub fn SetMouseScale(scaleX: f32, scaleY: f32);
702}
703extern "C" {
704    pub fn GetMouseWheelMove() -> f32;
705}
706extern "C" {
707    pub fn GetMouseWheelMoveV() -> Vector2;
708}
709extern "C" {
710    pub fn SetMouseCursor(cursor: ::std::os::raw::c_int);
711}
712extern "C" {
713    pub fn GetTouchX() -> ::std::os::raw::c_int;
714}
715extern "C" {
716    pub fn GetTouchY() -> ::std::os::raw::c_int;
717}
718extern "C" {
719    pub fn GetTouchPosition(index: ::std::os::raw::c_int) -> Vector2;
720}
721extern "C" {
722    pub fn GetTouchPointId(index: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
723}
724extern "C" {
725    pub fn GetTouchPointCount() -> ::std::os::raw::c_int;
726}
727extern "C" {
728    pub fn SetGesturesEnabled(flags: ::std::os::raw::c_uint);
729}
730extern "C" {
731    pub fn IsGestureDetected(gesture: ::std::os::raw::c_uint) -> bool;
732}
733extern "C" {
734    pub fn GetGestureDetected() -> ::std::os::raw::c_int;
735}
736extern "C" {
737    pub fn GetGestureHoldDuration() -> f32;
738}
739extern "C" {
740    pub fn GetGestureDragVector() -> Vector2;
741}
742extern "C" {
743    pub fn GetGestureDragAngle() -> f32;
744}
745extern "C" {
746    pub fn GetGesturePinchVector() -> Vector2;
747}
748extern "C" {
749    pub fn GetGesturePinchAngle() -> f32;
750}
751extern "C" {
752    pub fn UpdateCamera(camera: *mut Camera, mode: ::std::os::raw::c_int);
753}
754extern "C" {
755    pub fn UpdateCameraPro(camera: *mut Camera, movement: Vector3, rotation: Vector3, zoom: f32);
756}
757extern "C" {
758    pub fn SetShapesTexture(texture: Texture2D, source: Rectangle);
759}
760extern "C" {
761    pub fn DrawPixel(posX: ::std::os::raw::c_int, posY: ::std::os::raw::c_int, color: Color);
762}
763extern "C" {
764    pub fn DrawPixelV(position: Vector2, color: Color);
765}
766extern "C" {
767    pub fn DrawLine(
768        startPosX: ::std::os::raw::c_int,
769        startPosY: ::std::os::raw::c_int,
770        endPosX: ::std::os::raw::c_int,
771        endPosY: ::std::os::raw::c_int,
772        color: Color,
773    );
774}
775extern "C" {
776    pub fn DrawLineV(startPos: Vector2, endPos: Vector2, color: Color);
777}
778extern "C" {
779    pub fn DrawLineEx(startPos: Vector2, endPos: Vector2, thick: f32, color: Color);
780}
781extern "C" {
782    pub fn DrawLineStrip(points: *mut Vector2, pointCount: ::std::os::raw::c_int, color: Color);
783}
784extern "C" {
785    pub fn DrawLineBezier(startPos: Vector2, endPos: Vector2, thick: f32, color: Color);
786}
787extern "C" {
788    pub fn DrawCircle(
789        centerX: ::std::os::raw::c_int,
790        centerY: ::std::os::raw::c_int,
791        radius: f32,
792        color: Color,
793    );
794}
795extern "C" {
796    pub fn DrawCircleSector(
797        center: Vector2,
798        radius: f32,
799        startAngle: f32,
800        endAngle: f32,
801        segments: ::std::os::raw::c_int,
802        color: Color,
803    );
804}
805extern "C" {
806    pub fn DrawCircleSectorLines(
807        center: Vector2,
808        radius: f32,
809        startAngle: f32,
810        endAngle: f32,
811        segments: ::std::os::raw::c_int,
812        color: Color,
813    );
814}
815extern "C" {
816    pub fn DrawCircleGradient(
817        centerX: ::std::os::raw::c_int,
818        centerY: ::std::os::raw::c_int,
819        radius: f32,
820        color1: Color,
821        color2: Color,
822    );
823}
824extern "C" {
825    pub fn DrawCircleV(center: Vector2, radius: f32, color: Color);
826}
827extern "C" {
828    pub fn DrawCircleLines(
829        centerX: ::std::os::raw::c_int,
830        centerY: ::std::os::raw::c_int,
831        radius: f32,
832        color: Color,
833    );
834}
835extern "C" {
836    pub fn DrawCircleLinesV(center: Vector2, radius: f32, color: Color);
837}
838extern "C" {
839    pub fn DrawEllipse(
840        centerX: ::std::os::raw::c_int,
841        centerY: ::std::os::raw::c_int,
842        radiusH: f32,
843        radiusV: f32,
844        color: Color,
845    );
846}
847extern "C" {
848    pub fn DrawEllipseLines(
849        centerX: ::std::os::raw::c_int,
850        centerY: ::std::os::raw::c_int,
851        radiusH: f32,
852        radiusV: f32,
853        color: Color,
854    );
855}
856extern "C" {
857    pub fn DrawRing(
858        center: Vector2,
859        innerRadius: f32,
860        outerRadius: f32,
861        startAngle: f32,
862        endAngle: f32,
863        segments: ::std::os::raw::c_int,
864        color: Color,
865    );
866}
867extern "C" {
868    pub fn DrawRingLines(
869        center: Vector2,
870        innerRadius: f32,
871        outerRadius: f32,
872        startAngle: f32,
873        endAngle: f32,
874        segments: ::std::os::raw::c_int,
875        color: Color,
876    );
877}
878extern "C" {
879    pub fn DrawRectangle(
880        posX: ::std::os::raw::c_int,
881        posY: ::std::os::raw::c_int,
882        width: ::std::os::raw::c_int,
883        height: ::std::os::raw::c_int,
884        color: Color,
885    );
886}
887extern "C" {
888    pub fn DrawRectangleV(position: Vector2, size: Vector2, color: Color);
889}
890extern "C" {
891    pub fn DrawRectangleRec(rec: Rectangle, color: Color);
892}
893extern "C" {
894    pub fn DrawRectanglePro(rec: Rectangle, origin: Vector2, rotation: f32, color: Color);
895}
896extern "C" {
897    pub fn DrawRectangleGradientV(
898        posX: ::std::os::raw::c_int,
899        posY: ::std::os::raw::c_int,
900        width: ::std::os::raw::c_int,
901        height: ::std::os::raw::c_int,
902        color1: Color,
903        color2: Color,
904    );
905}
906extern "C" {
907    pub fn DrawRectangleGradientH(
908        posX: ::std::os::raw::c_int,
909        posY: ::std::os::raw::c_int,
910        width: ::std::os::raw::c_int,
911        height: ::std::os::raw::c_int,
912        color1: Color,
913        color2: Color,
914    );
915}
916extern "C" {
917    pub fn DrawRectangleGradientEx(
918        rec: Rectangle,
919        col1: Color,
920        col2: Color,
921        col3: Color,
922        col4: Color,
923    );
924}
925extern "C" {
926    pub fn DrawRectangleLines(
927        posX: ::std::os::raw::c_int,
928        posY: ::std::os::raw::c_int,
929        width: ::std::os::raw::c_int,
930        height: ::std::os::raw::c_int,
931        color: Color,
932    );
933}
934extern "C" {
935    pub fn DrawRectangleLinesEx(rec: Rectangle, lineThick: f32, color: Color);
936}
937extern "C" {
938    pub fn DrawRectangleRounded(
939        rec: Rectangle,
940        roundness: f32,
941        segments: ::std::os::raw::c_int,
942        color: Color,
943    );
944}
945extern "C" {
946    pub fn DrawRectangleRoundedLines(
947        rec: Rectangle,
948        roundness: f32,
949        segments: ::std::os::raw::c_int,
950        lineThick: f32,
951        color: Color,
952    );
953}
954extern "C" {
955    pub fn DrawTriangle(v1: Vector2, v2: Vector2, v3: Vector2, color: Color);
956}
957extern "C" {
958    pub fn DrawTriangleLines(v1: Vector2, v2: Vector2, v3: Vector2, color: Color);
959}
960extern "C" {
961    pub fn DrawTriangleFan(points: *mut Vector2, pointCount: ::std::os::raw::c_int, color: Color);
962}
963extern "C" {
964    pub fn DrawTriangleStrip(points: *mut Vector2, pointCount: ::std::os::raw::c_int, color: Color);
965}
966extern "C" {
967    pub fn DrawPoly(
968        center: Vector2,
969        sides: ::std::os::raw::c_int,
970        radius: f32,
971        rotation: f32,
972        color: Color,
973    );
974}
975extern "C" {
976    pub fn DrawPolyLines(
977        center: Vector2,
978        sides: ::std::os::raw::c_int,
979        radius: f32,
980        rotation: f32,
981        color: Color,
982    );
983}
984extern "C" {
985    pub fn DrawPolyLinesEx(
986        center: Vector2,
987        sides: ::std::os::raw::c_int,
988        radius: f32,
989        rotation: f32,
990        lineThick: f32,
991        color: Color,
992    );
993}
994extern "C" {
995    pub fn DrawSplineLinear(
996        points: *mut Vector2,
997        pointCount: ::std::os::raw::c_int,
998        thick: f32,
999        color: Color,
1000    );
1001}
1002extern "C" {
1003    pub fn DrawSplineBasis(
1004        points: *mut Vector2,
1005        pointCount: ::std::os::raw::c_int,
1006        thick: f32,
1007        color: Color,
1008    );
1009}
1010extern "C" {
1011    pub fn DrawSplineCatmullRom(
1012        points: *mut Vector2,
1013        pointCount: ::std::os::raw::c_int,
1014        thick: f32,
1015        color: Color,
1016    );
1017}
1018extern "C" {
1019    pub fn DrawSplineBezierQuadratic(
1020        points: *mut Vector2,
1021        pointCount: ::std::os::raw::c_int,
1022        thick: f32,
1023        color: Color,
1024    );
1025}
1026extern "C" {
1027    pub fn DrawSplineBezierCubic(
1028        points: *mut Vector2,
1029        pointCount: ::std::os::raw::c_int,
1030        thick: f32,
1031        color: Color,
1032    );
1033}
1034extern "C" {
1035    pub fn DrawSplineSegmentLinear(p1: Vector2, p2: Vector2, thick: f32, color: Color);
1036}
1037extern "C" {
1038    pub fn DrawSplineSegmentBasis(
1039        p1: Vector2,
1040        p2: Vector2,
1041        p3: Vector2,
1042        p4: Vector2,
1043        thick: f32,
1044        color: Color,
1045    );
1046}
1047extern "C" {
1048    pub fn DrawSplineSegmentCatmullRom(
1049        p1: Vector2,
1050        p2: Vector2,
1051        p3: Vector2,
1052        p4: Vector2,
1053        thick: f32,
1054        color: Color,
1055    );
1056}
1057extern "C" {
1058    pub fn DrawSplineSegmentBezierQuadratic(
1059        p1: Vector2,
1060        c2: Vector2,
1061        p3: Vector2,
1062        thick: f32,
1063        color: Color,
1064    );
1065}
1066extern "C" {
1067    pub fn DrawSplineSegmentBezierCubic(
1068        p1: Vector2,
1069        c2: Vector2,
1070        c3: Vector2,
1071        p4: Vector2,
1072        thick: f32,
1073        color: Color,
1074    );
1075}
1076extern "C" {
1077    pub fn GetSplinePointLinear(startPos: Vector2, endPos: Vector2, t: f32) -> Vector2;
1078}
1079extern "C" {
1080    pub fn GetSplinePointBasis(
1081        p1: Vector2,
1082        p2: Vector2,
1083        p3: Vector2,
1084        p4: Vector2,
1085        t: f32,
1086    ) -> Vector2;
1087}
1088extern "C" {
1089    pub fn GetSplinePointCatmullRom(
1090        p1: Vector2,
1091        p2: Vector2,
1092        p3: Vector2,
1093        p4: Vector2,
1094        t: f32,
1095    ) -> Vector2;
1096}
1097extern "C" {
1098    pub fn GetSplinePointBezierQuad(p1: Vector2, c2: Vector2, p3: Vector2, t: f32) -> Vector2;
1099}
1100extern "C" {
1101    pub fn GetSplinePointBezierCubic(
1102        p1: Vector2,
1103        c2: Vector2,
1104        c3: Vector2,
1105        p4: Vector2,
1106        t: f32,
1107    ) -> Vector2;
1108}
1109extern "C" {
1110    pub fn CheckCollisionRecs(rec1: Rectangle, rec2: Rectangle) -> bool;
1111}
1112extern "C" {
1113    pub fn CheckCollisionCircles(
1114        center1: Vector2,
1115        radius1: f32,
1116        center2: Vector2,
1117        radius2: f32,
1118    ) -> bool;
1119}
1120extern "C" {
1121    pub fn CheckCollisionCircleRec(center: Vector2, radius: f32, rec: Rectangle) -> bool;
1122}
1123extern "C" {
1124    pub fn CheckCollisionPointRec(point: Vector2, rec: Rectangle) -> bool;
1125}
1126extern "C" {
1127    pub fn CheckCollisionPointCircle(point: Vector2, center: Vector2, radius: f32) -> bool;
1128}
1129extern "C" {
1130    pub fn CheckCollisionPointTriangle(
1131        point: Vector2,
1132        p1: Vector2,
1133        p2: Vector2,
1134        p3: Vector2,
1135    ) -> bool;
1136}
1137extern "C" {
1138    pub fn CheckCollisionPointPoly(
1139        point: Vector2,
1140        points: *mut Vector2,
1141        pointCount: ::std::os::raw::c_int,
1142    ) -> bool;
1143}
1144extern "C" {
1145    pub fn CheckCollisionLines(
1146        startPos1: Vector2,
1147        endPos1: Vector2,
1148        startPos2: Vector2,
1149        endPos2: Vector2,
1150        collisionPoint: *mut Vector2,
1151    ) -> bool;
1152}
1153extern "C" {
1154    pub fn CheckCollisionPointLine(
1155        point: Vector2,
1156        p1: Vector2,
1157        p2: Vector2,
1158        threshold: ::std::os::raw::c_int,
1159    ) -> bool;
1160}
1161extern "C" {
1162    pub fn GetCollisionRec(rec1: Rectangle, rec2: Rectangle) -> Rectangle;
1163}
1164extern "C" {
1165    pub fn LoadImage(fileName: *const ::std::os::raw::c_char) -> Image;
1166}
1167extern "C" {
1168    pub fn LoadImageRaw(
1169        fileName: *const ::std::os::raw::c_char,
1170        width: ::std::os::raw::c_int,
1171        height: ::std::os::raw::c_int,
1172        format: ::std::os::raw::c_int,
1173        headerSize: ::std::os::raw::c_int,
1174    ) -> Image;
1175}
1176extern "C" {
1177    pub fn LoadImageSvg(
1178        fileNameOrString: *const ::std::os::raw::c_char,
1179        width: ::std::os::raw::c_int,
1180        height: ::std::os::raw::c_int,
1181    ) -> Image;
1182}
1183extern "C" {
1184    pub fn LoadImageAnim(
1185        fileName: *const ::std::os::raw::c_char,
1186        frames: *mut ::std::os::raw::c_int,
1187    ) -> Image;
1188}
1189extern "C" {
1190    pub fn LoadImageFromMemory(
1191        fileType: *const ::std::os::raw::c_char,
1192        fileData: *const ::std::os::raw::c_uchar,
1193        dataSize: ::std::os::raw::c_int,
1194    ) -> Image;
1195}
1196extern "C" {
1197    pub fn LoadImageFromTexture(texture: Texture2D) -> Image;
1198}
1199extern "C" {
1200    pub fn LoadImageFromScreen() -> Image;
1201}
1202extern "C" {
1203    pub fn IsImageReady(image: Image) -> bool;
1204}
1205extern "C" {
1206    pub fn UnloadImage(image: Image);
1207}
1208extern "C" {
1209    pub fn ExportImage(image: Image, fileName: *const ::std::os::raw::c_char) -> bool;
1210}
1211extern "C" {
1212    pub fn ExportImageToMemory(
1213        image: Image,
1214        fileType: *const ::std::os::raw::c_char,
1215        fileSize: *mut ::std::os::raw::c_int,
1216    ) -> *mut ::std::os::raw::c_uchar;
1217}
1218extern "C" {
1219    pub fn ExportImageAsCode(image: Image, fileName: *const ::std::os::raw::c_char) -> bool;
1220}
1221extern "C" {
1222    pub fn GenImageColor(
1223        width: ::std::os::raw::c_int,
1224        height: ::std::os::raw::c_int,
1225        color: Color,
1226    ) -> Image;
1227}
1228extern "C" {
1229    pub fn GenImageGradientLinear(
1230        width: ::std::os::raw::c_int,
1231        height: ::std::os::raw::c_int,
1232        direction: ::std::os::raw::c_int,
1233        start: Color,
1234        end: Color,
1235    ) -> Image;
1236}
1237extern "C" {
1238    pub fn GenImageGradientRadial(
1239        width: ::std::os::raw::c_int,
1240        height: ::std::os::raw::c_int,
1241        density: f32,
1242        inner: Color,
1243        outer: Color,
1244    ) -> Image;
1245}
1246extern "C" {
1247    pub fn GenImageGradientSquare(
1248        width: ::std::os::raw::c_int,
1249        height: ::std::os::raw::c_int,
1250        density: f32,
1251        inner: Color,
1252        outer: Color,
1253    ) -> Image;
1254}
1255extern "C" {
1256    pub fn GenImageChecked(
1257        width: ::std::os::raw::c_int,
1258        height: ::std::os::raw::c_int,
1259        checksX: ::std::os::raw::c_int,
1260        checksY: ::std::os::raw::c_int,
1261        col1: Color,
1262        col2: Color,
1263    ) -> Image;
1264}
1265extern "C" {
1266    pub fn GenImageWhiteNoise(
1267        width: ::std::os::raw::c_int,
1268        height: ::std::os::raw::c_int,
1269        factor: f32,
1270    ) -> Image;
1271}
1272extern "C" {
1273    pub fn GenImagePerlinNoise(
1274        width: ::std::os::raw::c_int,
1275        height: ::std::os::raw::c_int,
1276        offsetX: ::std::os::raw::c_int,
1277        offsetY: ::std::os::raw::c_int,
1278        scale: f32,
1279    ) -> Image;
1280}
1281extern "C" {
1282    pub fn GenImageCellular(
1283        width: ::std::os::raw::c_int,
1284        height: ::std::os::raw::c_int,
1285        tileSize: ::std::os::raw::c_int,
1286    ) -> Image;
1287}
1288extern "C" {
1289    pub fn GenImageText(
1290        width: ::std::os::raw::c_int,
1291        height: ::std::os::raw::c_int,
1292        text: *const ::std::os::raw::c_char,
1293    ) -> Image;
1294}
1295extern "C" {
1296    pub fn ImageCopy(image: Image) -> Image;
1297}
1298extern "C" {
1299    pub fn ImageFromImage(image: Image, rec: Rectangle) -> Image;
1300}
1301extern "C" {
1302    pub fn ImageText(
1303        text: *const ::std::os::raw::c_char,
1304        fontSize: ::std::os::raw::c_int,
1305        color: Color,
1306    ) -> Image;
1307}
1308extern "C" {
1309    pub fn ImageTextEx(
1310        font: Font,
1311        text: *const ::std::os::raw::c_char,
1312        fontSize: f32,
1313        spacing: f32,
1314        tint: Color,
1315    ) -> Image;
1316}
1317extern "C" {
1318    pub fn ImageFormat(image: *mut Image, newFormat: ::std::os::raw::c_int);
1319}
1320extern "C" {
1321    pub fn ImageToPOT(image: *mut Image, fill: Color);
1322}
1323extern "C" {
1324    pub fn ImageCrop(image: *mut Image, crop: Rectangle);
1325}
1326extern "C" {
1327    pub fn ImageAlphaCrop(image: *mut Image, threshold: f32);
1328}
1329extern "C" {
1330    pub fn ImageAlphaClear(image: *mut Image, color: Color, threshold: f32);
1331}
1332extern "C" {
1333    pub fn ImageAlphaMask(image: *mut Image, alphaMask: Image);
1334}
1335extern "C" {
1336    pub fn ImageAlphaPremultiply(image: *mut Image);
1337}
1338extern "C" {
1339    pub fn ImageBlurGaussian(image: *mut Image, blurSize: ::std::os::raw::c_int);
1340}
1341extern "C" {
1342    pub fn ImageResize(
1343        image: *mut Image,
1344        newWidth: ::std::os::raw::c_int,
1345        newHeight: ::std::os::raw::c_int,
1346    );
1347}
1348extern "C" {
1349    pub fn ImageResizeNN(
1350        image: *mut Image,
1351        newWidth: ::std::os::raw::c_int,
1352        newHeight: ::std::os::raw::c_int,
1353    );
1354}
1355extern "C" {
1356    pub fn ImageResizeCanvas(
1357        image: *mut Image,
1358        newWidth: ::std::os::raw::c_int,
1359        newHeight: ::std::os::raw::c_int,
1360        offsetX: ::std::os::raw::c_int,
1361        offsetY: ::std::os::raw::c_int,
1362        fill: Color,
1363    );
1364}
1365extern "C" {
1366    pub fn ImageMipmaps(image: *mut Image);
1367}
1368extern "C" {
1369    pub fn ImageDither(
1370        image: *mut Image,
1371        rBpp: ::std::os::raw::c_int,
1372        gBpp: ::std::os::raw::c_int,
1373        bBpp: ::std::os::raw::c_int,
1374        aBpp: ::std::os::raw::c_int,
1375    );
1376}
1377extern "C" {
1378    pub fn ImageFlipVertical(image: *mut Image);
1379}
1380extern "C" {
1381    pub fn ImageFlipHorizontal(image: *mut Image);
1382}
1383extern "C" {
1384    pub fn ImageRotate(image: *mut Image, degrees: ::std::os::raw::c_int);
1385}
1386extern "C" {
1387    pub fn ImageRotateCW(image: *mut Image);
1388}
1389extern "C" {
1390    pub fn ImageRotateCCW(image: *mut Image);
1391}
1392extern "C" {
1393    pub fn ImageColorTint(image: *mut Image, color: Color);
1394}
1395extern "C" {
1396    pub fn ImageColorInvert(image: *mut Image);
1397}
1398extern "C" {
1399    pub fn ImageColorGrayscale(image: *mut Image);
1400}
1401extern "C" {
1402    pub fn ImageColorContrast(image: *mut Image, contrast: f32);
1403}
1404extern "C" {
1405    pub fn ImageColorBrightness(image: *mut Image, brightness: ::std::os::raw::c_int);
1406}
1407extern "C" {
1408    pub fn ImageColorReplace(image: *mut Image, color: Color, replace: Color);
1409}
1410extern "C" {
1411    pub fn LoadImageColors(image: Image) -> *mut Color;
1412}
1413extern "C" {
1414    pub fn LoadImagePalette(
1415        image: Image,
1416        maxPaletteSize: ::std::os::raw::c_int,
1417        colorCount: *mut ::std::os::raw::c_int,
1418    ) -> *mut Color;
1419}
1420extern "C" {
1421    pub fn UnloadImageColors(colors: *mut Color);
1422}
1423extern "C" {
1424    pub fn UnloadImagePalette(colors: *mut Color);
1425}
1426extern "C" {
1427    pub fn GetImageAlphaBorder(image: Image, threshold: f32) -> Rectangle;
1428}
1429extern "C" {
1430    pub fn GetImageColor(image: Image, x: ::std::os::raw::c_int, y: ::std::os::raw::c_int)
1431        -> Color;
1432}
1433extern "C" {
1434    pub fn ImageClearBackground(dst: *mut Image, color: Color);
1435}
1436extern "C" {
1437    pub fn ImageDrawPixel(
1438        dst: *mut Image,
1439        posX: ::std::os::raw::c_int,
1440        posY: ::std::os::raw::c_int,
1441        color: Color,
1442    );
1443}
1444extern "C" {
1445    pub fn ImageDrawPixelV(dst: *mut Image, position: Vector2, color: Color);
1446}
1447extern "C" {
1448    pub fn ImageDrawLine(
1449        dst: *mut Image,
1450        startPosX: ::std::os::raw::c_int,
1451        startPosY: ::std::os::raw::c_int,
1452        endPosX: ::std::os::raw::c_int,
1453        endPosY: ::std::os::raw::c_int,
1454        color: Color,
1455    );
1456}
1457extern "C" {
1458    pub fn ImageDrawLineV(dst: *mut Image, start: Vector2, end: Vector2, color: Color);
1459}
1460extern "C" {
1461    pub fn ImageDrawCircle(
1462        dst: *mut Image,
1463        centerX: ::std::os::raw::c_int,
1464        centerY: ::std::os::raw::c_int,
1465        radius: ::std::os::raw::c_int,
1466        color: Color,
1467    );
1468}
1469extern "C" {
1470    pub fn ImageDrawCircleV(
1471        dst: *mut Image,
1472        center: Vector2,
1473        radius: ::std::os::raw::c_int,
1474        color: Color,
1475    );
1476}
1477extern "C" {
1478    pub fn ImageDrawCircleLines(
1479        dst: *mut Image,
1480        centerX: ::std::os::raw::c_int,
1481        centerY: ::std::os::raw::c_int,
1482        radius: ::std::os::raw::c_int,
1483        color: Color,
1484    );
1485}
1486extern "C" {
1487    pub fn ImageDrawCircleLinesV(
1488        dst: *mut Image,
1489        center: Vector2,
1490        radius: ::std::os::raw::c_int,
1491        color: Color,
1492    );
1493}
1494extern "C" {
1495    pub fn ImageDrawRectangle(
1496        dst: *mut Image,
1497        posX: ::std::os::raw::c_int,
1498        posY: ::std::os::raw::c_int,
1499        width: ::std::os::raw::c_int,
1500        height: ::std::os::raw::c_int,
1501        color: Color,
1502    );
1503}
1504extern "C" {
1505    pub fn ImageDrawRectangleV(dst: *mut Image, position: Vector2, size: Vector2, color: Color);
1506}
1507extern "C" {
1508    pub fn ImageDrawRectangleRec(dst: *mut Image, rec: Rectangle, color: Color);
1509}
1510extern "C" {
1511    pub fn ImageDrawRectangleLines(
1512        dst: *mut Image,
1513        rec: Rectangle,
1514        thick: ::std::os::raw::c_int,
1515        color: Color,
1516    );
1517}
1518extern "C" {
1519    pub fn ImageDraw(
1520        dst: *mut Image,
1521        src: Image,
1522        srcRec: Rectangle,
1523        dstRec: Rectangle,
1524        tint: Color,
1525    );
1526}
1527extern "C" {
1528    pub fn ImageDrawText(
1529        dst: *mut Image,
1530        text: *const ::std::os::raw::c_char,
1531        posX: ::std::os::raw::c_int,
1532        posY: ::std::os::raw::c_int,
1533        fontSize: ::std::os::raw::c_int,
1534        color: Color,
1535    );
1536}
1537extern "C" {
1538    pub fn ImageDrawTextEx(
1539        dst: *mut Image,
1540        font: Font,
1541        text: *const ::std::os::raw::c_char,
1542        position: Vector2,
1543        fontSize: f32,
1544        spacing: f32,
1545        tint: Color,
1546    );
1547}
1548extern "C" {
1549    pub fn LoadTexture(fileName: *const ::std::os::raw::c_char) -> Texture2D;
1550}
1551extern "C" {
1552    pub fn LoadTextureFromImage(image: Image) -> Texture2D;
1553}
1554extern "C" {
1555    pub fn LoadTextureCubemap(image: Image, layout: ::std::os::raw::c_int) -> TextureCubemap;
1556}
1557extern "C" {
1558    pub fn LoadRenderTexture(
1559        width: ::std::os::raw::c_int,
1560        height: ::std::os::raw::c_int,
1561    ) -> RenderTexture2D;
1562}
1563extern "C" {
1564    pub fn IsTextureReady(texture: Texture2D) -> bool;
1565}
1566extern "C" {
1567    pub fn UnloadTexture(texture: Texture2D);
1568}
1569extern "C" {
1570    pub fn IsRenderTextureReady(target: RenderTexture2D) -> bool;
1571}
1572extern "C" {
1573    pub fn UnloadRenderTexture(target: RenderTexture2D);
1574}
1575extern "C" {
1576    pub fn UpdateTexture(texture: Texture2D, pixels: *const ::std::os::raw::c_void);
1577}
1578extern "C" {
1579    pub fn UpdateTextureRec(
1580        texture: Texture2D,
1581        rec: Rectangle,
1582        pixels: *const ::std::os::raw::c_void,
1583    );
1584}
1585extern "C" {
1586    pub fn GenTextureMipmaps(texture: *mut Texture2D);
1587}
1588extern "C" {
1589    pub fn SetTextureFilter(texture: Texture2D, filter: ::std::os::raw::c_int);
1590}
1591extern "C" {
1592    pub fn SetTextureWrap(texture: Texture2D, wrap: ::std::os::raw::c_int);
1593}
1594extern "C" {
1595    pub fn DrawTexture(
1596        texture: Texture2D,
1597        posX: ::std::os::raw::c_int,
1598        posY: ::std::os::raw::c_int,
1599        tint: Color,
1600    );
1601}
1602extern "C" {
1603    pub fn DrawTextureV(texture: Texture2D, position: Vector2, tint: Color);
1604}
1605extern "C" {
1606    pub fn DrawTextureEx(
1607        texture: Texture2D,
1608        position: Vector2,
1609        rotation: f32,
1610        scale: f32,
1611        tint: Color,
1612    );
1613}
1614extern "C" {
1615    pub fn DrawTextureRec(texture: Texture2D, source: Rectangle, position: Vector2, tint: Color);
1616}
1617extern "C" {
1618    pub fn DrawTexturePro(
1619        texture: Texture2D,
1620        source: Rectangle,
1621        dest: Rectangle,
1622        origin: Vector2,
1623        rotation: f32,
1624        tint: Color,
1625    );
1626}
1627extern "C" {
1628    pub fn DrawTextureNPatch(
1629        texture: Texture2D,
1630        nPatchInfo: NPatchInfo,
1631        dest: Rectangle,
1632        origin: Vector2,
1633        rotation: f32,
1634        tint: Color,
1635    );
1636}
1637extern "C" {
1638    pub fn Fade(color: Color, alpha: f32) -> Color;
1639}
1640extern "C" {
1641    pub fn ColorToInt(color: Color) -> ::std::os::raw::c_int;
1642}
1643extern "C" {
1644    pub fn ColorNormalize(color: Color) -> Vector4;
1645}
1646extern "C" {
1647    pub fn ColorFromNormalized(normalized: Vector4) -> Color;
1648}
1649extern "C" {
1650    pub fn ColorToHSV(color: Color) -> Vector3;
1651}
1652extern "C" {
1653    pub fn ColorFromHSV(hue: f32, saturation: f32, value: f32) -> Color;
1654}
1655extern "C" {
1656    pub fn ColorTint(color: Color, tint: Color) -> Color;
1657}
1658extern "C" {
1659    pub fn ColorBrightness(color: Color, factor: f32) -> Color;
1660}
1661extern "C" {
1662    pub fn ColorContrast(color: Color, contrast: f32) -> Color;
1663}
1664extern "C" {
1665    pub fn ColorAlpha(color: Color, alpha: f32) -> Color;
1666}
1667extern "C" {
1668    pub fn ColorAlphaBlend(dst: Color, src: Color, tint: Color) -> Color;
1669}
1670extern "C" {
1671    pub fn GetColor(hexValue: ::std::os::raw::c_uint) -> Color;
1672}
1673extern "C" {
1674    pub fn GetPixelColor(
1675        srcPtr: *mut ::std::os::raw::c_void,
1676        format: ::std::os::raw::c_int,
1677    ) -> Color;
1678}
1679extern "C" {
1680    pub fn SetPixelColor(
1681        dstPtr: *mut ::std::os::raw::c_void,
1682        color: Color,
1683        format: ::std::os::raw::c_int,
1684    );
1685}
1686extern "C" {
1687    pub fn GetPixelDataSize(
1688        width: ::std::os::raw::c_int,
1689        height: ::std::os::raw::c_int,
1690        format: ::std::os::raw::c_int,
1691    ) -> ::std::os::raw::c_int;
1692}
1693extern "C" {
1694    pub fn GetFontDefault() -> Font;
1695}
1696extern "C" {
1697    pub fn LoadFont(fileName: *const ::std::os::raw::c_char) -> Font;
1698}
1699extern "C" {
1700    pub fn LoadFontEx(
1701        fileName: *const ::std::os::raw::c_char,
1702        fontSize: ::std::os::raw::c_int,
1703        codepoints: *mut ::std::os::raw::c_int,
1704        codepointCount: ::std::os::raw::c_int,
1705    ) -> Font;
1706}
1707extern "C" {
1708    pub fn LoadFontFromImage(image: Image, key: Color, firstChar: ::std::os::raw::c_int) -> Font;
1709}
1710extern "C" {
1711    pub fn LoadFontFromMemory(
1712        fileType: *const ::std::os::raw::c_char,
1713        fileData: *const ::std::os::raw::c_uchar,
1714        dataSize: ::std::os::raw::c_int,
1715        fontSize: ::std::os::raw::c_int,
1716        codepoints: *mut ::std::os::raw::c_int,
1717        codepointCount: ::std::os::raw::c_int,
1718    ) -> Font;
1719}
1720extern "C" {
1721    pub fn IsFontReady(font: Font) -> bool;
1722}
1723extern "C" {
1724    pub fn LoadFontData(
1725        fileData: *const ::std::os::raw::c_uchar,
1726        dataSize: ::std::os::raw::c_int,
1727        fontSize: ::std::os::raw::c_int,
1728        codepoints: *mut ::std::os::raw::c_int,
1729        codepointCount: ::std::os::raw::c_int,
1730        type_: ::std::os::raw::c_int,
1731    ) -> *mut GlyphInfo;
1732}
1733extern "C" {
1734    pub fn GenImageFontAtlas(
1735        glyphs: *const GlyphInfo,
1736        glyphRecs: *mut *mut Rectangle,
1737        glyphCount: ::std::os::raw::c_int,
1738        fontSize: ::std::os::raw::c_int,
1739        padding: ::std::os::raw::c_int,
1740        packMethod: ::std::os::raw::c_int,
1741    ) -> Image;
1742}
1743extern "C" {
1744    pub fn UnloadFontData(glyphs: *mut GlyphInfo, glyphCount: ::std::os::raw::c_int);
1745}
1746extern "C" {
1747    pub fn UnloadFont(font: Font);
1748}
1749extern "C" {
1750    pub fn ExportFontAsCode(font: Font, fileName: *const ::std::os::raw::c_char) -> bool;
1751}
1752extern "C" {
1753    pub fn DrawFPS(posX: ::std::os::raw::c_int, posY: ::std::os::raw::c_int);
1754}
1755extern "C" {
1756    pub fn DrawText(
1757        text: *const ::std::os::raw::c_char,
1758        posX: ::std::os::raw::c_int,
1759        posY: ::std::os::raw::c_int,
1760        fontSize: ::std::os::raw::c_int,
1761        color: Color,
1762    );
1763}
1764extern "C" {
1765    pub fn DrawTextEx(
1766        font: Font,
1767        text: *const ::std::os::raw::c_char,
1768        position: Vector2,
1769        fontSize: f32,
1770        spacing: f32,
1771        tint: Color,
1772    );
1773}
1774extern "C" {
1775    pub fn DrawTextPro(
1776        font: Font,
1777        text: *const ::std::os::raw::c_char,
1778        position: Vector2,
1779        origin: Vector2,
1780        rotation: f32,
1781        fontSize: f32,
1782        spacing: f32,
1783        tint: Color,
1784    );
1785}
1786extern "C" {
1787    pub fn DrawTextCodepoint(
1788        font: Font,
1789        codepoint: ::std::os::raw::c_int,
1790        position: Vector2,
1791        fontSize: f32,
1792        tint: Color,
1793    );
1794}
1795extern "C" {
1796    pub fn DrawTextCodepoints(
1797        font: Font,
1798        codepoints: *const ::std::os::raw::c_int,
1799        codepointCount: ::std::os::raw::c_int,
1800        position: Vector2,
1801        fontSize: f32,
1802        spacing: f32,
1803        tint: Color,
1804    );
1805}
1806extern "C" {
1807    pub fn SetTextLineSpacing(spacing: ::std::os::raw::c_int);
1808}
1809extern "C" {
1810    pub fn MeasureText(
1811        text: *const ::std::os::raw::c_char,
1812        fontSize: ::std::os::raw::c_int,
1813    ) -> ::std::os::raw::c_int;
1814}
1815extern "C" {
1816    pub fn MeasureTextEx(
1817        font: Font,
1818        text: *const ::std::os::raw::c_char,
1819        fontSize: f32,
1820        spacing: f32,
1821    ) -> Vector2;
1822}
1823extern "C" {
1824    pub fn GetGlyphIndex(font: Font, codepoint: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
1825}
1826extern "C" {
1827    pub fn GetGlyphInfo(font: Font, codepoint: ::std::os::raw::c_int) -> GlyphInfo;
1828}
1829extern "C" {
1830    pub fn GetGlyphAtlasRec(font: Font, codepoint: ::std::os::raw::c_int) -> Rectangle;
1831}
1832extern "C" {
1833    pub fn LoadUTF8(
1834        codepoints: *const ::std::os::raw::c_int,
1835        length: ::std::os::raw::c_int,
1836    ) -> *mut ::std::os::raw::c_char;
1837}
1838extern "C" {
1839    pub fn UnloadUTF8(text: *mut ::std::os::raw::c_char);
1840}
1841extern "C" {
1842    pub fn LoadCodepoints(
1843        text: *const ::std::os::raw::c_char,
1844        count: *mut ::std::os::raw::c_int,
1845    ) -> *mut ::std::os::raw::c_int;
1846}
1847extern "C" {
1848    pub fn UnloadCodepoints(codepoints: *mut ::std::os::raw::c_int);
1849}
1850extern "C" {
1851    pub fn GetCodepointCount(text: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
1852}
1853extern "C" {
1854    pub fn GetCodepoint(
1855        text: *const ::std::os::raw::c_char,
1856        codepointSize: *mut ::std::os::raw::c_int,
1857    ) -> ::std::os::raw::c_int;
1858}
1859extern "C" {
1860    pub fn GetCodepointNext(
1861        text: *const ::std::os::raw::c_char,
1862        codepointSize: *mut ::std::os::raw::c_int,
1863    ) -> ::std::os::raw::c_int;
1864}
1865extern "C" {
1866    pub fn GetCodepointPrevious(
1867        text: *const ::std::os::raw::c_char,
1868        codepointSize: *mut ::std::os::raw::c_int,
1869    ) -> ::std::os::raw::c_int;
1870}
1871extern "C" {
1872    pub fn CodepointToUTF8(
1873        codepoint: ::std::os::raw::c_int,
1874        utf8Size: *mut ::std::os::raw::c_int,
1875    ) -> *const ::std::os::raw::c_char;
1876}
1877extern "C" {
1878    pub fn TextCopy(
1879        dst: *mut ::std::os::raw::c_char,
1880        src: *const ::std::os::raw::c_char,
1881    ) -> ::std::os::raw::c_int;
1882}
1883extern "C" {
1884    pub fn TextIsEqual(
1885        text1: *const ::std::os::raw::c_char,
1886        text2: *const ::std::os::raw::c_char,
1887    ) -> bool;
1888}
1889extern "C" {
1890    pub fn TextLength(text: *const ::std::os::raw::c_char) -> ::std::os::raw::c_uint;
1891}
1892extern "C" {
1893    pub fn TextFormat(text: *const ::std::os::raw::c_char, ...) -> *const ::std::os::raw::c_char;
1894}
1895extern "C" {
1896    pub fn TextSubtext(
1897        text: *const ::std::os::raw::c_char,
1898        position: ::std::os::raw::c_int,
1899        length: ::std::os::raw::c_int,
1900    ) -> *const ::std::os::raw::c_char;
1901}
1902extern "C" {
1903    pub fn TextReplace(
1904        text: *mut ::std::os::raw::c_char,
1905        replace: *const ::std::os::raw::c_char,
1906        by: *const ::std::os::raw::c_char,
1907    ) -> *mut ::std::os::raw::c_char;
1908}
1909extern "C" {
1910    pub fn TextInsert(
1911        text: *const ::std::os::raw::c_char,
1912        insert: *const ::std::os::raw::c_char,
1913        position: ::std::os::raw::c_int,
1914    ) -> *mut ::std::os::raw::c_char;
1915}
1916extern "C" {
1917    pub fn TextJoin(
1918        textList: *mut *const ::std::os::raw::c_char,
1919        count: ::std::os::raw::c_int,
1920        delimiter: *const ::std::os::raw::c_char,
1921    ) -> *const ::std::os::raw::c_char;
1922}
1923extern "C" {
1924    pub fn TextSplit(
1925        text: *const ::std::os::raw::c_char,
1926        delimiter: ::std::os::raw::c_char,
1927        count: *mut ::std::os::raw::c_int,
1928    ) -> *mut *const ::std::os::raw::c_char;
1929}
1930extern "C" {
1931    pub fn TextAppend(
1932        text: *mut ::std::os::raw::c_char,
1933        append: *const ::std::os::raw::c_char,
1934        position: *mut ::std::os::raw::c_int,
1935    );
1936}
1937extern "C" {
1938    pub fn TextFindIndex(
1939        text: *const ::std::os::raw::c_char,
1940        find: *const ::std::os::raw::c_char,
1941    ) -> ::std::os::raw::c_int;
1942}
1943extern "C" {
1944    pub fn TextToUpper(text: *const ::std::os::raw::c_char) -> *const ::std::os::raw::c_char;
1945}
1946extern "C" {
1947    pub fn TextToLower(text: *const ::std::os::raw::c_char) -> *const ::std::os::raw::c_char;
1948}
1949extern "C" {
1950    pub fn TextToPascal(text: *const ::std::os::raw::c_char) -> *const ::std::os::raw::c_char;
1951}
1952extern "C" {
1953    pub fn TextToInteger(text: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
1954}
1955extern "C" {
1956    pub fn DrawLine3D(startPos: Vector3, endPos: Vector3, color: Color);
1957}
1958extern "C" {
1959    pub fn DrawPoint3D(position: Vector3, color: Color);
1960}
1961extern "C" {
1962    pub fn DrawCircle3D(
1963        center: Vector3,
1964        radius: f32,
1965        rotationAxis: Vector3,
1966        rotationAngle: f32,
1967        color: Color,
1968    );
1969}
1970extern "C" {
1971    pub fn DrawTriangle3D(v1: Vector3, v2: Vector3, v3: Vector3, color: Color);
1972}
1973extern "C" {
1974    pub fn DrawTriangleStrip3D(
1975        points: *mut Vector3,
1976        pointCount: ::std::os::raw::c_int,
1977        color: Color,
1978    );
1979}
1980extern "C" {
1981    pub fn DrawCube(position: Vector3, width: f32, height: f32, length: f32, color: Color);
1982}
1983extern "C" {
1984    pub fn DrawCubeV(position: Vector3, size: Vector3, color: Color);
1985}
1986extern "C" {
1987    pub fn DrawCubeWires(position: Vector3, width: f32, height: f32, length: f32, color: Color);
1988}
1989extern "C" {
1990    pub fn DrawCubeWiresV(position: Vector3, size: Vector3, color: Color);
1991}
1992extern "C" {
1993    pub fn DrawSphere(centerPos: Vector3, radius: f32, color: Color);
1994}
1995extern "C" {
1996    pub fn DrawSphereEx(
1997        centerPos: Vector3,
1998        radius: f32,
1999        rings: ::std::os::raw::c_int,
2000        slices: ::std::os::raw::c_int,
2001        color: Color,
2002    );
2003}
2004extern "C" {
2005    pub fn DrawSphereWires(
2006        centerPos: Vector3,
2007        radius: f32,
2008        rings: ::std::os::raw::c_int,
2009        slices: ::std::os::raw::c_int,
2010        color: Color,
2011    );
2012}
2013extern "C" {
2014    pub fn DrawCylinder(
2015        position: Vector3,
2016        radiusTop: f32,
2017        radiusBottom: f32,
2018        height: f32,
2019        slices: ::std::os::raw::c_int,
2020        color: Color,
2021    );
2022}
2023extern "C" {
2024    pub fn DrawCylinderEx(
2025        startPos: Vector3,
2026        endPos: Vector3,
2027        startRadius: f32,
2028        endRadius: f32,
2029        sides: ::std::os::raw::c_int,
2030        color: Color,
2031    );
2032}
2033extern "C" {
2034    pub fn DrawCylinderWires(
2035        position: Vector3,
2036        radiusTop: f32,
2037        radiusBottom: f32,
2038        height: f32,
2039        slices: ::std::os::raw::c_int,
2040        color: Color,
2041    );
2042}
2043extern "C" {
2044    pub fn DrawCylinderWiresEx(
2045        startPos: Vector3,
2046        endPos: Vector3,
2047        startRadius: f32,
2048        endRadius: f32,
2049        sides: ::std::os::raw::c_int,
2050        color: Color,
2051    );
2052}
2053extern "C" {
2054    pub fn DrawCapsule(
2055        startPos: Vector3,
2056        endPos: Vector3,
2057        radius: f32,
2058        slices: ::std::os::raw::c_int,
2059        rings: ::std::os::raw::c_int,
2060        color: Color,
2061    );
2062}
2063extern "C" {
2064    pub fn DrawCapsuleWires(
2065        startPos: Vector3,
2066        endPos: Vector3,
2067        radius: f32,
2068        slices: ::std::os::raw::c_int,
2069        rings: ::std::os::raw::c_int,
2070        color: Color,
2071    );
2072}
2073extern "C" {
2074    pub fn DrawPlane(centerPos: Vector3, size: Vector2, color: Color);
2075}
2076extern "C" {
2077    pub fn DrawRay(ray: Ray, color: Color);
2078}
2079extern "C" {
2080    pub fn DrawGrid(slices: ::std::os::raw::c_int, spacing: f32);
2081}
2082extern "C" {
2083    pub fn LoadModel(fileName: *const ::std::os::raw::c_char) -> Model;
2084}
2085extern "C" {
2086    pub fn LoadModelFromMesh(mesh: Mesh) -> Model;
2087}
2088extern "C" {
2089    pub fn IsModelReady(model: Model) -> bool;
2090}
2091extern "C" {
2092    pub fn UnloadModel(model: Model);
2093}
2094extern "C" {
2095    pub fn GetModelBoundingBox(model: Model) -> BoundingBox;
2096}
2097extern "C" {
2098    pub fn DrawModel(model: Model, position: Vector3, scale: f32, tint: Color);
2099}
2100extern "C" {
2101    pub fn DrawModelEx(
2102        model: Model,
2103        position: Vector3,
2104        rotationAxis: Vector3,
2105        rotationAngle: f32,
2106        scale: Vector3,
2107        tint: Color,
2108    );
2109}
2110extern "C" {
2111    pub fn DrawModelWires(model: Model, position: Vector3, scale: f32, tint: Color);
2112}
2113extern "C" {
2114    pub fn DrawModelWiresEx(
2115        model: Model,
2116        position: Vector3,
2117        rotationAxis: Vector3,
2118        rotationAngle: f32,
2119        scale: Vector3,
2120        tint: Color,
2121    );
2122}
2123extern "C" {
2124    pub fn DrawBoundingBox(box_: BoundingBox, color: Color);
2125}
2126extern "C" {
2127    pub fn DrawBillboard(
2128        camera: Camera,
2129        texture: Texture2D,
2130        position: Vector3,
2131        size: f32,
2132        tint: Color,
2133    );
2134}
2135extern "C" {
2136    pub fn DrawBillboardRec(
2137        camera: Camera,
2138        texture: Texture2D,
2139        source: Rectangle,
2140        position: Vector3,
2141        size: Vector2,
2142        tint: Color,
2143    );
2144}
2145extern "C" {
2146    pub fn DrawBillboardPro(
2147        camera: Camera,
2148        texture: Texture2D,
2149        source: Rectangle,
2150        position: Vector3,
2151        up: Vector3,
2152        size: Vector2,
2153        origin: Vector2,
2154        rotation: f32,
2155        tint: Color,
2156    );
2157}
2158extern "C" {
2159    pub fn UploadMesh(mesh: *mut Mesh, dynamic: bool);
2160}
2161extern "C" {
2162    pub fn UpdateMeshBuffer(
2163        mesh: Mesh,
2164        index: ::std::os::raw::c_int,
2165        data: *const ::std::os::raw::c_void,
2166        dataSize: ::std::os::raw::c_int,
2167        offset: ::std::os::raw::c_int,
2168    );
2169}
2170extern "C" {
2171    pub fn UnloadMesh(mesh: Mesh);
2172}
2173extern "C" {
2174    pub fn DrawMesh(mesh: Mesh, material: Material, transform: Matrix);
2175}
2176extern "C" {
2177    pub fn DrawMeshInstanced(
2178        mesh: Mesh,
2179        material: Material,
2180        transforms: *const Matrix,
2181        instances: ::std::os::raw::c_int,
2182    );
2183}
2184extern "C" {
2185    pub fn ExportMesh(mesh: Mesh, fileName: *const ::std::os::raw::c_char) -> bool;
2186}
2187extern "C" {
2188    pub fn GetMeshBoundingBox(mesh: Mesh) -> BoundingBox;
2189}
2190extern "C" {
2191    pub fn GenMeshTangents(mesh: *mut Mesh);
2192}
2193extern "C" {
2194    pub fn GenMeshPoly(sides: ::std::os::raw::c_int, radius: f32) -> Mesh;
2195}
2196extern "C" {
2197    pub fn GenMeshPlane(
2198        width: f32,
2199        length: f32,
2200        resX: ::std::os::raw::c_int,
2201        resZ: ::std::os::raw::c_int,
2202    ) -> Mesh;
2203}
2204extern "C" {
2205    pub fn GenMeshCube(width: f32, height: f32, length: f32) -> Mesh;
2206}
2207extern "C" {
2208    pub fn GenMeshSphere(
2209        radius: f32,
2210        rings: ::std::os::raw::c_int,
2211        slices: ::std::os::raw::c_int,
2212    ) -> Mesh;
2213}
2214extern "C" {
2215    pub fn GenMeshHemiSphere(
2216        radius: f32,
2217        rings: ::std::os::raw::c_int,
2218        slices: ::std::os::raw::c_int,
2219    ) -> Mesh;
2220}
2221extern "C" {
2222    pub fn GenMeshCylinder(radius: f32, height: f32, slices: ::std::os::raw::c_int) -> Mesh;
2223}
2224extern "C" {
2225    pub fn GenMeshCone(radius: f32, height: f32, slices: ::std::os::raw::c_int) -> Mesh;
2226}
2227extern "C" {
2228    pub fn GenMeshTorus(
2229        radius: f32,
2230        size: f32,
2231        radSeg: ::std::os::raw::c_int,
2232        sides: ::std::os::raw::c_int,
2233    ) -> Mesh;
2234}
2235extern "C" {
2236    pub fn GenMeshKnot(
2237        radius: f32,
2238        size: f32,
2239        radSeg: ::std::os::raw::c_int,
2240        sides: ::std::os::raw::c_int,
2241    ) -> Mesh;
2242}
2243extern "C" {
2244    pub fn GenMeshHeightmap(heightmap: Image, size: Vector3) -> Mesh;
2245}
2246extern "C" {
2247    pub fn GenMeshCubicmap(cubicmap: Image, cubeSize: Vector3) -> Mesh;
2248}
2249extern "C" {
2250    pub fn LoadMaterials(
2251        fileName: *const ::std::os::raw::c_char,
2252        materialCount: *mut ::std::os::raw::c_int,
2253    ) -> *mut Material;
2254}
2255extern "C" {
2256    pub fn LoadMaterialDefault() -> Material;
2257}
2258extern "C" {
2259    pub fn IsMaterialReady(material: Material) -> bool;
2260}
2261extern "C" {
2262    pub fn UnloadMaterial(material: Material);
2263}
2264extern "C" {
2265    pub fn SetMaterialTexture(
2266        material: *mut Material,
2267        mapType: ::std::os::raw::c_int,
2268        texture: Texture2D,
2269    );
2270}
2271extern "C" {
2272    pub fn SetModelMeshMaterial(
2273        model: *mut Model,
2274        meshId: ::std::os::raw::c_int,
2275        materialId: ::std::os::raw::c_int,
2276    );
2277}
2278extern "C" {
2279    pub fn LoadModelAnimations(
2280        fileName: *const ::std::os::raw::c_char,
2281        animCount: *mut ::std::os::raw::c_int,
2282    ) -> *mut ModelAnimation;
2283}
2284extern "C" {
2285    pub fn UpdateModelAnimation(model: Model, anim: ModelAnimation, frame: ::std::os::raw::c_int);
2286}
2287extern "C" {
2288    pub fn UnloadModelAnimation(anim: ModelAnimation);
2289}
2290extern "C" {
2291    pub fn UnloadModelAnimations(animations: *mut ModelAnimation, animCount: ::std::os::raw::c_int);
2292}
2293extern "C" {
2294    pub fn IsModelAnimationValid(model: Model, anim: ModelAnimation) -> bool;
2295}
2296extern "C" {
2297    pub fn CheckCollisionSpheres(
2298        center1: Vector3,
2299        radius1: f32,
2300        center2: Vector3,
2301        radius2: f32,
2302    ) -> bool;
2303}
2304extern "C" {
2305    pub fn CheckCollisionBoxes(box1: BoundingBox, box2: BoundingBox) -> bool;
2306}
2307extern "C" {
2308    pub fn CheckCollisionBoxSphere(box_: BoundingBox, center: Vector3, radius: f32) -> bool;
2309}
2310extern "C" {
2311    pub fn GetRayCollisionSphere(ray: Ray, center: Vector3, radius: f32) -> RayCollision;
2312}
2313extern "C" {
2314    pub fn GetRayCollisionBox(ray: Ray, box_: BoundingBox) -> RayCollision;
2315}
2316extern "C" {
2317    pub fn GetRayCollisionMesh(ray: Ray, mesh: Mesh, transform: Matrix) -> RayCollision;
2318}
2319extern "C" {
2320    pub fn GetRayCollisionTriangle(ray: Ray, p1: Vector3, p2: Vector3, p3: Vector3)
2321        -> RayCollision;
2322}
2323extern "C" {
2324    pub fn GetRayCollisionQuad(
2325        ray: Ray,
2326        p1: Vector3,
2327        p2: Vector3,
2328        p3: Vector3,
2329        p4: Vector3,
2330    ) -> RayCollision;
2331}
2332pub type AudioCallback = ::std::option::Option<
2333    unsafe extern "C" fn(bufferData: *mut ::std::os::raw::c_void, frames: ::std::os::raw::c_uint),
2334>;
2335extern "C" {
2336    pub fn InitAudioDevice();
2337}
2338extern "C" {
2339    pub fn CloseAudioDevice();
2340}
2341extern "C" {
2342    pub fn IsAudioDeviceReady() -> bool;
2343}
2344extern "C" {
2345    pub fn SetMasterVolume(volume: f32);
2346}
2347extern "C" {
2348    pub fn GetMasterVolume() -> f32;
2349}
2350extern "C" {
2351    pub fn LoadWave(fileName: *const ::std::os::raw::c_char) -> Wave;
2352}
2353extern "C" {
2354    pub fn LoadWaveFromMemory(
2355        fileType: *const ::std::os::raw::c_char,
2356        fileData: *const ::std::os::raw::c_uchar,
2357        dataSize: ::std::os::raw::c_int,
2358    ) -> Wave;
2359}
2360extern "C" {
2361    pub fn IsWaveReady(wave: Wave) -> bool;
2362}
2363extern "C" {
2364    pub fn LoadSound(fileName: *const ::std::os::raw::c_char) -> Sound;
2365}
2366extern "C" {
2367    pub fn LoadSoundFromWave(wave: Wave) -> Sound;
2368}
2369extern "C" {
2370    pub fn LoadSoundAlias(source: Sound) -> Sound;
2371}
2372extern "C" {
2373    pub fn IsSoundReady(sound: Sound) -> bool;
2374}
2375extern "C" {
2376    pub fn UpdateSound(
2377        sound: Sound,
2378        data: *const ::std::os::raw::c_void,
2379        sampleCount: ::std::os::raw::c_int,
2380    );
2381}
2382extern "C" {
2383    pub fn UnloadWave(wave: Wave);
2384}
2385extern "C" {
2386    pub fn UnloadSound(sound: Sound);
2387}
2388extern "C" {
2389    pub fn UnloadSoundAlias(alias: Sound);
2390}
2391extern "C" {
2392    pub fn ExportWave(wave: Wave, fileName: *const ::std::os::raw::c_char) -> bool;
2393}
2394extern "C" {
2395    pub fn ExportWaveAsCode(wave: Wave, fileName: *const ::std::os::raw::c_char) -> bool;
2396}
2397extern "C" {
2398    pub fn PlaySound(sound: Sound);
2399}
2400extern "C" {
2401    pub fn StopSound(sound: Sound);
2402}
2403extern "C" {
2404    pub fn PauseSound(sound: Sound);
2405}
2406extern "C" {
2407    pub fn ResumeSound(sound: Sound);
2408}
2409extern "C" {
2410    pub fn IsSoundPlaying(sound: Sound) -> bool;
2411}
2412extern "C" {
2413    pub fn SetSoundVolume(sound: Sound, volume: f32);
2414}
2415extern "C" {
2416    pub fn SetSoundPitch(sound: Sound, pitch: f32);
2417}
2418extern "C" {
2419    pub fn SetSoundPan(sound: Sound, pan: f32);
2420}
2421extern "C" {
2422    pub fn WaveCopy(wave: Wave) -> Wave;
2423}
2424extern "C" {
2425    pub fn WaveCrop(
2426        wave: *mut Wave,
2427        initSample: ::std::os::raw::c_int,
2428        finalSample: ::std::os::raw::c_int,
2429    );
2430}
2431extern "C" {
2432    pub fn WaveFormat(
2433        wave: *mut Wave,
2434        sampleRate: ::std::os::raw::c_int,
2435        sampleSize: ::std::os::raw::c_int,
2436        channels: ::std::os::raw::c_int,
2437    );
2438}
2439extern "C" {
2440    pub fn LoadWaveSamples(wave: Wave) -> *mut f32;
2441}
2442extern "C" {
2443    pub fn UnloadWaveSamples(samples: *mut f32);
2444}
2445extern "C" {
2446    pub fn LoadMusicStream(fileName: *const ::std::os::raw::c_char) -> Music;
2447}
2448extern "C" {
2449    pub fn LoadMusicStreamFromMemory(
2450        fileType: *const ::std::os::raw::c_char,
2451        data: *const ::std::os::raw::c_uchar,
2452        dataSize: ::std::os::raw::c_int,
2453    ) -> Music;
2454}
2455extern "C" {
2456    pub fn IsMusicReady(music: Music) -> bool;
2457}
2458extern "C" {
2459    pub fn UnloadMusicStream(music: Music);
2460}
2461extern "C" {
2462    pub fn PlayMusicStream(music: Music);
2463}
2464extern "C" {
2465    pub fn IsMusicStreamPlaying(music: Music) -> bool;
2466}
2467extern "C" {
2468    pub fn UpdateMusicStream(music: Music);
2469}
2470extern "C" {
2471    pub fn StopMusicStream(music: Music);
2472}
2473extern "C" {
2474    pub fn PauseMusicStream(music: Music);
2475}
2476extern "C" {
2477    pub fn ResumeMusicStream(music: Music);
2478}
2479extern "C" {
2480    pub fn SeekMusicStream(music: Music, position: f32);
2481}
2482extern "C" {
2483    pub fn SetMusicVolume(music: Music, volume: f32);
2484}
2485extern "C" {
2486    pub fn SetMusicPitch(music: Music, pitch: f32);
2487}
2488extern "C" {
2489    pub fn SetMusicPan(music: Music, pan: f32);
2490}
2491extern "C" {
2492    pub fn GetMusicTimeLength(music: Music) -> f32;
2493}
2494extern "C" {
2495    pub fn GetMusicTimePlayed(music: Music) -> f32;
2496}
2497extern "C" {
2498    pub fn LoadAudioStream(
2499        sampleRate: ::std::os::raw::c_uint,
2500        sampleSize: ::std::os::raw::c_uint,
2501        channels: ::std::os::raw::c_uint,
2502    ) -> AudioStream;
2503}
2504extern "C" {
2505    pub fn IsAudioStreamReady(stream: AudioStream) -> bool;
2506}
2507extern "C" {
2508    pub fn UnloadAudioStream(stream: AudioStream);
2509}
2510extern "C" {
2511    pub fn UpdateAudioStream(
2512        stream: AudioStream,
2513        data: *const ::std::os::raw::c_void,
2514        frameCount: ::std::os::raw::c_int,
2515    );
2516}
2517extern "C" {
2518    pub fn IsAudioStreamProcessed(stream: AudioStream) -> bool;
2519}
2520extern "C" {
2521    pub fn PlayAudioStream(stream: AudioStream);
2522}
2523extern "C" {
2524    pub fn PauseAudioStream(stream: AudioStream);
2525}
2526extern "C" {
2527    pub fn ResumeAudioStream(stream: AudioStream);
2528}
2529extern "C" {
2530    pub fn IsAudioStreamPlaying(stream: AudioStream) -> bool;
2531}
2532extern "C" {
2533    pub fn StopAudioStream(stream: AudioStream);
2534}
2535extern "C" {
2536    pub fn SetAudioStreamVolume(stream: AudioStream, volume: f32);
2537}
2538extern "C" {
2539    pub fn SetAudioStreamPitch(stream: AudioStream, pitch: f32);
2540}
2541extern "C" {
2542    pub fn SetAudioStreamPan(stream: AudioStream, pan: f32);
2543}
2544extern "C" {
2545    pub fn SetAudioStreamBufferSizeDefault(size: ::std::os::raw::c_int);
2546}
2547extern "C" {
2548    pub fn SetAudioStreamCallback(stream: AudioStream, callback: AudioCallback);
2549}
2550extern "C" {
2551    pub fn AttachAudioStreamProcessor(stream: AudioStream, processor: AudioCallback);
2552}
2553extern "C" {
2554    pub fn DetachAudioStreamProcessor(stream: AudioStream, processor: AudioCallback);
2555}
2556extern "C" {
2557    pub fn AttachAudioMixedProcessor(processor: AudioCallback);
2558}
2559extern "C" {
2560    pub fn DetachAudioMixedProcessor(processor: AudioCallback);
2561}
2562