raylib_wasm/
fns.rs

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