raylib-bindings 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/lib/rlgl.rb CHANGED
@@ -1,658 +1,663 @@
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
- RLGL_VERSION = "4.0"
14
- RL_DEFAULT_BATCH_BUFFER_ELEMENTS = 8192
15
- RL_DEFAULT_BATCH_BUFFERS = 1
16
- RL_DEFAULT_BATCH_DRAWCALLS = 256
17
- RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS = 4
18
- RL_MAX_MATRIX_STACK_SIZE = 32
19
- RL_MAX_SHADER_LOCATIONS = 32
20
- RL_CULL_DISTANCE_NEAR = 0.01
21
- RL_CULL_DISTANCE_FAR = 1000.0
22
- RL_TEXTURE_WRAP_S = 0x2802
23
- RL_TEXTURE_WRAP_T = 0x2803
24
- RL_TEXTURE_MAG_FILTER = 0x2800
25
- RL_TEXTURE_MIN_FILTER = 0x2801
26
- RL_TEXTURE_FILTER_NEAREST = 0x2600
27
- RL_TEXTURE_FILTER_LINEAR = 0x2601
28
- RL_TEXTURE_FILTER_MIP_NEAREST = 0x2700
29
- RL_TEXTURE_FILTER_NEAREST_MIP_LINEAR = 0x2702
30
- RL_TEXTURE_FILTER_LINEAR_MIP_NEAREST = 0x2701
31
- RL_TEXTURE_FILTER_MIP_LINEAR = 0x2703
32
- RL_TEXTURE_FILTER_ANISOTROPIC = 0x3000
33
- RL_TEXTURE_WRAP_REPEAT = 0x2901
34
- RL_TEXTURE_WRAP_CLAMP = 0x812F
35
- RL_TEXTURE_WRAP_MIRROR_REPEAT = 0x8370
36
- RL_TEXTURE_WRAP_MIRROR_CLAMP = 0x8742
37
- RL_MODELVIEW = 0x1700
38
- RL_PROJECTION = 0x1701
39
- RL_TEXTURE = 0x1702
40
- RL_LINES = 0x0001
41
- RL_TRIANGLES = 0x0004
42
- RL_QUADS = 0x0007
43
- RL_UNSIGNED_BYTE = 0x1401
44
- RL_FLOAT = 0x1406
45
- RL_STREAM_DRAW = 0x88E0
46
- RL_STREAM_READ = 0x88E1
47
- RL_STREAM_COPY = 0x88E2
48
- RL_STATIC_DRAW = 0x88E4
49
- RL_STATIC_READ = 0x88E5
50
- RL_STATIC_COPY = 0x88E6
51
- RL_DYNAMIC_DRAW = 0x88E8
52
- RL_DYNAMIC_READ = 0x88E9
53
- RL_DYNAMIC_COPY = 0x88EA
54
- RL_FRAGMENT_SHADER = 0x8B30
55
- RL_VERTEX_SHADER = 0x8B31
56
- RL_COMPUTE_SHADER = 0x91B9
57
-
58
- # Enum
59
-
60
- OPENGL_11 = 1
61
- OPENGL_21 = 2
62
- OPENGL_33 = 3
63
- OPENGL_43 = 4
64
- OPENGL_ES_20 = 5
65
- RL_ATTACHMENT_COLOR_CHANNEL0 = 0
66
- RL_ATTACHMENT_COLOR_CHANNEL1 = 1
67
- RL_ATTACHMENT_COLOR_CHANNEL2 = 2
68
- RL_ATTACHMENT_COLOR_CHANNEL3 = 3
69
- RL_ATTACHMENT_COLOR_CHANNEL4 = 4
70
- RL_ATTACHMENT_COLOR_CHANNEL5 = 5
71
- RL_ATTACHMENT_COLOR_CHANNEL6 = 6
72
- RL_ATTACHMENT_COLOR_CHANNEL7 = 7
73
- RL_ATTACHMENT_DEPTH = 100
74
- RL_ATTACHMENT_STENCIL = 200
75
- RL_ATTACHMENT_CUBEMAP_POSITIVE_X = 0
76
- RL_ATTACHMENT_CUBEMAP_NEGATIVE_X = 1
77
- RL_ATTACHMENT_CUBEMAP_POSITIVE_Y = 2
78
- RL_ATTACHMENT_CUBEMAP_NEGATIVE_Y = 3
79
- RL_ATTACHMENT_CUBEMAP_POSITIVE_Z = 4
80
- RL_ATTACHMENT_CUBEMAP_NEGATIVE_Z = 5
81
- RL_ATTACHMENT_TEXTURE2D = 100
82
- RL_ATTACHMENT_RENDERBUFFER = 200
83
- RL_LOG_ALL = 0
84
- RL_LOG_TRACE = 1
85
- RL_LOG_DEBUG = 2
86
- RL_LOG_INFO = 3
87
- RL_LOG_WARNING = 4
88
- RL_LOG_ERROR = 5
89
- RL_LOG_FATAL = 6
90
- RL_LOG_NONE = 7
91
- RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE = 1
92
- RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA = 2
93
- RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5 = 3
94
- RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8 = 4
95
- RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1 = 5
96
- RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4 = 6
97
- RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8 = 7
98
- RL_PIXELFORMAT_UNCOMPRESSED_R32 = 8
99
- RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32 = 9
100
- RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32 = 10
101
- RL_PIXELFORMAT_COMPRESSED_DXT1_RGB = 11
102
- RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA = 12
103
- RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA = 13
104
- RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA = 14
105
- RL_PIXELFORMAT_COMPRESSED_ETC1_RGB = 15
106
- RL_PIXELFORMAT_COMPRESSED_ETC2_RGB = 16
107
- RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 17
108
- RL_PIXELFORMAT_COMPRESSED_PVRT_RGB = 18
109
- RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA = 19
110
- RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 20
111
- RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA = 21
112
- RL_TEXTURE_FILTER_POINT = 0
113
- RL_TEXTURE_FILTER_BILINEAR = 1
114
- RL_TEXTURE_FILTER_TRILINEAR = 2
115
- RL_TEXTURE_FILTER_ANISOTROPIC_4X = 3
116
- RL_TEXTURE_FILTER_ANISOTROPIC_8X = 4
117
- RL_TEXTURE_FILTER_ANISOTROPIC_16X = 5
118
- RL_BLEND_ALPHA = 0
119
- RL_BLEND_ADDITIVE = 1
120
- RL_BLEND_MULTIPLIED = 2
121
- RL_BLEND_ADD_COLORS = 3
122
- RL_BLEND_SUBTRACT_COLORS = 4
123
- RL_BLEND_ALPHA_PREMULTIPLY = 5
124
- RL_BLEND_CUSTOM = 6
125
- RL_SHADER_LOC_VERTEX_POSITION = 0
126
- RL_SHADER_LOC_VERTEX_TEXCOORD01 = 1
127
- RL_SHADER_LOC_VERTEX_TEXCOORD02 = 2
128
- RL_SHADER_LOC_VERTEX_NORMAL = 3
129
- RL_SHADER_LOC_VERTEX_TANGENT = 4
130
- RL_SHADER_LOC_VERTEX_COLOR = 5
131
- RL_SHADER_LOC_MATRIX_MVP = 6
132
- RL_SHADER_LOC_MATRIX_VIEW = 7
133
- RL_SHADER_LOC_MATRIX_PROJECTION = 8
134
- RL_SHADER_LOC_MATRIX_MODEL = 9
135
- RL_SHADER_LOC_MATRIX_NORMAL = 10
136
- RL_SHADER_LOC_VECTOR_VIEW = 11
137
- RL_SHADER_LOC_COLOR_DIFFUSE = 12
138
- RL_SHADER_LOC_COLOR_SPECULAR = 13
139
- RL_SHADER_LOC_COLOR_AMBIENT = 14
140
- RL_SHADER_LOC_MAP_ALBEDO = 15
141
- RL_SHADER_LOC_MAP_METALNESS = 16
142
- RL_SHADER_LOC_MAP_NORMAL = 17
143
- RL_SHADER_LOC_MAP_ROUGHNESS = 18
144
- RL_SHADER_LOC_MAP_OCCLUSION = 19
145
- RL_SHADER_LOC_MAP_EMISSION = 20
146
- RL_SHADER_LOC_MAP_HEIGHT = 21
147
- RL_SHADER_LOC_MAP_CUBEMAP = 22
148
- RL_SHADER_LOC_MAP_IRRADIANCE = 23
149
- RL_SHADER_LOC_MAP_PREFILTER = 24
150
- RL_SHADER_LOC_MAP_BRDF = 25
151
- RL_SHADER_UNIFORM_FLOAT = 0
152
- RL_SHADER_UNIFORM_VEC2 = 1
153
- RL_SHADER_UNIFORM_VEC3 = 2
154
- RL_SHADER_UNIFORM_VEC4 = 3
155
- RL_SHADER_UNIFORM_INT = 4
156
- RL_SHADER_UNIFORM_IVEC2 = 5
157
- RL_SHADER_UNIFORM_IVEC3 = 6
158
- RL_SHADER_UNIFORM_IVEC4 = 7
159
- RL_SHADER_UNIFORM_SAMPLER2D = 8
160
- RL_SHADER_ATTRIB_FLOAT = 0
161
- RL_SHADER_ATTRIB_VEC2 = 1
162
- RL_SHADER_ATTRIB_VEC3 = 2
163
- RL_SHADER_ATTRIB_VEC4 = 3
164
-
165
- # Typedef
166
-
167
- typedef :int, :rlGlVersion
168
- typedef :int, :rlFramebufferAttachType
169
- typedef :int, :rlFramebufferAttachTextureType
170
- typedef :int, :rlTraceLogLevel
171
- typedef :int, :rlPixelFormat
172
- typedef :int, :rlTextureFilter
173
- typedef :int, :rlBlendMode
174
- typedef :int, :rlShaderLocationIndex
175
- typedef :int, :rlShaderUniformDataType
176
- typedef :int, :rlShaderAttributeDataType
177
-
178
- # Struct
179
-
180
- class RlVertexBuffer < FFI::Struct
181
- layout(
182
- :elementCount, :int,
183
- :vertices, :pointer,
184
- :texcoords, :pointer,
185
- :colors, :pointer,
186
- :indices, :pointer,
187
- :vaoId, :uint,
188
- :vboId, [:uint, 4],
189
- )
190
- end
191
-
192
- class RlDrawCall < FFI::Struct
193
- layout(
194
- :mode, :int,
195
- :vertexCount, :int,
196
- :vertexAlignment, :int,
197
- :textureId, :uint,
198
- )
199
- end
200
-
201
- class RlRenderBatch < FFI::Struct
202
- layout(
203
- :bufferCount, :int,
204
- :currentBuffer, :int,
205
- :vertexBuffer, :pointer,
206
- :draws, :pointer,
207
- :drawCounter, :int,
208
- :currentDepth, :float,
209
- )
210
- end
211
-
212
-
213
- # Function
214
-
215
- def self.setup_rlgl_symbols()
216
- symbols = [
217
- :rlMatrixMode,
218
- :rlPushMatrix,
219
- :rlPopMatrix,
220
- :rlLoadIdentity,
221
- :rlTranslatef,
222
- :rlRotatef,
223
- :rlScalef,
224
- :rlMultMatrixf,
225
- :rlFrustum,
226
- :rlOrtho,
227
- :rlViewport,
228
- :rlBegin,
229
- :rlEnd,
230
- :rlVertex2i,
231
- :rlVertex2f,
232
- :rlVertex3f,
233
- :rlTexCoord2f,
234
- :rlNormal3f,
235
- :rlColor4ub,
236
- :rlColor3f,
237
- :rlColor4f,
238
- :rlEnableVertexArray,
239
- :rlDisableVertexArray,
240
- :rlEnableVertexBuffer,
241
- :rlDisableVertexBuffer,
242
- :rlEnableVertexBufferElement,
243
- :rlDisableVertexBufferElement,
244
- :rlEnableVertexAttribute,
245
- :rlDisableVertexAttribute,
246
- :rlActiveTextureSlot,
247
- :rlEnableTexture,
248
- :rlDisableTexture,
249
- :rlEnableTextureCubemap,
250
- :rlDisableTextureCubemap,
251
- :rlTextureParameters,
252
- :rlEnableShader,
253
- :rlDisableShader,
254
- :rlEnableFramebuffer,
255
- :rlDisableFramebuffer,
256
- :rlActiveDrawBuffers,
257
- :rlEnableColorBlend,
258
- :rlDisableColorBlend,
259
- :rlEnableDepthTest,
260
- :rlDisableDepthTest,
261
- :rlEnableDepthMask,
262
- :rlDisableDepthMask,
263
- :rlEnableBackfaceCulling,
264
- :rlDisableBackfaceCulling,
265
- :rlEnableScissorTest,
266
- :rlDisableScissorTest,
267
- :rlScissor,
268
- :rlEnableWireMode,
269
- :rlDisableWireMode,
270
- :rlSetLineWidth,
271
- :rlGetLineWidth,
272
- :rlEnableSmoothLines,
273
- :rlDisableSmoothLines,
274
- :rlEnableStereoRender,
275
- :rlDisableStereoRender,
276
- :rlIsStereoRenderEnabled,
277
- :rlClearColor,
278
- :rlClearScreenBuffers,
279
- :rlCheckErrors,
280
- :rlSetBlendMode,
281
- :rlSetBlendFactors,
282
- :rlglInit,
283
- :rlglClose,
284
- :rlLoadExtensions,
285
- :rlGetVersion,
286
- :rlSetFramebufferWidth,
287
- :rlGetFramebufferWidth,
288
- :rlSetFramebufferHeight,
289
- :rlGetFramebufferHeight,
290
- :rlGetTextureIdDefault,
291
- :rlGetShaderIdDefault,
292
- :rlGetShaderLocsDefault,
293
- :rlLoadRenderBatch,
294
- :rlUnloadRenderBatch,
295
- :rlDrawRenderBatch,
296
- :rlSetRenderBatchActive,
297
- :rlDrawRenderBatchActive,
298
- :rlCheckRenderBatchLimit,
299
- :rlSetTexture,
300
- :rlLoadVertexArray,
301
- :rlLoadVertexBuffer,
302
- :rlLoadVertexBufferElement,
303
- :rlUpdateVertexBuffer,
304
- :rlUpdateVertexBufferElements,
305
- :rlUnloadVertexArray,
306
- :rlUnloadVertexBuffer,
307
- :rlSetVertexAttribute,
308
- :rlSetVertexAttributeDivisor,
309
- :rlSetVertexAttributeDefault,
310
- :rlDrawVertexArray,
311
- :rlDrawVertexArrayElements,
312
- :rlDrawVertexArrayInstanced,
313
- :rlDrawVertexArrayElementsInstanced,
314
- :rlLoadTexture,
315
- :rlLoadTextureDepth,
316
- :rlLoadTextureCubemap,
317
- :rlUpdateTexture,
318
- :rlGetGlTextureFormats,
319
- :rlGetPixelFormatName,
320
- :rlUnloadTexture,
321
- :rlGenTextureMipmaps,
322
- :rlReadTexturePixels,
323
- :rlReadScreenPixels,
324
- :rlLoadFramebuffer,
325
- :rlFramebufferAttach,
326
- :rlFramebufferComplete,
327
- :rlUnloadFramebuffer,
328
- :rlLoadShaderCode,
329
- :rlCompileShader,
330
- :rlLoadShaderProgram,
331
- :rlUnloadShaderProgram,
332
- :rlGetLocationUniform,
333
- :rlGetLocationAttrib,
334
- :rlSetUniform,
335
- :rlSetUniformMatrix,
336
- :rlSetUniformSampler,
337
- :rlSetShader,
338
- :rlLoadComputeShaderProgram,
339
- :rlComputeShaderDispatch,
340
- :rlLoadShaderBuffer,
341
- :rlUnloadShaderBuffer,
342
- :rlUpdateShaderBufferElements,
343
- :rlGetShaderBufferSize,
344
- :rlReadShaderBufferElements,
345
- :rlBindShaderBuffer,
346
- :rlCopyBuffersElements,
347
- :rlBindImageTexture,
348
- :rlGetMatrixModelview,
349
- :rlGetMatrixProjection,
350
- :rlGetMatrixTransform,
351
- :rlGetMatrixProjectionStereo,
352
- :rlGetMatrixViewOffsetStereo,
353
- :rlSetMatrixProjection,
354
- :rlSetMatrixModelview,
355
- :rlSetMatrixProjectionStereo,
356
- :rlSetMatrixViewOffsetStereo,
357
- :rlLoadDrawCube,
358
- :rlLoadDrawQuad,
359
- ]
360
- args = {
361
- :rlMatrixMode => [:int],
362
- :rlPushMatrix => [],
363
- :rlPopMatrix => [],
364
- :rlLoadIdentity => [],
365
- :rlTranslatef => [:float, :float, :float],
366
- :rlRotatef => [:float, :float, :float, :float],
367
- :rlScalef => [:float, :float, :float],
368
- :rlMultMatrixf => [:pointer],
369
- :rlFrustum => [:double, :double, :double, :double, :double, :double],
370
- :rlOrtho => [:double, :double, :double, :double, :double, :double],
371
- :rlViewport => [:int, :int, :int, :int],
372
- :rlBegin => [:int],
373
- :rlEnd => [],
374
- :rlVertex2i => [:int, :int],
375
- :rlVertex2f => [:float, :float],
376
- :rlVertex3f => [:float, :float, :float],
377
- :rlTexCoord2f => [:float, :float],
378
- :rlNormal3f => [:float, :float, :float],
379
- :rlColor4ub => [:uchar, :uchar, :uchar, :uchar],
380
- :rlColor3f => [:float, :float, :float],
381
- :rlColor4f => [:float, :float, :float, :float],
382
- :rlEnableVertexArray => [:uint],
383
- :rlDisableVertexArray => [],
384
- :rlEnableVertexBuffer => [:uint],
385
- :rlDisableVertexBuffer => [],
386
- :rlEnableVertexBufferElement => [:uint],
387
- :rlDisableVertexBufferElement => [],
388
- :rlEnableVertexAttribute => [:uint],
389
- :rlDisableVertexAttribute => [:uint],
390
- :rlActiveTextureSlot => [:int],
391
- :rlEnableTexture => [:uint],
392
- :rlDisableTexture => [],
393
- :rlEnableTextureCubemap => [:uint],
394
- :rlDisableTextureCubemap => [],
395
- :rlTextureParameters => [:uint, :int, :int],
396
- :rlEnableShader => [:uint],
397
- :rlDisableShader => [],
398
- :rlEnableFramebuffer => [:uint],
399
- :rlDisableFramebuffer => [],
400
- :rlActiveDrawBuffers => [:int],
401
- :rlEnableColorBlend => [],
402
- :rlDisableColorBlend => [],
403
- :rlEnableDepthTest => [],
404
- :rlDisableDepthTest => [],
405
- :rlEnableDepthMask => [],
406
- :rlDisableDepthMask => [],
407
- :rlEnableBackfaceCulling => [],
408
- :rlDisableBackfaceCulling => [],
409
- :rlEnableScissorTest => [],
410
- :rlDisableScissorTest => [],
411
- :rlScissor => [:int, :int, :int, :int],
412
- :rlEnableWireMode => [],
413
- :rlDisableWireMode => [],
414
- :rlSetLineWidth => [:float],
415
- :rlGetLineWidth => [],
416
- :rlEnableSmoothLines => [],
417
- :rlDisableSmoothLines => [],
418
- :rlEnableStereoRender => [],
419
- :rlDisableStereoRender => [],
420
- :rlIsStereoRenderEnabled => [],
421
- :rlClearColor => [:uchar, :uchar, :uchar, :uchar],
422
- :rlClearScreenBuffers => [],
423
- :rlCheckErrors => [],
424
- :rlSetBlendMode => [:int],
425
- :rlSetBlendFactors => [:int, :int, :int],
426
- :rlglInit => [:int, :int],
427
- :rlglClose => [],
428
- :rlLoadExtensions => [:pointer],
429
- :rlGetVersion => [],
430
- :rlSetFramebufferWidth => [:int],
431
- :rlGetFramebufferWidth => [],
432
- :rlSetFramebufferHeight => [:int],
433
- :rlGetFramebufferHeight => [],
434
- :rlGetTextureIdDefault => [],
435
- :rlGetShaderIdDefault => [],
436
- :rlGetShaderLocsDefault => [],
437
- :rlLoadRenderBatch => [:int, :int],
438
- :rlUnloadRenderBatch => [RlRenderBatch.by_value],
439
- :rlDrawRenderBatch => [:pointer],
440
- :rlSetRenderBatchActive => [:pointer],
441
- :rlDrawRenderBatchActive => [],
442
- :rlCheckRenderBatchLimit => [:int],
443
- :rlSetTexture => [:uint],
444
- :rlLoadVertexArray => [],
445
- :rlLoadVertexBuffer => [:pointer, :int, :bool],
446
- :rlLoadVertexBufferElement => [:pointer, :int, :bool],
447
- :rlUpdateVertexBuffer => [:uint, :pointer, :int, :int],
448
- :rlUpdateVertexBufferElements => [:uint, :pointer, :int, :int],
449
- :rlUnloadVertexArray => [:uint],
450
- :rlUnloadVertexBuffer => [:uint],
451
- :rlSetVertexAttribute => [:uint, :int, :int, :bool, :int, :pointer],
452
- :rlSetVertexAttributeDivisor => [:uint, :int],
453
- :rlSetVertexAttributeDefault => [:int, :pointer, :int, :int],
454
- :rlDrawVertexArray => [:int, :int],
455
- :rlDrawVertexArrayElements => [:int, :int, :pointer],
456
- :rlDrawVertexArrayInstanced => [:int, :int, :int],
457
- :rlDrawVertexArrayElementsInstanced => [:int, :int, :pointer, :int],
458
- :rlLoadTexture => [:pointer, :int, :int, :int, :int],
459
- :rlLoadTextureDepth => [:int, :int, :bool],
460
- :rlLoadTextureCubemap => [:pointer, :int, :int],
461
- :rlUpdateTexture => [:uint, :int, :int, :int, :int, :int, :pointer],
462
- :rlGetGlTextureFormats => [:int, :pointer, :pointer, :pointer],
463
- :rlGetPixelFormatName => [:uint],
464
- :rlUnloadTexture => [:uint],
465
- :rlGenTextureMipmaps => [:uint, :int, :int, :int, :pointer],
466
- :rlReadTexturePixels => [:uint, :int, :int, :int],
467
- :rlReadScreenPixels => [:int, :int],
468
- :rlLoadFramebuffer => [:int, :int],
469
- :rlFramebufferAttach => [:uint, :uint, :int, :int, :int],
470
- :rlFramebufferComplete => [:uint],
471
- :rlUnloadFramebuffer => [:uint],
472
- :rlLoadShaderCode => [:pointer, :pointer],
473
- :rlCompileShader => [:pointer, :int],
474
- :rlLoadShaderProgram => [:uint, :uint],
475
- :rlUnloadShaderProgram => [:uint],
476
- :rlGetLocationUniform => [:uint, :pointer],
477
- :rlGetLocationAttrib => [:uint, :pointer],
478
- :rlSetUniform => [:int, :pointer, :int, :int],
479
- :rlSetUniformMatrix => [:int, Matrix.by_value],
480
- :rlSetUniformSampler => [:int, :uint],
481
- :rlSetShader => [:uint, :pointer],
482
- :rlLoadComputeShaderProgram => [:uint],
483
- :rlComputeShaderDispatch => [:uint, :uint, :uint],
484
- :rlLoadShaderBuffer => [:ulong_long, :pointer, :int],
485
- :rlUnloadShaderBuffer => [:uint],
486
- :rlUpdateShaderBufferElements => [:uint, :pointer, :ulong_long, :ulong_long],
487
- :rlGetShaderBufferSize => [:uint],
488
- :rlReadShaderBufferElements => [:uint, :pointer, :ulong_long, :ulong_long],
489
- :rlBindShaderBuffer => [:uint, :uint],
490
- :rlCopyBuffersElements => [:uint, :uint, :ulong_long, :ulong_long, :ulong_long],
491
- :rlBindImageTexture => [:uint, :uint, :uint, :int],
492
- :rlGetMatrixModelview => [],
493
- :rlGetMatrixProjection => [],
494
- :rlGetMatrixTransform => [],
495
- :rlGetMatrixProjectionStereo => [:int],
496
- :rlGetMatrixViewOffsetStereo => [:int],
497
- :rlSetMatrixProjection => [Matrix.by_value],
498
- :rlSetMatrixModelview => [Matrix.by_value],
499
- :rlSetMatrixProjectionStereo => [Matrix.by_value, Matrix.by_value],
500
- :rlSetMatrixViewOffsetStereo => [Matrix.by_value, Matrix.by_value],
501
- :rlLoadDrawCube => [],
502
- :rlLoadDrawQuad => [],
503
- }
504
- retvals = {
505
- :rlMatrixMode => :void,
506
- :rlPushMatrix => :void,
507
- :rlPopMatrix => :void,
508
- :rlLoadIdentity => :void,
509
- :rlTranslatef => :void,
510
- :rlRotatef => :void,
511
- :rlScalef => :void,
512
- :rlMultMatrixf => :void,
513
- :rlFrustum => :void,
514
- :rlOrtho => :void,
515
- :rlViewport => :void,
516
- :rlBegin => :void,
517
- :rlEnd => :void,
518
- :rlVertex2i => :void,
519
- :rlVertex2f => :void,
520
- :rlVertex3f => :void,
521
- :rlTexCoord2f => :void,
522
- :rlNormal3f => :void,
523
- :rlColor4ub => :void,
524
- :rlColor3f => :void,
525
- :rlColor4f => :void,
526
- :rlEnableVertexArray => :bool,
527
- :rlDisableVertexArray => :void,
528
- :rlEnableVertexBuffer => :void,
529
- :rlDisableVertexBuffer => :void,
530
- :rlEnableVertexBufferElement => :void,
531
- :rlDisableVertexBufferElement => :void,
532
- :rlEnableVertexAttribute => :void,
533
- :rlDisableVertexAttribute => :void,
534
- :rlActiveTextureSlot => :void,
535
- :rlEnableTexture => :void,
536
- :rlDisableTexture => :void,
537
- :rlEnableTextureCubemap => :void,
538
- :rlDisableTextureCubemap => :void,
539
- :rlTextureParameters => :void,
540
- :rlEnableShader => :void,
541
- :rlDisableShader => :void,
542
- :rlEnableFramebuffer => :void,
543
- :rlDisableFramebuffer => :void,
544
- :rlActiveDrawBuffers => :void,
545
- :rlEnableColorBlend => :void,
546
- :rlDisableColorBlend => :void,
547
- :rlEnableDepthTest => :void,
548
- :rlDisableDepthTest => :void,
549
- :rlEnableDepthMask => :void,
550
- :rlDisableDepthMask => :void,
551
- :rlEnableBackfaceCulling => :void,
552
- :rlDisableBackfaceCulling => :void,
553
- :rlEnableScissorTest => :void,
554
- :rlDisableScissorTest => :void,
555
- :rlScissor => :void,
556
- :rlEnableWireMode => :void,
557
- :rlDisableWireMode => :void,
558
- :rlSetLineWidth => :void,
559
- :rlGetLineWidth => :float,
560
- :rlEnableSmoothLines => :void,
561
- :rlDisableSmoothLines => :void,
562
- :rlEnableStereoRender => :void,
563
- :rlDisableStereoRender => :void,
564
- :rlIsStereoRenderEnabled => :bool,
565
- :rlClearColor => :void,
566
- :rlClearScreenBuffers => :void,
567
- :rlCheckErrors => :void,
568
- :rlSetBlendMode => :void,
569
- :rlSetBlendFactors => :void,
570
- :rlglInit => :void,
571
- :rlglClose => :void,
572
- :rlLoadExtensions => :void,
573
- :rlGetVersion => :int,
574
- :rlSetFramebufferWidth => :void,
575
- :rlGetFramebufferWidth => :int,
576
- :rlSetFramebufferHeight => :void,
577
- :rlGetFramebufferHeight => :int,
578
- :rlGetTextureIdDefault => :uint,
579
- :rlGetShaderIdDefault => :uint,
580
- :rlGetShaderLocsDefault => :pointer,
581
- :rlLoadRenderBatch => RlRenderBatch.by_value,
582
- :rlUnloadRenderBatch => :void,
583
- :rlDrawRenderBatch => :void,
584
- :rlSetRenderBatchActive => :void,
585
- :rlDrawRenderBatchActive => :void,
586
- :rlCheckRenderBatchLimit => :bool,
587
- :rlSetTexture => :void,
588
- :rlLoadVertexArray => :uint,
589
- :rlLoadVertexBuffer => :uint,
590
- :rlLoadVertexBufferElement => :uint,
591
- :rlUpdateVertexBuffer => :void,
592
- :rlUpdateVertexBufferElements => :void,
593
- :rlUnloadVertexArray => :void,
594
- :rlUnloadVertexBuffer => :void,
595
- :rlSetVertexAttribute => :void,
596
- :rlSetVertexAttributeDivisor => :void,
597
- :rlSetVertexAttributeDefault => :void,
598
- :rlDrawVertexArray => :void,
599
- :rlDrawVertexArrayElements => :void,
600
- :rlDrawVertexArrayInstanced => :void,
601
- :rlDrawVertexArrayElementsInstanced => :void,
602
- :rlLoadTexture => :uint,
603
- :rlLoadTextureDepth => :uint,
604
- :rlLoadTextureCubemap => :uint,
605
- :rlUpdateTexture => :void,
606
- :rlGetGlTextureFormats => :void,
607
- :rlGetPixelFormatName => :pointer,
608
- :rlUnloadTexture => :void,
609
- :rlGenTextureMipmaps => :void,
610
- :rlReadTexturePixels => :pointer,
611
- :rlReadScreenPixels => :pointer,
612
- :rlLoadFramebuffer => :uint,
613
- :rlFramebufferAttach => :void,
614
- :rlFramebufferComplete => :bool,
615
- :rlUnloadFramebuffer => :void,
616
- :rlLoadShaderCode => :uint,
617
- :rlCompileShader => :uint,
618
- :rlLoadShaderProgram => :uint,
619
- :rlUnloadShaderProgram => :void,
620
- :rlGetLocationUniform => :int,
621
- :rlGetLocationAttrib => :int,
622
- :rlSetUniform => :void,
623
- :rlSetUniformMatrix => :void,
624
- :rlSetUniformSampler => :void,
625
- :rlSetShader => :void,
626
- :rlLoadComputeShaderProgram => :uint,
627
- :rlComputeShaderDispatch => :void,
628
- :rlLoadShaderBuffer => :uint,
629
- :rlUnloadShaderBuffer => :void,
630
- :rlUpdateShaderBufferElements => :void,
631
- :rlGetShaderBufferSize => :ulong_long,
632
- :rlReadShaderBufferElements => :void,
633
- :rlBindShaderBuffer => :void,
634
- :rlCopyBuffersElements => :void,
635
- :rlBindImageTexture => :void,
636
- :rlGetMatrixModelview => Matrix.by_value,
637
- :rlGetMatrixProjection => Matrix.by_value,
638
- :rlGetMatrixTransform => Matrix.by_value,
639
- :rlGetMatrixProjectionStereo => Matrix.by_value,
640
- :rlGetMatrixViewOffsetStereo => Matrix.by_value,
641
- :rlSetMatrixProjection => :void,
642
- :rlSetMatrixModelview => :void,
643
- :rlSetMatrixProjectionStereo => :void,
644
- :rlSetMatrixViewOffsetStereo => :void,
645
- :rlLoadDrawCube => :void,
646
- :rlLoadDrawQuad => :void,
647
- }
648
- symbols.each do |sym|
649
- begin
650
- attach_function sym, args[sym], retvals[sym]
651
- rescue FFI::NotFoundError => error
652
- $stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
653
- end
654
- end
655
- end
656
-
657
- end
658
-
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
+ RLGL_VERSION = "4.0"
14
+ RL_DEFAULT_BATCH_BUFFER_ELEMENTS = 8192
15
+ RL_DEFAULT_BATCH_BUFFERS = 1
16
+ RL_DEFAULT_BATCH_DRAWCALLS = 256
17
+ RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS = 4
18
+ RL_MAX_MATRIX_STACK_SIZE = 32
19
+ RL_MAX_SHADER_LOCATIONS = 32
20
+ RL_CULL_DISTANCE_NEAR = 0.01
21
+ RL_CULL_DISTANCE_FAR = 1000.0
22
+ RL_TEXTURE_WRAP_S = 0x2802
23
+ RL_TEXTURE_WRAP_T = 0x2803
24
+ RL_TEXTURE_MAG_FILTER = 0x2800
25
+ RL_TEXTURE_MIN_FILTER = 0x2801
26
+ RL_TEXTURE_FILTER_NEAREST = 0x2600
27
+ RL_TEXTURE_FILTER_LINEAR = 0x2601
28
+ RL_TEXTURE_FILTER_MIP_NEAREST = 0x2700
29
+ RL_TEXTURE_FILTER_NEAREST_MIP_LINEAR = 0x2702
30
+ RL_TEXTURE_FILTER_LINEAR_MIP_NEAREST = 0x2701
31
+ RL_TEXTURE_FILTER_MIP_LINEAR = 0x2703
32
+ RL_TEXTURE_FILTER_ANISOTROPIC = 0x3000
33
+ RL_TEXTURE_MIPMAP_BIAS_RATIO = 0x4000
34
+ RL_TEXTURE_WRAP_REPEAT = 0x2901
35
+ RL_TEXTURE_WRAP_CLAMP = 0x812F
36
+ RL_TEXTURE_WRAP_MIRROR_REPEAT = 0x8370
37
+ RL_TEXTURE_WRAP_MIRROR_CLAMP = 0x8742
38
+ RL_MODELVIEW = 0x1700
39
+ RL_PROJECTION = 0x1701
40
+ RL_TEXTURE = 0x1702
41
+ RL_LINES = 0x0001
42
+ RL_TRIANGLES = 0x0004
43
+ RL_QUADS = 0x0007
44
+ RL_UNSIGNED_BYTE = 0x1401
45
+ RL_FLOAT = 0x1406
46
+ RL_STREAM_DRAW = 0x88E0
47
+ RL_STREAM_READ = 0x88E1
48
+ RL_STREAM_COPY = 0x88E2
49
+ RL_STATIC_DRAW = 0x88E4
50
+ RL_STATIC_READ = 0x88E5
51
+ RL_STATIC_COPY = 0x88E6
52
+ RL_DYNAMIC_DRAW = 0x88E8
53
+ RL_DYNAMIC_READ = 0x88E9
54
+ RL_DYNAMIC_COPY = 0x88EA
55
+ RL_FRAGMENT_SHADER = 0x8B30
56
+ RL_VERTEX_SHADER = 0x8B31
57
+ RL_COMPUTE_SHADER = 0x91B9
58
+
59
+ # Enum
60
+
61
+ RL_OPENGL_11 = 1
62
+ RL_OPENGL_21 = 2
63
+ RL_OPENGL_33 = 3
64
+ RL_OPENGL_43 = 4
65
+ RL_OPENGL_ES_20 = 5
66
+ RL_LOG_ALL = 0
67
+ RL_LOG_TRACE = 1
68
+ RL_LOG_DEBUG = 2
69
+ RL_LOG_INFO = 3
70
+ RL_LOG_WARNING = 4
71
+ RL_LOG_ERROR = 5
72
+ RL_LOG_FATAL = 6
73
+ RL_LOG_NONE = 7
74
+ RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE = 1
75
+ RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA = 2
76
+ RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5 = 3
77
+ RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8 = 4
78
+ RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1 = 5
79
+ RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4 = 6
80
+ RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8 = 7
81
+ RL_PIXELFORMAT_UNCOMPRESSED_R32 = 8
82
+ RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32 = 9
83
+ RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32 = 10
84
+ RL_PIXELFORMAT_COMPRESSED_DXT1_RGB = 11
85
+ RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA = 12
86
+ RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA = 13
87
+ RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA = 14
88
+ RL_PIXELFORMAT_COMPRESSED_ETC1_RGB = 15
89
+ RL_PIXELFORMAT_COMPRESSED_ETC2_RGB = 16
90
+ RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 17
91
+ RL_PIXELFORMAT_COMPRESSED_PVRT_RGB = 18
92
+ RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA = 19
93
+ RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 20
94
+ RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA = 21
95
+ RL_TEXTURE_FILTER_POINT = 0
96
+ RL_TEXTURE_FILTER_BILINEAR = 1
97
+ RL_TEXTURE_FILTER_TRILINEAR = 2
98
+ RL_TEXTURE_FILTER_ANISOTROPIC_4X = 3
99
+ RL_TEXTURE_FILTER_ANISOTROPIC_8X = 4
100
+ RL_TEXTURE_FILTER_ANISOTROPIC_16X = 5
101
+ RL_BLEND_ALPHA = 0
102
+ RL_BLEND_ADDITIVE = 1
103
+ RL_BLEND_MULTIPLIED = 2
104
+ RL_BLEND_ADD_COLORS = 3
105
+ RL_BLEND_SUBTRACT_COLORS = 4
106
+ RL_BLEND_ALPHA_PREMULTIPLY = 5
107
+ RL_BLEND_CUSTOM = 6
108
+ RL_BLEND_CUSTOM_SEPARATE = 7
109
+ RL_SHADER_LOC_VERTEX_POSITION = 0
110
+ RL_SHADER_LOC_VERTEX_TEXCOORD01 = 1
111
+ RL_SHADER_LOC_VERTEX_TEXCOORD02 = 2
112
+ RL_SHADER_LOC_VERTEX_NORMAL = 3
113
+ RL_SHADER_LOC_VERTEX_TANGENT = 4
114
+ RL_SHADER_LOC_VERTEX_COLOR = 5
115
+ RL_SHADER_LOC_MATRIX_MVP = 6
116
+ RL_SHADER_LOC_MATRIX_VIEW = 7
117
+ RL_SHADER_LOC_MATRIX_PROJECTION = 8
118
+ RL_SHADER_LOC_MATRIX_MODEL = 9
119
+ RL_SHADER_LOC_MATRIX_NORMAL = 10
120
+ RL_SHADER_LOC_VECTOR_VIEW = 11
121
+ RL_SHADER_LOC_COLOR_DIFFUSE = 12
122
+ RL_SHADER_LOC_COLOR_SPECULAR = 13
123
+ RL_SHADER_LOC_COLOR_AMBIENT = 14
124
+ RL_SHADER_LOC_MAP_ALBEDO = 15
125
+ RL_SHADER_LOC_MAP_METALNESS = 16
126
+ RL_SHADER_LOC_MAP_NORMAL = 17
127
+ RL_SHADER_LOC_MAP_ROUGHNESS = 18
128
+ RL_SHADER_LOC_MAP_OCCLUSION = 19
129
+ RL_SHADER_LOC_MAP_EMISSION = 20
130
+ RL_SHADER_LOC_MAP_HEIGHT = 21
131
+ RL_SHADER_LOC_MAP_CUBEMAP = 22
132
+ RL_SHADER_LOC_MAP_IRRADIANCE = 23
133
+ RL_SHADER_LOC_MAP_PREFILTER = 24
134
+ RL_SHADER_LOC_MAP_BRDF = 25
135
+ RL_SHADER_UNIFORM_FLOAT = 0
136
+ RL_SHADER_UNIFORM_VEC2 = 1
137
+ RL_SHADER_UNIFORM_VEC3 = 2
138
+ RL_SHADER_UNIFORM_VEC4 = 3
139
+ RL_SHADER_UNIFORM_INT = 4
140
+ RL_SHADER_UNIFORM_IVEC2 = 5
141
+ RL_SHADER_UNIFORM_IVEC3 = 6
142
+ RL_SHADER_UNIFORM_IVEC4 = 7
143
+ RL_SHADER_UNIFORM_SAMPLER2D = 8
144
+ RL_SHADER_ATTRIB_FLOAT = 0
145
+ RL_SHADER_ATTRIB_VEC2 = 1
146
+ RL_SHADER_ATTRIB_VEC3 = 2
147
+ RL_SHADER_ATTRIB_VEC4 = 3
148
+ RL_ATTACHMENT_COLOR_CHANNEL0 = 0
149
+ RL_ATTACHMENT_COLOR_CHANNEL1 = 1
150
+ RL_ATTACHMENT_COLOR_CHANNEL2 = 2
151
+ RL_ATTACHMENT_COLOR_CHANNEL3 = 3
152
+ RL_ATTACHMENT_COLOR_CHANNEL4 = 4
153
+ RL_ATTACHMENT_COLOR_CHANNEL5 = 5
154
+ RL_ATTACHMENT_COLOR_CHANNEL6 = 6
155
+ RL_ATTACHMENT_COLOR_CHANNEL7 = 7
156
+ RL_ATTACHMENT_DEPTH = 100
157
+ RL_ATTACHMENT_STENCIL = 200
158
+ RL_ATTACHMENT_CUBEMAP_POSITIVE_X = 0
159
+ RL_ATTACHMENT_CUBEMAP_NEGATIVE_X = 1
160
+ RL_ATTACHMENT_CUBEMAP_POSITIVE_Y = 2
161
+ RL_ATTACHMENT_CUBEMAP_NEGATIVE_Y = 3
162
+ RL_ATTACHMENT_CUBEMAP_POSITIVE_Z = 4
163
+ RL_ATTACHMENT_CUBEMAP_NEGATIVE_Z = 5
164
+ RL_ATTACHMENT_TEXTURE2D = 100
165
+ RL_ATTACHMENT_RENDERBUFFER = 200
166
+
167
+ # Typedef
168
+
169
+ typedef :int, :rlGlVersion
170
+ typedef :int, :rlTraceLogLevel
171
+ typedef :int, :rlPixelFormat
172
+ typedef :int, :rlTextureFilter
173
+ typedef :int, :rlBlendMode
174
+ typedef :int, :rlShaderLocationIndex
175
+ typedef :int, :rlShaderUniformDataType
176
+ typedef :int, :rlShaderAttributeDataType
177
+ typedef :int, :rlFramebufferAttachType
178
+ typedef :int, :rlFramebufferAttachTextureType
179
+
180
+ # Struct
181
+
182
+ class RlVertexBuffer < FFI::Struct
183
+ layout(
184
+ :elementCount, :int,
185
+ :vertices, :pointer,
186
+ :texcoords, :pointer,
187
+ :colors, :pointer,
188
+ :indices, :pointer,
189
+ :vaoId, :uint,
190
+ :vboId, [:uint, 4],
191
+ )
192
+ end
193
+
194
+ class RlDrawCall < FFI::Struct
195
+ layout(
196
+ :mode, :int,
197
+ :vertexCount, :int,
198
+ :vertexAlignment, :int,
199
+ :textureId, :uint,
200
+ )
201
+ end
202
+
203
+ class RlRenderBatch < FFI::Struct
204
+ layout(
205
+ :bufferCount, :int,
206
+ :currentBuffer, :int,
207
+ :vertexBuffer, :pointer,
208
+ :draws, :pointer,
209
+ :drawCounter, :int,
210
+ :currentDepth, :float,
211
+ )
212
+ end
213
+
214
+
215
+ # Function
216
+
217
+ def self.setup_rlgl_symbols()
218
+ symbols = [
219
+ :rlMatrixMode,
220
+ :rlPushMatrix,
221
+ :rlPopMatrix,
222
+ :rlLoadIdentity,
223
+ :rlTranslatef,
224
+ :rlRotatef,
225
+ :rlScalef,
226
+ :rlMultMatrixf,
227
+ :rlFrustum,
228
+ :rlOrtho,
229
+ :rlViewport,
230
+ :rlBegin,
231
+ :rlEnd,
232
+ :rlVertex2i,
233
+ :rlVertex2f,
234
+ :rlVertex3f,
235
+ :rlTexCoord2f,
236
+ :rlNormal3f,
237
+ :rlColor4ub,
238
+ :rlColor3f,
239
+ :rlColor4f,
240
+ :rlEnableVertexArray,
241
+ :rlDisableVertexArray,
242
+ :rlEnableVertexBuffer,
243
+ :rlDisableVertexBuffer,
244
+ :rlEnableVertexBufferElement,
245
+ :rlDisableVertexBufferElement,
246
+ :rlEnableVertexAttribute,
247
+ :rlDisableVertexAttribute,
248
+ :rlActiveTextureSlot,
249
+ :rlEnableTexture,
250
+ :rlDisableTexture,
251
+ :rlEnableTextureCubemap,
252
+ :rlDisableTextureCubemap,
253
+ :rlTextureParameters,
254
+ :rlEnableShader,
255
+ :rlDisableShader,
256
+ :rlEnableFramebuffer,
257
+ :rlDisableFramebuffer,
258
+ :rlActiveDrawBuffers,
259
+ :rlEnableColorBlend,
260
+ :rlDisableColorBlend,
261
+ :rlEnableDepthTest,
262
+ :rlDisableDepthTest,
263
+ :rlEnableDepthMask,
264
+ :rlDisableDepthMask,
265
+ :rlEnableBackfaceCulling,
266
+ :rlDisableBackfaceCulling,
267
+ :rlEnableScissorTest,
268
+ :rlDisableScissorTest,
269
+ :rlScissor,
270
+ :rlEnableWireMode,
271
+ :rlDisableWireMode,
272
+ :rlSetLineWidth,
273
+ :rlGetLineWidth,
274
+ :rlEnableSmoothLines,
275
+ :rlDisableSmoothLines,
276
+ :rlEnableStereoRender,
277
+ :rlDisableStereoRender,
278
+ :rlIsStereoRenderEnabled,
279
+ :rlClearColor,
280
+ :rlClearScreenBuffers,
281
+ :rlCheckErrors,
282
+ :rlSetBlendMode,
283
+ :rlSetBlendFactors,
284
+ :rlSetBlendFactorsSeparate,
285
+ :rlglInit,
286
+ :rlglClose,
287
+ :rlLoadExtensions,
288
+ :rlGetVersion,
289
+ :rlSetFramebufferWidth,
290
+ :rlGetFramebufferWidth,
291
+ :rlSetFramebufferHeight,
292
+ :rlGetFramebufferHeight,
293
+ :rlGetTextureIdDefault,
294
+ :rlGetShaderIdDefault,
295
+ :rlGetShaderLocsDefault,
296
+ :rlLoadRenderBatch,
297
+ :rlUnloadRenderBatch,
298
+ :rlDrawRenderBatch,
299
+ :rlSetRenderBatchActive,
300
+ :rlDrawRenderBatchActive,
301
+ :rlCheckRenderBatchLimit,
302
+ :rlSetTexture,
303
+ :rlLoadVertexArray,
304
+ :rlLoadVertexBuffer,
305
+ :rlLoadVertexBufferElement,
306
+ :rlUpdateVertexBuffer,
307
+ :rlUpdateVertexBufferElements,
308
+ :rlUnloadVertexArray,
309
+ :rlUnloadVertexBuffer,
310
+ :rlSetVertexAttribute,
311
+ :rlSetVertexAttributeDivisor,
312
+ :rlSetVertexAttributeDefault,
313
+ :rlDrawVertexArray,
314
+ :rlDrawVertexArrayElements,
315
+ :rlDrawVertexArrayInstanced,
316
+ :rlDrawVertexArrayElementsInstanced,
317
+ :rlLoadTexture,
318
+ :rlLoadTextureDepth,
319
+ :rlLoadTextureCubemap,
320
+ :rlUpdateTexture,
321
+ :rlGetGlTextureFormats,
322
+ :rlGetPixelFormatName,
323
+ :rlUnloadTexture,
324
+ :rlGenTextureMipmaps,
325
+ :rlReadTexturePixels,
326
+ :rlReadScreenPixels,
327
+ :rlLoadFramebuffer,
328
+ :rlFramebufferAttach,
329
+ :rlFramebufferComplete,
330
+ :rlUnloadFramebuffer,
331
+ :rlLoadShaderCode,
332
+ :rlCompileShader,
333
+ :rlLoadShaderProgram,
334
+ :rlUnloadShaderProgram,
335
+ :rlGetLocationUniform,
336
+ :rlGetLocationAttrib,
337
+ :rlSetUniform,
338
+ :rlSetUniformMatrix,
339
+ :rlSetUniformSampler,
340
+ :rlSetShader,
341
+ :rlLoadComputeShaderProgram,
342
+ :rlComputeShaderDispatch,
343
+ :rlLoadShaderBuffer,
344
+ :rlUnloadShaderBuffer,
345
+ :rlUpdateShaderBuffer,
346
+ :rlBindShaderBuffer,
347
+ :rlReadShaderBuffer,
348
+ :rlCopyShaderBuffer,
349
+ :rlGetShaderBufferSize,
350
+ :rlBindImageTexture,
351
+ :rlGetMatrixModelview,
352
+ :rlGetMatrixProjection,
353
+ :rlGetMatrixTransform,
354
+ :rlGetMatrixProjectionStereo,
355
+ :rlGetMatrixViewOffsetStereo,
356
+ :rlSetMatrixProjection,
357
+ :rlSetMatrixModelview,
358
+ :rlSetMatrixProjectionStereo,
359
+ :rlSetMatrixViewOffsetStereo,
360
+ :rlLoadDrawCube,
361
+ :rlLoadDrawQuad,
362
+ ]
363
+ args = {
364
+ :rlMatrixMode => [:int],
365
+ :rlPushMatrix => [],
366
+ :rlPopMatrix => [],
367
+ :rlLoadIdentity => [],
368
+ :rlTranslatef => [:float, :float, :float],
369
+ :rlRotatef => [:float, :float, :float, :float],
370
+ :rlScalef => [:float, :float, :float],
371
+ :rlMultMatrixf => [:pointer],
372
+ :rlFrustum => [:double, :double, :double, :double, :double, :double],
373
+ :rlOrtho => [:double, :double, :double, :double, :double, :double],
374
+ :rlViewport => [:int, :int, :int, :int],
375
+ :rlBegin => [:int],
376
+ :rlEnd => [],
377
+ :rlVertex2i => [:int, :int],
378
+ :rlVertex2f => [:float, :float],
379
+ :rlVertex3f => [:float, :float, :float],
380
+ :rlTexCoord2f => [:float, :float],
381
+ :rlNormal3f => [:float, :float, :float],
382
+ :rlColor4ub => [:uchar, :uchar, :uchar, :uchar],
383
+ :rlColor3f => [:float, :float, :float],
384
+ :rlColor4f => [:float, :float, :float, :float],
385
+ :rlEnableVertexArray => [:uint],
386
+ :rlDisableVertexArray => [],
387
+ :rlEnableVertexBuffer => [:uint],
388
+ :rlDisableVertexBuffer => [],
389
+ :rlEnableVertexBufferElement => [:uint],
390
+ :rlDisableVertexBufferElement => [],
391
+ :rlEnableVertexAttribute => [:uint],
392
+ :rlDisableVertexAttribute => [:uint],
393
+ :rlActiveTextureSlot => [:int],
394
+ :rlEnableTexture => [:uint],
395
+ :rlDisableTexture => [],
396
+ :rlEnableTextureCubemap => [:uint],
397
+ :rlDisableTextureCubemap => [],
398
+ :rlTextureParameters => [:uint, :int, :int],
399
+ :rlEnableShader => [:uint],
400
+ :rlDisableShader => [],
401
+ :rlEnableFramebuffer => [:uint],
402
+ :rlDisableFramebuffer => [],
403
+ :rlActiveDrawBuffers => [:int],
404
+ :rlEnableColorBlend => [],
405
+ :rlDisableColorBlend => [],
406
+ :rlEnableDepthTest => [],
407
+ :rlDisableDepthTest => [],
408
+ :rlEnableDepthMask => [],
409
+ :rlDisableDepthMask => [],
410
+ :rlEnableBackfaceCulling => [],
411
+ :rlDisableBackfaceCulling => [],
412
+ :rlEnableScissorTest => [],
413
+ :rlDisableScissorTest => [],
414
+ :rlScissor => [:int, :int, :int, :int],
415
+ :rlEnableWireMode => [],
416
+ :rlDisableWireMode => [],
417
+ :rlSetLineWidth => [:float],
418
+ :rlGetLineWidth => [],
419
+ :rlEnableSmoothLines => [],
420
+ :rlDisableSmoothLines => [],
421
+ :rlEnableStereoRender => [],
422
+ :rlDisableStereoRender => [],
423
+ :rlIsStereoRenderEnabled => [],
424
+ :rlClearColor => [:uchar, :uchar, :uchar, :uchar],
425
+ :rlClearScreenBuffers => [],
426
+ :rlCheckErrors => [],
427
+ :rlSetBlendMode => [:int],
428
+ :rlSetBlendFactors => [:int, :int, :int],
429
+ :rlSetBlendFactorsSeparate => [:int, :int, :int, :int, :int, :int],
430
+ :rlglInit => [:int, :int],
431
+ :rlglClose => [],
432
+ :rlLoadExtensions => [:pointer],
433
+ :rlGetVersion => [],
434
+ :rlSetFramebufferWidth => [:int],
435
+ :rlGetFramebufferWidth => [],
436
+ :rlSetFramebufferHeight => [:int],
437
+ :rlGetFramebufferHeight => [],
438
+ :rlGetTextureIdDefault => [],
439
+ :rlGetShaderIdDefault => [],
440
+ :rlGetShaderLocsDefault => [],
441
+ :rlLoadRenderBatch => [:int, :int],
442
+ :rlUnloadRenderBatch => [RlRenderBatch.by_value],
443
+ :rlDrawRenderBatch => [:pointer],
444
+ :rlSetRenderBatchActive => [:pointer],
445
+ :rlDrawRenderBatchActive => [],
446
+ :rlCheckRenderBatchLimit => [:int],
447
+ :rlSetTexture => [:uint],
448
+ :rlLoadVertexArray => [],
449
+ :rlLoadVertexBuffer => [:pointer, :int, :bool],
450
+ :rlLoadVertexBufferElement => [:pointer, :int, :bool],
451
+ :rlUpdateVertexBuffer => [:uint, :pointer, :int, :int],
452
+ :rlUpdateVertexBufferElements => [:uint, :pointer, :int, :int],
453
+ :rlUnloadVertexArray => [:uint],
454
+ :rlUnloadVertexBuffer => [:uint],
455
+ :rlSetVertexAttribute => [:uint, :int, :int, :bool, :int, :pointer],
456
+ :rlSetVertexAttributeDivisor => [:uint, :int],
457
+ :rlSetVertexAttributeDefault => [:int, :pointer, :int, :int],
458
+ :rlDrawVertexArray => [:int, :int],
459
+ :rlDrawVertexArrayElements => [:int, :int, :pointer],
460
+ :rlDrawVertexArrayInstanced => [:int, :int, :int],
461
+ :rlDrawVertexArrayElementsInstanced => [:int, :int, :pointer, :int],
462
+ :rlLoadTexture => [:pointer, :int, :int, :int, :int],
463
+ :rlLoadTextureDepth => [:int, :int, :bool],
464
+ :rlLoadTextureCubemap => [:pointer, :int, :int],
465
+ :rlUpdateTexture => [:uint, :int, :int, :int, :int, :int, :pointer],
466
+ :rlGetGlTextureFormats => [:int, :pointer, :pointer, :pointer],
467
+ :rlGetPixelFormatName => [:uint],
468
+ :rlUnloadTexture => [:uint],
469
+ :rlGenTextureMipmaps => [:uint, :int, :int, :int, :pointer],
470
+ :rlReadTexturePixels => [:uint, :int, :int, :int],
471
+ :rlReadScreenPixels => [:int, :int],
472
+ :rlLoadFramebuffer => [:int, :int],
473
+ :rlFramebufferAttach => [:uint, :uint, :int, :int, :int],
474
+ :rlFramebufferComplete => [:uint],
475
+ :rlUnloadFramebuffer => [:uint],
476
+ :rlLoadShaderCode => [:pointer, :pointer],
477
+ :rlCompileShader => [:pointer, :int],
478
+ :rlLoadShaderProgram => [:uint, :uint],
479
+ :rlUnloadShaderProgram => [:uint],
480
+ :rlGetLocationUniform => [:uint, :pointer],
481
+ :rlGetLocationAttrib => [:uint, :pointer],
482
+ :rlSetUniform => [:int, :pointer, :int, :int],
483
+ :rlSetUniformMatrix => [:int, Matrix.by_value],
484
+ :rlSetUniformSampler => [:int, :uint],
485
+ :rlSetShader => [:uint, :pointer],
486
+ :rlLoadComputeShaderProgram => [:uint],
487
+ :rlComputeShaderDispatch => [:uint, :uint, :uint],
488
+ :rlLoadShaderBuffer => [:uint, :pointer, :int],
489
+ :rlUnloadShaderBuffer => [:uint],
490
+ :rlUpdateShaderBuffer => [:uint, :pointer, :uint, :uint],
491
+ :rlBindShaderBuffer => [:uint, :uint],
492
+ :rlReadShaderBuffer => [:uint, :pointer, :uint, :uint],
493
+ :rlCopyShaderBuffer => [:uint, :uint, :uint, :uint, :uint],
494
+ :rlGetShaderBufferSize => [:uint],
495
+ :rlBindImageTexture => [:uint, :uint, :uint, :int],
496
+ :rlGetMatrixModelview => [],
497
+ :rlGetMatrixProjection => [],
498
+ :rlGetMatrixTransform => [],
499
+ :rlGetMatrixProjectionStereo => [:int],
500
+ :rlGetMatrixViewOffsetStereo => [:int],
501
+ :rlSetMatrixProjection => [Matrix.by_value],
502
+ :rlSetMatrixModelview => [Matrix.by_value],
503
+ :rlSetMatrixProjectionStereo => [Matrix.by_value, Matrix.by_value],
504
+ :rlSetMatrixViewOffsetStereo => [Matrix.by_value, Matrix.by_value],
505
+ :rlLoadDrawCube => [],
506
+ :rlLoadDrawQuad => [],
507
+ }
508
+ retvals = {
509
+ :rlMatrixMode => :void,
510
+ :rlPushMatrix => :void,
511
+ :rlPopMatrix => :void,
512
+ :rlLoadIdentity => :void,
513
+ :rlTranslatef => :void,
514
+ :rlRotatef => :void,
515
+ :rlScalef => :void,
516
+ :rlMultMatrixf => :void,
517
+ :rlFrustum => :void,
518
+ :rlOrtho => :void,
519
+ :rlViewport => :void,
520
+ :rlBegin => :void,
521
+ :rlEnd => :void,
522
+ :rlVertex2i => :void,
523
+ :rlVertex2f => :void,
524
+ :rlVertex3f => :void,
525
+ :rlTexCoord2f => :void,
526
+ :rlNormal3f => :void,
527
+ :rlColor4ub => :void,
528
+ :rlColor3f => :void,
529
+ :rlColor4f => :void,
530
+ :rlEnableVertexArray => :bool,
531
+ :rlDisableVertexArray => :void,
532
+ :rlEnableVertexBuffer => :void,
533
+ :rlDisableVertexBuffer => :void,
534
+ :rlEnableVertexBufferElement => :void,
535
+ :rlDisableVertexBufferElement => :void,
536
+ :rlEnableVertexAttribute => :void,
537
+ :rlDisableVertexAttribute => :void,
538
+ :rlActiveTextureSlot => :void,
539
+ :rlEnableTexture => :void,
540
+ :rlDisableTexture => :void,
541
+ :rlEnableTextureCubemap => :void,
542
+ :rlDisableTextureCubemap => :void,
543
+ :rlTextureParameters => :void,
544
+ :rlEnableShader => :void,
545
+ :rlDisableShader => :void,
546
+ :rlEnableFramebuffer => :void,
547
+ :rlDisableFramebuffer => :void,
548
+ :rlActiveDrawBuffers => :void,
549
+ :rlEnableColorBlend => :void,
550
+ :rlDisableColorBlend => :void,
551
+ :rlEnableDepthTest => :void,
552
+ :rlDisableDepthTest => :void,
553
+ :rlEnableDepthMask => :void,
554
+ :rlDisableDepthMask => :void,
555
+ :rlEnableBackfaceCulling => :void,
556
+ :rlDisableBackfaceCulling => :void,
557
+ :rlEnableScissorTest => :void,
558
+ :rlDisableScissorTest => :void,
559
+ :rlScissor => :void,
560
+ :rlEnableWireMode => :void,
561
+ :rlDisableWireMode => :void,
562
+ :rlSetLineWidth => :void,
563
+ :rlGetLineWidth => :float,
564
+ :rlEnableSmoothLines => :void,
565
+ :rlDisableSmoothLines => :void,
566
+ :rlEnableStereoRender => :void,
567
+ :rlDisableStereoRender => :void,
568
+ :rlIsStereoRenderEnabled => :bool,
569
+ :rlClearColor => :void,
570
+ :rlClearScreenBuffers => :void,
571
+ :rlCheckErrors => :void,
572
+ :rlSetBlendMode => :void,
573
+ :rlSetBlendFactors => :void,
574
+ :rlSetBlendFactorsSeparate => :void,
575
+ :rlglInit => :void,
576
+ :rlglClose => :void,
577
+ :rlLoadExtensions => :void,
578
+ :rlGetVersion => :int,
579
+ :rlSetFramebufferWidth => :void,
580
+ :rlGetFramebufferWidth => :int,
581
+ :rlSetFramebufferHeight => :void,
582
+ :rlGetFramebufferHeight => :int,
583
+ :rlGetTextureIdDefault => :uint,
584
+ :rlGetShaderIdDefault => :uint,
585
+ :rlGetShaderLocsDefault => :pointer,
586
+ :rlLoadRenderBatch => RlRenderBatch.by_value,
587
+ :rlUnloadRenderBatch => :void,
588
+ :rlDrawRenderBatch => :void,
589
+ :rlSetRenderBatchActive => :void,
590
+ :rlDrawRenderBatchActive => :void,
591
+ :rlCheckRenderBatchLimit => :bool,
592
+ :rlSetTexture => :void,
593
+ :rlLoadVertexArray => :uint,
594
+ :rlLoadVertexBuffer => :uint,
595
+ :rlLoadVertexBufferElement => :uint,
596
+ :rlUpdateVertexBuffer => :void,
597
+ :rlUpdateVertexBufferElements => :void,
598
+ :rlUnloadVertexArray => :void,
599
+ :rlUnloadVertexBuffer => :void,
600
+ :rlSetVertexAttribute => :void,
601
+ :rlSetVertexAttributeDivisor => :void,
602
+ :rlSetVertexAttributeDefault => :void,
603
+ :rlDrawVertexArray => :void,
604
+ :rlDrawVertexArrayElements => :void,
605
+ :rlDrawVertexArrayInstanced => :void,
606
+ :rlDrawVertexArrayElementsInstanced => :void,
607
+ :rlLoadTexture => :uint,
608
+ :rlLoadTextureDepth => :uint,
609
+ :rlLoadTextureCubemap => :uint,
610
+ :rlUpdateTexture => :void,
611
+ :rlGetGlTextureFormats => :void,
612
+ :rlGetPixelFormatName => :pointer,
613
+ :rlUnloadTexture => :void,
614
+ :rlGenTextureMipmaps => :void,
615
+ :rlReadTexturePixels => :pointer,
616
+ :rlReadScreenPixels => :pointer,
617
+ :rlLoadFramebuffer => :uint,
618
+ :rlFramebufferAttach => :void,
619
+ :rlFramebufferComplete => :bool,
620
+ :rlUnloadFramebuffer => :void,
621
+ :rlLoadShaderCode => :uint,
622
+ :rlCompileShader => :uint,
623
+ :rlLoadShaderProgram => :uint,
624
+ :rlUnloadShaderProgram => :void,
625
+ :rlGetLocationUniform => :int,
626
+ :rlGetLocationAttrib => :int,
627
+ :rlSetUniform => :void,
628
+ :rlSetUniformMatrix => :void,
629
+ :rlSetUniformSampler => :void,
630
+ :rlSetShader => :void,
631
+ :rlLoadComputeShaderProgram => :uint,
632
+ :rlComputeShaderDispatch => :void,
633
+ :rlLoadShaderBuffer => :uint,
634
+ :rlUnloadShaderBuffer => :void,
635
+ :rlUpdateShaderBuffer => :void,
636
+ :rlBindShaderBuffer => :void,
637
+ :rlReadShaderBuffer => :void,
638
+ :rlCopyShaderBuffer => :void,
639
+ :rlGetShaderBufferSize => :uint,
640
+ :rlBindImageTexture => :void,
641
+ :rlGetMatrixModelview => Matrix.by_value,
642
+ :rlGetMatrixProjection => Matrix.by_value,
643
+ :rlGetMatrixTransform => Matrix.by_value,
644
+ :rlGetMatrixProjectionStereo => Matrix.by_value,
645
+ :rlGetMatrixViewOffsetStereo => Matrix.by_value,
646
+ :rlSetMatrixProjection => :void,
647
+ :rlSetMatrixModelview => :void,
648
+ :rlSetMatrixProjectionStereo => :void,
649
+ :rlSetMatrixViewOffsetStereo => :void,
650
+ :rlLoadDrawCube => :void,
651
+ :rlLoadDrawQuad => :void,
652
+ }
653
+ symbols.each do |sym|
654
+ begin
655
+ attach_function sym, args[sym], retvals[sym]
656
+ rescue FFI::NotFoundError => error
657
+ $stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
658
+ end
659
+ end
660
+ end
661
+
662
+ end
663
+