-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathraylib.sml
More file actions
927 lines (904 loc) · 74.1 KB
/
raylib.sml
File metadata and controls
927 lines (904 loc) · 74.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
open Dynlib;
val dlh = dlopen { lib = "./libmraylib.so", flag = RTLD_LAZY, global = false }
type ConfigFlags = int
val FLAG_VSYNC_HINT: ConfigFlags = 64
val FLAG_FULLSCREEN_MODE: ConfigFlags = 2
val FLAG_WINDOW_RESIZABLE: ConfigFlags = 4
val FLAG_WINDOW_UNDECORATED: ConfigFlags = 8
val FLAG_WINDOW_HIDDEN: ConfigFlags = 128
val FLAG_WINDOW_MINIMIZED: ConfigFlags = 512
val FLAG_WINDOW_MAXIMIZED: ConfigFlags = 1024
val FLAG_WINDOW_UNFOCUSED: ConfigFlags = 2048
val FLAG_WINDOW_TOPMOST: ConfigFlags = 4096
val FLAG_WINDOW_ALWAYS_RUN: ConfigFlags = 256
val FLAG_WINDOW_TRANSPARENT: ConfigFlags = 16
val FLAG_WINDOW_HIGHDPI: ConfigFlags = 8192
val FLAG_WINDOW_MOUSE_PASSTHROUGH: ConfigFlags = 16384
val FLAG_BORDERLESS_WINDOWED_MODE: ConfigFlags = 32768
val FLAG_MSAA_4X_HINT: ConfigFlags = 32
val FLAG_INTERLACED_HINT: ConfigFlags = 65536
type TraceLogLevel = int
val LOG_ALL: TraceLogLevel = 0
val LOG_TRACE: TraceLogLevel = 1
val LOG_DEBUG: TraceLogLevel = 2
val LOG_INFO: TraceLogLevel = 3
val LOG_WARNING: TraceLogLevel = 4
val LOG_ERROR: TraceLogLevel = 5
val LOG_FATAL: TraceLogLevel = 6
val LOG_NONE: TraceLogLevel = 7
type KeyboardKey = int
val KEY_NULL: KeyboardKey = 0
val KEY_APOSTROPHE: KeyboardKey = 39
val KEY_COMMA: KeyboardKey = 44
val KEY_MINUS: KeyboardKey = 45
val KEY_PERIOD: KeyboardKey = 46
val KEY_SLASH: KeyboardKey = 47
val KEY_ZERO: KeyboardKey = 48
val KEY_ONE: KeyboardKey = 49
val KEY_TWO: KeyboardKey = 50
val KEY_THREE: KeyboardKey = 51
val KEY_FOUR: KeyboardKey = 52
val KEY_FIVE: KeyboardKey = 53
val KEY_SIX: KeyboardKey = 54
val KEY_SEVEN: KeyboardKey = 55
val KEY_EIGHT: KeyboardKey = 56
val KEY_NINE: KeyboardKey = 57
val KEY_SEMICOLON: KeyboardKey = 59
val KEY_EQUAL: KeyboardKey = 61
val KEY_A: KeyboardKey = 65
val KEY_B: KeyboardKey = 66
val KEY_C: KeyboardKey = 67
val KEY_D: KeyboardKey = 68
val KEY_E: KeyboardKey = 69
val KEY_F: KeyboardKey = 70
val KEY_G: KeyboardKey = 71
val KEY_H: KeyboardKey = 72
val KEY_I: KeyboardKey = 73
val KEY_J: KeyboardKey = 74
val KEY_K: KeyboardKey = 75
val KEY_L: KeyboardKey = 76
val KEY_M: KeyboardKey = 77
val KEY_N: KeyboardKey = 78
val KEY_O: KeyboardKey = 79
val KEY_P: KeyboardKey = 80
val KEY_Q: KeyboardKey = 81
val KEY_R: KeyboardKey = 82
val KEY_S: KeyboardKey = 83
val KEY_T: KeyboardKey = 84
val KEY_U: KeyboardKey = 85
val KEY_V: KeyboardKey = 86
val KEY_W: KeyboardKey = 87
val KEY_X: KeyboardKey = 88
val KEY_Y: KeyboardKey = 89
val KEY_Z: KeyboardKey = 90
val KEY_LEFT_BRACKET: KeyboardKey = 91
val KEY_BACKSLASH: KeyboardKey = 92
val KEY_RIGHT_BRACKET: KeyboardKey = 93
val KEY_GRAVE: KeyboardKey = 96
val KEY_SPACE: KeyboardKey = 32
val KEY_ESCAPE: KeyboardKey = 256
val KEY_ENTER: KeyboardKey = 257
val KEY_TAB: KeyboardKey = 258
val KEY_BACKSPACE: KeyboardKey = 259
val KEY_INSERT: KeyboardKey = 260
val KEY_DELETE: KeyboardKey = 261
val KEY_RIGHT: KeyboardKey = 262
val KEY_LEFT: KeyboardKey = 263
val KEY_DOWN: KeyboardKey = 264
val KEY_UP: KeyboardKey = 265
val KEY_PAGE_UP: KeyboardKey = 266
val KEY_PAGE_DOWN: KeyboardKey = 267
val KEY_HOME: KeyboardKey = 268
val KEY_END: KeyboardKey = 269
val KEY_CAPS_LOCK: KeyboardKey = 280
val KEY_SCROLL_LOCK: KeyboardKey = 281
val KEY_NUM_LOCK: KeyboardKey = 282
val KEY_PRINT_SCREEN: KeyboardKey = 283
val KEY_PAUSE: KeyboardKey = 284
val KEY_F1: KeyboardKey = 290
val KEY_F2: KeyboardKey = 291
val KEY_F3: KeyboardKey = 292
val KEY_F4: KeyboardKey = 293
val KEY_F5: KeyboardKey = 294
val KEY_F6: KeyboardKey = 295
val KEY_F7: KeyboardKey = 296
val KEY_F8: KeyboardKey = 297
val KEY_F9: KeyboardKey = 298
val KEY_F10: KeyboardKey = 299
val KEY_F11: KeyboardKey = 300
val KEY_F12: KeyboardKey = 301
val KEY_LEFT_SHIFT: KeyboardKey = 340
val KEY_LEFT_CONTROL: KeyboardKey = 341
val KEY_LEFT_ALT: KeyboardKey = 342
val KEY_LEFT_SUPER: KeyboardKey = 343
val KEY_RIGHT_SHIFT: KeyboardKey = 344
val KEY_RIGHT_CONTROL: KeyboardKey = 345
val KEY_RIGHT_ALT: KeyboardKey = 346
val KEY_RIGHT_SUPER: KeyboardKey = 347
val KEY_KB_MENU: KeyboardKey = 348
val KEY_KP_0: KeyboardKey = 320
val KEY_KP_1: KeyboardKey = 321
val KEY_KP_2: KeyboardKey = 322
val KEY_KP_3: KeyboardKey = 323
val KEY_KP_4: KeyboardKey = 324
val KEY_KP_5: KeyboardKey = 325
val KEY_KP_6: KeyboardKey = 326
val KEY_KP_7: KeyboardKey = 327
val KEY_KP_8: KeyboardKey = 328
val KEY_KP_9: KeyboardKey = 329
val KEY_KP_DECIMAL: KeyboardKey = 330
val KEY_KP_DIVIDE: KeyboardKey = 331
val KEY_KP_MULTIPLY: KeyboardKey = 332
val KEY_KP_SUBTRACT: KeyboardKey = 333
val KEY_KP_ADD: KeyboardKey = 334
val KEY_KP_ENTER: KeyboardKey = 335
val KEY_KP_EQUAL: KeyboardKey = 336
val KEY_BACK: KeyboardKey = 4
val KEY_MENU: KeyboardKey = 5
val KEY_VOLUME_UP: KeyboardKey = 24
val KEY_VOLUME_DOWN: KeyboardKey = 25
type MouseButton = int
val MOUSE_BUTTON_LEFT: MouseButton = 0
val MOUSE_BUTTON_RIGHT: MouseButton = 1
val MOUSE_BUTTON_MIDDLE: MouseButton = 2
val MOUSE_BUTTON_SIDE: MouseButton = 3
val MOUSE_BUTTON_EXTRA: MouseButton = 4
val MOUSE_BUTTON_FORWARD: MouseButton = 5
val MOUSE_BUTTON_BACK: MouseButton = 6
type MouseCursor = int
val MOUSE_CURSOR_DEFAULT: MouseCursor = 0
val MOUSE_CURSOR_ARROW: MouseCursor = 1
val MOUSE_CURSOR_IBEAM: MouseCursor = 2
val MOUSE_CURSOR_CROSSHAIR: MouseCursor = 3
val MOUSE_CURSOR_POINTING_HAND: MouseCursor = 4
val MOUSE_CURSOR_RESIZE_EW: MouseCursor = 5
val MOUSE_CURSOR_RESIZE_NS: MouseCursor = 6
val MOUSE_CURSOR_RESIZE_NWSE: MouseCursor = 7
val MOUSE_CURSOR_RESIZE_NESW: MouseCursor = 8
val MOUSE_CURSOR_RESIZE_ALL: MouseCursor = 9
val MOUSE_CURSOR_NOT_ALLOWED: MouseCursor = 10
type GamepadButton = int
val GAMEPAD_BUTTON_UNKNOWN: GamepadButton = 0
val GAMEPAD_BUTTON_LEFT_FACE_UP: GamepadButton = 1
val GAMEPAD_BUTTON_LEFT_FACE_RIGHT: GamepadButton = 2
val GAMEPAD_BUTTON_LEFT_FACE_DOWN: GamepadButton = 3
val GAMEPAD_BUTTON_LEFT_FACE_LEFT: GamepadButton = 4
val GAMEPAD_BUTTON_RIGHT_FACE_UP: GamepadButton = 5
val GAMEPAD_BUTTON_RIGHT_FACE_RIGHT: GamepadButton = 6
val GAMEPAD_BUTTON_RIGHT_FACE_DOWN: GamepadButton = 7
val GAMEPAD_BUTTON_RIGHT_FACE_LEFT: GamepadButton = 8
val GAMEPAD_BUTTON_LEFT_TRIGGER_1: GamepadButton = 9
val GAMEPAD_BUTTON_LEFT_TRIGGER_2: GamepadButton = 10
val GAMEPAD_BUTTON_RIGHT_TRIGGER_1: GamepadButton = 11
val GAMEPAD_BUTTON_RIGHT_TRIGGER_2: GamepadButton = 12
val GAMEPAD_BUTTON_MIDDLE_LEFT: GamepadButton = 13
val GAMEPAD_BUTTON_MIDDLE: GamepadButton = 14
val GAMEPAD_BUTTON_MIDDLE_RIGHT: GamepadButton = 15
val GAMEPAD_BUTTON_LEFT_THUMB: GamepadButton = 16
val GAMEPAD_BUTTON_RIGHT_THUMB: GamepadButton = 17
type GamepadAxis = int
val GAMEPAD_AXIS_LEFT_X: GamepadAxis = 0
val GAMEPAD_AXIS_LEFT_Y: GamepadAxis = 1
val GAMEPAD_AXIS_RIGHT_X: GamepadAxis = 2
val GAMEPAD_AXIS_RIGHT_Y: GamepadAxis = 3
val GAMEPAD_AXIS_LEFT_TRIGGER: GamepadAxis = 4
val GAMEPAD_AXIS_RIGHT_TRIGGER: GamepadAxis = 5
type MaterialMapIndex = int
val MATERIAL_MAP_ALBEDO: MaterialMapIndex = 0
val MATERIAL_MAP_METALNESS: MaterialMapIndex = 1
val MATERIAL_MAP_NORMAL: MaterialMapIndex = 2
val MATERIAL_MAP_ROUGHNESS: MaterialMapIndex = 3
val MATERIAL_MAP_OCCLUSION: MaterialMapIndex = 4
val MATERIAL_MAP_EMISSION: MaterialMapIndex = 5
val MATERIAL_MAP_HEIGHT: MaterialMapIndex = 6
val MATERIAL_MAP_CUBEMAP: MaterialMapIndex = 7
val MATERIAL_MAP_IRRADIANCE: MaterialMapIndex = 8
val MATERIAL_MAP_PREFILTER: MaterialMapIndex = 9
val MATERIAL_MAP_BRDF: MaterialMapIndex = 10
type ShaderLocationIndex = int
val SHADER_LOC_VERTEX_POSITION: ShaderLocationIndex = 0
val SHADER_LOC_VERTEX_TEXCOORD01: ShaderLocationIndex = 1
val SHADER_LOC_VERTEX_TEXCOORD02: ShaderLocationIndex = 2
val SHADER_LOC_VERTEX_NORMAL: ShaderLocationIndex = 3
val SHADER_LOC_VERTEX_TANGENT: ShaderLocationIndex = 4
val SHADER_LOC_VERTEX_COLOR: ShaderLocationIndex = 5
val SHADER_LOC_MATRIX_MVP: ShaderLocationIndex = 6
val SHADER_LOC_MATRIX_VIEW: ShaderLocationIndex = 7
val SHADER_LOC_MATRIX_PROJECTION: ShaderLocationIndex = 8
val SHADER_LOC_MATRIX_MODEL: ShaderLocationIndex = 9
val SHADER_LOC_MATRIX_NORMAL: ShaderLocationIndex = 10
val SHADER_LOC_VECTOR_VIEW: ShaderLocationIndex = 11
val SHADER_LOC_COLOR_DIFFUSE: ShaderLocationIndex = 12
val SHADER_LOC_COLOR_SPECULAR: ShaderLocationIndex = 13
val SHADER_LOC_COLOR_AMBIENT: ShaderLocationIndex = 14
val SHADER_LOC_MAP_ALBEDO: ShaderLocationIndex = 15
val SHADER_LOC_MAP_METALNESS: ShaderLocationIndex = 16
val SHADER_LOC_MAP_NORMAL: ShaderLocationIndex = 17
val SHADER_LOC_MAP_ROUGHNESS: ShaderLocationIndex = 18
val SHADER_LOC_MAP_OCCLUSION: ShaderLocationIndex = 19
val SHADER_LOC_MAP_EMISSION: ShaderLocationIndex = 20
val SHADER_LOC_MAP_HEIGHT: ShaderLocationIndex = 21
val SHADER_LOC_MAP_CUBEMAP: ShaderLocationIndex = 22
val SHADER_LOC_MAP_IRRADIANCE: ShaderLocationIndex = 23
val SHADER_LOC_MAP_PREFILTER: ShaderLocationIndex = 24
val SHADER_LOC_MAP_BRDF: ShaderLocationIndex = 25
val SHADER_LOC_VERTEX_BONEIDS: ShaderLocationIndex = 26
val SHADER_LOC_VERTEX_BONEWEIGHTS: ShaderLocationIndex = 27
val SHADER_LOC_BONE_MATRICES: ShaderLocationIndex = 28
type ShaderUniformDataType = int
val SHADER_UNIFORM_FLOAT: ShaderUniformDataType = 0
val SHADER_UNIFORM_VEC2: ShaderUniformDataType = 1
val SHADER_UNIFORM_VEC3: ShaderUniformDataType = 2
val SHADER_UNIFORM_VEC4: ShaderUniformDataType = 3
val SHADER_UNIFORM_INT: ShaderUniformDataType = 4
val SHADER_UNIFORM_IVEC2: ShaderUniformDataType = 5
val SHADER_UNIFORM_IVEC3: ShaderUniformDataType = 6
val SHADER_UNIFORM_IVEC4: ShaderUniformDataType = 7
val SHADER_UNIFORM_SAMPLER2D: ShaderUniformDataType = 8
type ShaderAttributeDataType = int
val SHADER_ATTRIB_FLOAT: ShaderAttributeDataType = 0
val SHADER_ATTRIB_VEC2: ShaderAttributeDataType = 1
val SHADER_ATTRIB_VEC3: ShaderAttributeDataType = 2
val SHADER_ATTRIB_VEC4: ShaderAttributeDataType = 3
type PixelFormat = int
val PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: PixelFormat = 1
val PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: PixelFormat = 2
val PIXELFORMAT_UNCOMPRESSED_R5G6B5: PixelFormat = 3
val PIXELFORMAT_UNCOMPRESSED_R8G8B8: PixelFormat = 4
val PIXELFORMAT_UNCOMPRESSED_R5G5B5A1: PixelFormat = 5
val PIXELFORMAT_UNCOMPRESSED_R4G4B4A4: PixelFormat = 6
val PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: PixelFormat = 7
val PIXELFORMAT_UNCOMPRESSED_R32: PixelFormat = 8
val PIXELFORMAT_UNCOMPRESSED_R32G32B32: PixelFormat = 9
val PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: PixelFormat = 10
val PIXELFORMAT_UNCOMPRESSED_R16: PixelFormat = 11
val PIXELFORMAT_UNCOMPRESSED_R16G16B16: PixelFormat = 12
val PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: PixelFormat = 13
val PIXELFORMAT_COMPRESSED_DXT1_RGB: PixelFormat = 14
val PIXELFORMAT_COMPRESSED_DXT1_RGBA: PixelFormat = 15
val PIXELFORMAT_COMPRESSED_DXT3_RGBA: PixelFormat = 16
val PIXELFORMAT_COMPRESSED_DXT5_RGBA: PixelFormat = 17
val PIXELFORMAT_COMPRESSED_ETC1_RGB: PixelFormat = 18
val PIXELFORMAT_COMPRESSED_ETC2_RGB: PixelFormat = 19
val PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA: PixelFormat = 20
val PIXELFORMAT_COMPRESSED_PVRT_RGB: PixelFormat = 21
val PIXELFORMAT_COMPRESSED_PVRT_RGBA: PixelFormat = 22
val PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA: PixelFormat = 23
val PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA: PixelFormat = 24
type TextureFilter = int
val TEXTURE_FILTER_POINT: TextureFilter = 0
val TEXTURE_FILTER_BILINEAR: TextureFilter = 1
val TEXTURE_FILTER_TRILINEAR: TextureFilter = 2
val TEXTURE_FILTER_ANISOTROPIC_4X: TextureFilter = 3
val TEXTURE_FILTER_ANISOTROPIC_8X: TextureFilter = 4
val TEXTURE_FILTER_ANISOTROPIC_16X: TextureFilter = 5
type TextureWrap = int
val TEXTURE_WRAP_REPEAT: TextureWrap = 0
val TEXTURE_WRAP_CLAMP: TextureWrap = 1
val TEXTURE_WRAP_MIRROR_REPEAT: TextureWrap = 2
val TEXTURE_WRAP_MIRROR_CLAMP: TextureWrap = 3
type CubemapLayout = int
val CUBEMAP_LAYOUT_AUTO_DETECT: CubemapLayout = 0
val CUBEMAP_LAYOUT_LINE_VERTICAL: CubemapLayout = 1
val CUBEMAP_LAYOUT_LINE_HORIZONTAL: CubemapLayout = 2
val CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR: CubemapLayout = 3
val CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE: CubemapLayout = 4
type FontType = int
val FONT_DEFAULT: FontType = 0
val FONT_BITMAP: FontType = 1
val FONT_SDF: FontType = 2
type BlendMode = int
val BLEND_ALPHA: BlendMode = 0
val BLEND_ADDITIVE: BlendMode = 1
val BLEND_MULTIPLIED: BlendMode = 2
val BLEND_ADD_COLORS: BlendMode = 3
val BLEND_SUBTRACT_COLORS: BlendMode = 4
val BLEND_ALPHA_PREMULTIPLY: BlendMode = 5
val BLEND_CUSTOM: BlendMode = 6
val BLEND_CUSTOM_SEPARATE: BlendMode = 7
type Gesture = int
val GESTURE_NONE: Gesture = 0
val GESTURE_TAP: Gesture = 1
val GESTURE_DOUBLETAP: Gesture = 2
val GESTURE_HOLD: Gesture = 4
val GESTURE_DRAG: Gesture = 8
val GESTURE_SWIPE_RIGHT: Gesture = 16
val GESTURE_SWIPE_LEFT: Gesture = 32
val GESTURE_SWIPE_UP: Gesture = 64
val GESTURE_SWIPE_DOWN: Gesture = 128
val GESTURE_PINCH_IN: Gesture = 256
val GESTURE_PINCH_OUT: Gesture = 512
type CameraMode = int
val CAMERA_CUSTOM: CameraMode = 0
val CAMERA_FREE: CameraMode = 1
val CAMERA_ORBITAL: CameraMode = 2
val CAMERA_FIRST_PERSON: CameraMode = 3
val CAMERA_THIRD_PERSON: CameraMode = 4
type CameraProjection = int
val CAMERA_PERSPECTIVE: CameraProjection = 0
val CAMERA_ORTHOGRAPHIC: CameraProjection = 1
type NPatchLayout = int
val NPATCH_NINE_PATCH: NPatchLayout = 0
val NPATCH_THREE_PATCH_VERTICAL: NPatchLayout = 1
val NPATCH_THREE_PATCH_HORIZONTAL: NPatchLayout = 2
val InitWindow: int -> int -> string -> unit = app3 (dlsym dlh "raylib_InitWindow")
val CloseWindow: unit -> unit = app1 (dlsym dlh "raylib_CloseWindow")
val WindowShouldClose: unit -> bool = app1 (dlsym dlh "raylib_WindowShouldClose")
val IsWindowReady: unit -> bool = app1 (dlsym dlh "raylib_IsWindowReady")
val IsWindowFullscreen: unit -> bool = app1 (dlsym dlh "raylib_IsWindowFullscreen")
val IsWindowHidden: unit -> bool = app1 (dlsym dlh "raylib_IsWindowHidden")
val IsWindowMinimized: unit -> bool = app1 (dlsym dlh "raylib_IsWindowMinimized")
val IsWindowMaximized: unit -> bool = app1 (dlsym dlh "raylib_IsWindowMaximized")
val IsWindowFocused: unit -> bool = app1 (dlsym dlh "raylib_IsWindowFocused")
val IsWindowResized: unit -> bool = app1 (dlsym dlh "raylib_IsWindowResized")
(* val IsWindowState: word -> bool = app1 (dlsym dlh "raylib_IsWindowState") *)
(* val SetWindowState: word -> unit = app1 (dlsym dlh "raylib_SetWindowState") *)
(* val ClearWindowState: word -> unit = app1 (dlsym dlh "raylib_ClearWindowState") *)
val ToggleFullscreen: unit -> unit = app1 (dlsym dlh "raylib_ToggleFullscreen")
val ToggleBorderlessWindowed: unit -> unit = app1 (dlsym dlh "raylib_ToggleBorderlessWindowed")
val MaximizeWindow: unit -> unit = app1 (dlsym dlh "raylib_MaximizeWindow")
val MinimizeWindow: unit -> unit = app1 (dlsym dlh "raylib_MinimizeWindow")
val RestoreWindow: unit -> unit = app1 (dlsym dlh "raylib_RestoreWindow")
(* val SetWindowIcon: UNKNOWN[Image] -> unit = app1 (dlsym dlh "raylib_SetWindowIcon") *)
(* val SetWindowIcons: UNKNOWN[Image *] -> int -> unit = app2 (dlsym dlh "raylib_SetWindowIcons") *)
val SetWindowTitle: string -> unit = app1 (dlsym dlh "raylib_SetWindowTitle")
val SetWindowPosition: int -> int -> unit = app2 (dlsym dlh "raylib_SetWindowPosition")
val SetWindowMonitor: int -> unit = app1 (dlsym dlh "raylib_SetWindowMonitor")
val SetWindowMinSize: int -> int -> unit = app2 (dlsym dlh "raylib_SetWindowMinSize")
val SetWindowMaxSize: int -> int -> unit = app2 (dlsym dlh "raylib_SetWindowMaxSize")
val SetWindowSize: int -> int -> unit = app2 (dlsym dlh "raylib_SetWindowSize")
val SetWindowOpacity: real -> unit = app1 (dlsym dlh "raylib_SetWindowOpacity")
val SetWindowFocused: unit -> unit = app1 (dlsym dlh "raylib_SetWindowFocused")
(* val GetWindowHandle: unit -> UNKNOWN[void *] = app1 (dlsym dlh "raylib_GetWindowHandle") *)
val GetScreenWidth: unit -> int = app1 (dlsym dlh "raylib_GetScreenWidth")
val GetScreenHeight: unit -> int = app1 (dlsym dlh "raylib_GetScreenHeight")
val GetRenderWidth: unit -> int = app1 (dlsym dlh "raylib_GetRenderWidth")
val GetRenderHeight: unit -> int = app1 (dlsym dlh "raylib_GetRenderHeight")
val GetMonitorCount: unit -> int = app1 (dlsym dlh "raylib_GetMonitorCount")
val GetCurrentMonitor: unit -> int = app1 (dlsym dlh "raylib_GetCurrentMonitor")
(* val GetMonitorPosition: int -> UNKNOWN[Vector2] = app1 (dlsym dlh "raylib_GetMonitorPosition") *)
val GetMonitorWidth: int -> int = app1 (dlsym dlh "raylib_GetMonitorWidth")
val GetMonitorHeight: int -> int = app1 (dlsym dlh "raylib_GetMonitorHeight")
val GetMonitorPhysicalWidth: int -> int = app1 (dlsym dlh "raylib_GetMonitorPhysicalWidth")
val GetMonitorPhysicalHeight: int -> int = app1 (dlsym dlh "raylib_GetMonitorPhysicalHeight")
val GetMonitorRefreshRate: int -> int = app1 (dlsym dlh "raylib_GetMonitorRefreshRate")
(* val GetWindowPosition: unit -> UNKNOWN[Vector2] = app1 (dlsym dlh "raylib_GetWindowPosition") *)
(* val GetWindowScaleDPI: unit -> UNKNOWN[Vector2] = app1 (dlsym dlh "raylib_GetWindowScaleDPI") *)
val GetMonitorName: int -> string = app1 (dlsym dlh "raylib_GetMonitorName")
val SetClipboardText: string -> unit = app1 (dlsym dlh "raylib_SetClipboardText")
val GetClipboardText: unit -> string = app1 (dlsym dlh "raylib_GetClipboardText")
(* val GetClipboardImage: unit -> UNKNOWN[Image] = app1 (dlsym dlh "raylib_GetClipboardImage") *)
val EnableEventWaiting: unit -> unit = app1 (dlsym dlh "raylib_EnableEventWaiting")
val DisableEventWaiting: unit -> unit = app1 (dlsym dlh "raylib_DisableEventWaiting")
val ShowCursor: unit -> unit = app1 (dlsym dlh "raylib_ShowCursor")
val HideCursor: unit -> unit = app1 (dlsym dlh "raylib_HideCursor")
val IsCursorHidden: unit -> bool = app1 (dlsym dlh "raylib_IsCursorHidden")
val EnableCursor: unit -> unit = app1 (dlsym dlh "raylib_EnableCursor")
val DisableCursor: unit -> unit = app1 (dlsym dlh "raylib_DisableCursor")
val IsCursorOnScreen: unit -> bool = app1 (dlsym dlh "raylib_IsCursorOnScreen")
val ClearBackground: int -> unit = app1 (dlsym dlh "raylib_ClearBackground")
val BeginDrawing: unit -> unit = app1 (dlsym dlh "raylib_BeginDrawing")
val EndDrawing: unit -> unit = app1 (dlsym dlh "raylib_EndDrawing")
(* val BeginMode2D: UNKNOWN[Camera2D] -> unit = app1 (dlsym dlh "raylib_BeginMode2D") *)
val EndMode2D: unit -> unit = app1 (dlsym dlh "raylib_EndMode2D")
(* val BeginMode3D: UNKNOWN[Camera3D] -> unit = app1 (dlsym dlh "raylib_BeginMode3D") *)
val EndMode3D: unit -> unit = app1 (dlsym dlh "raylib_EndMode3D")
(* val BeginTextureMode: UNKNOWN[RenderTexture2D] -> unit = app1 (dlsym dlh "raylib_BeginTextureMode") *)
val EndTextureMode: unit -> unit = app1 (dlsym dlh "raylib_EndTextureMode")
(* val BeginShaderMode: UNKNOWN[Shader] -> unit = app1 (dlsym dlh "raylib_BeginShaderMode") *)
val EndShaderMode: unit -> unit = app1 (dlsym dlh "raylib_EndShaderMode")
val BeginBlendMode: int -> unit = app1 (dlsym dlh "raylib_BeginBlendMode")
val EndBlendMode: unit -> unit = app1 (dlsym dlh "raylib_EndBlendMode")
val BeginScissorMode: int -> int -> int -> int -> unit = app4 (dlsym dlh "raylib_BeginScissorMode")
val EndScissorMode: unit -> unit = app1 (dlsym dlh "raylib_EndScissorMode")
(* val BeginVrStereoMode: UNKNOWN[VrStereoConfig] -> unit = app1 (dlsym dlh "raylib_BeginVrStereoMode") *)
val EndVrStereoMode: unit -> unit = app1 (dlsym dlh "raylib_EndVrStereoMode")
(* val LoadVrStereoConfig: UNKNOWN[VrDeviceInfo] -> UNKNOWN[VrStereoConfig] = app1 (dlsym dlh "raylib_LoadVrStereoConfig") *)
(* val UnloadVrStereoConfig: UNKNOWN[VrStereoConfig] -> unit = app1 (dlsym dlh "raylib_UnloadVrStereoConfig") *)
(* val LoadShader: string -> string -> UNKNOWN[Shader] = app2 (dlsym dlh "raylib_LoadShader") *)
(* val LoadShaderFromMemory: string -> string -> UNKNOWN[Shader] = app2 (dlsym dlh "raylib_LoadShaderFromMemory") *)
(* val IsShaderValid: UNKNOWN[Shader] -> bool = app1 (dlsym dlh "raylib_IsShaderValid") *)
(* val GetShaderLocation: UNKNOWN[Shader] -> string -> int = app2 (dlsym dlh "raylib_GetShaderLocation") *)
(* val GetShaderLocationAttrib: UNKNOWN[Shader] -> string -> int = app2 (dlsym dlh "raylib_GetShaderLocationAttrib") *)
(* val SetShaderValue: UNKNOWN[Shader] -> int -> UNKNOWN[const void *] -> int -> unit = app4 (dlsym dlh "raylib_SetShaderValue") *)
(* val SetShaderValueV: UNKNOWN[Shader] -> int -> UNKNOWN[const void *] -> int -> int -> unit = app5 (dlsym dlh "raylib_SetShaderValueV") *)
(* val SetShaderValueMatrix: UNKNOWN[Shader] -> int -> UNKNOWN[Matrix] -> unit = app3 (dlsym dlh "raylib_SetShaderValueMatrix") *)
(* val SetShaderValueTexture: UNKNOWN[Shader] -> int -> UNKNOWN[Texture2D] -> unit = app3 (dlsym dlh "raylib_SetShaderValueTexture") *)
(* val UnloadShader: UNKNOWN[Shader] -> unit = app1 (dlsym dlh "raylib_UnloadShader") *)
(* val GetScreenToWorldRay: UNKNOWN[Vector2] -> UNKNOWN[Camera] -> UNKNOWN[Ray] = app2 (dlsym dlh "raylib_GetScreenToWorldRay") *)
(* val GetScreenToWorldRayEx: UNKNOWN[Vector2] -> UNKNOWN[Camera] -> int -> int -> UNKNOWN[Ray] = app4 (dlsym dlh "raylib_GetScreenToWorldRayEx") *)
(* val GetWorldToScreen: UNKNOWN[Vector3] -> UNKNOWN[Camera] -> UNKNOWN[Vector2] = app2 (dlsym dlh "raylib_GetWorldToScreen") *)
(* val GetWorldToScreenEx: UNKNOWN[Vector3] -> UNKNOWN[Camera] -> int -> int -> UNKNOWN[Vector2] = app4 (dlsym dlh "raylib_GetWorldToScreenEx") *)
(* val GetWorldToScreen2D: UNKNOWN[Vector2] -> UNKNOWN[Camera2D] -> UNKNOWN[Vector2] = app2 (dlsym dlh "raylib_GetWorldToScreen2D") *)
(* val GetScreenToWorld2D: UNKNOWN[Vector2] -> UNKNOWN[Camera2D] -> UNKNOWN[Vector2] = app2 (dlsym dlh "raylib_GetScreenToWorld2D") *)
(* val GetCameraMatrix: UNKNOWN[Camera] -> UNKNOWN[Matrix] = app1 (dlsym dlh "raylib_GetCameraMatrix") *)
(* val GetCameraMatrix2D: UNKNOWN[Camera2D] -> UNKNOWN[Matrix] = app1 (dlsym dlh "raylib_GetCameraMatrix2D") *)
val SetTargetFPS: int -> unit = app1 (dlsym dlh "raylib_SetTargetFPS")
val GetFrameTime: unit -> real = app1 (dlsym dlh "raylib_GetFrameTime")
(* val GetTime: unit -> UNKNOWN[double] = app1 (dlsym dlh "raylib_GetTime") *)
val GetFPS: unit -> int = app1 (dlsym dlh "raylib_GetFPS")
val SwapScreenBuffer: unit -> unit = app1 (dlsym dlh "raylib_SwapScreenBuffer")
val PollInputEvents: unit -> unit = app1 (dlsym dlh "raylib_PollInputEvents")
(* val WaitTime: UNKNOWN[double] -> unit = app1 (dlsym dlh "raylib_WaitTime") *)
(* val SetRandomSeed: word -> unit = app1 (dlsym dlh "raylib_SetRandomSeed") *)
val GetRandomValue: int -> int -> int = app2 (dlsym dlh "raylib_GetRandomValue")
(* val LoadRandomSequence: word -> int -> int -> UNKNOWN[int *] = app3 (dlsym dlh "raylib_LoadRandomSequence") *)
(* val UnloadRandomSequence: UNKNOWN[int *] -> unit = app1 (dlsym dlh "raylib_UnloadRandomSequence") *)
val TakeScreenshot: string -> unit = app1 (dlsym dlh "raylib_TakeScreenshot")
(* val SetConfigFlags: word -> unit = app1 (dlsym dlh "raylib_SetConfigFlags") *)
val OpenURL: string -> unit = app1 (dlsym dlh "raylib_OpenURL")
(* val TraceLog: int -> string -> UNKNOWN[...] -> unit = app3 (dlsym dlh "raylib_TraceLog") *)
val SetTraceLogLevel: int -> unit = app1 (dlsym dlh "raylib_SetTraceLogLevel")
(* val MemAlloc: word -> UNKNOWN[void *] = app1 (dlsym dlh "raylib_MemAlloc") *)
(* val MemRealloc: UNKNOWN[void *] -> word -> UNKNOWN[void *] = app2 (dlsym dlh "raylib_MemRealloc") *)
(* val MemFree: UNKNOWN[void *] -> unit = app1 (dlsym dlh "raylib_MemFree") *)
(* val SetTraceLogCallback: UNKNOWN[TraceLogCallback] -> unit = app1 (dlsym dlh "raylib_SetTraceLogCallback") *)
(* val SetLoadFileDataCallback: UNKNOWN[LoadFileDataCallback] -> unit = app1 (dlsym dlh "raylib_SetLoadFileDataCallback") *)
(* val SetSaveFileDataCallback: UNKNOWN[SaveFileDataCallback] -> unit = app1 (dlsym dlh "raylib_SetSaveFileDataCallback") *)
(* val SetLoadFileTextCallback: UNKNOWN[LoadFileTextCallback] -> unit = app1 (dlsym dlh "raylib_SetLoadFileTextCallback") *)
(* val SetSaveFileTextCallback: UNKNOWN[SaveFileTextCallback] -> unit = app1 (dlsym dlh "raylib_SetSaveFileTextCallback") *)
(* val LoadFileData: string -> UNKNOWN[int *] -> UNKNOWN[unsigned char *] = app2 (dlsym dlh "raylib_LoadFileData") *)
(* val UnloadFileData: UNKNOWN[unsigned char *] -> unit = app1 (dlsym dlh "raylib_UnloadFileData") *)
(* val SaveFileData: string -> UNKNOWN[void *] -> int -> bool = app3 (dlsym dlh "raylib_SaveFileData") *)
(* val ExportDataAsCode: UNKNOWN[const unsigned char *] -> int -> string -> bool = app3 (dlsym dlh "raylib_ExportDataAsCode") *)
(* val LoadFileText: string -> UNKNOWN[char *] = app1 (dlsym dlh "raylib_LoadFileText") *)
(* val UnloadFileText: UNKNOWN[char *] -> unit = app1 (dlsym dlh "raylib_UnloadFileText") *)
(* val SaveFileText: string -> UNKNOWN[char *] -> bool = app2 (dlsym dlh "raylib_SaveFileText") *)
val FileExists: string -> bool = app1 (dlsym dlh "raylib_FileExists")
val DirectoryExists: string -> bool = app1 (dlsym dlh "raylib_DirectoryExists")
val IsFileExtension: string -> string -> bool = app2 (dlsym dlh "raylib_IsFileExtension")
val GetFileLength: string -> int = app1 (dlsym dlh "raylib_GetFileLength")
val GetFileExtension: string -> string = app1 (dlsym dlh "raylib_GetFileExtension")
val GetFileName: string -> string = app1 (dlsym dlh "raylib_GetFileName")
val GetFileNameWithoutExt: string -> string = app1 (dlsym dlh "raylib_GetFileNameWithoutExt")
val GetDirectoryPath: string -> string = app1 (dlsym dlh "raylib_GetDirectoryPath")
val GetPrevDirectoryPath: string -> string = app1 (dlsym dlh "raylib_GetPrevDirectoryPath")
val GetWorkingDirectory: unit -> string = app1 (dlsym dlh "raylib_GetWorkingDirectory")
val GetApplicationDirectory: unit -> string = app1 (dlsym dlh "raylib_GetApplicationDirectory")
val MakeDirectory: string -> int = app1 (dlsym dlh "raylib_MakeDirectory")
val ChangeDirectory: string -> bool = app1 (dlsym dlh "raylib_ChangeDirectory")
val IsPathFile: string -> bool = app1 (dlsym dlh "raylib_IsPathFile")
val IsFileNameValid: string -> bool = app1 (dlsym dlh "raylib_IsFileNameValid")
(* val LoadDirectoryFiles: string -> UNKNOWN[FilePathList] = app1 (dlsym dlh "raylib_LoadDirectoryFiles") *)
(* val LoadDirectoryFilesEx: string -> string -> bool -> UNKNOWN[FilePathList] = app3 (dlsym dlh "raylib_LoadDirectoryFilesEx") *)
(* val UnloadDirectoryFiles: UNKNOWN[FilePathList] -> unit = app1 (dlsym dlh "raylib_UnloadDirectoryFiles") *)
val IsFileDropped: unit -> bool = app1 (dlsym dlh "raylib_IsFileDropped")
(* val LoadDroppedFiles: unit -> UNKNOWN[FilePathList] = app1 (dlsym dlh "raylib_LoadDroppedFiles") *)
(* val UnloadDroppedFiles: UNKNOWN[FilePathList] -> unit = app1 (dlsym dlh "raylib_UnloadDroppedFiles") *)
(* val GetFileModTime: string -> UNKNOWN[long] = app1 (dlsym dlh "raylib_GetFileModTime") *)
(* val CompressData: UNKNOWN[const unsigned char *] -> int -> UNKNOWN[int *] -> UNKNOWN[unsigned char *] = app3 (dlsym dlh "raylib_CompressData") *)
(* val DecompressData: UNKNOWN[const unsigned char *] -> int -> UNKNOWN[int *] -> UNKNOWN[unsigned char *] = app3 (dlsym dlh "raylib_DecompressData") *)
(* val EncodeDataBase64: UNKNOWN[const unsigned char *] -> int -> UNKNOWN[int *] -> UNKNOWN[char *] = app3 (dlsym dlh "raylib_EncodeDataBase64") *)
(* val DecodeDataBase64: UNKNOWN[const unsigned char *] -> UNKNOWN[int *] -> UNKNOWN[unsigned char *] = app2 (dlsym dlh "raylib_DecodeDataBase64") *)
(* val ComputeCRC32: UNKNOWN[unsigned char *] -> int -> word = app2 (dlsym dlh "raylib_ComputeCRC32") *)
(* val ComputeMD5: UNKNOWN[unsigned char *] -> int -> UNKNOWN[unsigned int *] = app2 (dlsym dlh "raylib_ComputeMD5") *)
(* val ComputeSHA1: UNKNOWN[unsigned char *] -> int -> UNKNOWN[unsigned int *] = app2 (dlsym dlh "raylib_ComputeSHA1") *)
(* val LoadAutomationEventList: string -> UNKNOWN[AutomationEventList] = app1 (dlsym dlh "raylib_LoadAutomationEventList") *)
(* val UnloadAutomationEventList: UNKNOWN[AutomationEventList] -> unit = app1 (dlsym dlh "raylib_UnloadAutomationEventList") *)
(* val ExportAutomationEventList: UNKNOWN[AutomationEventList] -> string -> bool = app2 (dlsym dlh "raylib_ExportAutomationEventList") *)
(* val SetAutomationEventList: UNKNOWN[AutomationEventList *] -> unit = app1 (dlsym dlh "raylib_SetAutomationEventList") *)
val SetAutomationEventBaseFrame: int -> unit = app1 (dlsym dlh "raylib_SetAutomationEventBaseFrame")
val StartAutomationEventRecording: unit -> unit = app1 (dlsym dlh "raylib_StartAutomationEventRecording")
val StopAutomationEventRecording: unit -> unit = app1 (dlsym dlh "raylib_StopAutomationEventRecording")
(* val PlayAutomationEvent: UNKNOWN[AutomationEvent] -> unit = app1 (dlsym dlh "raylib_PlayAutomationEvent") *)
val IsKeyPressed: int -> bool = app1 (dlsym dlh "raylib_IsKeyPressed")
val IsKeyPressedRepeat: int -> bool = app1 (dlsym dlh "raylib_IsKeyPressedRepeat")
val IsKeyDown: int -> bool = app1 (dlsym dlh "raylib_IsKeyDown")
val IsKeyReleased: int -> bool = app1 (dlsym dlh "raylib_IsKeyReleased")
val IsKeyUp: int -> bool = app1 (dlsym dlh "raylib_IsKeyUp")
val GetKeyPressed: unit -> int = app1 (dlsym dlh "raylib_GetKeyPressed")
val GetCharPressed: unit -> int = app1 (dlsym dlh "raylib_GetCharPressed")
val SetExitKey: int -> unit = app1 (dlsym dlh "raylib_SetExitKey")
val IsGamepadAvailable: int -> bool = app1 (dlsym dlh "raylib_IsGamepadAvailable")
val GetGamepadName: int -> string = app1 (dlsym dlh "raylib_GetGamepadName")
val IsGamepadButtonPressed: int -> int -> bool = app2 (dlsym dlh "raylib_IsGamepadButtonPressed")
val IsGamepadButtonDown: int -> int -> bool = app2 (dlsym dlh "raylib_IsGamepadButtonDown")
val IsGamepadButtonReleased: int -> int -> bool = app2 (dlsym dlh "raylib_IsGamepadButtonReleased")
val IsGamepadButtonUp: int -> int -> bool = app2 (dlsym dlh "raylib_IsGamepadButtonUp")
val GetGamepadButtonPressed: unit -> int = app1 (dlsym dlh "raylib_GetGamepadButtonPressed")
val GetGamepadAxisCount: int -> int = app1 (dlsym dlh "raylib_GetGamepadAxisCount")
val GetGamepadAxisMovement: int -> int -> real = app2 (dlsym dlh "raylib_GetGamepadAxisMovement")
val SetGamepadMappings: string -> int = app1 (dlsym dlh "raylib_SetGamepadMappings")
val SetGamepadVibration: int -> real -> real -> real -> unit = app4 (dlsym dlh "raylib_SetGamepadVibration")
val IsMouseButtonPressed: int -> bool = app1 (dlsym dlh "raylib_IsMouseButtonPressed")
val IsMouseButtonDown: int -> bool = app1 (dlsym dlh "raylib_IsMouseButtonDown")
val IsMouseButtonReleased: int -> bool = app1 (dlsym dlh "raylib_IsMouseButtonReleased")
val IsMouseButtonUp: int -> bool = app1 (dlsym dlh "raylib_IsMouseButtonUp")
val GetMouseX: unit -> int = app1 (dlsym dlh "raylib_GetMouseX")
val GetMouseY: unit -> int = app1 (dlsym dlh "raylib_GetMouseY")
(* val GetMousePosition: unit -> UNKNOWN[Vector2] = app1 (dlsym dlh "raylib_GetMousePosition") *)
(* val GetMouseDelta: unit -> UNKNOWN[Vector2] = app1 (dlsym dlh "raylib_GetMouseDelta") *)
val SetMousePosition: int -> int -> unit = app2 (dlsym dlh "raylib_SetMousePosition")
val SetMouseOffset: int -> int -> unit = app2 (dlsym dlh "raylib_SetMouseOffset")
val SetMouseScale: real -> real -> unit = app2 (dlsym dlh "raylib_SetMouseScale")
val GetMouseWheelMove: unit -> real = app1 (dlsym dlh "raylib_GetMouseWheelMove")
(* val GetMouseWheelMoveV: unit -> UNKNOWN[Vector2] = app1 (dlsym dlh "raylib_GetMouseWheelMoveV") *)
val SetMouseCursor: int -> unit = app1 (dlsym dlh "raylib_SetMouseCursor")
val GetTouchX: unit -> int = app1 (dlsym dlh "raylib_GetTouchX")
val GetTouchY: unit -> int = app1 (dlsym dlh "raylib_GetTouchY")
(* val GetTouchPosition: int -> UNKNOWN[Vector2] = app1 (dlsym dlh "raylib_GetTouchPosition") *)
val GetTouchPointId: int -> int = app1 (dlsym dlh "raylib_GetTouchPointId")
val GetTouchPointCount: unit -> int = app1 (dlsym dlh "raylib_GetTouchPointCount")
(* val SetGesturesEnabled: word -> unit = app1 (dlsym dlh "raylib_SetGesturesEnabled") *)
(* val IsGestureDetected: word -> bool = app1 (dlsym dlh "raylib_IsGestureDetected") *)
val GetGestureDetected: unit -> int = app1 (dlsym dlh "raylib_GetGestureDetected")
val GetGestureHoldDuration: unit -> real = app1 (dlsym dlh "raylib_GetGestureHoldDuration")
(* val GetGestureDragVector: unit -> UNKNOWN[Vector2] = app1 (dlsym dlh "raylib_GetGestureDragVector") *)
val GetGestureDragAngle: unit -> real = app1 (dlsym dlh "raylib_GetGestureDragAngle")
(* val GetGesturePinchVector: unit -> UNKNOWN[Vector2] = app1 (dlsym dlh "raylib_GetGesturePinchVector") *)
val GetGesturePinchAngle: unit -> real = app1 (dlsym dlh "raylib_GetGesturePinchAngle")
(* val UpdateCamera: UNKNOWN[Camera *] -> int -> unit = app2 (dlsym dlh "raylib_UpdateCamera") *)
(* val UpdateCameraPro: UNKNOWN[Camera *] -> UNKNOWN[Vector3] -> UNKNOWN[Vector3] -> real -> unit = app4 (dlsym dlh "raylib_UpdateCameraPro") *)
(* val SetShapesTexture: UNKNOWN[Texture2D] -> UNKNOWN[Rectangle] -> unit = app2 (dlsym dlh "raylib_SetShapesTexture") *)
(* val GetShapesTexture: unit -> UNKNOWN[Texture2D] = app1 (dlsym dlh "raylib_GetShapesTexture") *)
(* val GetShapesTextureRectangle: unit -> UNKNOWN[Rectangle] = app1 (dlsym dlh "raylib_GetShapesTextureRectangle") *)
val DrawPixel: int -> int -> int -> unit = app3 (dlsym dlh "raylib_DrawPixel")
(* val DrawPixelV: UNKNOWN[Vector2] -> int -> unit = app2 (dlsym dlh "raylib_DrawPixelV") *)
val DrawLine: int -> int -> int -> int -> int -> unit = app5 (dlsym dlh "raylib_DrawLine")
(* val DrawLineV: UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> int -> unit = app3 (dlsym dlh "raylib_DrawLineV") *)
(* val DrawLineEx: UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> real -> int -> unit = app4 (dlsym dlh "raylib_DrawLineEx") *)
(* val DrawLineStrip: UNKNOWN[const Vector2 *] -> int -> int -> unit = app3 (dlsym dlh "raylib_DrawLineStrip") *)
(* val DrawLineBezier: UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> real -> int -> unit = app4 (dlsym dlh "raylib_DrawLineBezier") *)
val DrawCircle: int -> int -> real -> int -> unit = app4 (dlsym dlh "raylib_DrawCircle")
(* val DrawCircleSector: UNKNOWN[Vector2] -> real -> real -> real -> int -> int -> unit = app6 (dlsym dlh "raylib_DrawCircleSector") *)
(* val DrawCircleSectorLines: UNKNOWN[Vector2] -> real -> real -> real -> int -> int -> unit = app6 (dlsym dlh "raylib_DrawCircleSectorLines") *)
val DrawCircleGradient: int -> int -> real -> int -> int -> unit = app5 (dlsym dlh "raylib_DrawCircleGradient")
(* val DrawCircleV: UNKNOWN[Vector2] -> real -> int -> unit = app3 (dlsym dlh "raylib_DrawCircleV") *)
val DrawCircleLines: int -> int -> real -> int -> unit = app4 (dlsym dlh "raylib_DrawCircleLines")
(* val DrawCircleLinesV: UNKNOWN[Vector2] -> real -> int -> unit = app3 (dlsym dlh "raylib_DrawCircleLinesV") *)
val DrawEllipse: int -> int -> real -> real -> int -> unit = app5 (dlsym dlh "raylib_DrawEllipse")
val DrawEllipseLines: int -> int -> real -> real -> int -> unit = app5 (dlsym dlh "raylib_DrawEllipseLines")
(* val DrawRing: UNKNOWN[Vector2] -> real -> real -> real -> real -> int -> int -> unit = app7 (dlsym dlh "raylib_DrawRing") *)
(* val DrawRingLines: UNKNOWN[Vector2] -> real -> real -> real -> real -> int -> int -> unit = app7 (dlsym dlh "raylib_DrawRingLines") *)
val DrawRectangle: int -> int -> int -> int -> int -> unit = app5 (dlsym dlh "raylib_DrawRectangle")
(* val DrawRectangleV: UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> int -> unit = app3 (dlsym dlh "raylib_DrawRectangleV") *)
(* val DrawRectangleRec: UNKNOWN[Rectangle] -> int -> unit = app2 (dlsym dlh "raylib_DrawRectangleRec") *)
(* val DrawRectanglePro: UNKNOWN[Rectangle] -> UNKNOWN[Vector2] -> real -> int -> unit = app4 (dlsym dlh "raylib_DrawRectanglePro") *)
(* val DrawRectangleGradientV: int -> int -> int -> int -> int -> int -> unit = app6 (dlsym dlh "raylib_DrawRectangleGradientV") *)
(* val DrawRectangleGradientH: int -> int -> int -> int -> int -> int -> unit = app6 (dlsym dlh "raylib_DrawRectangleGradientH") *)
(* val DrawRectangleGradientEx: UNKNOWN[Rectangle] -> int -> int -> int -> int -> unit = app5 (dlsym dlh "raylib_DrawRectangleGradientEx") *)
val DrawRectangleLines: int -> int -> int -> int -> int -> unit = app5 (dlsym dlh "raylib_DrawRectangleLines")
(* val DrawRectangleLinesEx: UNKNOWN[Rectangle] -> real -> int -> unit = app3 (dlsym dlh "raylib_DrawRectangleLinesEx") *)
(* val DrawRectangleRounded: UNKNOWN[Rectangle] -> real -> int -> int -> unit = app4 (dlsym dlh "raylib_DrawRectangleRounded") *)
(* val DrawRectangleRoundedLines: UNKNOWN[Rectangle] -> real -> int -> int -> unit = app4 (dlsym dlh "raylib_DrawRectangleRoundedLines") *)
(* val DrawRectangleRoundedLinesEx: UNKNOWN[Rectangle] -> real -> int -> real -> int -> unit = app5 (dlsym dlh "raylib_DrawRectangleRoundedLinesEx") *)
(* val DrawTriangle: UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> int -> unit = app4 (dlsym dlh "raylib_DrawTriangle") *)
(* val DrawTriangleLines: UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> int -> unit = app4 (dlsym dlh "raylib_DrawTriangleLines") *)
(* val DrawTriangleFan: UNKNOWN[const Vector2 *] -> int -> int -> unit = app3 (dlsym dlh "raylib_DrawTriangleFan") *)
(* val DrawTriangleStrip: UNKNOWN[const Vector2 *] -> int -> int -> unit = app3 (dlsym dlh "raylib_DrawTriangleStrip") *)
(* val DrawPoly: UNKNOWN[Vector2] -> int -> real -> real -> int -> unit = app5 (dlsym dlh "raylib_DrawPoly") *)
(* val DrawPolyLines: UNKNOWN[Vector2] -> int -> real -> real -> int -> unit = app5 (dlsym dlh "raylib_DrawPolyLines") *)
(* val DrawPolyLinesEx: UNKNOWN[Vector2] -> int -> real -> real -> real -> int -> unit = app6 (dlsym dlh "raylib_DrawPolyLinesEx") *)
(* val DrawSplineLinear: UNKNOWN[const Vector2 *] -> int -> real -> int -> unit = app4 (dlsym dlh "raylib_DrawSplineLinear") *)
(* val DrawSplineBasis: UNKNOWN[const Vector2 *] -> int -> real -> int -> unit = app4 (dlsym dlh "raylib_DrawSplineBasis") *)
(* val DrawSplineCatmullRom: UNKNOWN[const Vector2 *] -> int -> real -> int -> unit = app4 (dlsym dlh "raylib_DrawSplineCatmullRom") *)
(* val DrawSplineBezierQuadratic: UNKNOWN[const Vector2 *] -> int -> real -> int -> unit = app4 (dlsym dlh "raylib_DrawSplineBezierQuadratic") *)
(* val DrawSplineBezierCubic: UNKNOWN[const Vector2 *] -> int -> real -> int -> unit = app4 (dlsym dlh "raylib_DrawSplineBezierCubic") *)
(* val DrawSplineSegmentLinear: UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> real -> int -> unit = app4 (dlsym dlh "raylib_DrawSplineSegmentLinear") *)
(* val DrawSplineSegmentBasis: UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> real -> int -> unit = app6 (dlsym dlh "raylib_DrawSplineSegmentBasis") *)
(* val DrawSplineSegmentCatmullRom: UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> real -> int -> unit = app6 (dlsym dlh "raylib_DrawSplineSegmentCatmullRom") *)
(* val DrawSplineSegmentBezierQuadratic: UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> real -> int -> unit = app5 (dlsym dlh "raylib_DrawSplineSegmentBezierQuadratic") *)
(* val DrawSplineSegmentBezierCubic: UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> real -> int -> unit = app6 (dlsym dlh "raylib_DrawSplineSegmentBezierCubic") *)
(* val GetSplinePointLinear: UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> real -> UNKNOWN[Vector2] = app3 (dlsym dlh "raylib_GetSplinePointLinear") *)
(* val GetSplinePointBasis: UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> real -> UNKNOWN[Vector2] = app5 (dlsym dlh "raylib_GetSplinePointBasis") *)
(* val GetSplinePointCatmullRom: UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> real -> UNKNOWN[Vector2] = app5 (dlsym dlh "raylib_GetSplinePointCatmullRom") *)
(* val GetSplinePointBezierQuad: UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> real -> UNKNOWN[Vector2] = app4 (dlsym dlh "raylib_GetSplinePointBezierQuad") *)
(* val GetSplinePointBezierCubic: UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> real -> UNKNOWN[Vector2] = app5 (dlsym dlh "raylib_GetSplinePointBezierCubic") *)
(* val CheckCollisionRecs: UNKNOWN[Rectangle] -> UNKNOWN[Rectangle] -> bool = app2 (dlsym dlh "raylib_CheckCollisionRecs") *)
(* val CheckCollisionCircles: UNKNOWN[Vector2] -> real -> UNKNOWN[Vector2] -> real -> bool = app4 (dlsym dlh "raylib_CheckCollisionCircles") *)
(* val CheckCollisionCircleRec: UNKNOWN[Vector2] -> real -> UNKNOWN[Rectangle] -> bool = app3 (dlsym dlh "raylib_CheckCollisionCircleRec") *)
(* val CheckCollisionCircleLine: UNKNOWN[Vector2] -> real -> UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> bool = app4 (dlsym dlh "raylib_CheckCollisionCircleLine") *)
(* val CheckCollisionPointRec: UNKNOWN[Vector2] -> UNKNOWN[Rectangle] -> bool = app2 (dlsym dlh "raylib_CheckCollisionPointRec") *)
(* val CheckCollisionPointCircle: UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> real -> bool = app3 (dlsym dlh "raylib_CheckCollisionPointCircle") *)
(* val CheckCollisionPointTriangle: UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> bool = app4 (dlsym dlh "raylib_CheckCollisionPointTriangle") *)
(* val CheckCollisionPointLine: UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> int -> bool = app4 (dlsym dlh "raylib_CheckCollisionPointLine") *)
(* val CheckCollisionPointPoly: UNKNOWN[Vector2] -> UNKNOWN[const Vector2 *] -> int -> bool = app3 (dlsym dlh "raylib_CheckCollisionPointPoly") *)
(* val CheckCollisionLines: UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> UNKNOWN[Vector2 *] -> bool = app5 (dlsym dlh "raylib_CheckCollisionLines") *)
(* val GetCollisionRec: UNKNOWN[Rectangle] -> UNKNOWN[Rectangle] -> UNKNOWN[Rectangle] = app2 (dlsym dlh "raylib_GetCollisionRec") *)
(* val LoadImage: string -> UNKNOWN[Image] = app1 (dlsym dlh "raylib_LoadImage") *)
(* val LoadImageRaw: string -> int -> int -> int -> int -> UNKNOWN[Image] = app5 (dlsym dlh "raylib_LoadImageRaw") *)
(* val LoadImageAnim: string -> UNKNOWN[int *] -> UNKNOWN[Image] = app2 (dlsym dlh "raylib_LoadImageAnim") *)
(* val LoadImageAnimFromMemory: string -> UNKNOWN[const unsigned char *] -> int -> UNKNOWN[int *] -> UNKNOWN[Image] = app4 (dlsym dlh "raylib_LoadImageAnimFromMemory") *)
(* val LoadImageFromMemory: string -> UNKNOWN[const unsigned char *] -> int -> UNKNOWN[Image] = app3 (dlsym dlh "raylib_LoadImageFromMemory") *)
(* val LoadImageFromTexture: UNKNOWN[Texture2D] -> UNKNOWN[Image] = app1 (dlsym dlh "raylib_LoadImageFromTexture") *)
(* val LoadImageFromScreen: unit -> UNKNOWN[Image] = app1 (dlsym dlh "raylib_LoadImageFromScreen") *)
(* val IsImageValid: UNKNOWN[Image] -> bool = app1 (dlsym dlh "raylib_IsImageValid") *)
(* val UnloadImage: UNKNOWN[Image] -> unit = app1 (dlsym dlh "raylib_UnloadImage") *)
(* val ExportImage: UNKNOWN[Image] -> string -> bool = app2 (dlsym dlh "raylib_ExportImage") *)
(* val ExportImageToMemory: UNKNOWN[Image] -> string -> UNKNOWN[int *] -> UNKNOWN[unsigned char *] = app3 (dlsym dlh "raylib_ExportImageToMemory") *)
(* val ExportImageAsCode: UNKNOWN[Image] -> string -> bool = app2 (dlsym dlh "raylib_ExportImageAsCode") *)
(* val GenImageColor: int -> int -> int -> UNKNOWN[Image] = app3 (dlsym dlh "raylib_GenImageColor") *)
(* val GenImageGradientLinear: int -> int -> int -> int -> int -> UNKNOWN[Image] = app5 (dlsym dlh "raylib_GenImageGradientLinear") *)
(* val GenImageGradientRadial: int -> int -> real -> int -> int -> UNKNOWN[Image] = app5 (dlsym dlh "raylib_GenImageGradientRadial") *)
(* val GenImageGradientSquare: int -> int -> real -> int -> int -> UNKNOWN[Image] = app5 (dlsym dlh "raylib_GenImageGradientSquare") *)
(* val GenImageChecked: int -> int -> int -> int -> int -> int -> UNKNOWN[Image] = app6 (dlsym dlh "raylib_GenImageChecked") *)
(* val GenImageWhiteNoise: int -> int -> real -> UNKNOWN[Image] = app3 (dlsym dlh "raylib_GenImageWhiteNoise") *)
(* val GenImagePerlinNoise: int -> int -> int -> int -> real -> UNKNOWN[Image] = app5 (dlsym dlh "raylib_GenImagePerlinNoise") *)
(* val GenImageCellular: int -> int -> int -> UNKNOWN[Image] = app3 (dlsym dlh "raylib_GenImageCellular") *)
(* val GenImageText: int -> int -> string -> UNKNOWN[Image] = app3 (dlsym dlh "raylib_GenImageText") *)
(* val ImageCopy: UNKNOWN[Image] -> UNKNOWN[Image] = app1 (dlsym dlh "raylib_ImageCopy") *)
(* val ImageFromImage: UNKNOWN[Image] -> UNKNOWN[Rectangle] -> UNKNOWN[Image] = app2 (dlsym dlh "raylib_ImageFromImage") *)
(* val ImageFromChannel: UNKNOWN[Image] -> int -> UNKNOWN[Image] = app2 (dlsym dlh "raylib_ImageFromChannel") *)
(* val ImageText: string -> int -> int -> UNKNOWN[Image] = app3 (dlsym dlh "raylib_ImageText") *)
(* val ImageTextEx: UNKNOWN[Font] -> string -> real -> real -> int -> UNKNOWN[Image] = app5 (dlsym dlh "raylib_ImageTextEx") *)
(* val ImageFormat: UNKNOWN[Image *] -> int -> unit = app2 (dlsym dlh "raylib_ImageFormat") *)
(* val ImageToPOT: UNKNOWN[Image *] -> int -> unit = app2 (dlsym dlh "raylib_ImageToPOT") *)
(* val ImageCrop: UNKNOWN[Image *] -> UNKNOWN[Rectangle] -> unit = app2 (dlsym dlh "raylib_ImageCrop") *)
(* val ImageAlphaCrop: UNKNOWN[Image *] -> real -> unit = app2 (dlsym dlh "raylib_ImageAlphaCrop") *)
(* val ImageAlphaClear: UNKNOWN[Image *] -> int -> real -> unit = app3 (dlsym dlh "raylib_ImageAlphaClear") *)
(* val ImageAlphaMask: UNKNOWN[Image *] -> UNKNOWN[Image] -> unit = app2 (dlsym dlh "raylib_ImageAlphaMask") *)
(* val ImageAlphaPremultiply: UNKNOWN[Image *] -> unit = app1 (dlsym dlh "raylib_ImageAlphaPremultiply") *)
(* val ImageBlurGaussian: UNKNOWN[Image *] -> int -> unit = app2 (dlsym dlh "raylib_ImageBlurGaussian") *)
(* val ImageKernelConvolution: UNKNOWN[Image *] -> UNKNOWN[const float *] -> int -> unit = app3 (dlsym dlh "raylib_ImageKernelConvolution") *)
(* val ImageResize: UNKNOWN[Image *] -> int -> int -> unit = app3 (dlsym dlh "raylib_ImageResize") *)
(* val ImageResizeNN: UNKNOWN[Image *] -> int -> int -> unit = app3 (dlsym dlh "raylib_ImageResizeNN") *)
(* val ImageResizeCanvas: UNKNOWN[Image *] -> int -> int -> int -> int -> int -> unit = app6 (dlsym dlh "raylib_ImageResizeCanvas") *)
(* val ImageMipmaps: UNKNOWN[Image *] -> unit = app1 (dlsym dlh "raylib_ImageMipmaps") *)
(* val ImageDither: UNKNOWN[Image *] -> int -> int -> int -> int -> unit = app5 (dlsym dlh "raylib_ImageDither") *)
(* val ImageFlipVertical: UNKNOWN[Image *] -> unit = app1 (dlsym dlh "raylib_ImageFlipVertical") *)
(* val ImageFlipHorizontal: UNKNOWN[Image *] -> unit = app1 (dlsym dlh "raylib_ImageFlipHorizontal") *)
(* val ImageRotate: UNKNOWN[Image *] -> int -> unit = app2 (dlsym dlh "raylib_ImageRotate") *)
(* val ImageRotateCW: UNKNOWN[Image *] -> unit = app1 (dlsym dlh "raylib_ImageRotateCW") *)
(* val ImageRotateCCW: UNKNOWN[Image *] -> unit = app1 (dlsym dlh "raylib_ImageRotateCCW") *)
(* val ImageColorTint: UNKNOWN[Image *] -> int -> unit = app2 (dlsym dlh "raylib_ImageColorTint") *)
(* val ImageColorInvert: UNKNOWN[Image *] -> unit = app1 (dlsym dlh "raylib_ImageColorInvert") *)
(* val ImageColorGrayscale: UNKNOWN[Image *] -> unit = app1 (dlsym dlh "raylib_ImageColorGrayscale") *)
(* val ImageColorContrast: UNKNOWN[Image *] -> real -> unit = app2 (dlsym dlh "raylib_ImageColorContrast") *)
(* val ImageColorBrightness: UNKNOWN[Image *] -> int -> unit = app2 (dlsym dlh "raylib_ImageColorBrightness") *)
(* val ImageColorReplace: UNKNOWN[Image *] -> int -> int -> unit = app3 (dlsym dlh "raylib_ImageColorReplace") *)
(* val LoadImageColors: UNKNOWN[Image] -> UNKNOWN[Color *] = app1 (dlsym dlh "raylib_LoadImageColors") *)
(* val LoadImagePalette: UNKNOWN[Image] -> int -> UNKNOWN[int *] -> UNKNOWN[Color *] = app3 (dlsym dlh "raylib_LoadImagePalette") *)
(* val UnloadImageColors: UNKNOWN[Color *] -> unit = app1 (dlsym dlh "raylib_UnloadImageColors") *)
(* val UnloadImagePalette: UNKNOWN[Color *] -> unit = app1 (dlsym dlh "raylib_UnloadImagePalette") *)
(* val GetImageAlphaBorder: UNKNOWN[Image] -> real -> UNKNOWN[Rectangle] = app2 (dlsym dlh "raylib_GetImageAlphaBorder") *)
(* val GetImageColor: UNKNOWN[Image] -> int -> int -> int = app3 (dlsym dlh "raylib_GetImageColor") *)
(* val ImageClearBackground: UNKNOWN[Image *] -> int -> unit = app2 (dlsym dlh "raylib_ImageClearBackground") *)
(* val ImageDrawPixel: UNKNOWN[Image *] -> int -> int -> int -> unit = app4 (dlsym dlh "raylib_ImageDrawPixel") *)
(* val ImageDrawPixelV: UNKNOWN[Image *] -> UNKNOWN[Vector2] -> int -> unit = app3 (dlsym dlh "raylib_ImageDrawPixelV") *)
(* val ImageDrawLine: UNKNOWN[Image *] -> int -> int -> int -> int -> int -> unit = app6 (dlsym dlh "raylib_ImageDrawLine") *)
(* val ImageDrawLineV: UNKNOWN[Image *] -> UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> int -> unit = app4 (dlsym dlh "raylib_ImageDrawLineV") *)
(* val ImageDrawLineEx: UNKNOWN[Image *] -> UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> int -> int -> unit = app5 (dlsym dlh "raylib_ImageDrawLineEx") *)
(* val ImageDrawCircle: UNKNOWN[Image *] -> int -> int -> int -> int -> unit = app5 (dlsym dlh "raylib_ImageDrawCircle") *)
(* val ImageDrawCircleV: UNKNOWN[Image *] -> UNKNOWN[Vector2] -> int -> int -> unit = app4 (dlsym dlh "raylib_ImageDrawCircleV") *)
(* val ImageDrawCircleLines: UNKNOWN[Image *] -> int -> int -> int -> int -> unit = app5 (dlsym dlh "raylib_ImageDrawCircleLines") *)
(* val ImageDrawCircleLinesV: UNKNOWN[Image *] -> UNKNOWN[Vector2] -> int -> int -> unit = app4 (dlsym dlh "raylib_ImageDrawCircleLinesV") *)
(* val ImageDrawRectangle: UNKNOWN[Image *] -> int -> int -> int -> int -> int -> unit = app6 (dlsym dlh "raylib_ImageDrawRectangle") *)
(* val ImageDrawRectangleV: UNKNOWN[Image *] -> UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> int -> unit = app4 (dlsym dlh "raylib_ImageDrawRectangleV") *)
(* val ImageDrawRectangleRec: UNKNOWN[Image *] -> UNKNOWN[Rectangle] -> int -> unit = app3 (dlsym dlh "raylib_ImageDrawRectangleRec") *)
(* val ImageDrawRectangleLines: UNKNOWN[Image *] -> UNKNOWN[Rectangle] -> int -> int -> unit = app4 (dlsym dlh "raylib_ImageDrawRectangleLines") *)
(* val ImageDrawTriangle: UNKNOWN[Image *] -> UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> int -> unit = app5 (dlsym dlh "raylib_ImageDrawTriangle") *)
(* val ImageDrawTriangleEx: UNKNOWN[Image *] -> UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> int -> int -> int -> unit = app7 (dlsym dlh "raylib_ImageDrawTriangleEx") *)
(* val ImageDrawTriangleLines: UNKNOWN[Image *] -> UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> int -> unit = app5 (dlsym dlh "raylib_ImageDrawTriangleLines") *)
(* val ImageDrawTriangleFan: UNKNOWN[Image *] -> UNKNOWN[Vector2 *] -> int -> int -> unit = app4 (dlsym dlh "raylib_ImageDrawTriangleFan") *)
(* val ImageDrawTriangleStrip: UNKNOWN[Image *] -> UNKNOWN[Vector2 *] -> int -> int -> unit = app4 (dlsym dlh "raylib_ImageDrawTriangleStrip") *)
(* val ImageDraw: UNKNOWN[Image *] -> UNKNOWN[Image] -> UNKNOWN[Rectangle] -> UNKNOWN[Rectangle] -> int -> unit = app5 (dlsym dlh "raylib_ImageDraw") *)
(* val ImageDrawText: UNKNOWN[Image *] -> string -> int -> int -> int -> int -> unit = app6 (dlsym dlh "raylib_ImageDrawText") *)
(* val ImageDrawTextEx: UNKNOWN[Image *] -> UNKNOWN[Font] -> string -> UNKNOWN[Vector2] -> real -> real -> int -> unit = app7 (dlsym dlh "raylib_ImageDrawTextEx") *)
(* val LoadTexture: string -> UNKNOWN[Texture2D] = app1 (dlsym dlh "raylib_LoadTexture") *)
(* val LoadTextureFromImage: UNKNOWN[Image] -> UNKNOWN[Texture2D] = app1 (dlsym dlh "raylib_LoadTextureFromImage") *)
(* val LoadTextureCubemap: UNKNOWN[Image] -> int -> UNKNOWN[TextureCubemap] = app2 (dlsym dlh "raylib_LoadTextureCubemap") *)
(* val LoadRenderTexture: int -> int -> UNKNOWN[RenderTexture2D] = app2 (dlsym dlh "raylib_LoadRenderTexture") *)
(* val IsTextureValid: UNKNOWN[Texture2D] -> bool = app1 (dlsym dlh "raylib_IsTextureValid") *)
(* val UnloadTexture: UNKNOWN[Texture2D] -> unit = app1 (dlsym dlh "raylib_UnloadTexture") *)
(* val IsRenderTextureValid: UNKNOWN[RenderTexture2D] -> bool = app1 (dlsym dlh "raylib_IsRenderTextureValid") *)
(* val UnloadRenderTexture: UNKNOWN[RenderTexture2D] -> unit = app1 (dlsym dlh "raylib_UnloadRenderTexture") *)
(* val UpdateTexture: UNKNOWN[Texture2D] -> UNKNOWN[const void *] -> unit = app2 (dlsym dlh "raylib_UpdateTexture") *)
(* val UpdateTextureRec: UNKNOWN[Texture2D] -> UNKNOWN[Rectangle] -> UNKNOWN[const void *] -> unit = app3 (dlsym dlh "raylib_UpdateTextureRec") *)
(* val GenTextureMipmaps: UNKNOWN[Texture2D *] -> unit = app1 (dlsym dlh "raylib_GenTextureMipmaps") *)
(* val SetTextureFilter: UNKNOWN[Texture2D] -> int -> unit = app2 (dlsym dlh "raylib_SetTextureFilter") *)
(* val SetTextureWrap: UNKNOWN[Texture2D] -> int -> unit = app2 (dlsym dlh "raylib_SetTextureWrap") *)
(* val DrawTexture: UNKNOWN[Texture2D] -> int -> int -> int -> unit = app4 (dlsym dlh "raylib_DrawTexture") *)
(* val DrawTextureV: UNKNOWN[Texture2D] -> UNKNOWN[Vector2] -> int -> unit = app3 (dlsym dlh "raylib_DrawTextureV") *)
(* val DrawTextureEx: UNKNOWN[Texture2D] -> UNKNOWN[Vector2] -> real -> real -> int -> unit = app5 (dlsym dlh "raylib_DrawTextureEx") *)
(* val DrawTextureRec: UNKNOWN[Texture2D] -> UNKNOWN[Rectangle] -> UNKNOWN[Vector2] -> int -> unit = app4 (dlsym dlh "raylib_DrawTextureRec") *)
(* val DrawTexturePro: UNKNOWN[Texture2D] -> UNKNOWN[Rectangle] -> UNKNOWN[Rectangle] -> UNKNOWN[Vector2] -> real -> int -> unit = app6 (dlsym dlh "raylib_DrawTexturePro") *)
(* val DrawTextureNPatch: UNKNOWN[Texture2D] -> UNKNOWN[NPatchInfo] -> UNKNOWN[Rectangle] -> UNKNOWN[Vector2] -> real -> int -> unit = app6 (dlsym dlh "raylib_DrawTextureNPatch") *)
val ColorIsEqual: int -> int -> bool = app2 (dlsym dlh "raylib_ColorIsEqual")
val Fade: int -> real -> int = app2 (dlsym dlh "raylib_Fade")
val ColorToInt: int -> int = app1 (dlsym dlh "raylib_ColorToInt")
(* val ColorNormalize: int -> UNKNOWN[Vector4] = app1 (dlsym dlh "raylib_ColorNormalize") *)
(* val ColorFromNormalized: UNKNOWN[Vector4] -> int = app1 (dlsym dlh "raylib_ColorFromNormalized") *)
(* val ColorToHSV: int -> UNKNOWN[Vector3] = app1 (dlsym dlh "raylib_ColorToHSV") *)
val ColorFromHSV: real -> real -> real -> int = app3 (dlsym dlh "raylib_ColorFromHSV")
val ColorTint: int -> int -> int = app2 (dlsym dlh "raylib_ColorTint")
val ColorBrightness: int -> real -> int = app2 (dlsym dlh "raylib_ColorBrightness")
val ColorContrast: int -> real -> int = app2 (dlsym dlh "raylib_ColorContrast")
val ColorAlpha: int -> real -> int = app2 (dlsym dlh "raylib_ColorAlpha")
val ColorAlphaBlend: int -> int -> int -> int = app3 (dlsym dlh "raylib_ColorAlphaBlend")
val ColorLerp: int -> int -> real -> int = app3 (dlsym dlh "raylib_ColorLerp")
(* val GetColor: word -> int = app1 (dlsym dlh "raylib_GetColor") *)
(* val GetPixelColor: UNKNOWN[void *] -> int -> int = app2 (dlsym dlh "raylib_GetPixelColor") *)
(* val SetPixelColor: UNKNOWN[void *] -> int -> int -> unit = app3 (dlsym dlh "raylib_SetPixelColor") *)
val GetPixelDataSize: int -> int -> int -> int = app3 (dlsym dlh "raylib_GetPixelDataSize")
(* val GetFontDefault: unit -> UNKNOWN[Font] = app1 (dlsym dlh "raylib_GetFontDefault") *)
(* val LoadFont: string -> UNKNOWN[Font] = app1 (dlsym dlh "raylib_LoadFont") *)
(* val LoadFontEx: string -> int -> UNKNOWN[int *] -> int -> UNKNOWN[Font] = app4 (dlsym dlh "raylib_LoadFontEx") *)
(* val LoadFontFromImage: UNKNOWN[Image] -> int -> int -> UNKNOWN[Font] = app3 (dlsym dlh "raylib_LoadFontFromImage") *)
(* val LoadFontFromMemory: string -> UNKNOWN[const unsigned char *] -> int -> int -> UNKNOWN[int *] -> int -> UNKNOWN[Font] = app6 (dlsym dlh "raylib_LoadFontFromMemory") *)
(* val IsFontValid: UNKNOWN[Font] -> bool = app1 (dlsym dlh "raylib_IsFontValid") *)
(* val LoadFontData: UNKNOWN[const unsigned char *] -> int -> int -> UNKNOWN[int *] -> int -> int -> UNKNOWN[GlyphInfo *] = app6 (dlsym dlh "raylib_LoadFontData") *)
(* val GenImageFontAtlas: UNKNOWN[const GlyphInfo *] -> UNKNOWN[Rectangle **] -> int -> int -> int -> int -> UNKNOWN[Image] = app6 (dlsym dlh "raylib_GenImageFontAtlas") *)
(* val UnloadFontData: UNKNOWN[GlyphInfo *] -> int -> unit = app2 (dlsym dlh "raylib_UnloadFontData") *)
(* val UnloadFont: UNKNOWN[Font] -> unit = app1 (dlsym dlh "raylib_UnloadFont") *)
(* val ExportFontAsCode: UNKNOWN[Font] -> string -> bool = app2 (dlsym dlh "raylib_ExportFontAsCode") *)
val DrawFPS: int -> int -> unit = app2 (dlsym dlh "raylib_DrawFPS")
val DrawText: string -> int -> int -> int -> int -> unit = app5 (dlsym dlh "raylib_DrawText")
(* val DrawTextEx: UNKNOWN[Font] -> string -> UNKNOWN[Vector2] -> real -> real -> int -> unit = app6 (dlsym dlh "raylib_DrawTextEx") *)
(* val DrawTextPro: UNKNOWN[Font] -> string -> UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> real -> real -> real -> int -> unit = app8 (dlsym dlh "raylib_DrawTextPro") *)
(* val DrawTextCodepoint: UNKNOWN[Font] -> int -> UNKNOWN[Vector2] -> real -> int -> unit = app5 (dlsym dlh "raylib_DrawTextCodepoint") *)
(* val DrawTextCodepoints: UNKNOWN[Font] -> UNKNOWN[const int *] -> int -> UNKNOWN[Vector2] -> real -> real -> int -> unit = app7 (dlsym dlh "raylib_DrawTextCodepoints") *)
val SetTextLineSpacing: int -> unit = app1 (dlsym dlh "raylib_SetTextLineSpacing")
val MeasureText: string -> int -> int = app2 (dlsym dlh "raylib_MeasureText")
(* val MeasureTextEx: UNKNOWN[Font] -> string -> real -> real -> UNKNOWN[Vector2] = app4 (dlsym dlh "raylib_MeasureTextEx") *)
(* val GetGlyphIndex: UNKNOWN[Font] -> int -> int = app2 (dlsym dlh "raylib_GetGlyphIndex") *)
(* val GetGlyphInfo: UNKNOWN[Font] -> int -> UNKNOWN[GlyphInfo] = app2 (dlsym dlh "raylib_GetGlyphInfo") *)
(* val GetGlyphAtlasRec: UNKNOWN[Font] -> int -> UNKNOWN[Rectangle] = app2 (dlsym dlh "raylib_GetGlyphAtlasRec") *)
(* val LoadUTF8: UNKNOWN[const int *] -> int -> UNKNOWN[char *] = app2 (dlsym dlh "raylib_LoadUTF8") *)
(* val UnloadUTF8: UNKNOWN[char *] -> unit = app1 (dlsym dlh "raylib_UnloadUTF8") *)
(* val LoadCodepoints: string -> UNKNOWN[int *] -> UNKNOWN[int *] = app2 (dlsym dlh "raylib_LoadCodepoints") *)
(* val UnloadCodepoints: UNKNOWN[int *] -> unit = app1 (dlsym dlh "raylib_UnloadCodepoints") *)
val GetCodepointCount: string -> int = app1 (dlsym dlh "raylib_GetCodepointCount")
(* val GetCodepoint: string -> UNKNOWN[int *] -> int = app2 (dlsym dlh "raylib_GetCodepoint") *)
(* val GetCodepointNext: string -> UNKNOWN[int *] -> int = app2 (dlsym dlh "raylib_GetCodepointNext") *)
(* val GetCodepointPrevious: string -> UNKNOWN[int *] -> int = app2 (dlsym dlh "raylib_GetCodepointPrevious") *)
(* val CodepointToUTF8: int -> UNKNOWN[int *] -> string = app2 (dlsym dlh "raylib_CodepointToUTF8") *)
(* val TextCopy: UNKNOWN[char *] -> string -> int = app2 (dlsym dlh "raylib_TextCopy") *)
val TextIsEqual: string -> string -> bool = app2 (dlsym dlh "raylib_TextIsEqual")
(* val TextLength: string -> word = app1 (dlsym dlh "raylib_TextLength") *)
(* val TextFormat: string -> UNKNOWN[...] -> string = app2 (dlsym dlh "raylib_TextFormat") *)
val TextSubtext: string -> int -> int -> string = app3 (dlsym dlh "raylib_TextSubtext")
(* val TextReplace: string -> string -> string -> UNKNOWN[char *] = app3 (dlsym dlh "raylib_TextReplace") *)
(* val TextInsert: string -> string -> int -> UNKNOWN[char *] = app3 (dlsym dlh "raylib_TextInsert") *)
(* val TextJoin: UNKNOWN[const char **] -> int -> string -> string = app3 (dlsym dlh "raylib_TextJoin") *)
(* val TextSplit: string -> UNKNOWN[char] -> UNKNOWN[int *] -> UNKNOWN[const char **] = app3 (dlsym dlh "raylib_TextSplit") *)
(* val TextAppend: UNKNOWN[char *] -> string -> UNKNOWN[int *] -> unit = app3 (dlsym dlh "raylib_TextAppend") *)
val TextFindIndex: string -> string -> int = app2 (dlsym dlh "raylib_TextFindIndex")
val TextToUpper: string -> string = app1 (dlsym dlh "raylib_TextToUpper")
val TextToLower: string -> string = app1 (dlsym dlh "raylib_TextToLower")
val TextToPascal: string -> string = app1 (dlsym dlh "raylib_TextToPascal")
val TextToSnake: string -> string = app1 (dlsym dlh "raylib_TextToSnake")
val TextToCamel: string -> string = app1 (dlsym dlh "raylib_TextToCamel")
val TextToInteger: string -> int = app1 (dlsym dlh "raylib_TextToInteger")
val TextToFloat: string -> real = app1 (dlsym dlh "raylib_TextToFloat")
(* val DrawLine3D: UNKNOWN[Vector3] -> UNKNOWN[Vector3] -> int -> unit = app3 (dlsym dlh "raylib_DrawLine3D") *)
(* val DrawPoint3D: UNKNOWN[Vector3] -> int -> unit = app2 (dlsym dlh "raylib_DrawPoint3D") *)
(* val DrawCircle3D: UNKNOWN[Vector3] -> real -> UNKNOWN[Vector3] -> real -> int -> unit = app5 (dlsym dlh "raylib_DrawCircle3D") *)
(* val DrawTriangle3D: UNKNOWN[Vector3] -> UNKNOWN[Vector3] -> UNKNOWN[Vector3] -> int -> unit = app4 (dlsym dlh "raylib_DrawTriangle3D") *)
(* val DrawTriangleStrip3D: UNKNOWN[const Vector3 *] -> int -> int -> unit = app3 (dlsym dlh "raylib_DrawTriangleStrip3D") *)
(* val DrawCube: UNKNOWN[Vector3] -> real -> real -> real -> int -> unit = app5 (dlsym dlh "raylib_DrawCube") *)
(* val DrawCubeV: UNKNOWN[Vector3] -> UNKNOWN[Vector3] -> int -> unit = app3 (dlsym dlh "raylib_DrawCubeV") *)
(* val DrawCubeWires: UNKNOWN[Vector3] -> real -> real -> real -> int -> unit = app5 (dlsym dlh "raylib_DrawCubeWires") *)
(* val DrawCubeWiresV: UNKNOWN[Vector3] -> UNKNOWN[Vector3] -> int -> unit = app3 (dlsym dlh "raylib_DrawCubeWiresV") *)
(* val DrawSphere: UNKNOWN[Vector3] -> real -> int -> unit = app3 (dlsym dlh "raylib_DrawSphere") *)
(* val DrawSphereEx: UNKNOWN[Vector3] -> real -> int -> int -> int -> unit = app5 (dlsym dlh "raylib_DrawSphereEx") *)
(* val DrawSphereWires: UNKNOWN[Vector3] -> real -> int -> int -> int -> unit = app5 (dlsym dlh "raylib_DrawSphereWires") *)
(* val DrawCylinder: UNKNOWN[Vector3] -> real -> real -> real -> int -> int -> unit = app6 (dlsym dlh "raylib_DrawCylinder") *)
(* val DrawCylinderEx: UNKNOWN[Vector3] -> UNKNOWN[Vector3] -> real -> real -> int -> int -> unit = app6 (dlsym dlh "raylib_DrawCylinderEx") *)
(* val DrawCylinderWires: UNKNOWN[Vector3] -> real -> real -> real -> int -> int -> unit = app6 (dlsym dlh "raylib_DrawCylinderWires") *)
(* val DrawCylinderWiresEx: UNKNOWN[Vector3] -> UNKNOWN[Vector3] -> real -> real -> int -> int -> unit = app6 (dlsym dlh "raylib_DrawCylinderWiresEx") *)
(* val DrawCapsule: UNKNOWN[Vector3] -> UNKNOWN[Vector3] -> real -> int -> int -> int -> unit = app6 (dlsym dlh "raylib_DrawCapsule") *)
(* val DrawCapsuleWires: UNKNOWN[Vector3] -> UNKNOWN[Vector3] -> real -> int -> int -> int -> unit = app6 (dlsym dlh "raylib_DrawCapsuleWires") *)
(* val DrawPlane: UNKNOWN[Vector3] -> UNKNOWN[Vector2] -> int -> unit = app3 (dlsym dlh "raylib_DrawPlane") *)
(* val DrawRay: UNKNOWN[Ray] -> int -> unit = app2 (dlsym dlh "raylib_DrawRay") *)
val DrawGrid: int -> real -> unit = app2 (dlsym dlh "raylib_DrawGrid")
(* val LoadModel: string -> UNKNOWN[Model] = app1 (dlsym dlh "raylib_LoadModel") *)
(* val LoadModelFromMesh: UNKNOWN[Mesh] -> UNKNOWN[Model] = app1 (dlsym dlh "raylib_LoadModelFromMesh") *)
(* val IsModelValid: UNKNOWN[Model] -> bool = app1 (dlsym dlh "raylib_IsModelValid") *)
(* val UnloadModel: UNKNOWN[Model] -> unit = app1 (dlsym dlh "raylib_UnloadModel") *)
(* val GetModelBoundingBox: UNKNOWN[Model] -> UNKNOWN[BoundingBox] = app1 (dlsym dlh "raylib_GetModelBoundingBox") *)
(* val DrawModel: UNKNOWN[Model] -> UNKNOWN[Vector3] -> real -> int -> unit = app4 (dlsym dlh "raylib_DrawModel") *)
(* val DrawModelEx: UNKNOWN[Model] -> UNKNOWN[Vector3] -> UNKNOWN[Vector3] -> real -> UNKNOWN[Vector3] -> int -> unit = app6 (dlsym dlh "raylib_DrawModelEx") *)
(* val DrawModelWires: UNKNOWN[Model] -> UNKNOWN[Vector3] -> real -> int -> unit = app4 (dlsym dlh "raylib_DrawModelWires") *)
(* val DrawModelWiresEx: UNKNOWN[Model] -> UNKNOWN[Vector3] -> UNKNOWN[Vector3] -> real -> UNKNOWN[Vector3] -> int -> unit = app6 (dlsym dlh "raylib_DrawModelWiresEx") *)
(* val DrawModelPoints: UNKNOWN[Model] -> UNKNOWN[Vector3] -> real -> int -> unit = app4 (dlsym dlh "raylib_DrawModelPoints") *)
(* val DrawModelPointsEx: UNKNOWN[Model] -> UNKNOWN[Vector3] -> UNKNOWN[Vector3] -> real -> UNKNOWN[Vector3] -> int -> unit = app6 (dlsym dlh "raylib_DrawModelPointsEx") *)
(* val DrawBoundingBox: UNKNOWN[BoundingBox] -> int -> unit = app2 (dlsym dlh "raylib_DrawBoundingBox") *)
(* val DrawBillboard: UNKNOWN[Camera] -> UNKNOWN[Texture2D] -> UNKNOWN[Vector3] -> real -> int -> unit = app5 (dlsym dlh "raylib_DrawBillboard") *)
(* val DrawBillboardRec: UNKNOWN[Camera] -> UNKNOWN[Texture2D] -> UNKNOWN[Rectangle] -> UNKNOWN[Vector3] -> UNKNOWN[Vector2] -> int -> unit = app6 (dlsym dlh "raylib_DrawBillboardRec") *)
(* val DrawBillboardPro: UNKNOWN[Camera] -> UNKNOWN[Texture2D] -> UNKNOWN[Rectangle] -> UNKNOWN[Vector3] -> UNKNOWN[Vector3] -> UNKNOWN[Vector2] -> UNKNOWN[Vector2] -> real -> int -> unit = app9 (dlsym dlh "raylib_DrawBillboardPro") *)
(* val UploadMesh: UNKNOWN[Mesh *] -> bool -> unit = app2 (dlsym dlh "raylib_UploadMesh") *)
(* val UpdateMeshBuffer: UNKNOWN[Mesh] -> int -> UNKNOWN[const void *] -> int -> int -> unit = app5 (dlsym dlh "raylib_UpdateMeshBuffer") *)
(* val UnloadMesh: UNKNOWN[Mesh] -> unit = app1 (dlsym dlh "raylib_UnloadMesh") *)
(* val DrawMesh: UNKNOWN[Mesh] -> UNKNOWN[Material] -> UNKNOWN[Matrix] -> unit = app3 (dlsym dlh "raylib_DrawMesh") *)
(* val DrawMeshInstanced: UNKNOWN[Mesh] -> UNKNOWN[Material] -> UNKNOWN[const Matrix *] -> int -> unit = app4 (dlsym dlh "raylib_DrawMeshInstanced") *)
(* val GetMeshBoundingBox: UNKNOWN[Mesh] -> UNKNOWN[BoundingBox] = app1 (dlsym dlh "raylib_GetMeshBoundingBox") *)
(* val GenMeshTangents: UNKNOWN[Mesh *] -> unit = app1 (dlsym dlh "raylib_GenMeshTangents") *)
(* val ExportMesh: UNKNOWN[Mesh] -> string -> bool = app2 (dlsym dlh "raylib_ExportMesh") *)
(* val ExportMeshAsCode: UNKNOWN[Mesh] -> string -> bool = app2 (dlsym dlh "raylib_ExportMeshAsCode") *)
(* val GenMeshPoly: int -> real -> UNKNOWN[Mesh] = app2 (dlsym dlh "raylib_GenMeshPoly") *)
(* val GenMeshPlane: real -> real -> int -> int -> UNKNOWN[Mesh] = app4 (dlsym dlh "raylib_GenMeshPlane") *)
(* val GenMeshCube: real -> real -> real -> UNKNOWN[Mesh] = app3 (dlsym dlh "raylib_GenMeshCube") *)
(* val GenMeshSphere: real -> int -> int -> UNKNOWN[Mesh] = app3 (dlsym dlh "raylib_GenMeshSphere") *)
(* val GenMeshHemiSphere: real -> int -> int -> UNKNOWN[Mesh] = app3 (dlsym dlh "raylib_GenMeshHemiSphere") *)
(* val GenMeshCylinder: real -> real -> int -> UNKNOWN[Mesh] = app3 (dlsym dlh "raylib_GenMeshCylinder") *)
(* val GenMeshCone: real -> real -> int -> UNKNOWN[Mesh] = app3 (dlsym dlh "raylib_GenMeshCone") *)
(* val GenMeshTorus: real -> real -> int -> int -> UNKNOWN[Mesh] = app4 (dlsym dlh "raylib_GenMeshTorus") *)
(* val GenMeshKnot: real -> real -> int -> int -> UNKNOWN[Mesh] = app4 (dlsym dlh "raylib_GenMeshKnot") *)
(* val GenMeshHeightmap: UNKNOWN[Image] -> UNKNOWN[Vector3] -> UNKNOWN[Mesh] = app2 (dlsym dlh "raylib_GenMeshHeightmap") *)
(* val GenMeshCubicmap: UNKNOWN[Image] -> UNKNOWN[Vector3] -> UNKNOWN[Mesh] = app2 (dlsym dlh "raylib_GenMeshCubicmap") *)
(* val LoadMaterials: string -> UNKNOWN[int *] -> UNKNOWN[Material *] = app2 (dlsym dlh "raylib_LoadMaterials") *)
(* val LoadMaterialDefault: unit -> UNKNOWN[Material] = app1 (dlsym dlh "raylib_LoadMaterialDefault") *)
(* val IsMaterialValid: UNKNOWN[Material] -> bool = app1 (dlsym dlh "raylib_IsMaterialValid") *)
(* val UnloadMaterial: UNKNOWN[Material] -> unit = app1 (dlsym dlh "raylib_UnloadMaterial") *)
(* val SetMaterialTexture: UNKNOWN[Material *] -> int -> UNKNOWN[Texture2D] -> unit = app3 (dlsym dlh "raylib_SetMaterialTexture") *)
(* val SetModelMeshMaterial: UNKNOWN[Model *] -> int -> int -> unit = app3 (dlsym dlh "raylib_SetModelMeshMaterial") *)
(* val LoadModelAnimations: string -> UNKNOWN[int *] -> UNKNOWN[ModelAnimation *] = app2 (dlsym dlh "raylib_LoadModelAnimations") *)
(* val UpdateModelAnimation: UNKNOWN[Model] -> UNKNOWN[ModelAnimation] -> int -> unit = app3 (dlsym dlh "raylib_UpdateModelAnimation") *)
(* val UpdateModelAnimationBones: UNKNOWN[Model] -> UNKNOWN[ModelAnimation] -> int -> unit = app3 (dlsym dlh "raylib_UpdateModelAnimationBones") *)
(* val UnloadModelAnimation: UNKNOWN[ModelAnimation] -> unit = app1 (dlsym dlh "raylib_UnloadModelAnimation") *)
(* val UnloadModelAnimations: UNKNOWN[ModelAnimation *] -> int -> unit = app2 (dlsym dlh "raylib_UnloadModelAnimations") *)
(* val IsModelAnimationValid: UNKNOWN[Model] -> UNKNOWN[ModelAnimation] -> bool = app2 (dlsym dlh "raylib_IsModelAnimationValid") *)
(* val CheckCollisionSpheres: UNKNOWN[Vector3] -> real -> UNKNOWN[Vector3] -> real -> bool = app4 (dlsym dlh "raylib_CheckCollisionSpheres") *)
(* val CheckCollisionBoxes: UNKNOWN[BoundingBox] -> UNKNOWN[BoundingBox] -> bool = app2 (dlsym dlh "raylib_CheckCollisionBoxes") *)
(* val CheckCollisionBoxSphere: UNKNOWN[BoundingBox] -> UNKNOWN[Vector3] -> real -> bool = app3 (dlsym dlh "raylib_CheckCollisionBoxSphere") *)
(* val GetRayCollisionSphere: UNKNOWN[Ray] -> UNKNOWN[Vector3] -> real -> UNKNOWN[RayCollision] = app3 (dlsym dlh "raylib_GetRayCollisionSphere") *)
(* val GetRayCollisionBox: UNKNOWN[Ray] -> UNKNOWN[BoundingBox] -> UNKNOWN[RayCollision] = app2 (dlsym dlh "raylib_GetRayCollisionBox") *)
(* val GetRayCollisionMesh: UNKNOWN[Ray] -> UNKNOWN[Mesh] -> UNKNOWN[Matrix] -> UNKNOWN[RayCollision] = app3 (dlsym dlh "raylib_GetRayCollisionMesh") *)
(* val GetRayCollisionTriangle: UNKNOWN[Ray] -> UNKNOWN[Vector3] -> UNKNOWN[Vector3] -> UNKNOWN[Vector3] -> UNKNOWN[RayCollision] = app4 (dlsym dlh "raylib_GetRayCollisionTriangle") *)
(* val GetRayCollisionQuad: UNKNOWN[Ray] -> UNKNOWN[Vector3] -> UNKNOWN[Vector3] -> UNKNOWN[Vector3] -> UNKNOWN[Vector3] -> UNKNOWN[RayCollision] = app5 (dlsym dlh "raylib_GetRayCollisionQuad") *)
val InitAudioDevice: unit -> unit = app1 (dlsym dlh "raylib_InitAudioDevice")
val CloseAudioDevice: unit -> unit = app1 (dlsym dlh "raylib_CloseAudioDevice")
val IsAudioDeviceReady: unit -> bool = app1 (dlsym dlh "raylib_IsAudioDeviceReady")
val SetMasterVolume: real -> unit = app1 (dlsym dlh "raylib_SetMasterVolume")
val GetMasterVolume: unit -> real = app1 (dlsym dlh "raylib_GetMasterVolume")
(* val LoadWave: string -> UNKNOWN[Wave] = app1 (dlsym dlh "raylib_LoadWave") *)
(* val LoadWaveFromMemory: string -> UNKNOWN[const unsigned char *] -> int -> UNKNOWN[Wave] = app3 (dlsym dlh "raylib_LoadWaveFromMemory") *)
(* val IsWaveValid: UNKNOWN[Wave] -> bool = app1 (dlsym dlh "raylib_IsWaveValid") *)
(* val LoadSound: string -> UNKNOWN[Sound] = app1 (dlsym dlh "raylib_LoadSound") *)
(* val LoadSoundFromWave: UNKNOWN[Wave] -> UNKNOWN[Sound] = app1 (dlsym dlh "raylib_LoadSoundFromWave") *)
(* val LoadSoundAlias: UNKNOWN[Sound] -> UNKNOWN[Sound] = app1 (dlsym dlh "raylib_LoadSoundAlias") *)
(* val IsSoundValid: UNKNOWN[Sound] -> bool = app1 (dlsym dlh "raylib_IsSoundValid") *)
(* val UpdateSound: UNKNOWN[Sound] -> UNKNOWN[const void *] -> int -> unit = app3 (dlsym dlh "raylib_UpdateSound") *)
(* val UnloadWave: UNKNOWN[Wave] -> unit = app1 (dlsym dlh "raylib_UnloadWave") *)
(* val UnloadSound: UNKNOWN[Sound] -> unit = app1 (dlsym dlh "raylib_UnloadSound") *)
(* val UnloadSoundAlias: UNKNOWN[Sound] -> unit = app1 (dlsym dlh "raylib_UnloadSoundAlias") *)
(* val ExportWave: UNKNOWN[Wave] -> string -> bool = app2 (dlsym dlh "raylib_ExportWave") *)
(* val ExportWaveAsCode: UNKNOWN[Wave] -> string -> bool = app2 (dlsym dlh "raylib_ExportWaveAsCode") *)
(* val PlaySound: UNKNOWN[Sound] -> unit = app1 (dlsym dlh "raylib_PlaySound") *)
(* val StopSound: UNKNOWN[Sound] -> unit = app1 (dlsym dlh "raylib_StopSound") *)
(* val PauseSound: UNKNOWN[Sound] -> unit = app1 (dlsym dlh "raylib_PauseSound") *)
(* val ResumeSound: UNKNOWN[Sound] -> unit = app1 (dlsym dlh "raylib_ResumeSound") *)
(* val IsSoundPlaying: UNKNOWN[Sound] -> bool = app1 (dlsym dlh "raylib_IsSoundPlaying") *)
(* val SetSoundVolume: UNKNOWN[Sound] -> real -> unit = app2 (dlsym dlh "raylib_SetSoundVolume") *)
(* val SetSoundPitch: UNKNOWN[Sound] -> real -> unit = app2 (dlsym dlh "raylib_SetSoundPitch") *)
(* val SetSoundPan: UNKNOWN[Sound] -> real -> unit = app2 (dlsym dlh "raylib_SetSoundPan") *)
(* val WaveCopy: UNKNOWN[Wave] -> UNKNOWN[Wave] = app1 (dlsym dlh "raylib_WaveCopy") *)
(* val WaveCrop: UNKNOWN[Wave *] -> int -> int -> unit = app3 (dlsym dlh "raylib_WaveCrop") *)
(* val WaveFormat: UNKNOWN[Wave *] -> int -> int -> int -> unit = app4 (dlsym dlh "raylib_WaveFormat") *)
(* val LoadWaveSamples: UNKNOWN[Wave] -> UNKNOWN[float *] = app1 (dlsym dlh "raylib_LoadWaveSamples") *)
(* val UnloadWaveSamples: UNKNOWN[float *] -> unit = app1 (dlsym dlh "raylib_UnloadWaveSamples") *)
(* val LoadMusicStream: string -> UNKNOWN[Music] = app1 (dlsym dlh "raylib_LoadMusicStream") *)
(* val LoadMusicStreamFromMemory: string -> UNKNOWN[const unsigned char *] -> int -> UNKNOWN[Music] = app3 (dlsym dlh "raylib_LoadMusicStreamFromMemory") *)
(* val IsMusicValid: UNKNOWN[Music] -> bool = app1 (dlsym dlh "raylib_IsMusicValid") *)
(* val UnloadMusicStream: UNKNOWN[Music] -> unit = app1 (dlsym dlh "raylib_UnloadMusicStream") *)
(* val PlayMusicStream: UNKNOWN[Music] -> unit = app1 (dlsym dlh "raylib_PlayMusicStream") *)
(* val IsMusicStreamPlaying: UNKNOWN[Music] -> bool = app1 (dlsym dlh "raylib_IsMusicStreamPlaying") *)
(* val UpdateMusicStream: UNKNOWN[Music] -> unit = app1 (dlsym dlh "raylib_UpdateMusicStream") *)
(* val StopMusicStream: UNKNOWN[Music] -> unit = app1 (dlsym dlh "raylib_StopMusicStream") *)
(* val PauseMusicStream: UNKNOWN[Music] -> unit = app1 (dlsym dlh "raylib_PauseMusicStream") *)
(* val ResumeMusicStream: UNKNOWN[Music] -> unit = app1 (dlsym dlh "raylib_ResumeMusicStream") *)
(* val SeekMusicStream: UNKNOWN[Music] -> real -> unit = app2 (dlsym dlh "raylib_SeekMusicStream") *)
(* val SetMusicVolume: UNKNOWN[Music] -> real -> unit = app2 (dlsym dlh "raylib_SetMusicVolume") *)
(* val SetMusicPitch: UNKNOWN[Music] -> real -> unit = app2 (dlsym dlh "raylib_SetMusicPitch") *)
(* val SetMusicPan: UNKNOWN[Music] -> real -> unit = app2 (dlsym dlh "raylib_SetMusicPan") *)
(* val GetMusicTimeLength: UNKNOWN[Music] -> real = app1 (dlsym dlh "raylib_GetMusicTimeLength") *)
(* val GetMusicTimePlayed: UNKNOWN[Music] -> real = app1 (dlsym dlh "raylib_GetMusicTimePlayed") *)
(* val LoadAudioStream: word -> word -> word -> UNKNOWN[AudioStream] = app3 (dlsym dlh "raylib_LoadAudioStream") *)
(* val IsAudioStreamValid: UNKNOWN[AudioStream] -> bool = app1 (dlsym dlh "raylib_IsAudioStreamValid") *)
(* val UnloadAudioStream: UNKNOWN[AudioStream] -> unit = app1 (dlsym dlh "raylib_UnloadAudioStream") *)
(* val UpdateAudioStream: UNKNOWN[AudioStream] -> UNKNOWN[const void *] -> int -> unit = app3 (dlsym dlh "raylib_UpdateAudioStream") *)
(* val IsAudioStreamProcessed: UNKNOWN[AudioStream] -> bool = app1 (dlsym dlh "raylib_IsAudioStreamProcessed") *)
(* val PlayAudioStream: UNKNOWN[AudioStream] -> unit = app1 (dlsym dlh "raylib_PlayAudioStream") *)
(* val PauseAudioStream: UNKNOWN[AudioStream] -> unit = app1 (dlsym dlh "raylib_PauseAudioStream") *)
(* val ResumeAudioStream: UNKNOWN[AudioStream] -> unit = app1 (dlsym dlh "raylib_ResumeAudioStream") *)
(* val IsAudioStreamPlaying: UNKNOWN[AudioStream] -> bool = app1 (dlsym dlh "raylib_IsAudioStreamPlaying") *)
(* val StopAudioStream: UNKNOWN[AudioStream] -> unit = app1 (dlsym dlh "raylib_StopAudioStream") *)
(* val SetAudioStreamVolume: UNKNOWN[AudioStream] -> real -> unit = app2 (dlsym dlh "raylib_SetAudioStreamVolume") *)
(* val SetAudioStreamPitch: UNKNOWN[AudioStream] -> real -> unit = app2 (dlsym dlh "raylib_SetAudioStreamPitch") *)
(* val SetAudioStreamPan: UNKNOWN[AudioStream] -> real -> unit = app2 (dlsym dlh "raylib_SetAudioStreamPan") *)
val SetAudioStreamBufferSizeDefault: int -> unit = app1 (dlsym dlh "raylib_SetAudioStreamBufferSizeDefault")
(* val SetAudioStreamCallback: UNKNOWN[AudioStream] -> UNKNOWN[AudioCallback] -> unit = app2 (dlsym dlh "raylib_SetAudioStreamCallback") *)
(* val AttachAudioStreamProcessor: UNKNOWN[AudioStream] -> UNKNOWN[AudioCallback] -> unit = app2 (dlsym dlh "raylib_AttachAudioStreamProcessor") *)
(* val DetachAudioStreamProcessor: UNKNOWN[AudioStream] -> UNKNOWN[AudioCallback] -> unit = app2 (dlsym dlh "raylib_DetachAudioStreamProcessor") *)
(* val AttachAudioMixedProcessor: UNKNOWN[AudioCallback] -> unit = app1 (dlsym dlh "raylib_AttachAudioMixedProcessor") *)
(* val DetachAudioMixedProcessor: UNKNOWN[AudioCallback] -> unit = app1 (dlsym dlh "raylib_DetachAudioMixedProcessor") *)