raylib-bindings 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,2148 @@
1
+ # Yet another raylib wrapper for Ruby
2
+ #
3
+ # * https://github.com/vaiorabbit/raylib-bindings
4
+ #
5
+ # [NOTICE] This is an automatically generated file.
6
+
7
+ require 'ffi'
8
+
9
+ module Raylib
10
+ extend FFI::Library
11
+ # Define/Macro
12
+
13
+ RAYLIB_VERSION = "4.0"
14
+ DEG2RAD = Math::PI / 180.0
15
+ RAD2DEG = 180.0 / Math::PI
16
+
17
+ # Enum
18
+
19
+ FLAG_VSYNC_HINT = 64
20
+ FLAG_FULLSCREEN_MODE = 2
21
+ FLAG_WINDOW_RESIZABLE = 4
22
+ FLAG_WINDOW_UNDECORATED = 8
23
+ FLAG_WINDOW_HIDDEN = 128
24
+ FLAG_WINDOW_MINIMIZED = 512
25
+ FLAG_WINDOW_MAXIMIZED = 1024
26
+ FLAG_WINDOW_UNFOCUSED = 2048
27
+ FLAG_WINDOW_TOPMOST = 4096
28
+ FLAG_WINDOW_ALWAYS_RUN = 256
29
+ FLAG_WINDOW_TRANSPARENT = 16
30
+ FLAG_WINDOW_HIGHDPI = 8192
31
+ FLAG_MSAA_4X_HINT = 32
32
+ FLAG_INTERLACED_HINT = 65536
33
+ LOG_ALL = 0
34
+ LOG_TRACE = 1
35
+ LOG_DEBUG = 2
36
+ LOG_INFO = 3
37
+ LOG_WARNING = 4
38
+ LOG_ERROR = 5
39
+ LOG_FATAL = 6
40
+ LOG_NONE = 7
41
+ KEY_NULL = 0
42
+ KEY_APOSTROPHE = 39
43
+ KEY_COMMA = 44
44
+ KEY_MINUS = 45
45
+ KEY_PERIOD = 46
46
+ KEY_SLASH = 47
47
+ KEY_ZERO = 48
48
+ KEY_ONE = 49
49
+ KEY_TWO = 50
50
+ KEY_THREE = 51
51
+ KEY_FOUR = 52
52
+ KEY_FIVE = 53
53
+ KEY_SIX = 54
54
+ KEY_SEVEN = 55
55
+ KEY_EIGHT = 56
56
+ KEY_NINE = 57
57
+ KEY_SEMICOLON = 59
58
+ KEY_EQUAL = 61
59
+ KEY_A = 65
60
+ KEY_B = 66
61
+ KEY_C = 67
62
+ KEY_D = 68
63
+ KEY_E = 69
64
+ KEY_F = 70
65
+ KEY_G = 71
66
+ KEY_H = 72
67
+ KEY_I = 73
68
+ KEY_J = 74
69
+ KEY_K = 75
70
+ KEY_L = 76
71
+ KEY_M = 77
72
+ KEY_N = 78
73
+ KEY_O = 79
74
+ KEY_P = 80
75
+ KEY_Q = 81
76
+ KEY_R = 82
77
+ KEY_S = 83
78
+ KEY_T = 84
79
+ KEY_U = 85
80
+ KEY_V = 86
81
+ KEY_W = 87
82
+ KEY_X = 88
83
+ KEY_Y = 89
84
+ KEY_Z = 90
85
+ KEY_LEFT_BRACKET = 91
86
+ KEY_BACKSLASH = 92
87
+ KEY_RIGHT_BRACKET = 93
88
+ KEY_GRAVE = 96
89
+ KEY_SPACE = 32
90
+ KEY_ESCAPE = 256
91
+ KEY_ENTER = 257
92
+ KEY_TAB = 258
93
+ KEY_BACKSPACE = 259
94
+ KEY_INSERT = 260
95
+ KEY_DELETE = 261
96
+ KEY_RIGHT = 262
97
+ KEY_LEFT = 263
98
+ KEY_DOWN = 264
99
+ KEY_UP = 265
100
+ KEY_PAGE_UP = 266
101
+ KEY_PAGE_DOWN = 267
102
+ KEY_HOME = 268
103
+ KEY_END = 269
104
+ KEY_CAPS_LOCK = 280
105
+ KEY_SCROLL_LOCK = 281
106
+ KEY_NUM_LOCK = 282
107
+ KEY_PRINT_SCREEN = 283
108
+ KEY_PAUSE = 284
109
+ KEY_F1 = 290
110
+ KEY_F2 = 291
111
+ KEY_F3 = 292
112
+ KEY_F4 = 293
113
+ KEY_F5 = 294
114
+ KEY_F6 = 295
115
+ KEY_F7 = 296
116
+ KEY_F8 = 297
117
+ KEY_F9 = 298
118
+ KEY_F10 = 299
119
+ KEY_F11 = 300
120
+ KEY_F12 = 301
121
+ KEY_LEFT_SHIFT = 340
122
+ KEY_LEFT_CONTROL = 341
123
+ KEY_LEFT_ALT = 342
124
+ KEY_LEFT_SUPER = 343
125
+ KEY_RIGHT_SHIFT = 344
126
+ KEY_RIGHT_CONTROL = 345
127
+ KEY_RIGHT_ALT = 346
128
+ KEY_RIGHT_SUPER = 347
129
+ KEY_KB_MENU = 348
130
+ KEY_KP_0 = 320
131
+ KEY_KP_1 = 321
132
+ KEY_KP_2 = 322
133
+ KEY_KP_3 = 323
134
+ KEY_KP_4 = 324
135
+ KEY_KP_5 = 325
136
+ KEY_KP_6 = 326
137
+ KEY_KP_7 = 327
138
+ KEY_KP_8 = 328
139
+ KEY_KP_9 = 329
140
+ KEY_KP_DECIMAL = 330
141
+ KEY_KP_DIVIDE = 331
142
+ KEY_KP_MULTIPLY = 332
143
+ KEY_KP_SUBTRACT = 333
144
+ KEY_KP_ADD = 334
145
+ KEY_KP_ENTER = 335
146
+ KEY_KP_EQUAL = 336
147
+ KEY_BACK = 4
148
+ KEY_MENU = 82
149
+ KEY_VOLUME_UP = 24
150
+ KEY_VOLUME_DOWN = 25
151
+ MOUSE_BUTTON_LEFT = 0
152
+ MOUSE_BUTTON_RIGHT = 1
153
+ MOUSE_BUTTON_MIDDLE = 2
154
+ MOUSE_BUTTON_SIDE = 3
155
+ MOUSE_BUTTON_EXTRA = 4
156
+ MOUSE_BUTTON_FORWARD = 5
157
+ MOUSE_BUTTON_BACK = 6
158
+ MOUSE_CURSOR_DEFAULT = 0
159
+ MOUSE_CURSOR_ARROW = 1
160
+ MOUSE_CURSOR_IBEAM = 2
161
+ MOUSE_CURSOR_CROSSHAIR = 3
162
+ MOUSE_CURSOR_POINTING_HAND = 4
163
+ MOUSE_CURSOR_RESIZE_EW = 5
164
+ MOUSE_CURSOR_RESIZE_NS = 6
165
+ MOUSE_CURSOR_RESIZE_NWSE = 7
166
+ MOUSE_CURSOR_RESIZE_NESW = 8
167
+ MOUSE_CURSOR_RESIZE_ALL = 9
168
+ MOUSE_CURSOR_NOT_ALLOWED = 10
169
+ GAMEPAD_BUTTON_UNKNOWN = 0
170
+ GAMEPAD_BUTTON_LEFT_FACE_UP = 1
171
+ GAMEPAD_BUTTON_LEFT_FACE_RIGHT = 2
172
+ GAMEPAD_BUTTON_LEFT_FACE_DOWN = 3
173
+ GAMEPAD_BUTTON_LEFT_FACE_LEFT = 4
174
+ GAMEPAD_BUTTON_RIGHT_FACE_UP = 5
175
+ GAMEPAD_BUTTON_RIGHT_FACE_RIGHT = 6
176
+ GAMEPAD_BUTTON_RIGHT_FACE_DOWN = 7
177
+ GAMEPAD_BUTTON_RIGHT_FACE_LEFT = 8
178
+ GAMEPAD_BUTTON_LEFT_TRIGGER_1 = 9
179
+ GAMEPAD_BUTTON_LEFT_TRIGGER_2 = 10
180
+ GAMEPAD_BUTTON_RIGHT_TRIGGER_1 = 11
181
+ GAMEPAD_BUTTON_RIGHT_TRIGGER_2 = 12
182
+ GAMEPAD_BUTTON_MIDDLE_LEFT = 13
183
+ GAMEPAD_BUTTON_MIDDLE = 14
184
+ GAMEPAD_BUTTON_MIDDLE_RIGHT = 15
185
+ GAMEPAD_BUTTON_LEFT_THUMB = 16
186
+ GAMEPAD_BUTTON_RIGHT_THUMB = 17
187
+ GAMEPAD_AXIS_LEFT_X = 0
188
+ GAMEPAD_AXIS_LEFT_Y = 1
189
+ GAMEPAD_AXIS_RIGHT_X = 2
190
+ GAMEPAD_AXIS_RIGHT_Y = 3
191
+ GAMEPAD_AXIS_LEFT_TRIGGER = 4
192
+ GAMEPAD_AXIS_RIGHT_TRIGGER = 5
193
+ MATERIAL_MAP_ALBEDO = 0
194
+ MATERIAL_MAP_METALNESS = 1
195
+ MATERIAL_MAP_NORMAL = 2
196
+ MATERIAL_MAP_ROUGHNESS = 3
197
+ MATERIAL_MAP_OCCLUSION = 4
198
+ MATERIAL_MAP_EMISSION = 5
199
+ MATERIAL_MAP_HEIGHT = 6
200
+ MATERIAL_MAP_CUBEMAP = 7
201
+ MATERIAL_MAP_IRRADIANCE = 8
202
+ MATERIAL_MAP_PREFILTER = 9
203
+ MATERIAL_MAP_BRDF = 10
204
+ SHADER_LOC_VERTEX_POSITION = 0
205
+ SHADER_LOC_VERTEX_TEXCOORD01 = 1
206
+ SHADER_LOC_VERTEX_TEXCOORD02 = 2
207
+ SHADER_LOC_VERTEX_NORMAL = 3
208
+ SHADER_LOC_VERTEX_TANGENT = 4
209
+ SHADER_LOC_VERTEX_COLOR = 5
210
+ SHADER_LOC_MATRIX_MVP = 6
211
+ SHADER_LOC_MATRIX_VIEW = 7
212
+ SHADER_LOC_MATRIX_PROJECTION = 8
213
+ SHADER_LOC_MATRIX_MODEL = 9
214
+ SHADER_LOC_MATRIX_NORMAL = 10
215
+ SHADER_LOC_VECTOR_VIEW = 11
216
+ SHADER_LOC_COLOR_DIFFUSE = 12
217
+ SHADER_LOC_COLOR_SPECULAR = 13
218
+ SHADER_LOC_COLOR_AMBIENT = 14
219
+ SHADER_LOC_MAP_ALBEDO = 15
220
+ SHADER_LOC_MAP_METALNESS = 16
221
+ SHADER_LOC_MAP_NORMAL = 17
222
+ SHADER_LOC_MAP_ROUGHNESS = 18
223
+ SHADER_LOC_MAP_OCCLUSION = 19
224
+ SHADER_LOC_MAP_EMISSION = 20
225
+ SHADER_LOC_MAP_HEIGHT = 21
226
+ SHADER_LOC_MAP_CUBEMAP = 22
227
+ SHADER_LOC_MAP_IRRADIANCE = 23
228
+ SHADER_LOC_MAP_PREFILTER = 24
229
+ SHADER_LOC_MAP_BRDF = 25
230
+ SHADER_UNIFORM_FLOAT = 0
231
+ SHADER_UNIFORM_VEC2 = 1
232
+ SHADER_UNIFORM_VEC3 = 2
233
+ SHADER_UNIFORM_VEC4 = 3
234
+ SHADER_UNIFORM_INT = 4
235
+ SHADER_UNIFORM_IVEC2 = 5
236
+ SHADER_UNIFORM_IVEC3 = 6
237
+ SHADER_UNIFORM_IVEC4 = 7
238
+ SHADER_UNIFORM_SAMPLER2D = 8
239
+ SHADER_ATTRIB_FLOAT = 0
240
+ SHADER_ATTRIB_VEC2 = 1
241
+ SHADER_ATTRIB_VEC3 = 2
242
+ SHADER_ATTRIB_VEC4 = 3
243
+ PIXELFORMAT_UNCOMPRESSED_GRAYSCALE = 1
244
+ PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA = 2
245
+ PIXELFORMAT_UNCOMPRESSED_R5G6B5 = 3
246
+ PIXELFORMAT_UNCOMPRESSED_R8G8B8 = 4
247
+ PIXELFORMAT_UNCOMPRESSED_R5G5B5A1 = 5
248
+ PIXELFORMAT_UNCOMPRESSED_R4G4B4A4 = 6
249
+ PIXELFORMAT_UNCOMPRESSED_R8G8B8A8 = 7
250
+ PIXELFORMAT_UNCOMPRESSED_R32 = 8
251
+ PIXELFORMAT_UNCOMPRESSED_R32G32B32 = 9
252
+ PIXELFORMAT_UNCOMPRESSED_R32G32B32A32 = 10
253
+ PIXELFORMAT_COMPRESSED_DXT1_RGB = 11
254
+ PIXELFORMAT_COMPRESSED_DXT1_RGBA = 12
255
+ PIXELFORMAT_COMPRESSED_DXT3_RGBA = 13
256
+ PIXELFORMAT_COMPRESSED_DXT5_RGBA = 14
257
+ PIXELFORMAT_COMPRESSED_ETC1_RGB = 15
258
+ PIXELFORMAT_COMPRESSED_ETC2_RGB = 16
259
+ PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 17
260
+ PIXELFORMAT_COMPRESSED_PVRT_RGB = 18
261
+ PIXELFORMAT_COMPRESSED_PVRT_RGBA = 19
262
+ PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 20
263
+ PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA = 21
264
+ TEXTURE_FILTER_POINT = 0
265
+ TEXTURE_FILTER_BILINEAR = 1
266
+ TEXTURE_FILTER_TRILINEAR = 2
267
+ TEXTURE_FILTER_ANISOTROPIC_4X = 3
268
+ TEXTURE_FILTER_ANISOTROPIC_8X = 4
269
+ TEXTURE_FILTER_ANISOTROPIC_16X = 5
270
+ TEXTURE_WRAP_REPEAT = 0
271
+ TEXTURE_WRAP_CLAMP = 1
272
+ TEXTURE_WRAP_MIRROR_REPEAT = 2
273
+ TEXTURE_WRAP_MIRROR_CLAMP = 3
274
+ CUBEMAP_LAYOUT_AUTO_DETECT = 0
275
+ CUBEMAP_LAYOUT_LINE_VERTICAL = 1
276
+ CUBEMAP_LAYOUT_LINE_HORIZONTAL = 2
277
+ CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR = 3
278
+ CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE = 4
279
+ CUBEMAP_LAYOUT_PANORAMA = 5
280
+ FONT_DEFAULT = 0
281
+ FONT_BITMAP = 1
282
+ FONT_SDF = 2
283
+ BLEND_ALPHA = 0
284
+ BLEND_ADDITIVE = 1
285
+ BLEND_MULTIPLIED = 2
286
+ BLEND_ADD_COLORS = 3
287
+ BLEND_SUBTRACT_COLORS = 4
288
+ BLEND_CUSTOM = 5
289
+ GESTURE_NONE = 0
290
+ GESTURE_TAP = 1
291
+ GESTURE_DOUBLETAP = 2
292
+ GESTURE_HOLD = 4
293
+ GESTURE_DRAG = 8
294
+ GESTURE_SWIPE_RIGHT = 16
295
+ GESTURE_SWIPE_LEFT = 32
296
+ GESTURE_SWIPE_UP = 64
297
+ GESTURE_SWIPE_DOWN = 128
298
+ GESTURE_PINCH_IN = 256
299
+ GESTURE_PINCH_OUT = 512
300
+ CAMERA_CUSTOM = 0
301
+ CAMERA_FREE = 1
302
+ CAMERA_ORBITAL = 2
303
+ CAMERA_FIRST_PERSON = 3
304
+ CAMERA_THIRD_PERSON = 4
305
+ CAMERA_PERSPECTIVE = 0
306
+ CAMERA_ORTHOGRAPHIC = 1
307
+ NPATCH_NINE_PATCH = 0
308
+ NPATCH_THREE_PATCH_VERTICAL = 1
309
+ NPATCH_THREE_PATCH_HORIZONTAL = 2
310
+
311
+ # Typedef
312
+
313
+ typedef :int, :ConfigFlags
314
+ typedef :int, :TraceLogLevel
315
+ typedef :int, :KeyboardKey
316
+ typedef :int, :MouseButton
317
+ typedef :int, :MouseCursor
318
+ typedef :int, :GamepadButton
319
+ typedef :int, :GamepadAxis
320
+ typedef :int, :MaterialMapIndex
321
+ typedef :int, :ShaderLocationIndex
322
+ typedef :int, :ShaderUniformDataType
323
+ typedef :int, :ShaderAttributeDataType
324
+ typedef :int, :PixelFormat
325
+ typedef :int, :TextureFilter
326
+ typedef :int, :TextureWrap
327
+ typedef :int, :CubemapLayout
328
+ typedef :int, :FontType
329
+ typedef :int, :BlendMode
330
+ typedef :int, :Gesture
331
+ typedef :int, :CameraMode
332
+ typedef :int, :CameraProjection
333
+ typedef :int, :NPatchLayout
334
+ callback :TraceLogCallback, [:int, :pointer, :pointer], :void
335
+ callback :LoadFileDataCallback, [:pointer, :pointer], :pointer
336
+ callback :SaveFileDataCallback, [:pointer, :pointer, :uint], :bool
337
+ callback :LoadFileTextCallback, [:pointer], :pointer
338
+ callback :SaveFileTextCallback, [:pointer, :pointer], :bool
339
+
340
+ # Struct
341
+
342
+ class Vector2 < FFI::Struct
343
+ layout(
344
+ :x, :float,
345
+ :y, :float,
346
+ )
347
+ end
348
+
349
+ class Vector3 < FFI::Struct
350
+ layout(
351
+ :x, :float,
352
+ :y, :float,
353
+ :z, :float,
354
+ )
355
+ end
356
+
357
+ class Vector4 < FFI::Struct
358
+ layout(
359
+ :x, :float,
360
+ :y, :float,
361
+ :z, :float,
362
+ :w, :float,
363
+ )
364
+ end
365
+
366
+ Quaternion = Vector4
367
+
368
+ class Matrix < FFI::Struct
369
+ layout(
370
+ :m0, :float,
371
+ :m4, :float,
372
+ :m8, :float,
373
+ :m12, :float,
374
+ :m1, :float,
375
+ :m5, :float,
376
+ :m9, :float,
377
+ :m13, :float,
378
+ :m2, :float,
379
+ :m6, :float,
380
+ :m10, :float,
381
+ :m14, :float,
382
+ :m3, :float,
383
+ :m7, :float,
384
+ :m11, :float,
385
+ :m15, :float,
386
+ )
387
+ end
388
+
389
+ class Color < FFI::Struct
390
+ layout(
391
+ :r, :uchar,
392
+ :g, :uchar,
393
+ :b, :uchar,
394
+ :a, :uchar,
395
+ )
396
+ end
397
+
398
+ class Rectangle < FFI::Struct
399
+ layout(
400
+ :x, :float,
401
+ :y, :float,
402
+ :width, :float,
403
+ :height, :float,
404
+ )
405
+ end
406
+
407
+ class Image < FFI::Struct
408
+ layout(
409
+ :data, :pointer,
410
+ :width, :int,
411
+ :height, :int,
412
+ :mipmaps, :int,
413
+ :format, :int,
414
+ )
415
+ end
416
+
417
+ class Texture < FFI::Struct
418
+ layout(
419
+ :id, :uint,
420
+ :width, :int,
421
+ :height, :int,
422
+ :mipmaps, :int,
423
+ :format, :int,
424
+ )
425
+ end
426
+
427
+ Texture2D = Texture
428
+ TextureCubemap = Texture
429
+
430
+ class RenderTexture < FFI::Struct
431
+ layout(
432
+ :id, :uint,
433
+ :texture, Texture,
434
+ :depth, Texture,
435
+ )
436
+ end
437
+
438
+ RenderTexture2D = RenderTexture
439
+
440
+ class NPatchInfo < FFI::Struct
441
+ layout(
442
+ :source, Rectangle,
443
+ :left, :int,
444
+ :top, :int,
445
+ :right, :int,
446
+ :bottom, :int,
447
+ :layout, :int,
448
+ )
449
+ end
450
+
451
+ class GlyphInfo < FFI::Struct
452
+ layout(
453
+ :value, :int,
454
+ :offsetX, :int,
455
+ :offsetY, :int,
456
+ :advanceX, :int,
457
+ :image, Image,
458
+ )
459
+ end
460
+
461
+ class Font < FFI::Struct
462
+ layout(
463
+ :baseSize, :int,
464
+ :glyphCount, :int,
465
+ :glyphPadding, :int,
466
+ :texture, Texture2D,
467
+ :recs, :pointer,
468
+ :glyphs, :pointer,
469
+ )
470
+ end
471
+
472
+ class Camera3D < FFI::Struct
473
+ layout(
474
+ :position, Vector3,
475
+ :target, Vector3,
476
+ :up, Vector3,
477
+ :fovy, :float,
478
+ :projection, :int,
479
+ )
480
+ end
481
+
482
+ Camera = Camera3D
483
+
484
+ class Camera2D < FFI::Struct
485
+ layout(
486
+ :offset, Vector2,
487
+ :target, Vector2,
488
+ :rotation, :float,
489
+ :zoom, :float,
490
+ )
491
+ end
492
+
493
+ class Mesh < FFI::Struct
494
+ layout(
495
+ :vertexCount, :int,
496
+ :triangleCount, :int,
497
+ :vertices, :pointer,
498
+ :texcoords, :pointer,
499
+ :texcoords2, :pointer,
500
+ :normals, :pointer,
501
+ :tangents, :pointer,
502
+ :colors, :pointer,
503
+ :indices, :pointer,
504
+ :animVertices, :pointer,
505
+ :animNormals, :pointer,
506
+ :boneIds, :pointer,
507
+ :boneWeights, :pointer,
508
+ :vaoId, :uint,
509
+ :vboId, :pointer,
510
+ )
511
+ end
512
+
513
+ class Shader < FFI::Struct
514
+ layout(
515
+ :id, :uint,
516
+ :locs, :pointer,
517
+ )
518
+ end
519
+
520
+ class MaterialMap < FFI::Struct
521
+ layout(
522
+ :texture, Texture2D,
523
+ :color, Color,
524
+ :value, :float,
525
+ )
526
+ end
527
+
528
+ class Material < FFI::Struct
529
+ layout(
530
+ :shader, Shader,
531
+ :maps, :pointer,
532
+ :params, [:float, 4],
533
+ )
534
+ end
535
+
536
+ class Transform < FFI::Struct
537
+ layout(
538
+ :translation, Vector3,
539
+ :rotation, Quaternion,
540
+ :scale, Vector3,
541
+ )
542
+ end
543
+
544
+ class BoneInfo < FFI::Struct
545
+ layout(
546
+ :name, [:char, 32],
547
+ :parent, :int,
548
+ )
549
+ end
550
+
551
+ class Model < FFI::Struct
552
+ layout(
553
+ :transform, Matrix,
554
+ :meshCount, :int,
555
+ :materialCount, :int,
556
+ :meshes, :pointer,
557
+ :materials, :pointer,
558
+ :meshMaterial, :pointer,
559
+ :boneCount, :int,
560
+ :bones, :pointer,
561
+ :bindPose, :pointer,
562
+ )
563
+ end
564
+
565
+ class ModelAnimation < FFI::Struct
566
+ layout(
567
+ :boneCount, :int,
568
+ :frameCount, :int,
569
+ :bones, :pointer,
570
+ :framePoses, :pointer,
571
+ )
572
+ end
573
+
574
+ class Ray < FFI::Struct
575
+ layout(
576
+ :position, Vector3,
577
+ :direction, Vector3,
578
+ )
579
+ end
580
+
581
+ class RayCollision < FFI::Struct
582
+ layout(
583
+ :hit, :bool,
584
+ :distance, :float,
585
+ :point, Vector3,
586
+ :normal, Vector3,
587
+ )
588
+ end
589
+
590
+ class BoundingBox < FFI::Struct
591
+ layout(
592
+ :min, Vector3,
593
+ :max, Vector3,
594
+ )
595
+ end
596
+
597
+ class Wave < FFI::Struct
598
+ layout(
599
+ :frameCount, :uint,
600
+ :sampleRate, :uint,
601
+ :sampleSize, :uint,
602
+ :channels, :uint,
603
+ :data, :pointer,
604
+ )
605
+ end
606
+
607
+ class AudioStream < FFI::Struct
608
+ layout(
609
+ :buffer, :pointer,
610
+ :sampleRate, :uint,
611
+ :sampleSize, :uint,
612
+ :channels, :uint,
613
+ )
614
+ end
615
+
616
+ class Sound < FFI::Struct
617
+ layout(
618
+ :stream, AudioStream,
619
+ :frameCount, :uint,
620
+ )
621
+ end
622
+
623
+ class Music < FFI::Struct
624
+ layout(
625
+ :stream, AudioStream,
626
+ :frameCount, :uint,
627
+ :looping, :bool,
628
+ :ctxType, :int,
629
+ :ctxData, :pointer,
630
+ )
631
+ end
632
+
633
+ class VrDeviceInfo < FFI::Struct
634
+ layout(
635
+ :hResolution, :int,
636
+ :vResolution, :int,
637
+ :hScreenSize, :float,
638
+ :vScreenSize, :float,
639
+ :vScreenCenter, :float,
640
+ :eyeToScreenDistance, :float,
641
+ :lensSeparationDistance, :float,
642
+ :interpupillaryDistance, :float,
643
+ :lensDistortionValues, [:float, 4],
644
+ :chromaAbCorrection, [:float, 4],
645
+ )
646
+ end
647
+
648
+ class VrStereoConfig < FFI::Struct
649
+ layout(
650
+ :projection, [Matrix, 2],
651
+ :viewOffset, [Matrix, 2],
652
+ :leftLensCenter, [:float, 2],
653
+ :rightLensCenter, [:float, 2],
654
+ :leftScreenCenter, [:float, 2],
655
+ :rightScreenCenter, [:float, 2],
656
+ :scale, [:float, 2],
657
+ :scaleIn, [:float, 2],
658
+ )
659
+ end
660
+
661
+
662
+ # Function
663
+
664
+ def self.setup_raylib_symbols()
665
+ symbols = [
666
+ :InitWindow,
667
+ :WindowShouldClose,
668
+ :CloseWindow,
669
+ :IsWindowReady,
670
+ :IsWindowFullscreen,
671
+ :IsWindowHidden,
672
+ :IsWindowMinimized,
673
+ :IsWindowMaximized,
674
+ :IsWindowFocused,
675
+ :IsWindowResized,
676
+ :IsWindowState,
677
+ :SetWindowState,
678
+ :ClearWindowState,
679
+ :ToggleFullscreen,
680
+ :MaximizeWindow,
681
+ :MinimizeWindow,
682
+ :RestoreWindow,
683
+ :SetWindowIcon,
684
+ :SetWindowTitle,
685
+ :SetWindowPosition,
686
+ :SetWindowMonitor,
687
+ :SetWindowMinSize,
688
+ :SetWindowSize,
689
+ :GetWindowHandle,
690
+ :GetScreenWidth,
691
+ :GetScreenHeight,
692
+ :GetRenderWidth,
693
+ :GetRenderHeight,
694
+ :GetMonitorCount,
695
+ :GetCurrentMonitor,
696
+ :GetMonitorPosition,
697
+ :GetMonitorWidth,
698
+ :GetMonitorHeight,
699
+ :GetMonitorPhysicalWidth,
700
+ :GetMonitorPhysicalHeight,
701
+ :GetMonitorRefreshRate,
702
+ :GetWindowPosition,
703
+ :GetWindowScaleDPI,
704
+ :GetMonitorName,
705
+ :SetClipboardText,
706
+ :GetClipboardText,
707
+ :SwapScreenBuffer,
708
+ :PollInputEvents,
709
+ :WaitTime,
710
+ :ShowCursor,
711
+ :HideCursor,
712
+ :IsCursorHidden,
713
+ :EnableCursor,
714
+ :DisableCursor,
715
+ :IsCursorOnScreen,
716
+ :ClearBackground,
717
+ :BeginDrawing,
718
+ :EndDrawing,
719
+ :BeginMode2D,
720
+ :EndMode2D,
721
+ :BeginMode3D,
722
+ :EndMode3D,
723
+ :BeginTextureMode,
724
+ :EndTextureMode,
725
+ :BeginShaderMode,
726
+ :EndShaderMode,
727
+ :BeginBlendMode,
728
+ :EndBlendMode,
729
+ :BeginScissorMode,
730
+ :EndScissorMode,
731
+ :BeginVrStereoMode,
732
+ :EndVrStereoMode,
733
+ :LoadVrStereoConfig,
734
+ :UnloadVrStereoConfig,
735
+ :LoadShader,
736
+ :LoadShaderFromMemory,
737
+ :GetShaderLocation,
738
+ :GetShaderLocationAttrib,
739
+ :SetShaderValue,
740
+ :SetShaderValueV,
741
+ :SetShaderValueMatrix,
742
+ :SetShaderValueTexture,
743
+ :UnloadShader,
744
+ :GetMouseRay,
745
+ :GetCameraMatrix,
746
+ :GetCameraMatrix2D,
747
+ :GetWorldToScreen,
748
+ :GetWorldToScreenEx,
749
+ :GetWorldToScreen2D,
750
+ :GetScreenToWorld2D,
751
+ :SetTargetFPS,
752
+ :GetFPS,
753
+ :GetFrameTime,
754
+ :GetTime,
755
+ :GetRandomValue,
756
+ :SetRandomSeed,
757
+ :TakeScreenshot,
758
+ :SetConfigFlags,
759
+ :TraceLog,
760
+ :SetTraceLogLevel,
761
+ :MemAlloc,
762
+ :MemRealloc,
763
+ :MemFree,
764
+ :SetTraceLogCallback,
765
+ :SetLoadFileDataCallback,
766
+ :SetSaveFileDataCallback,
767
+ :SetLoadFileTextCallback,
768
+ :SetSaveFileTextCallback,
769
+ :LoadFileData,
770
+ :UnloadFileData,
771
+ :SaveFileData,
772
+ :LoadFileText,
773
+ :UnloadFileText,
774
+ :SaveFileText,
775
+ :FileExists,
776
+ :DirectoryExists,
777
+ :IsFileExtension,
778
+ :GetFileExtension,
779
+ :GetFileName,
780
+ :GetFileNameWithoutExt,
781
+ :GetDirectoryPath,
782
+ :GetPrevDirectoryPath,
783
+ :GetWorkingDirectory,
784
+ :GetDirectoryFiles,
785
+ :ClearDirectoryFiles,
786
+ :ChangeDirectory,
787
+ :IsFileDropped,
788
+ :GetDroppedFiles,
789
+ :ClearDroppedFiles,
790
+ :GetFileModTime,
791
+ :CompressData,
792
+ :DecompressData,
793
+ :EncodeDataBase64,
794
+ :DecodeDataBase64,
795
+ :SaveStorageValue,
796
+ :LoadStorageValue,
797
+ :OpenURL,
798
+ :IsKeyPressed,
799
+ :IsKeyDown,
800
+ :IsKeyReleased,
801
+ :IsKeyUp,
802
+ :SetExitKey,
803
+ :GetKeyPressed,
804
+ :GetCharPressed,
805
+ :IsGamepadAvailable,
806
+ :GetGamepadName,
807
+ :IsGamepadButtonPressed,
808
+ :IsGamepadButtonDown,
809
+ :IsGamepadButtonReleased,
810
+ :IsGamepadButtonUp,
811
+ :GetGamepadButtonPressed,
812
+ :GetGamepadAxisCount,
813
+ :GetGamepadAxisMovement,
814
+ :SetGamepadMappings,
815
+ :IsMouseButtonPressed,
816
+ :IsMouseButtonDown,
817
+ :IsMouseButtonReleased,
818
+ :IsMouseButtonUp,
819
+ :GetMouseX,
820
+ :GetMouseY,
821
+ :GetMousePosition,
822
+ :GetMouseDelta,
823
+ :SetMousePosition,
824
+ :SetMouseOffset,
825
+ :SetMouseScale,
826
+ :GetMouseWheelMove,
827
+ :SetMouseCursor,
828
+ :GetTouchX,
829
+ :GetTouchY,
830
+ :GetTouchPosition,
831
+ :GetTouchPointId,
832
+ :GetTouchPointCount,
833
+ :SetGesturesEnabled,
834
+ :IsGestureDetected,
835
+ :GetGestureDetected,
836
+ :GetGestureHoldDuration,
837
+ :GetGestureDragVector,
838
+ :GetGestureDragAngle,
839
+ :GetGesturePinchVector,
840
+ :GetGesturePinchAngle,
841
+ :SetCameraMode,
842
+ :UpdateCamera,
843
+ :SetCameraPanControl,
844
+ :SetCameraAltControl,
845
+ :SetCameraSmoothZoomControl,
846
+ :SetCameraMoveControls,
847
+ :SetShapesTexture,
848
+ :DrawPixel,
849
+ :DrawPixelV,
850
+ :DrawLine,
851
+ :DrawLineV,
852
+ :DrawLineEx,
853
+ :DrawLineBezier,
854
+ :DrawLineBezierQuad,
855
+ :DrawLineBezierCubic,
856
+ :DrawLineStrip,
857
+ :DrawCircle,
858
+ :DrawCircleSector,
859
+ :DrawCircleSectorLines,
860
+ :DrawCircleGradient,
861
+ :DrawCircleV,
862
+ :DrawCircleLines,
863
+ :DrawEllipse,
864
+ :DrawEllipseLines,
865
+ :DrawRing,
866
+ :DrawRingLines,
867
+ :DrawRectangle,
868
+ :DrawRectangleV,
869
+ :DrawRectangleRec,
870
+ :DrawRectanglePro,
871
+ :DrawRectangleGradientV,
872
+ :DrawRectangleGradientH,
873
+ :DrawRectangleGradientEx,
874
+ :DrawRectangleLines,
875
+ :DrawRectangleLinesEx,
876
+ :DrawRectangleRounded,
877
+ :DrawRectangleRoundedLines,
878
+ :DrawTriangle,
879
+ :DrawTriangleLines,
880
+ :DrawTriangleFan,
881
+ :DrawTriangleStrip,
882
+ :DrawPoly,
883
+ :DrawPolyLines,
884
+ :DrawPolyLinesEx,
885
+ :CheckCollisionRecs,
886
+ :CheckCollisionCircles,
887
+ :CheckCollisionCircleRec,
888
+ :CheckCollisionPointRec,
889
+ :CheckCollisionPointCircle,
890
+ :CheckCollisionPointTriangle,
891
+ :CheckCollisionLines,
892
+ :CheckCollisionPointLine,
893
+ :GetCollisionRec,
894
+ :LoadImage,
895
+ :LoadImageRaw,
896
+ :LoadImageAnim,
897
+ :LoadImageFromMemory,
898
+ :LoadImageFromTexture,
899
+ :LoadImageFromScreen,
900
+ :UnloadImage,
901
+ :ExportImage,
902
+ :ExportImageAsCode,
903
+ :GenImageColor,
904
+ :GenImageGradientV,
905
+ :GenImageGradientH,
906
+ :GenImageGradientRadial,
907
+ :GenImageChecked,
908
+ :GenImageWhiteNoise,
909
+ :GenImageCellular,
910
+ :ImageCopy,
911
+ :ImageFromImage,
912
+ :ImageText,
913
+ :ImageTextEx,
914
+ :ImageFormat,
915
+ :ImageToPOT,
916
+ :ImageCrop,
917
+ :ImageAlphaCrop,
918
+ :ImageAlphaClear,
919
+ :ImageAlphaMask,
920
+ :ImageAlphaPremultiply,
921
+ :ImageResize,
922
+ :ImageResizeNN,
923
+ :ImageResizeCanvas,
924
+ :ImageMipmaps,
925
+ :ImageDither,
926
+ :ImageFlipVertical,
927
+ :ImageFlipHorizontal,
928
+ :ImageRotateCW,
929
+ :ImageRotateCCW,
930
+ :ImageColorTint,
931
+ :ImageColorInvert,
932
+ :ImageColorGrayscale,
933
+ :ImageColorContrast,
934
+ :ImageColorBrightness,
935
+ :ImageColorReplace,
936
+ :LoadImageColors,
937
+ :LoadImagePalette,
938
+ :UnloadImageColors,
939
+ :UnloadImagePalette,
940
+ :GetImageAlphaBorder,
941
+ :GetImageColor,
942
+ :ImageClearBackground,
943
+ :ImageDrawPixel,
944
+ :ImageDrawPixelV,
945
+ :ImageDrawLine,
946
+ :ImageDrawLineV,
947
+ :ImageDrawCircle,
948
+ :ImageDrawCircleV,
949
+ :ImageDrawRectangle,
950
+ :ImageDrawRectangleV,
951
+ :ImageDrawRectangleRec,
952
+ :ImageDrawRectangleLines,
953
+ :ImageDraw,
954
+ :ImageDrawText,
955
+ :ImageDrawTextEx,
956
+ :LoadTexture,
957
+ :LoadTextureFromImage,
958
+ :LoadTextureCubemap,
959
+ :LoadRenderTexture,
960
+ :UnloadTexture,
961
+ :UnloadRenderTexture,
962
+ :UpdateTexture,
963
+ :UpdateTextureRec,
964
+ :GenTextureMipmaps,
965
+ :SetTextureFilter,
966
+ :SetTextureWrap,
967
+ :DrawTexture,
968
+ :DrawTextureV,
969
+ :DrawTextureEx,
970
+ :DrawTextureRec,
971
+ :DrawTextureQuad,
972
+ :DrawTextureTiled,
973
+ :DrawTexturePro,
974
+ :DrawTextureNPatch,
975
+ :DrawTexturePoly,
976
+ :Fade,
977
+ :ColorToInt,
978
+ :ColorNormalize,
979
+ :ColorFromNormalized,
980
+ :ColorToHSV,
981
+ :ColorFromHSV,
982
+ :ColorAlpha,
983
+ :ColorAlphaBlend,
984
+ :GetColor,
985
+ :GetPixelColor,
986
+ :SetPixelColor,
987
+ :GetPixelDataSize,
988
+ :GetFontDefault,
989
+ :LoadFont,
990
+ :LoadFontEx,
991
+ :LoadFontFromImage,
992
+ :LoadFontFromMemory,
993
+ :LoadFontData,
994
+ :GenImageFontAtlas,
995
+ :UnloadFontData,
996
+ :UnloadFont,
997
+ :DrawFPS,
998
+ :DrawText,
999
+ :DrawTextEx,
1000
+ :DrawTextPro,
1001
+ :DrawTextCodepoint,
1002
+ :MeasureText,
1003
+ :MeasureTextEx,
1004
+ :GetGlyphIndex,
1005
+ :GetGlyphInfo,
1006
+ :GetGlyphAtlasRec,
1007
+ :LoadCodepoints,
1008
+ :UnloadCodepoints,
1009
+ :GetCodepointCount,
1010
+ :GetCodepoint,
1011
+ :CodepointToUTF8,
1012
+ :TextCodepointsToUTF8,
1013
+ :TextCopy,
1014
+ :TextIsEqual,
1015
+ :TextLength,
1016
+ :TextFormat,
1017
+ :TextSubtext,
1018
+ :TextReplace,
1019
+ :TextInsert,
1020
+ :TextJoin,
1021
+ :TextSplit,
1022
+ :TextAppend,
1023
+ :TextFindIndex,
1024
+ :TextToUpper,
1025
+ :TextToLower,
1026
+ :TextToPascal,
1027
+ :TextToInteger,
1028
+ :DrawLine3D,
1029
+ :DrawPoint3D,
1030
+ :DrawCircle3D,
1031
+ :DrawTriangle3D,
1032
+ :DrawTriangleStrip3D,
1033
+ :DrawCube,
1034
+ :DrawCubeV,
1035
+ :DrawCubeWires,
1036
+ :DrawCubeWiresV,
1037
+ :DrawCubeTexture,
1038
+ :DrawCubeTextureRec,
1039
+ :DrawSphere,
1040
+ :DrawSphereEx,
1041
+ :DrawSphereWires,
1042
+ :DrawCylinder,
1043
+ :DrawCylinderEx,
1044
+ :DrawCylinderWires,
1045
+ :DrawCylinderWiresEx,
1046
+ :DrawPlane,
1047
+ :DrawRay,
1048
+ :DrawGrid,
1049
+ :LoadModel,
1050
+ :LoadModelFromMesh,
1051
+ :UnloadModel,
1052
+ :UnloadModelKeepMeshes,
1053
+ :GetModelBoundingBox,
1054
+ :DrawModel,
1055
+ :DrawModelEx,
1056
+ :DrawModelWires,
1057
+ :DrawModelWiresEx,
1058
+ :DrawBoundingBox,
1059
+ :DrawBillboard,
1060
+ :DrawBillboardRec,
1061
+ :DrawBillboardPro,
1062
+ :UploadMesh,
1063
+ :UpdateMeshBuffer,
1064
+ :UnloadMesh,
1065
+ :DrawMesh,
1066
+ :DrawMeshInstanced,
1067
+ :ExportMesh,
1068
+ :GetMeshBoundingBox,
1069
+ :GenMeshTangents,
1070
+ :GenMeshBinormals,
1071
+ :GenMeshPoly,
1072
+ :GenMeshPlane,
1073
+ :GenMeshCube,
1074
+ :GenMeshSphere,
1075
+ :GenMeshHemiSphere,
1076
+ :GenMeshCylinder,
1077
+ :GenMeshCone,
1078
+ :GenMeshTorus,
1079
+ :GenMeshKnot,
1080
+ :GenMeshHeightmap,
1081
+ :GenMeshCubicmap,
1082
+ :LoadMaterials,
1083
+ :LoadMaterialDefault,
1084
+ :UnloadMaterial,
1085
+ :SetMaterialTexture,
1086
+ :SetModelMeshMaterial,
1087
+ :LoadModelAnimations,
1088
+ :UpdateModelAnimation,
1089
+ :UnloadModelAnimation,
1090
+ :UnloadModelAnimations,
1091
+ :IsModelAnimationValid,
1092
+ :CheckCollisionSpheres,
1093
+ :CheckCollisionBoxes,
1094
+ :CheckCollisionBoxSphere,
1095
+ :GetRayCollisionSphere,
1096
+ :GetRayCollisionBox,
1097
+ :GetRayCollisionModel,
1098
+ :GetRayCollisionMesh,
1099
+ :GetRayCollisionTriangle,
1100
+ :GetRayCollisionQuad,
1101
+ :InitAudioDevice,
1102
+ :CloseAudioDevice,
1103
+ :IsAudioDeviceReady,
1104
+ :SetMasterVolume,
1105
+ :LoadWave,
1106
+ :LoadWaveFromMemory,
1107
+ :LoadSound,
1108
+ :LoadSoundFromWave,
1109
+ :UpdateSound,
1110
+ :UnloadWave,
1111
+ :UnloadSound,
1112
+ :ExportWave,
1113
+ :ExportWaveAsCode,
1114
+ :PlaySound,
1115
+ :StopSound,
1116
+ :PauseSound,
1117
+ :ResumeSound,
1118
+ :PlaySoundMulti,
1119
+ :StopSoundMulti,
1120
+ :GetSoundsPlaying,
1121
+ :IsSoundPlaying,
1122
+ :SetSoundVolume,
1123
+ :SetSoundPitch,
1124
+ :WaveFormat,
1125
+ :WaveCopy,
1126
+ :WaveCrop,
1127
+ :LoadWaveSamples,
1128
+ :UnloadWaveSamples,
1129
+ :LoadMusicStream,
1130
+ :LoadMusicStreamFromMemory,
1131
+ :UnloadMusicStream,
1132
+ :PlayMusicStream,
1133
+ :IsMusicStreamPlaying,
1134
+ :UpdateMusicStream,
1135
+ :StopMusicStream,
1136
+ :PauseMusicStream,
1137
+ :ResumeMusicStream,
1138
+ :SeekMusicStream,
1139
+ :SetMusicVolume,
1140
+ :SetMusicPitch,
1141
+ :GetMusicTimeLength,
1142
+ :GetMusicTimePlayed,
1143
+ :LoadAudioStream,
1144
+ :UnloadAudioStream,
1145
+ :UpdateAudioStream,
1146
+ :IsAudioStreamProcessed,
1147
+ :PlayAudioStream,
1148
+ :PauseAudioStream,
1149
+ :ResumeAudioStream,
1150
+ :IsAudioStreamPlaying,
1151
+ :StopAudioStream,
1152
+ :SetAudioStreamVolume,
1153
+ :SetAudioStreamPitch,
1154
+ :SetAudioStreamBufferSizeDefault,
1155
+ ]
1156
+ args = {
1157
+ :InitWindow => [:int, :int, :pointer],
1158
+ :WindowShouldClose => [],
1159
+ :CloseWindow => [],
1160
+ :IsWindowReady => [],
1161
+ :IsWindowFullscreen => [],
1162
+ :IsWindowHidden => [],
1163
+ :IsWindowMinimized => [],
1164
+ :IsWindowMaximized => [],
1165
+ :IsWindowFocused => [],
1166
+ :IsWindowResized => [],
1167
+ :IsWindowState => [:uint],
1168
+ :SetWindowState => [:uint],
1169
+ :ClearWindowState => [:uint],
1170
+ :ToggleFullscreen => [],
1171
+ :MaximizeWindow => [],
1172
+ :MinimizeWindow => [],
1173
+ :RestoreWindow => [],
1174
+ :SetWindowIcon => [Image.by_value],
1175
+ :SetWindowTitle => [:pointer],
1176
+ :SetWindowPosition => [:int, :int],
1177
+ :SetWindowMonitor => [:int],
1178
+ :SetWindowMinSize => [:int, :int],
1179
+ :SetWindowSize => [:int, :int],
1180
+ :GetWindowHandle => [],
1181
+ :GetScreenWidth => [],
1182
+ :GetScreenHeight => [],
1183
+ :GetRenderWidth => [],
1184
+ :GetRenderHeight => [],
1185
+ :GetMonitorCount => [],
1186
+ :GetCurrentMonitor => [],
1187
+ :GetMonitorPosition => [:int],
1188
+ :GetMonitorWidth => [:int],
1189
+ :GetMonitorHeight => [:int],
1190
+ :GetMonitorPhysicalWidth => [:int],
1191
+ :GetMonitorPhysicalHeight => [:int],
1192
+ :GetMonitorRefreshRate => [:int],
1193
+ :GetWindowPosition => [],
1194
+ :GetWindowScaleDPI => [],
1195
+ :GetMonitorName => [:int],
1196
+ :SetClipboardText => [:pointer],
1197
+ :GetClipboardText => [],
1198
+ :SwapScreenBuffer => [],
1199
+ :PollInputEvents => [],
1200
+ :WaitTime => [:float],
1201
+ :ShowCursor => [],
1202
+ :HideCursor => [],
1203
+ :IsCursorHidden => [],
1204
+ :EnableCursor => [],
1205
+ :DisableCursor => [],
1206
+ :IsCursorOnScreen => [],
1207
+ :ClearBackground => [Color.by_value],
1208
+ :BeginDrawing => [],
1209
+ :EndDrawing => [],
1210
+ :BeginMode2D => [Camera2D.by_value],
1211
+ :EndMode2D => [],
1212
+ :BeginMode3D => [Camera3D.by_value],
1213
+ :EndMode3D => [],
1214
+ :BeginTextureMode => [RenderTexture2D.by_value],
1215
+ :EndTextureMode => [],
1216
+ :BeginShaderMode => [Shader.by_value],
1217
+ :EndShaderMode => [],
1218
+ :BeginBlendMode => [:int],
1219
+ :EndBlendMode => [],
1220
+ :BeginScissorMode => [:int, :int, :int, :int],
1221
+ :EndScissorMode => [],
1222
+ :BeginVrStereoMode => [VrStereoConfig.by_value],
1223
+ :EndVrStereoMode => [],
1224
+ :LoadVrStereoConfig => [VrDeviceInfo.by_value],
1225
+ :UnloadVrStereoConfig => [VrStereoConfig.by_value],
1226
+ :LoadShader => [:pointer, :pointer],
1227
+ :LoadShaderFromMemory => [:pointer, :pointer],
1228
+ :GetShaderLocation => [Shader.by_value, :pointer],
1229
+ :GetShaderLocationAttrib => [Shader.by_value, :pointer],
1230
+ :SetShaderValue => [Shader.by_value, :int, :pointer, :int],
1231
+ :SetShaderValueV => [Shader.by_value, :int, :pointer, :int, :int],
1232
+ :SetShaderValueMatrix => [Shader.by_value, :int, Matrix.by_value],
1233
+ :SetShaderValueTexture => [Shader.by_value, :int, Texture2D.by_value],
1234
+ :UnloadShader => [Shader.by_value],
1235
+ :GetMouseRay => [Vector2.by_value, Camera.by_value],
1236
+ :GetCameraMatrix => [Camera.by_value],
1237
+ :GetCameraMatrix2D => [Camera2D.by_value],
1238
+ :GetWorldToScreen => [Vector3.by_value, Camera.by_value],
1239
+ :GetWorldToScreenEx => [Vector3.by_value, Camera.by_value, :int, :int],
1240
+ :GetWorldToScreen2D => [Vector2.by_value, Camera2D.by_value],
1241
+ :GetScreenToWorld2D => [Vector2.by_value, Camera2D.by_value],
1242
+ :SetTargetFPS => [:int],
1243
+ :GetFPS => [],
1244
+ :GetFrameTime => [],
1245
+ :GetTime => [],
1246
+ :GetRandomValue => [:int, :int],
1247
+ :SetRandomSeed => [:uint],
1248
+ :TakeScreenshot => [:pointer],
1249
+ :SetConfigFlags => [:uint],
1250
+ :TraceLog => [:int, :pointer, :varargs],
1251
+ :SetTraceLogLevel => [:int],
1252
+ :MemAlloc => [:int],
1253
+ :MemRealloc => [:pointer, :int],
1254
+ :MemFree => [:pointer],
1255
+ :SetTraceLogCallback => [:TraceLogCallback],
1256
+ :SetLoadFileDataCallback => [:LoadFileDataCallback],
1257
+ :SetSaveFileDataCallback => [:SaveFileDataCallback],
1258
+ :SetLoadFileTextCallback => [:LoadFileTextCallback],
1259
+ :SetSaveFileTextCallback => [:SaveFileTextCallback],
1260
+ :LoadFileData => [:pointer, :pointer],
1261
+ :UnloadFileData => [:pointer],
1262
+ :SaveFileData => [:pointer, :pointer, :uint],
1263
+ :LoadFileText => [:pointer],
1264
+ :UnloadFileText => [:pointer],
1265
+ :SaveFileText => [:pointer, :pointer],
1266
+ :FileExists => [:pointer],
1267
+ :DirectoryExists => [:pointer],
1268
+ :IsFileExtension => [:pointer, :pointer],
1269
+ :GetFileExtension => [:pointer],
1270
+ :GetFileName => [:pointer],
1271
+ :GetFileNameWithoutExt => [:pointer],
1272
+ :GetDirectoryPath => [:pointer],
1273
+ :GetPrevDirectoryPath => [:pointer],
1274
+ :GetWorkingDirectory => [],
1275
+ :GetDirectoryFiles => [:pointer, :pointer],
1276
+ :ClearDirectoryFiles => [],
1277
+ :ChangeDirectory => [:pointer],
1278
+ :IsFileDropped => [],
1279
+ :GetDroppedFiles => [:pointer],
1280
+ :ClearDroppedFiles => [],
1281
+ :GetFileModTime => [:pointer],
1282
+ :CompressData => [:pointer, :int, :pointer],
1283
+ :DecompressData => [:pointer, :int, :pointer],
1284
+ :EncodeDataBase64 => [:pointer, :int, :pointer],
1285
+ :DecodeDataBase64 => [:pointer, :pointer],
1286
+ :SaveStorageValue => [:uint, :int],
1287
+ :LoadStorageValue => [:uint],
1288
+ :OpenURL => [:pointer],
1289
+ :IsKeyPressed => [:int],
1290
+ :IsKeyDown => [:int],
1291
+ :IsKeyReleased => [:int],
1292
+ :IsKeyUp => [:int],
1293
+ :SetExitKey => [:int],
1294
+ :GetKeyPressed => [],
1295
+ :GetCharPressed => [],
1296
+ :IsGamepadAvailable => [:int],
1297
+ :GetGamepadName => [:int],
1298
+ :IsGamepadButtonPressed => [:int, :int],
1299
+ :IsGamepadButtonDown => [:int, :int],
1300
+ :IsGamepadButtonReleased => [:int, :int],
1301
+ :IsGamepadButtonUp => [:int, :int],
1302
+ :GetGamepadButtonPressed => [],
1303
+ :GetGamepadAxisCount => [:int],
1304
+ :GetGamepadAxisMovement => [:int, :int],
1305
+ :SetGamepadMappings => [:pointer],
1306
+ :IsMouseButtonPressed => [:int],
1307
+ :IsMouseButtonDown => [:int],
1308
+ :IsMouseButtonReleased => [:int],
1309
+ :IsMouseButtonUp => [:int],
1310
+ :GetMouseX => [],
1311
+ :GetMouseY => [],
1312
+ :GetMousePosition => [],
1313
+ :GetMouseDelta => [],
1314
+ :SetMousePosition => [:int, :int],
1315
+ :SetMouseOffset => [:int, :int],
1316
+ :SetMouseScale => [:float, :float],
1317
+ :GetMouseWheelMove => [],
1318
+ :SetMouseCursor => [:int],
1319
+ :GetTouchX => [],
1320
+ :GetTouchY => [],
1321
+ :GetTouchPosition => [:int],
1322
+ :GetTouchPointId => [:int],
1323
+ :GetTouchPointCount => [],
1324
+ :SetGesturesEnabled => [:uint],
1325
+ :IsGestureDetected => [:int],
1326
+ :GetGestureDetected => [],
1327
+ :GetGestureHoldDuration => [],
1328
+ :GetGestureDragVector => [],
1329
+ :GetGestureDragAngle => [],
1330
+ :GetGesturePinchVector => [],
1331
+ :GetGesturePinchAngle => [],
1332
+ :SetCameraMode => [Camera.by_value, :int],
1333
+ :UpdateCamera => [:pointer],
1334
+ :SetCameraPanControl => [:int],
1335
+ :SetCameraAltControl => [:int],
1336
+ :SetCameraSmoothZoomControl => [:int],
1337
+ :SetCameraMoveControls => [:int, :int, :int, :int, :int, :int],
1338
+ :SetShapesTexture => [Texture2D.by_value, Rectangle.by_value],
1339
+ :DrawPixel => [:int, :int, Color.by_value],
1340
+ :DrawPixelV => [Vector2.by_value, Color.by_value],
1341
+ :DrawLine => [:int, :int, :int, :int, Color.by_value],
1342
+ :DrawLineV => [Vector2.by_value, Vector2.by_value, Color.by_value],
1343
+ :DrawLineEx => [Vector2.by_value, Vector2.by_value, :float, Color.by_value],
1344
+ :DrawLineBezier => [Vector2.by_value, Vector2.by_value, :float, Color.by_value],
1345
+ :DrawLineBezierQuad => [Vector2.by_value, Vector2.by_value, Vector2.by_value, :float, Color.by_value],
1346
+ :DrawLineBezierCubic => [Vector2.by_value, Vector2.by_value, Vector2.by_value, Vector2.by_value, :float, Color.by_value],
1347
+ :DrawLineStrip => [:pointer, :int, Color.by_value],
1348
+ :DrawCircle => [:int, :int, :float, Color.by_value],
1349
+ :DrawCircleSector => [Vector2.by_value, :float, :float, :float, :int, Color.by_value],
1350
+ :DrawCircleSectorLines => [Vector2.by_value, :float, :float, :float, :int, Color.by_value],
1351
+ :DrawCircleGradient => [:int, :int, :float, Color.by_value, Color.by_value],
1352
+ :DrawCircleV => [Vector2.by_value, :float, Color.by_value],
1353
+ :DrawCircleLines => [:int, :int, :float, Color.by_value],
1354
+ :DrawEllipse => [:int, :int, :float, :float, Color.by_value],
1355
+ :DrawEllipseLines => [:int, :int, :float, :float, Color.by_value],
1356
+ :DrawRing => [Vector2.by_value, :float, :float, :float, :float, :int, Color.by_value],
1357
+ :DrawRingLines => [Vector2.by_value, :float, :float, :float, :float, :int, Color.by_value],
1358
+ :DrawRectangle => [:int, :int, :int, :int, Color.by_value],
1359
+ :DrawRectangleV => [Vector2.by_value, Vector2.by_value, Color.by_value],
1360
+ :DrawRectangleRec => [Rectangle.by_value, Color.by_value],
1361
+ :DrawRectanglePro => [Rectangle.by_value, Vector2.by_value, :float, Color.by_value],
1362
+ :DrawRectangleGradientV => [:int, :int, :int, :int, Color.by_value, Color.by_value],
1363
+ :DrawRectangleGradientH => [:int, :int, :int, :int, Color.by_value, Color.by_value],
1364
+ :DrawRectangleGradientEx => [Rectangle.by_value, Color.by_value, Color.by_value, Color.by_value, Color.by_value],
1365
+ :DrawRectangleLines => [:int, :int, :int, :int, Color.by_value],
1366
+ :DrawRectangleLinesEx => [Rectangle.by_value, :float, Color.by_value],
1367
+ :DrawRectangleRounded => [Rectangle.by_value, :float, :int, Color.by_value],
1368
+ :DrawRectangleRoundedLines => [Rectangle.by_value, :float, :int, :float, Color.by_value],
1369
+ :DrawTriangle => [Vector2.by_value, Vector2.by_value, Vector2.by_value, Color.by_value],
1370
+ :DrawTriangleLines => [Vector2.by_value, Vector2.by_value, Vector2.by_value, Color.by_value],
1371
+ :DrawTriangleFan => [:pointer, :int, Color.by_value],
1372
+ :DrawTriangleStrip => [:pointer, :int, Color.by_value],
1373
+ :DrawPoly => [Vector2.by_value, :int, :float, :float, Color.by_value],
1374
+ :DrawPolyLines => [Vector2.by_value, :int, :float, :float, Color.by_value],
1375
+ :DrawPolyLinesEx => [Vector2.by_value, :int, :float, :float, :float, Color.by_value],
1376
+ :CheckCollisionRecs => [Rectangle.by_value, Rectangle.by_value],
1377
+ :CheckCollisionCircles => [Vector2.by_value, :float, Vector2.by_value, :float],
1378
+ :CheckCollisionCircleRec => [Vector2.by_value, :float, Rectangle.by_value],
1379
+ :CheckCollisionPointRec => [Vector2.by_value, Rectangle.by_value],
1380
+ :CheckCollisionPointCircle => [Vector2.by_value, Vector2.by_value, :float],
1381
+ :CheckCollisionPointTriangle => [Vector2.by_value, Vector2.by_value, Vector2.by_value, Vector2.by_value],
1382
+ :CheckCollisionLines => [Vector2.by_value, Vector2.by_value, Vector2.by_value, Vector2.by_value, :pointer],
1383
+ :CheckCollisionPointLine => [Vector2.by_value, Vector2.by_value, Vector2.by_value, :int],
1384
+ :GetCollisionRec => [Rectangle.by_value, Rectangle.by_value],
1385
+ :LoadImage => [:pointer],
1386
+ :LoadImageRaw => [:pointer, :int, :int, :int, :int],
1387
+ :LoadImageAnim => [:pointer, :pointer],
1388
+ :LoadImageFromMemory => [:pointer, :pointer, :int],
1389
+ :LoadImageFromTexture => [Texture2D.by_value],
1390
+ :LoadImageFromScreen => [],
1391
+ :UnloadImage => [Image.by_value],
1392
+ :ExportImage => [Image.by_value, :pointer],
1393
+ :ExportImageAsCode => [Image.by_value, :pointer],
1394
+ :GenImageColor => [:int, :int, Color.by_value],
1395
+ :GenImageGradientV => [:int, :int, Color.by_value, Color.by_value],
1396
+ :GenImageGradientH => [:int, :int, Color.by_value, Color.by_value],
1397
+ :GenImageGradientRadial => [:int, :int, :float, Color.by_value, Color.by_value],
1398
+ :GenImageChecked => [:int, :int, :int, :int, Color.by_value, Color.by_value],
1399
+ :GenImageWhiteNoise => [:int, :int, :float],
1400
+ :GenImageCellular => [:int, :int, :int],
1401
+ :ImageCopy => [Image.by_value],
1402
+ :ImageFromImage => [Image.by_value, Rectangle.by_value],
1403
+ :ImageText => [:pointer, :int, Color.by_value],
1404
+ :ImageTextEx => [Font.by_value, :pointer, :float, :float, Color.by_value],
1405
+ :ImageFormat => [:pointer, :int],
1406
+ :ImageToPOT => [:pointer, Color.by_value],
1407
+ :ImageCrop => [:pointer, Rectangle.by_value],
1408
+ :ImageAlphaCrop => [:pointer, :float],
1409
+ :ImageAlphaClear => [:pointer, Color.by_value, :float],
1410
+ :ImageAlphaMask => [:pointer, Image.by_value],
1411
+ :ImageAlphaPremultiply => [:pointer],
1412
+ :ImageResize => [:pointer, :int, :int],
1413
+ :ImageResizeNN => [:pointer, :int, :int],
1414
+ :ImageResizeCanvas => [:pointer, :int, :int, :int, :int, Color.by_value],
1415
+ :ImageMipmaps => [:pointer],
1416
+ :ImageDither => [:pointer, :int, :int, :int, :int],
1417
+ :ImageFlipVertical => [:pointer],
1418
+ :ImageFlipHorizontal => [:pointer],
1419
+ :ImageRotateCW => [:pointer],
1420
+ :ImageRotateCCW => [:pointer],
1421
+ :ImageColorTint => [:pointer, Color.by_value],
1422
+ :ImageColorInvert => [:pointer],
1423
+ :ImageColorGrayscale => [:pointer],
1424
+ :ImageColorContrast => [:pointer, :float],
1425
+ :ImageColorBrightness => [:pointer, :int],
1426
+ :ImageColorReplace => [:pointer, Color.by_value, Color.by_value],
1427
+ :LoadImageColors => [Image.by_value],
1428
+ :LoadImagePalette => [Image.by_value, :int, :pointer],
1429
+ :UnloadImageColors => [:pointer],
1430
+ :UnloadImagePalette => [:pointer],
1431
+ :GetImageAlphaBorder => [Image.by_value, :float],
1432
+ :GetImageColor => [Image.by_value, :int, :int],
1433
+ :ImageClearBackground => [:pointer, Color.by_value],
1434
+ :ImageDrawPixel => [:pointer, :int, :int, Color.by_value],
1435
+ :ImageDrawPixelV => [:pointer, Vector2.by_value, Color.by_value],
1436
+ :ImageDrawLine => [:pointer, :int, :int, :int, :int, Color.by_value],
1437
+ :ImageDrawLineV => [:pointer, Vector2.by_value, Vector2.by_value, Color.by_value],
1438
+ :ImageDrawCircle => [:pointer, :int, :int, :int, Color.by_value],
1439
+ :ImageDrawCircleV => [:pointer, Vector2.by_value, :int, Color.by_value],
1440
+ :ImageDrawRectangle => [:pointer, :int, :int, :int, :int, Color.by_value],
1441
+ :ImageDrawRectangleV => [:pointer, Vector2.by_value, Vector2.by_value, Color.by_value],
1442
+ :ImageDrawRectangleRec => [:pointer, Rectangle.by_value, Color.by_value],
1443
+ :ImageDrawRectangleLines => [:pointer, Rectangle.by_value, :int, Color.by_value],
1444
+ :ImageDraw => [:pointer, Image.by_value, Rectangle.by_value, Rectangle.by_value, Color.by_value],
1445
+ :ImageDrawText => [:pointer, :pointer, :int, :int, :int, Color.by_value],
1446
+ :ImageDrawTextEx => [:pointer, Font.by_value, :pointer, Vector2.by_value, :float, :float, Color.by_value],
1447
+ :LoadTexture => [:pointer],
1448
+ :LoadTextureFromImage => [Image.by_value],
1449
+ :LoadTextureCubemap => [Image.by_value, :int],
1450
+ :LoadRenderTexture => [:int, :int],
1451
+ :UnloadTexture => [Texture2D.by_value],
1452
+ :UnloadRenderTexture => [RenderTexture2D.by_value],
1453
+ :UpdateTexture => [Texture2D.by_value, :pointer],
1454
+ :UpdateTextureRec => [Texture2D.by_value, Rectangle.by_value, :pointer],
1455
+ :GenTextureMipmaps => [:pointer],
1456
+ :SetTextureFilter => [Texture2D.by_value, :int],
1457
+ :SetTextureWrap => [Texture2D.by_value, :int],
1458
+ :DrawTexture => [Texture2D.by_value, :int, :int, Color.by_value],
1459
+ :DrawTextureV => [Texture2D.by_value, Vector2.by_value, Color.by_value],
1460
+ :DrawTextureEx => [Texture2D.by_value, Vector2.by_value, :float, :float, Color.by_value],
1461
+ :DrawTextureRec => [Texture2D.by_value, Rectangle.by_value, Vector2.by_value, Color.by_value],
1462
+ :DrawTextureQuad => [Texture2D.by_value, Vector2.by_value, Vector2.by_value, Rectangle.by_value, Color.by_value],
1463
+ :DrawTextureTiled => [Texture2D.by_value, Rectangle.by_value, Rectangle.by_value, Vector2.by_value, :float, :float, Color.by_value],
1464
+ :DrawTexturePro => [Texture2D.by_value, Rectangle.by_value, Rectangle.by_value, Vector2.by_value, :float, Color.by_value],
1465
+ :DrawTextureNPatch => [Texture2D.by_value, NPatchInfo.by_value, Rectangle.by_value, Vector2.by_value, :float, Color.by_value],
1466
+ :DrawTexturePoly => [Texture2D.by_value, Vector2.by_value, :pointer, :pointer, :int, Color.by_value],
1467
+ :Fade => [Color.by_value, :float],
1468
+ :ColorToInt => [Color.by_value],
1469
+ :ColorNormalize => [Color.by_value],
1470
+ :ColorFromNormalized => [Vector4.by_value],
1471
+ :ColorToHSV => [Color.by_value],
1472
+ :ColorFromHSV => [:float, :float, :float],
1473
+ :ColorAlpha => [Color.by_value, :float],
1474
+ :ColorAlphaBlend => [Color.by_value, Color.by_value, Color.by_value],
1475
+ :GetColor => [:uint],
1476
+ :GetPixelColor => [:pointer, :int],
1477
+ :SetPixelColor => [:pointer, Color.by_value, :int],
1478
+ :GetPixelDataSize => [:int, :int, :int],
1479
+ :GetFontDefault => [],
1480
+ :LoadFont => [:pointer],
1481
+ :LoadFontEx => [:pointer, :int, :pointer, :int],
1482
+ :LoadFontFromImage => [Image.by_value, Color.by_value, :int],
1483
+ :LoadFontFromMemory => [:pointer, :pointer, :int, :int, :pointer, :int],
1484
+ :LoadFontData => [:pointer, :int, :int, :pointer, :int, :int],
1485
+ :GenImageFontAtlas => [:pointer, :pointer, :int, :int, :int, :int],
1486
+ :UnloadFontData => [:pointer, :int],
1487
+ :UnloadFont => [Font.by_value],
1488
+ :DrawFPS => [:int, :int],
1489
+ :DrawText => [:pointer, :int, :int, :int, Color.by_value],
1490
+ :DrawTextEx => [Font.by_value, :pointer, Vector2.by_value, :float, :float, Color.by_value],
1491
+ :DrawTextPro => [Font.by_value, :pointer, Vector2.by_value, Vector2.by_value, :float, :float, :float, Color.by_value],
1492
+ :DrawTextCodepoint => [Font.by_value, :int, Vector2.by_value, :float, Color.by_value],
1493
+ :MeasureText => [:pointer, :int],
1494
+ :MeasureTextEx => [Font.by_value, :pointer, :float, :float],
1495
+ :GetGlyphIndex => [Font.by_value, :int],
1496
+ :GetGlyphInfo => [Font.by_value, :int],
1497
+ :GetGlyphAtlasRec => [Font.by_value, :int],
1498
+ :LoadCodepoints => [:pointer, :pointer],
1499
+ :UnloadCodepoints => [:pointer],
1500
+ :GetCodepointCount => [:pointer],
1501
+ :GetCodepoint => [:pointer, :pointer],
1502
+ :CodepointToUTF8 => [:int, :pointer],
1503
+ :TextCodepointsToUTF8 => [:pointer, :int],
1504
+ :TextCopy => [:pointer, :pointer],
1505
+ :TextIsEqual => [:pointer, :pointer],
1506
+ :TextLength => [:pointer],
1507
+ :TextFormat => [:pointer, :varargs],
1508
+ :TextSubtext => [:pointer, :int, :int],
1509
+ :TextReplace => [:pointer, :pointer, :pointer],
1510
+ :TextInsert => [:pointer, :pointer, :int],
1511
+ :TextJoin => [:pointer, :int, :pointer],
1512
+ :TextSplit => [:pointer, :char, :pointer],
1513
+ :TextAppend => [:pointer, :pointer, :pointer],
1514
+ :TextFindIndex => [:pointer, :pointer],
1515
+ :TextToUpper => [:pointer],
1516
+ :TextToLower => [:pointer],
1517
+ :TextToPascal => [:pointer],
1518
+ :TextToInteger => [:pointer],
1519
+ :DrawLine3D => [Vector3.by_value, Vector3.by_value, Color.by_value],
1520
+ :DrawPoint3D => [Vector3.by_value, Color.by_value],
1521
+ :DrawCircle3D => [Vector3.by_value, :float, Vector3.by_value, :float, Color.by_value],
1522
+ :DrawTriangle3D => [Vector3.by_value, Vector3.by_value, Vector3.by_value, Color.by_value],
1523
+ :DrawTriangleStrip3D => [:pointer, :int, Color.by_value],
1524
+ :DrawCube => [Vector3.by_value, :float, :float, :float, Color.by_value],
1525
+ :DrawCubeV => [Vector3.by_value, Vector3.by_value, Color.by_value],
1526
+ :DrawCubeWires => [Vector3.by_value, :float, :float, :float, Color.by_value],
1527
+ :DrawCubeWiresV => [Vector3.by_value, Vector3.by_value, Color.by_value],
1528
+ :DrawCubeTexture => [Texture2D.by_value, Vector3.by_value, :float, :float, :float, Color.by_value],
1529
+ :DrawCubeTextureRec => [Texture2D.by_value, Rectangle.by_value, Vector3.by_value, :float, :float, :float, Color.by_value],
1530
+ :DrawSphere => [Vector3.by_value, :float, Color.by_value],
1531
+ :DrawSphereEx => [Vector3.by_value, :float, :int, :int, Color.by_value],
1532
+ :DrawSphereWires => [Vector3.by_value, :float, :int, :int, Color.by_value],
1533
+ :DrawCylinder => [Vector3.by_value, :float, :float, :float, :int, Color.by_value],
1534
+ :DrawCylinderEx => [Vector3.by_value, Vector3.by_value, :float, :float, :int, Color.by_value],
1535
+ :DrawCylinderWires => [Vector3.by_value, :float, :float, :float, :int, Color.by_value],
1536
+ :DrawCylinderWiresEx => [Vector3.by_value, Vector3.by_value, :float, :float, :int, Color.by_value],
1537
+ :DrawPlane => [Vector3.by_value, Vector2.by_value, Color.by_value],
1538
+ :DrawRay => [Ray.by_value, Color.by_value],
1539
+ :DrawGrid => [:int, :float],
1540
+ :LoadModel => [:pointer],
1541
+ :LoadModelFromMesh => [Mesh.by_value],
1542
+ :UnloadModel => [Model.by_value],
1543
+ :UnloadModelKeepMeshes => [Model.by_value],
1544
+ :GetModelBoundingBox => [Model.by_value],
1545
+ :DrawModel => [Model.by_value, Vector3.by_value, :float, Color.by_value],
1546
+ :DrawModelEx => [Model.by_value, Vector3.by_value, Vector3.by_value, :float, Vector3.by_value, Color.by_value],
1547
+ :DrawModelWires => [Model.by_value, Vector3.by_value, :float, Color.by_value],
1548
+ :DrawModelWiresEx => [Model.by_value, Vector3.by_value, Vector3.by_value, :float, Vector3.by_value, Color.by_value],
1549
+ :DrawBoundingBox => [BoundingBox.by_value, Color.by_value],
1550
+ :DrawBillboard => [Camera.by_value, Texture2D.by_value, Vector3.by_value, :float, Color.by_value],
1551
+ :DrawBillboardRec => [Camera.by_value, Texture2D.by_value, Rectangle.by_value, Vector3.by_value, Vector2.by_value, Color.by_value],
1552
+ :DrawBillboardPro => [Camera.by_value, Texture2D.by_value, Rectangle.by_value, Vector3.by_value, Vector3.by_value, Vector2.by_value, Vector2.by_value, :float, Color.by_value],
1553
+ :UploadMesh => [:pointer, :bool],
1554
+ :UpdateMeshBuffer => [Mesh.by_value, :int, :pointer, :int, :int],
1555
+ :UnloadMesh => [Mesh.by_value],
1556
+ :DrawMesh => [Mesh.by_value, Material.by_value, Matrix.by_value],
1557
+ :DrawMeshInstanced => [Mesh.by_value, Material.by_value, :pointer, :int],
1558
+ :ExportMesh => [Mesh.by_value, :pointer],
1559
+ :GetMeshBoundingBox => [Mesh.by_value],
1560
+ :GenMeshTangents => [:pointer],
1561
+ :GenMeshBinormals => [:pointer],
1562
+ :GenMeshPoly => [:int, :float],
1563
+ :GenMeshPlane => [:float, :float, :int, :int],
1564
+ :GenMeshCube => [:float, :float, :float],
1565
+ :GenMeshSphere => [:float, :int, :int],
1566
+ :GenMeshHemiSphere => [:float, :int, :int],
1567
+ :GenMeshCylinder => [:float, :float, :int],
1568
+ :GenMeshCone => [:float, :float, :int],
1569
+ :GenMeshTorus => [:float, :float, :int, :int],
1570
+ :GenMeshKnot => [:float, :float, :int, :int],
1571
+ :GenMeshHeightmap => [Image.by_value, Vector3.by_value],
1572
+ :GenMeshCubicmap => [Image.by_value, Vector3.by_value],
1573
+ :LoadMaterials => [:pointer, :pointer],
1574
+ :LoadMaterialDefault => [],
1575
+ :UnloadMaterial => [Material.by_value],
1576
+ :SetMaterialTexture => [:pointer, :int, Texture2D.by_value],
1577
+ :SetModelMeshMaterial => [:pointer, :int, :int],
1578
+ :LoadModelAnimations => [:pointer, :pointer],
1579
+ :UpdateModelAnimation => [Model.by_value, ModelAnimation.by_value, :int],
1580
+ :UnloadModelAnimation => [ModelAnimation.by_value],
1581
+ :UnloadModelAnimations => [:pointer, :uint],
1582
+ :IsModelAnimationValid => [Model.by_value, ModelAnimation.by_value],
1583
+ :CheckCollisionSpheres => [Vector3.by_value, :float, Vector3.by_value, :float],
1584
+ :CheckCollisionBoxes => [BoundingBox.by_value, BoundingBox.by_value],
1585
+ :CheckCollisionBoxSphere => [BoundingBox.by_value, Vector3.by_value, :float],
1586
+ :GetRayCollisionSphere => [Ray.by_value, Vector3.by_value, :float],
1587
+ :GetRayCollisionBox => [Ray.by_value, BoundingBox.by_value],
1588
+ :GetRayCollisionModel => [Ray.by_value, Model.by_value],
1589
+ :GetRayCollisionMesh => [Ray.by_value, Mesh.by_value, Matrix.by_value],
1590
+ :GetRayCollisionTriangle => [Ray.by_value, Vector3.by_value, Vector3.by_value, Vector3.by_value],
1591
+ :GetRayCollisionQuad => [Ray.by_value, Vector3.by_value, Vector3.by_value, Vector3.by_value, Vector3.by_value],
1592
+ :InitAudioDevice => [],
1593
+ :CloseAudioDevice => [],
1594
+ :IsAudioDeviceReady => [],
1595
+ :SetMasterVolume => [:float],
1596
+ :LoadWave => [:pointer],
1597
+ :LoadWaveFromMemory => [:pointer, :pointer, :int],
1598
+ :LoadSound => [:pointer],
1599
+ :LoadSoundFromWave => [Wave.by_value],
1600
+ :UpdateSound => [Sound.by_value, :pointer, :int],
1601
+ :UnloadWave => [Wave.by_value],
1602
+ :UnloadSound => [Sound.by_value],
1603
+ :ExportWave => [Wave.by_value, :pointer],
1604
+ :ExportWaveAsCode => [Wave.by_value, :pointer],
1605
+ :PlaySound => [Sound.by_value],
1606
+ :StopSound => [Sound.by_value],
1607
+ :PauseSound => [Sound.by_value],
1608
+ :ResumeSound => [Sound.by_value],
1609
+ :PlaySoundMulti => [Sound.by_value],
1610
+ :StopSoundMulti => [],
1611
+ :GetSoundsPlaying => [],
1612
+ :IsSoundPlaying => [Sound.by_value],
1613
+ :SetSoundVolume => [Sound.by_value, :float],
1614
+ :SetSoundPitch => [Sound.by_value, :float],
1615
+ :WaveFormat => [:pointer, :int, :int, :int],
1616
+ :WaveCopy => [Wave.by_value],
1617
+ :WaveCrop => [:pointer, :int, :int],
1618
+ :LoadWaveSamples => [Wave.by_value],
1619
+ :UnloadWaveSamples => [:pointer],
1620
+ :LoadMusicStream => [:pointer],
1621
+ :LoadMusicStreamFromMemory => [:pointer, :pointer, :int],
1622
+ :UnloadMusicStream => [Music.by_value],
1623
+ :PlayMusicStream => [Music.by_value],
1624
+ :IsMusicStreamPlaying => [Music.by_value],
1625
+ :UpdateMusicStream => [Music.by_value],
1626
+ :StopMusicStream => [Music.by_value],
1627
+ :PauseMusicStream => [Music.by_value],
1628
+ :ResumeMusicStream => [Music.by_value],
1629
+ :SeekMusicStream => [Music.by_value, :float],
1630
+ :SetMusicVolume => [Music.by_value, :float],
1631
+ :SetMusicPitch => [Music.by_value, :float],
1632
+ :GetMusicTimeLength => [Music.by_value],
1633
+ :GetMusicTimePlayed => [Music.by_value],
1634
+ :LoadAudioStream => [:uint, :uint, :uint],
1635
+ :UnloadAudioStream => [AudioStream.by_value],
1636
+ :UpdateAudioStream => [AudioStream.by_value, :pointer, :int],
1637
+ :IsAudioStreamProcessed => [AudioStream.by_value],
1638
+ :PlayAudioStream => [AudioStream.by_value],
1639
+ :PauseAudioStream => [AudioStream.by_value],
1640
+ :ResumeAudioStream => [AudioStream.by_value],
1641
+ :IsAudioStreamPlaying => [AudioStream.by_value],
1642
+ :StopAudioStream => [AudioStream.by_value],
1643
+ :SetAudioStreamVolume => [AudioStream.by_value, :float],
1644
+ :SetAudioStreamPitch => [AudioStream.by_value, :float],
1645
+ :SetAudioStreamBufferSizeDefault => [:int],
1646
+ }
1647
+ retvals = {
1648
+ :InitWindow => :void,
1649
+ :WindowShouldClose => :bool,
1650
+ :CloseWindow => :void,
1651
+ :IsWindowReady => :bool,
1652
+ :IsWindowFullscreen => :bool,
1653
+ :IsWindowHidden => :bool,
1654
+ :IsWindowMinimized => :bool,
1655
+ :IsWindowMaximized => :bool,
1656
+ :IsWindowFocused => :bool,
1657
+ :IsWindowResized => :bool,
1658
+ :IsWindowState => :bool,
1659
+ :SetWindowState => :void,
1660
+ :ClearWindowState => :void,
1661
+ :ToggleFullscreen => :void,
1662
+ :MaximizeWindow => :void,
1663
+ :MinimizeWindow => :void,
1664
+ :RestoreWindow => :void,
1665
+ :SetWindowIcon => :void,
1666
+ :SetWindowTitle => :void,
1667
+ :SetWindowPosition => :void,
1668
+ :SetWindowMonitor => :void,
1669
+ :SetWindowMinSize => :void,
1670
+ :SetWindowSize => :void,
1671
+ :GetWindowHandle => :pointer,
1672
+ :GetScreenWidth => :int,
1673
+ :GetScreenHeight => :int,
1674
+ :GetRenderWidth => :int,
1675
+ :GetRenderHeight => :int,
1676
+ :GetMonitorCount => :int,
1677
+ :GetCurrentMonitor => :int,
1678
+ :GetMonitorPosition => Vector2.by_value,
1679
+ :GetMonitorWidth => :int,
1680
+ :GetMonitorHeight => :int,
1681
+ :GetMonitorPhysicalWidth => :int,
1682
+ :GetMonitorPhysicalHeight => :int,
1683
+ :GetMonitorRefreshRate => :int,
1684
+ :GetWindowPosition => Vector2.by_value,
1685
+ :GetWindowScaleDPI => Vector2.by_value,
1686
+ :GetMonitorName => :pointer,
1687
+ :SetClipboardText => :void,
1688
+ :GetClipboardText => :pointer,
1689
+ :SwapScreenBuffer => :void,
1690
+ :PollInputEvents => :void,
1691
+ :WaitTime => :void,
1692
+ :ShowCursor => :void,
1693
+ :HideCursor => :void,
1694
+ :IsCursorHidden => :bool,
1695
+ :EnableCursor => :void,
1696
+ :DisableCursor => :void,
1697
+ :IsCursorOnScreen => :bool,
1698
+ :ClearBackground => :void,
1699
+ :BeginDrawing => :void,
1700
+ :EndDrawing => :void,
1701
+ :BeginMode2D => :void,
1702
+ :EndMode2D => :void,
1703
+ :BeginMode3D => :void,
1704
+ :EndMode3D => :void,
1705
+ :BeginTextureMode => :void,
1706
+ :EndTextureMode => :void,
1707
+ :BeginShaderMode => :void,
1708
+ :EndShaderMode => :void,
1709
+ :BeginBlendMode => :void,
1710
+ :EndBlendMode => :void,
1711
+ :BeginScissorMode => :void,
1712
+ :EndScissorMode => :void,
1713
+ :BeginVrStereoMode => :void,
1714
+ :EndVrStereoMode => :void,
1715
+ :LoadVrStereoConfig => VrStereoConfig.by_value,
1716
+ :UnloadVrStereoConfig => :void,
1717
+ :LoadShader => Shader.by_value,
1718
+ :LoadShaderFromMemory => Shader.by_value,
1719
+ :GetShaderLocation => :int,
1720
+ :GetShaderLocationAttrib => :int,
1721
+ :SetShaderValue => :void,
1722
+ :SetShaderValueV => :void,
1723
+ :SetShaderValueMatrix => :void,
1724
+ :SetShaderValueTexture => :void,
1725
+ :UnloadShader => :void,
1726
+ :GetMouseRay => Ray.by_value,
1727
+ :GetCameraMatrix => Matrix.by_value,
1728
+ :GetCameraMatrix2D => Matrix.by_value,
1729
+ :GetWorldToScreen => Vector2.by_value,
1730
+ :GetWorldToScreenEx => Vector2.by_value,
1731
+ :GetWorldToScreen2D => Vector2.by_value,
1732
+ :GetScreenToWorld2D => Vector2.by_value,
1733
+ :SetTargetFPS => :void,
1734
+ :GetFPS => :int,
1735
+ :GetFrameTime => :float,
1736
+ :GetTime => :double,
1737
+ :GetRandomValue => :int,
1738
+ :SetRandomSeed => :void,
1739
+ :TakeScreenshot => :void,
1740
+ :SetConfigFlags => :void,
1741
+ :TraceLog => :void,
1742
+ :SetTraceLogLevel => :void,
1743
+ :MemAlloc => :pointer,
1744
+ :MemRealloc => :pointer,
1745
+ :MemFree => :void,
1746
+ :SetTraceLogCallback => :void,
1747
+ :SetLoadFileDataCallback => :void,
1748
+ :SetSaveFileDataCallback => :void,
1749
+ :SetLoadFileTextCallback => :void,
1750
+ :SetSaveFileTextCallback => :void,
1751
+ :LoadFileData => :pointer,
1752
+ :UnloadFileData => :void,
1753
+ :SaveFileData => :bool,
1754
+ :LoadFileText => :pointer,
1755
+ :UnloadFileText => :void,
1756
+ :SaveFileText => :bool,
1757
+ :FileExists => :bool,
1758
+ :DirectoryExists => :bool,
1759
+ :IsFileExtension => :bool,
1760
+ :GetFileExtension => :pointer,
1761
+ :GetFileName => :pointer,
1762
+ :GetFileNameWithoutExt => :pointer,
1763
+ :GetDirectoryPath => :pointer,
1764
+ :GetPrevDirectoryPath => :pointer,
1765
+ :GetWorkingDirectory => :pointer,
1766
+ :GetDirectoryFiles => :pointer,
1767
+ :ClearDirectoryFiles => :void,
1768
+ :ChangeDirectory => :bool,
1769
+ :IsFileDropped => :bool,
1770
+ :GetDroppedFiles => :pointer,
1771
+ :ClearDroppedFiles => :void,
1772
+ :GetFileModTime => :long,
1773
+ :CompressData => :pointer,
1774
+ :DecompressData => :pointer,
1775
+ :EncodeDataBase64 => :pointer,
1776
+ :DecodeDataBase64 => :pointer,
1777
+ :SaveStorageValue => :bool,
1778
+ :LoadStorageValue => :int,
1779
+ :OpenURL => :void,
1780
+ :IsKeyPressed => :bool,
1781
+ :IsKeyDown => :bool,
1782
+ :IsKeyReleased => :bool,
1783
+ :IsKeyUp => :bool,
1784
+ :SetExitKey => :void,
1785
+ :GetKeyPressed => :int,
1786
+ :GetCharPressed => :int,
1787
+ :IsGamepadAvailable => :bool,
1788
+ :GetGamepadName => :pointer,
1789
+ :IsGamepadButtonPressed => :bool,
1790
+ :IsGamepadButtonDown => :bool,
1791
+ :IsGamepadButtonReleased => :bool,
1792
+ :IsGamepadButtonUp => :bool,
1793
+ :GetGamepadButtonPressed => :int,
1794
+ :GetGamepadAxisCount => :int,
1795
+ :GetGamepadAxisMovement => :float,
1796
+ :SetGamepadMappings => :int,
1797
+ :IsMouseButtonPressed => :bool,
1798
+ :IsMouseButtonDown => :bool,
1799
+ :IsMouseButtonReleased => :bool,
1800
+ :IsMouseButtonUp => :bool,
1801
+ :GetMouseX => :int,
1802
+ :GetMouseY => :int,
1803
+ :GetMousePosition => Vector2.by_value,
1804
+ :GetMouseDelta => Vector2.by_value,
1805
+ :SetMousePosition => :void,
1806
+ :SetMouseOffset => :void,
1807
+ :SetMouseScale => :void,
1808
+ :GetMouseWheelMove => :float,
1809
+ :SetMouseCursor => :void,
1810
+ :GetTouchX => :int,
1811
+ :GetTouchY => :int,
1812
+ :GetTouchPosition => Vector2.by_value,
1813
+ :GetTouchPointId => :int,
1814
+ :GetTouchPointCount => :int,
1815
+ :SetGesturesEnabled => :void,
1816
+ :IsGestureDetected => :bool,
1817
+ :GetGestureDetected => :int,
1818
+ :GetGestureHoldDuration => :float,
1819
+ :GetGestureDragVector => Vector2.by_value,
1820
+ :GetGestureDragAngle => :float,
1821
+ :GetGesturePinchVector => Vector2.by_value,
1822
+ :GetGesturePinchAngle => :float,
1823
+ :SetCameraMode => :void,
1824
+ :UpdateCamera => :void,
1825
+ :SetCameraPanControl => :void,
1826
+ :SetCameraAltControl => :void,
1827
+ :SetCameraSmoothZoomControl => :void,
1828
+ :SetCameraMoveControls => :void,
1829
+ :SetShapesTexture => :void,
1830
+ :DrawPixel => :void,
1831
+ :DrawPixelV => :void,
1832
+ :DrawLine => :void,
1833
+ :DrawLineV => :void,
1834
+ :DrawLineEx => :void,
1835
+ :DrawLineBezier => :void,
1836
+ :DrawLineBezierQuad => :void,
1837
+ :DrawLineBezierCubic => :void,
1838
+ :DrawLineStrip => :void,
1839
+ :DrawCircle => :void,
1840
+ :DrawCircleSector => :void,
1841
+ :DrawCircleSectorLines => :void,
1842
+ :DrawCircleGradient => :void,
1843
+ :DrawCircleV => :void,
1844
+ :DrawCircleLines => :void,
1845
+ :DrawEllipse => :void,
1846
+ :DrawEllipseLines => :void,
1847
+ :DrawRing => :void,
1848
+ :DrawRingLines => :void,
1849
+ :DrawRectangle => :void,
1850
+ :DrawRectangleV => :void,
1851
+ :DrawRectangleRec => :void,
1852
+ :DrawRectanglePro => :void,
1853
+ :DrawRectangleGradientV => :void,
1854
+ :DrawRectangleGradientH => :void,
1855
+ :DrawRectangleGradientEx => :void,
1856
+ :DrawRectangleLines => :void,
1857
+ :DrawRectangleLinesEx => :void,
1858
+ :DrawRectangleRounded => :void,
1859
+ :DrawRectangleRoundedLines => :void,
1860
+ :DrawTriangle => :void,
1861
+ :DrawTriangleLines => :void,
1862
+ :DrawTriangleFan => :void,
1863
+ :DrawTriangleStrip => :void,
1864
+ :DrawPoly => :void,
1865
+ :DrawPolyLines => :void,
1866
+ :DrawPolyLinesEx => :void,
1867
+ :CheckCollisionRecs => :bool,
1868
+ :CheckCollisionCircles => :bool,
1869
+ :CheckCollisionCircleRec => :bool,
1870
+ :CheckCollisionPointRec => :bool,
1871
+ :CheckCollisionPointCircle => :bool,
1872
+ :CheckCollisionPointTriangle => :bool,
1873
+ :CheckCollisionLines => :bool,
1874
+ :CheckCollisionPointLine => :bool,
1875
+ :GetCollisionRec => Rectangle.by_value,
1876
+ :LoadImage => Image.by_value,
1877
+ :LoadImageRaw => Image.by_value,
1878
+ :LoadImageAnim => Image.by_value,
1879
+ :LoadImageFromMemory => Image.by_value,
1880
+ :LoadImageFromTexture => Image.by_value,
1881
+ :LoadImageFromScreen => Image.by_value,
1882
+ :UnloadImage => :void,
1883
+ :ExportImage => :bool,
1884
+ :ExportImageAsCode => :bool,
1885
+ :GenImageColor => Image.by_value,
1886
+ :GenImageGradientV => Image.by_value,
1887
+ :GenImageGradientH => Image.by_value,
1888
+ :GenImageGradientRadial => Image.by_value,
1889
+ :GenImageChecked => Image.by_value,
1890
+ :GenImageWhiteNoise => Image.by_value,
1891
+ :GenImageCellular => Image.by_value,
1892
+ :ImageCopy => Image.by_value,
1893
+ :ImageFromImage => Image.by_value,
1894
+ :ImageText => Image.by_value,
1895
+ :ImageTextEx => Image.by_value,
1896
+ :ImageFormat => :void,
1897
+ :ImageToPOT => :void,
1898
+ :ImageCrop => :void,
1899
+ :ImageAlphaCrop => :void,
1900
+ :ImageAlphaClear => :void,
1901
+ :ImageAlphaMask => :void,
1902
+ :ImageAlphaPremultiply => :void,
1903
+ :ImageResize => :void,
1904
+ :ImageResizeNN => :void,
1905
+ :ImageResizeCanvas => :void,
1906
+ :ImageMipmaps => :void,
1907
+ :ImageDither => :void,
1908
+ :ImageFlipVertical => :void,
1909
+ :ImageFlipHorizontal => :void,
1910
+ :ImageRotateCW => :void,
1911
+ :ImageRotateCCW => :void,
1912
+ :ImageColorTint => :void,
1913
+ :ImageColorInvert => :void,
1914
+ :ImageColorGrayscale => :void,
1915
+ :ImageColorContrast => :void,
1916
+ :ImageColorBrightness => :void,
1917
+ :ImageColorReplace => :void,
1918
+ :LoadImageColors => :pointer,
1919
+ :LoadImagePalette => :pointer,
1920
+ :UnloadImageColors => :void,
1921
+ :UnloadImagePalette => :void,
1922
+ :GetImageAlphaBorder => Rectangle.by_value,
1923
+ :GetImageColor => Color.by_value,
1924
+ :ImageClearBackground => :void,
1925
+ :ImageDrawPixel => :void,
1926
+ :ImageDrawPixelV => :void,
1927
+ :ImageDrawLine => :void,
1928
+ :ImageDrawLineV => :void,
1929
+ :ImageDrawCircle => :void,
1930
+ :ImageDrawCircleV => :void,
1931
+ :ImageDrawRectangle => :void,
1932
+ :ImageDrawRectangleV => :void,
1933
+ :ImageDrawRectangleRec => :void,
1934
+ :ImageDrawRectangleLines => :void,
1935
+ :ImageDraw => :void,
1936
+ :ImageDrawText => :void,
1937
+ :ImageDrawTextEx => :void,
1938
+ :LoadTexture => Texture2D.by_value,
1939
+ :LoadTextureFromImage => Texture2D.by_value,
1940
+ :LoadTextureCubemap => TextureCubemap.by_value,
1941
+ :LoadRenderTexture => RenderTexture2D.by_value,
1942
+ :UnloadTexture => :void,
1943
+ :UnloadRenderTexture => :void,
1944
+ :UpdateTexture => :void,
1945
+ :UpdateTextureRec => :void,
1946
+ :GenTextureMipmaps => :void,
1947
+ :SetTextureFilter => :void,
1948
+ :SetTextureWrap => :void,
1949
+ :DrawTexture => :void,
1950
+ :DrawTextureV => :void,
1951
+ :DrawTextureEx => :void,
1952
+ :DrawTextureRec => :void,
1953
+ :DrawTextureQuad => :void,
1954
+ :DrawTextureTiled => :void,
1955
+ :DrawTexturePro => :void,
1956
+ :DrawTextureNPatch => :void,
1957
+ :DrawTexturePoly => :void,
1958
+ :Fade => Color.by_value,
1959
+ :ColorToInt => :int,
1960
+ :ColorNormalize => Vector4.by_value,
1961
+ :ColorFromNormalized => Color.by_value,
1962
+ :ColorToHSV => Vector3.by_value,
1963
+ :ColorFromHSV => Color.by_value,
1964
+ :ColorAlpha => Color.by_value,
1965
+ :ColorAlphaBlend => Color.by_value,
1966
+ :GetColor => Color.by_value,
1967
+ :GetPixelColor => Color.by_value,
1968
+ :SetPixelColor => :void,
1969
+ :GetPixelDataSize => :int,
1970
+ :GetFontDefault => Font.by_value,
1971
+ :LoadFont => Font.by_value,
1972
+ :LoadFontEx => Font.by_value,
1973
+ :LoadFontFromImage => Font.by_value,
1974
+ :LoadFontFromMemory => Font.by_value,
1975
+ :LoadFontData => :pointer,
1976
+ :GenImageFontAtlas => Image.by_value,
1977
+ :UnloadFontData => :void,
1978
+ :UnloadFont => :void,
1979
+ :DrawFPS => :void,
1980
+ :DrawText => :void,
1981
+ :DrawTextEx => :void,
1982
+ :DrawTextPro => :void,
1983
+ :DrawTextCodepoint => :void,
1984
+ :MeasureText => :int,
1985
+ :MeasureTextEx => Vector2.by_value,
1986
+ :GetGlyphIndex => :int,
1987
+ :GetGlyphInfo => GlyphInfo.by_value,
1988
+ :GetGlyphAtlasRec => Rectangle.by_value,
1989
+ :LoadCodepoints => :pointer,
1990
+ :UnloadCodepoints => :void,
1991
+ :GetCodepointCount => :int,
1992
+ :GetCodepoint => :int,
1993
+ :CodepointToUTF8 => :pointer,
1994
+ :TextCodepointsToUTF8 => :pointer,
1995
+ :TextCopy => :int,
1996
+ :TextIsEqual => :bool,
1997
+ :TextLength => :uint,
1998
+ :TextFormat => :pointer,
1999
+ :TextSubtext => :pointer,
2000
+ :TextReplace => :pointer,
2001
+ :TextInsert => :pointer,
2002
+ :TextJoin => :pointer,
2003
+ :TextSplit => :pointer,
2004
+ :TextAppend => :void,
2005
+ :TextFindIndex => :int,
2006
+ :TextToUpper => :pointer,
2007
+ :TextToLower => :pointer,
2008
+ :TextToPascal => :pointer,
2009
+ :TextToInteger => :int,
2010
+ :DrawLine3D => :void,
2011
+ :DrawPoint3D => :void,
2012
+ :DrawCircle3D => :void,
2013
+ :DrawTriangle3D => :void,
2014
+ :DrawTriangleStrip3D => :void,
2015
+ :DrawCube => :void,
2016
+ :DrawCubeV => :void,
2017
+ :DrawCubeWires => :void,
2018
+ :DrawCubeWiresV => :void,
2019
+ :DrawCubeTexture => :void,
2020
+ :DrawCubeTextureRec => :void,
2021
+ :DrawSphere => :void,
2022
+ :DrawSphereEx => :void,
2023
+ :DrawSphereWires => :void,
2024
+ :DrawCylinder => :void,
2025
+ :DrawCylinderEx => :void,
2026
+ :DrawCylinderWires => :void,
2027
+ :DrawCylinderWiresEx => :void,
2028
+ :DrawPlane => :void,
2029
+ :DrawRay => :void,
2030
+ :DrawGrid => :void,
2031
+ :LoadModel => Model.by_value,
2032
+ :LoadModelFromMesh => Model.by_value,
2033
+ :UnloadModel => :void,
2034
+ :UnloadModelKeepMeshes => :void,
2035
+ :GetModelBoundingBox => BoundingBox.by_value,
2036
+ :DrawModel => :void,
2037
+ :DrawModelEx => :void,
2038
+ :DrawModelWires => :void,
2039
+ :DrawModelWiresEx => :void,
2040
+ :DrawBoundingBox => :void,
2041
+ :DrawBillboard => :void,
2042
+ :DrawBillboardRec => :void,
2043
+ :DrawBillboardPro => :void,
2044
+ :UploadMesh => :void,
2045
+ :UpdateMeshBuffer => :void,
2046
+ :UnloadMesh => :void,
2047
+ :DrawMesh => :void,
2048
+ :DrawMeshInstanced => :void,
2049
+ :ExportMesh => :bool,
2050
+ :GetMeshBoundingBox => BoundingBox.by_value,
2051
+ :GenMeshTangents => :void,
2052
+ :GenMeshBinormals => :void,
2053
+ :GenMeshPoly => Mesh.by_value,
2054
+ :GenMeshPlane => Mesh.by_value,
2055
+ :GenMeshCube => Mesh.by_value,
2056
+ :GenMeshSphere => Mesh.by_value,
2057
+ :GenMeshHemiSphere => Mesh.by_value,
2058
+ :GenMeshCylinder => Mesh.by_value,
2059
+ :GenMeshCone => Mesh.by_value,
2060
+ :GenMeshTorus => Mesh.by_value,
2061
+ :GenMeshKnot => Mesh.by_value,
2062
+ :GenMeshHeightmap => Mesh.by_value,
2063
+ :GenMeshCubicmap => Mesh.by_value,
2064
+ :LoadMaterials => :pointer,
2065
+ :LoadMaterialDefault => Material.by_value,
2066
+ :UnloadMaterial => :void,
2067
+ :SetMaterialTexture => :void,
2068
+ :SetModelMeshMaterial => :void,
2069
+ :LoadModelAnimations => :pointer,
2070
+ :UpdateModelAnimation => :void,
2071
+ :UnloadModelAnimation => :void,
2072
+ :UnloadModelAnimations => :void,
2073
+ :IsModelAnimationValid => :bool,
2074
+ :CheckCollisionSpheres => :bool,
2075
+ :CheckCollisionBoxes => :bool,
2076
+ :CheckCollisionBoxSphere => :bool,
2077
+ :GetRayCollisionSphere => RayCollision.by_value,
2078
+ :GetRayCollisionBox => RayCollision.by_value,
2079
+ :GetRayCollisionModel => RayCollision.by_value,
2080
+ :GetRayCollisionMesh => RayCollision.by_value,
2081
+ :GetRayCollisionTriangle => RayCollision.by_value,
2082
+ :GetRayCollisionQuad => RayCollision.by_value,
2083
+ :InitAudioDevice => :void,
2084
+ :CloseAudioDevice => :void,
2085
+ :IsAudioDeviceReady => :bool,
2086
+ :SetMasterVolume => :void,
2087
+ :LoadWave => Wave.by_value,
2088
+ :LoadWaveFromMemory => Wave.by_value,
2089
+ :LoadSound => Sound.by_value,
2090
+ :LoadSoundFromWave => Sound.by_value,
2091
+ :UpdateSound => :void,
2092
+ :UnloadWave => :void,
2093
+ :UnloadSound => :void,
2094
+ :ExportWave => :bool,
2095
+ :ExportWaveAsCode => :bool,
2096
+ :PlaySound => :void,
2097
+ :StopSound => :void,
2098
+ :PauseSound => :void,
2099
+ :ResumeSound => :void,
2100
+ :PlaySoundMulti => :void,
2101
+ :StopSoundMulti => :void,
2102
+ :GetSoundsPlaying => :int,
2103
+ :IsSoundPlaying => :bool,
2104
+ :SetSoundVolume => :void,
2105
+ :SetSoundPitch => :void,
2106
+ :WaveFormat => :void,
2107
+ :WaveCopy => Wave.by_value,
2108
+ :WaveCrop => :void,
2109
+ :LoadWaveSamples => :pointer,
2110
+ :UnloadWaveSamples => :void,
2111
+ :LoadMusicStream => Music.by_value,
2112
+ :LoadMusicStreamFromMemory => Music.by_value,
2113
+ :UnloadMusicStream => :void,
2114
+ :PlayMusicStream => :void,
2115
+ :IsMusicStreamPlaying => :bool,
2116
+ :UpdateMusicStream => :void,
2117
+ :StopMusicStream => :void,
2118
+ :PauseMusicStream => :void,
2119
+ :ResumeMusicStream => :void,
2120
+ :SeekMusicStream => :void,
2121
+ :SetMusicVolume => :void,
2122
+ :SetMusicPitch => :void,
2123
+ :GetMusicTimeLength => :float,
2124
+ :GetMusicTimePlayed => :float,
2125
+ :LoadAudioStream => AudioStream.by_value,
2126
+ :UnloadAudioStream => :void,
2127
+ :UpdateAudioStream => :void,
2128
+ :IsAudioStreamProcessed => :bool,
2129
+ :PlayAudioStream => :void,
2130
+ :PauseAudioStream => :void,
2131
+ :ResumeAudioStream => :void,
2132
+ :IsAudioStreamPlaying => :bool,
2133
+ :StopAudioStream => :void,
2134
+ :SetAudioStreamVolume => :void,
2135
+ :SetAudioStreamPitch => :void,
2136
+ :SetAudioStreamBufferSizeDefault => :void,
2137
+ }
2138
+ symbols.each do |sym|
2139
+ begin
2140
+ attach_function sym, args[sym], retvals[sym]
2141
+ rescue FFI::NotFoundError => error
2142
+ $stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
2143
+ end
2144
+ end
2145
+ end
2146
+
2147
+ end
2148
+