raylib-bindings 0.1.3 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/lib/rlgl.rb CHANGED
@@ -2,196 +2,223 @@
2
2
  #
3
3
  # * https://github.com/vaiorabbit/raylib-bindings
4
4
  #
5
- # [NOTICE] This is an automatically generated file.
5
+ # [NOTICE] Autogenerated. Do not edit.
6
6
 
7
7
  require 'ffi'
8
8
 
9
9
  module Raylib
10
10
  extend FFI::Library
11
+
11
12
  # Define/Macro
12
13
 
13
14
  RLGL_VERSION = "4.0"
14
15
  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
- RL_ZERO = 0
59
- RL_ONE = 1
60
- RL_SRC_COLOR = 0x0300
61
- RL_ONE_MINUS_SRC_COLOR = 0x0301
62
- RL_SRC_ALPHA = 0x0302
63
- RL_ONE_MINUS_SRC_ALPHA = 0x0303
64
- RL_DST_ALPHA = 0x0304
65
- RL_ONE_MINUS_DST_ALPHA = 0x0305
66
- RL_DST_COLOR = 0x0306
67
- RL_ONE_MINUS_DST_COLOR = 0x0307
68
- RL_SRC_ALPHA_SATURATE = 0x0308
69
- RL_CONSTANT_COLOR = 0x8001
70
- RL_ONE_MINUS_CONSTANT_COLOR = 0x8002
71
- RL_CONSTANT_ALPHA = 0x8003
72
- RL_ONE_MINUS_CONSTANT_ALPHA = 0x8004
73
- RL_FUNC_ADD = 0x8006
74
- RL_FUNC_SUBTRACT = 0x800A
75
- RL_FUNC_REVERSE_SUBTRACT = 0x800B
76
- RL_BLEND_EQUATION = 0x8009
77
- RL_BLEND_EQUATION_RGB = 0x8009
78
- RL_BLEND_EQUATION_ALPHA = 0x883D
79
- RL_BLEND_DST_RGB = 0x80C8
80
- RL_BLEND_SRC_RGB = 0x80C9
81
- RL_BLEND_DST_ALPHA = 0x80CA
82
- RL_BLEND_SRC_ALPHA = 0x80CB
83
- RL_BLEND_COLOR = 0x8005
16
+ RL_TEXTURE_WRAP_S = 0x2802 # GL_TEXTURE_WRAP_S
17
+ RL_TEXTURE_WRAP_T = 0x2803 # GL_TEXTURE_WRAP_T
18
+ RL_TEXTURE_MAG_FILTER = 0x2800 # GL_TEXTURE_MAG_FILTER
19
+ RL_TEXTURE_MIN_FILTER = 0x2801 # GL_TEXTURE_MIN_FILTER
20
+ RL_TEXTURE_FILTER_NEAREST = 0x2600 # GL_NEAREST
21
+ RL_TEXTURE_FILTER_LINEAR = 0x2601 # GL_LINEAR
22
+ RL_TEXTURE_FILTER_MIP_NEAREST = 0x2700 # GL_NEAREST_MIPMAP_NEAREST
23
+ RL_TEXTURE_FILTER_NEAREST_MIP_LINEAR = 0x2702 # GL_NEAREST_MIPMAP_LINEAR
24
+ RL_TEXTURE_FILTER_LINEAR_MIP_NEAREST = 0x2701 # GL_LINEAR_MIPMAP_NEAREST
25
+ RL_TEXTURE_FILTER_MIP_LINEAR = 0x2703 # GL_LINEAR_MIPMAP_LINEAR
26
+ RL_TEXTURE_FILTER_ANISOTROPIC = 0x3000 # Anisotropic filter (custom identifier)
27
+ RL_TEXTURE_MIPMAP_BIAS_RATIO = 0x4000 # Texture mipmap bias, percentage ratio (custom identifier)
28
+ RL_TEXTURE_WRAP_REPEAT = 0x2901 # GL_REPEAT
29
+ RL_TEXTURE_WRAP_CLAMP = 0x812F # GL_CLAMP_TO_EDGE
30
+ RL_TEXTURE_WRAP_MIRROR_REPEAT = 0x8370 # GL_MIRRORED_REPEAT
31
+ RL_TEXTURE_WRAP_MIRROR_CLAMP = 0x8742 # GL_MIRROR_CLAMP_EXT
32
+ RL_MODELVIEW = 0x1700 # GL_MODELVIEW
33
+ RL_PROJECTION = 0x1701 # GL_PROJECTION
34
+ RL_TEXTURE = 0x1702 # GL_TEXTURE
35
+ RL_LINES = 0x0001 # GL_LINES
36
+ RL_TRIANGLES = 0x0004 # GL_TRIANGLES
37
+ RL_QUADS = 0x0007 # GL_QUADS
38
+ RL_UNSIGNED_BYTE = 0x1401 # GL_UNSIGNED_BYTE
39
+ RL_FLOAT = 0x1406 # GL_FLOAT
40
+ RL_STREAM_DRAW = 0x88E0 # GL_STREAM_DRAW
41
+ RL_STREAM_READ = 0x88E1 # GL_STREAM_READ
42
+ RL_STREAM_COPY = 0x88E2 # GL_STREAM_COPY
43
+ RL_STATIC_DRAW = 0x88E4 # GL_STATIC_DRAW
44
+ RL_STATIC_READ = 0x88E5 # GL_STATIC_READ
45
+ RL_STATIC_COPY = 0x88E6 # GL_STATIC_COPY
46
+ RL_DYNAMIC_DRAW = 0x88E8 # GL_DYNAMIC_DRAW
47
+ RL_DYNAMIC_READ = 0x88E9 # GL_DYNAMIC_READ
48
+ RL_DYNAMIC_COPY = 0x88EA # GL_DYNAMIC_COPY
49
+ RL_FRAGMENT_SHADER = 0x8B30 # GL_FRAGMENT_SHADER
50
+ RL_VERTEX_SHADER = 0x8B31 # GL_VERTEX_SHADER
51
+ RL_COMPUTE_SHADER = 0x91B9 # GL_COMPUTE_SHADER
52
+ RL_ZERO = 0 # GL_ZERO
53
+ RL_ONE = 1 # GL_ONE
54
+ RL_SRC_COLOR = 0x0300 # GL_SRC_COLOR
55
+ RL_ONE_MINUS_SRC_COLOR = 0x0301 # GL_ONE_MINUS_SRC_COLOR
56
+ RL_SRC_ALPHA = 0x0302 # GL_SRC_ALPHA
57
+ RL_ONE_MINUS_SRC_ALPHA = 0x0303 # GL_ONE_MINUS_SRC_ALPHA
58
+ RL_DST_ALPHA = 0x0304 # GL_DST_ALPHA
59
+ RL_ONE_MINUS_DST_ALPHA = 0x0305 # GL_ONE_MINUS_DST_ALPHA
60
+ RL_DST_COLOR = 0x0306 # GL_DST_COLOR
61
+ RL_ONE_MINUS_DST_COLOR = 0x0307 # GL_ONE_MINUS_DST_COLOR
62
+ RL_SRC_ALPHA_SATURATE = 0x0308 # GL_SRC_ALPHA_SATURATE
63
+ RL_CONSTANT_COLOR = 0x8001 # GL_CONSTANT_COLOR
64
+ RL_ONE_MINUS_CONSTANT_COLOR = 0x8002 # GL_ONE_MINUS_CONSTANT_COLOR
65
+ RL_CONSTANT_ALPHA = 0x8003 # GL_CONSTANT_ALPHA
66
+ RL_ONE_MINUS_CONSTANT_ALPHA = 0x8004 # GL_ONE_MINUS_CONSTANT_ALPHA
67
+ RL_FUNC_ADD = 0x8006 # GL_FUNC_ADD
68
+ RL_FUNC_SUBTRACT = 0x800A # GL_FUNC_SUBTRACT
69
+ RL_FUNC_REVERSE_SUBTRACT = 0x800B # GL_FUNC_REVERSE_SUBTRACT
70
+ RL_BLEND_EQUATION = 0x8009 # GL_BLEND_EQUATION
71
+ RL_BLEND_EQUATION_RGB = 0x8009 # GL_BLEND_EQUATION_RGB // (Same as BLEND_EQUATION)
72
+ RL_BLEND_EQUATION_ALPHA = 0x883D # GL_BLEND_EQUATION_ALPHA
73
+ RL_BLEND_DST_RGB = 0x80C8 # GL_BLEND_DST_RGB
74
+ RL_BLEND_SRC_RGB = 0x80C9 # GL_BLEND_SRC_RGB
75
+ RL_BLEND_DST_ALPHA = 0x80CA # GL_BLEND_DST_ALPHA
76
+ RL_BLEND_SRC_ALPHA = 0x80CB # GL_BLEND_SRC_ALPHA
77
+ RL_BLEND_COLOR = 0x8005 # GL_BLEND_COLOR
84
78
 
85
79
  # Enum
86
80
 
87
- RL_OPENGL_11 = 1
88
- RL_OPENGL_21 = 2
89
- RL_OPENGL_33 = 3
90
- RL_OPENGL_43 = 4
91
- RL_OPENGL_ES_20 = 5
92
- RL_LOG_ALL = 0
93
- RL_LOG_TRACE = 1
94
- RL_LOG_DEBUG = 2
95
- RL_LOG_INFO = 3
96
- RL_LOG_WARNING = 4
97
- RL_LOG_ERROR = 5
98
- RL_LOG_FATAL = 6
99
- RL_LOG_NONE = 7
100
- RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE = 1
101
- RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA = 2
102
- RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5 = 3
103
- RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8 = 4
104
- RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1 = 5
105
- RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4 = 6
106
- RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8 = 7
107
- RL_PIXELFORMAT_UNCOMPRESSED_R32 = 8
108
- RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32 = 9
109
- RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32 = 10
110
- RL_PIXELFORMAT_COMPRESSED_DXT1_RGB = 11
111
- RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA = 12
112
- RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA = 13
113
- RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA = 14
114
- RL_PIXELFORMAT_COMPRESSED_ETC1_RGB = 15
115
- RL_PIXELFORMAT_COMPRESSED_ETC2_RGB = 16
116
- RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 17
117
- RL_PIXELFORMAT_COMPRESSED_PVRT_RGB = 18
118
- RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA = 19
119
- RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 20
120
- RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA = 21
121
- RL_TEXTURE_FILTER_POINT = 0
122
- RL_TEXTURE_FILTER_BILINEAR = 1
123
- RL_TEXTURE_FILTER_TRILINEAR = 2
124
- RL_TEXTURE_FILTER_ANISOTROPIC_4X = 3
125
- RL_TEXTURE_FILTER_ANISOTROPIC_8X = 4
126
- RL_TEXTURE_FILTER_ANISOTROPIC_16X = 5
127
- RL_BLEND_ALPHA = 0
128
- RL_BLEND_ADDITIVE = 1
129
- RL_BLEND_MULTIPLIED = 2
130
- RL_BLEND_ADD_COLORS = 3
131
- RL_BLEND_SUBTRACT_COLORS = 4
132
- RL_BLEND_ALPHA_PREMULTIPLY = 5
133
- RL_BLEND_CUSTOM = 6
134
- RL_BLEND_CUSTOM_SEPARATE = 7
135
- RL_SHADER_LOC_VERTEX_POSITION = 0
136
- RL_SHADER_LOC_VERTEX_TEXCOORD01 = 1
137
- RL_SHADER_LOC_VERTEX_TEXCOORD02 = 2
138
- RL_SHADER_LOC_VERTEX_NORMAL = 3
139
- RL_SHADER_LOC_VERTEX_TANGENT = 4
140
- RL_SHADER_LOC_VERTEX_COLOR = 5
141
- RL_SHADER_LOC_MATRIX_MVP = 6
142
- RL_SHADER_LOC_MATRIX_VIEW = 7
143
- RL_SHADER_LOC_MATRIX_PROJECTION = 8
144
- RL_SHADER_LOC_MATRIX_MODEL = 9
145
- RL_SHADER_LOC_MATRIX_NORMAL = 10
146
- RL_SHADER_LOC_VECTOR_VIEW = 11
147
- RL_SHADER_LOC_COLOR_DIFFUSE = 12
148
- RL_SHADER_LOC_COLOR_SPECULAR = 13
149
- RL_SHADER_LOC_COLOR_AMBIENT = 14
150
- RL_SHADER_LOC_MAP_ALBEDO = 15
151
- RL_SHADER_LOC_MAP_METALNESS = 16
152
- RL_SHADER_LOC_MAP_NORMAL = 17
153
- RL_SHADER_LOC_MAP_ROUGHNESS = 18
154
- RL_SHADER_LOC_MAP_OCCLUSION = 19
155
- RL_SHADER_LOC_MAP_EMISSION = 20
156
- RL_SHADER_LOC_MAP_HEIGHT = 21
157
- RL_SHADER_LOC_MAP_CUBEMAP = 22
158
- RL_SHADER_LOC_MAP_IRRADIANCE = 23
159
- RL_SHADER_LOC_MAP_PREFILTER = 24
160
- RL_SHADER_LOC_MAP_BRDF = 25
161
- RL_SHADER_UNIFORM_FLOAT = 0
162
- RL_SHADER_UNIFORM_VEC2 = 1
163
- RL_SHADER_UNIFORM_VEC3 = 2
164
- RL_SHADER_UNIFORM_VEC4 = 3
165
- RL_SHADER_UNIFORM_INT = 4
166
- RL_SHADER_UNIFORM_IVEC2 = 5
167
- RL_SHADER_UNIFORM_IVEC3 = 6
168
- RL_SHADER_UNIFORM_IVEC4 = 7
169
- RL_SHADER_UNIFORM_SAMPLER2D = 8
170
- RL_SHADER_ATTRIB_FLOAT = 0
171
- RL_SHADER_ATTRIB_VEC2 = 1
172
- RL_SHADER_ATTRIB_VEC3 = 2
173
- RL_SHADER_ATTRIB_VEC4 = 3
174
- RL_ATTACHMENT_COLOR_CHANNEL0 = 0
175
- RL_ATTACHMENT_COLOR_CHANNEL1 = 1
176
- RL_ATTACHMENT_COLOR_CHANNEL2 = 2
177
- RL_ATTACHMENT_COLOR_CHANNEL3 = 3
178
- RL_ATTACHMENT_COLOR_CHANNEL4 = 4
179
- RL_ATTACHMENT_COLOR_CHANNEL5 = 5
180
- RL_ATTACHMENT_COLOR_CHANNEL6 = 6
181
- RL_ATTACHMENT_COLOR_CHANNEL7 = 7
182
- RL_ATTACHMENT_DEPTH = 100
183
- RL_ATTACHMENT_STENCIL = 200
184
- RL_ATTACHMENT_CUBEMAP_POSITIVE_X = 0
185
- RL_ATTACHMENT_CUBEMAP_NEGATIVE_X = 1
186
- RL_ATTACHMENT_CUBEMAP_POSITIVE_Y = 2
187
- RL_ATTACHMENT_CUBEMAP_NEGATIVE_Y = 3
188
- RL_ATTACHMENT_CUBEMAP_POSITIVE_Z = 4
189
- RL_ATTACHMENT_CUBEMAP_NEGATIVE_Z = 5
190
- RL_ATTACHMENT_TEXTURE2D = 100
191
- RL_ATTACHMENT_RENDERBUFFER = 200
81
+ # enum rlGlVersion
82
+ # OpenGL version
83
+ RL_OPENGL_11 = 1 # OpenGL 1.1
84
+ RL_OPENGL_21 = 2 # OpenGL 2.1 (GLSL 120)
85
+ RL_OPENGL_33 = 3 # OpenGL 3.3 (GLSL 330)
86
+ RL_OPENGL_43 = 4 # OpenGL 4.3 (using GLSL 330)
87
+ RL_OPENGL_ES_20 = 5 # OpenGL ES 2.0 (GLSL 100)
88
+
89
+ # enum rlTraceLogLevel
90
+ # Trace log level
91
+ RL_LOG_ALL = 0 # Display all logs
92
+ RL_LOG_TRACE = 1 # Trace logging, intended for internal use only
93
+ RL_LOG_DEBUG = 2 # Debug logging, used for internal debugging, it should be disabled on release builds
94
+ RL_LOG_INFO = 3 # Info logging, used for program execution info
95
+ RL_LOG_WARNING = 4 # Warning logging, used on recoverable failures
96
+ RL_LOG_ERROR = 5 # Error logging, used on unrecoverable failures
97
+ RL_LOG_FATAL = 6 # Fatal logging, used to abort program: exit(EXIT_FAILURE)
98
+ RL_LOG_NONE = 7 # Disable logging
99
+
100
+ # enum rlPixelFormat
101
+ # Texture pixel formats
102
+ RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE = 1 # 8 bit per pixel (no alpha)
103
+ RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA = 2 # 8*2 bpp (2 channels)
104
+ RL_PIXELFORMAT_UNCOMPRESSED_R5G6B5 = 3 # 16 bpp
105
+ RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8 = 4 # 24 bpp
106
+ RL_PIXELFORMAT_UNCOMPRESSED_R5G5B5A1 = 5 # 16 bpp (1 bit alpha)
107
+ RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4 = 6 # 16 bpp (4 bit alpha)
108
+ RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8 = 7 # 32 bpp
109
+ RL_PIXELFORMAT_UNCOMPRESSED_R32 = 8 # 32 bpp (1 channel - float)
110
+ RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32 = 9 # 32*3 bpp (3 channels - float)
111
+ RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32 = 10 # 32*4 bpp (4 channels - float)
112
+ RL_PIXELFORMAT_COMPRESSED_DXT1_RGB = 11 # 4 bpp (no alpha)
113
+ RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA = 12 # 4 bpp (1 bit alpha)
114
+ RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA = 13 # 8 bpp
115
+ RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA = 14 # 8 bpp
116
+ RL_PIXELFORMAT_COMPRESSED_ETC1_RGB = 15 # 4 bpp
117
+ RL_PIXELFORMAT_COMPRESSED_ETC2_RGB = 16 # 4 bpp
118
+ RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 17 # 8 bpp
119
+ RL_PIXELFORMAT_COMPRESSED_PVRT_RGB = 18 # 4 bpp
120
+ RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA = 19 # 4 bpp
121
+ RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 20 # 8 bpp
122
+ RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA = 21 # 2 bpp
123
+
124
+ # enum rlTextureFilter
125
+ # Texture parameters: filter mode
126
+ RL_TEXTURE_FILTER_POINT = 0 # No filter, just pixel approximation
127
+ RL_TEXTURE_FILTER_BILINEAR = 1 # Linear filtering
128
+ RL_TEXTURE_FILTER_TRILINEAR = 2 # Trilinear filtering (linear with mipmaps)
129
+ RL_TEXTURE_FILTER_ANISOTROPIC_4X = 3 # Anisotropic filtering 4x
130
+ RL_TEXTURE_FILTER_ANISOTROPIC_8X = 4 # Anisotropic filtering 8x
131
+ RL_TEXTURE_FILTER_ANISOTROPIC_16X = 5 # Anisotropic filtering 16x
132
+
133
+ # enum rlBlendMode
134
+ # Color blending modes (pre-defined)
135
+ RL_BLEND_ALPHA = 0 # Blend textures considering alpha (default)
136
+ RL_BLEND_ADDITIVE = 1 # Blend textures adding colors
137
+ RL_BLEND_MULTIPLIED = 2 # Blend textures multiplying colors
138
+ RL_BLEND_ADD_COLORS = 3 # Blend textures adding colors (alternative)
139
+ RL_BLEND_SUBTRACT_COLORS = 4 # Blend textures subtracting colors (alternative)
140
+ RL_BLEND_ALPHA_PREMULTIPLY = 5 # Blend premultiplied textures considering alpha
141
+ RL_BLEND_CUSTOM = 6 # Blend textures using custom src/dst factors (use rlSetBlendFactors())
142
+ RL_BLEND_CUSTOM_SEPARATE = 7 # Blend textures using custom src/dst factors (use rlSetBlendFactorsSeparate())
143
+
144
+ # enum rlShaderLocationIndex
145
+ # Shader location point type
146
+ RL_SHADER_LOC_VERTEX_POSITION = 0 # Shader location: vertex attribute: position
147
+ RL_SHADER_LOC_VERTEX_TEXCOORD01 = 1 # Shader location: vertex attribute: texcoord01
148
+ RL_SHADER_LOC_VERTEX_TEXCOORD02 = 2 # Shader location: vertex attribute: texcoord02
149
+ RL_SHADER_LOC_VERTEX_NORMAL = 3 # Shader location: vertex attribute: normal
150
+ RL_SHADER_LOC_VERTEX_TANGENT = 4 # Shader location: vertex attribute: tangent
151
+ RL_SHADER_LOC_VERTEX_COLOR = 5 # Shader location: vertex attribute: color
152
+ RL_SHADER_LOC_MATRIX_MVP = 6 # Shader location: matrix uniform: model-view-projection
153
+ RL_SHADER_LOC_MATRIX_VIEW = 7 # Shader location: matrix uniform: view (camera transform)
154
+ RL_SHADER_LOC_MATRIX_PROJECTION = 8 # Shader location: matrix uniform: projection
155
+ RL_SHADER_LOC_MATRIX_MODEL = 9 # Shader location: matrix uniform: model (transform)
156
+ RL_SHADER_LOC_MATRIX_NORMAL = 10 # Shader location: matrix uniform: normal
157
+ RL_SHADER_LOC_VECTOR_VIEW = 11 # Shader location: vector uniform: view
158
+ RL_SHADER_LOC_COLOR_DIFFUSE = 12 # Shader location: vector uniform: diffuse color
159
+ RL_SHADER_LOC_COLOR_SPECULAR = 13 # Shader location: vector uniform: specular color
160
+ RL_SHADER_LOC_COLOR_AMBIENT = 14 # Shader location: vector uniform: ambient color
161
+ RL_SHADER_LOC_MAP_ALBEDO = 15 # Shader location: sampler2d texture: albedo (same as: RL_SHADER_LOC_MAP_DIFFUSE)
162
+ RL_SHADER_LOC_MAP_METALNESS = 16 # Shader location: sampler2d texture: metalness (same as: RL_SHADER_LOC_MAP_SPECULAR)
163
+ RL_SHADER_LOC_MAP_NORMAL = 17 # Shader location: sampler2d texture: normal
164
+ RL_SHADER_LOC_MAP_ROUGHNESS = 18 # Shader location: sampler2d texture: roughness
165
+ RL_SHADER_LOC_MAP_OCCLUSION = 19 # Shader location: sampler2d texture: occlusion
166
+ RL_SHADER_LOC_MAP_EMISSION = 20 # Shader location: sampler2d texture: emission
167
+ RL_SHADER_LOC_MAP_HEIGHT = 21 # Shader location: sampler2d texture: height
168
+ RL_SHADER_LOC_MAP_CUBEMAP = 22 # Shader location: samplerCube texture: cubemap
169
+ RL_SHADER_LOC_MAP_IRRADIANCE = 23 # Shader location: samplerCube texture: irradiance
170
+ RL_SHADER_LOC_MAP_PREFILTER = 24 # Shader location: samplerCube texture: prefilter
171
+ RL_SHADER_LOC_MAP_BRDF = 25 # Shader location: sampler2d texture: brdf
172
+
173
+ # enum rlShaderUniformDataType
174
+ # Shader uniform data type
175
+ RL_SHADER_UNIFORM_FLOAT = 0 # Shader uniform type: float
176
+ RL_SHADER_UNIFORM_VEC2 = 1 # Shader uniform type: vec2 (2 float)
177
+ RL_SHADER_UNIFORM_VEC3 = 2 # Shader uniform type: vec3 (3 float)
178
+ RL_SHADER_UNIFORM_VEC4 = 3 # Shader uniform type: vec4 (4 float)
179
+ RL_SHADER_UNIFORM_INT = 4 # Shader uniform type: int
180
+ RL_SHADER_UNIFORM_IVEC2 = 5 # Shader uniform type: ivec2 (2 int)
181
+ RL_SHADER_UNIFORM_IVEC3 = 6 # Shader uniform type: ivec3 (3 int)
182
+ RL_SHADER_UNIFORM_IVEC4 = 7 # Shader uniform type: ivec4 (4 int)
183
+ RL_SHADER_UNIFORM_SAMPLER2D = 8 # Shader uniform type: sampler2d
184
+
185
+ # enum rlShaderAttributeDataType
186
+ # Shader attribute data types
187
+ RL_SHADER_ATTRIB_FLOAT = 0 # Shader attribute type: float
188
+ RL_SHADER_ATTRIB_VEC2 = 1 # Shader attribute type: vec2 (2 float)
189
+ RL_SHADER_ATTRIB_VEC3 = 2 # Shader attribute type: vec3 (3 float)
190
+ RL_SHADER_ATTRIB_VEC4 = 3 # Shader attribute type: vec4 (4 float)
191
+
192
+ # enum rlFramebufferAttachType
193
+ # Framebuffer attachment type
194
+ RL_ATTACHMENT_COLOR_CHANNEL0 = 0 # Framebuffer attachmment type: color 0
195
+ RL_ATTACHMENT_COLOR_CHANNEL1 = 1 # Framebuffer attachmment type: color 1
196
+ RL_ATTACHMENT_COLOR_CHANNEL2 = 2 # Framebuffer attachmment type: color 2
197
+ RL_ATTACHMENT_COLOR_CHANNEL3 = 3 # Framebuffer attachmment type: color 3
198
+ RL_ATTACHMENT_COLOR_CHANNEL4 = 4 # Framebuffer attachmment type: color 4
199
+ RL_ATTACHMENT_COLOR_CHANNEL5 = 5 # Framebuffer attachmment type: color 5
200
+ RL_ATTACHMENT_COLOR_CHANNEL6 = 6 # Framebuffer attachmment type: color 6
201
+ RL_ATTACHMENT_COLOR_CHANNEL7 = 7 # Framebuffer attachmment type: color 7
202
+ RL_ATTACHMENT_DEPTH = 100 # Framebuffer attachmment type: depth
203
+ RL_ATTACHMENT_STENCIL = 200 # Framebuffer attachmment type: stencil
204
+
205
+ # enum rlFramebufferAttachTextureType
206
+ # Framebuffer texture attachment type
207
+ RL_ATTACHMENT_CUBEMAP_POSITIVE_X = 0 # Framebuffer texture attachment type: cubemap, +X side
208
+ RL_ATTACHMENT_CUBEMAP_NEGATIVE_X = 1 # Framebuffer texture attachment type: cubemap, -X side
209
+ RL_ATTACHMENT_CUBEMAP_POSITIVE_Y = 2 # Framebuffer texture attachment type: cubemap, +Y side
210
+ RL_ATTACHMENT_CUBEMAP_NEGATIVE_Y = 3 # Framebuffer texture attachment type: cubemap, -Y side
211
+ RL_ATTACHMENT_CUBEMAP_POSITIVE_Z = 4 # Framebuffer texture attachment type: cubemap, +Z side
212
+ RL_ATTACHMENT_CUBEMAP_NEGATIVE_Z = 5 # Framebuffer texture attachment type: cubemap, -Z side
213
+ RL_ATTACHMENT_TEXTURE2D = 100 # Framebuffer texture attachment type: texture2d
214
+ RL_ATTACHMENT_RENDERBUFFER = 200 # Framebuffer texture attachment type: renderbuffer
215
+
216
+ # enum rlCullMode
217
+ # Face culling mode
192
218
  RL_CULL_FACE_FRONT = 0
193
219
  RL_CULL_FACE_BACK = 1
194
220
 
221
+
195
222
  # Typedef
196
223
 
197
224
  typedef :int, :rlGlVersion
@@ -208,488 +235,866 @@ module Raylib
208
235
 
209
236
  # Struct
210
237
 
238
+ # Dynamic vertex buffers (position + texcoords + colors + indices arrays)
211
239
  class RlVertexBuffer < FFI::Struct
212
240
  layout(
213
- :elementCount, :int,
214
- :vertices, :pointer,
215
- :texcoords, :pointer,
216
- :colors, :pointer,
217
- :indices, :pointer,
218
- :vaoId, :uint,
219
- :vboId, [:uint, 4],
241
+ :elementCount, :int, # Number of elements in the buffer (QUADS)
242
+ :vertices, :pointer, # Vertex position (XYZ - 3 components per vertex) (shader-location = 0)
243
+ :texcoords, :pointer, # Vertex texture coordinates (UV - 2 components per vertex) (shader-location = 1)
244
+ :colors, :pointer, # Vertex colors (RGBA - 4 components per vertex) (shader-location = 3)
245
+ :indices, :pointer, # Vertex indices (in case vertex data comes indexed) (6 indices per quad)
246
+ :vaoId, :uint, # OpenGL Vertex Array Object id
247
+ :vboId, [:uint, 4], # OpenGL Vertex Buffer Objects id (4 types of vertex data)
220
248
  )
221
249
  end
222
250
 
251
+ # of those state-change happens (this is done in core module)
223
252
  class RlDrawCall < FFI::Struct
224
253
  layout(
225
- :mode, :int,
226
- :vertexCount, :int,
227
- :vertexAlignment, :int,
228
- :textureId, :uint,
254
+ :mode, :int, # Drawing mode: LINES, TRIANGLES, QUADS
255
+ :vertexCount, :int, # Number of vertex of the draw
256
+ :vertexAlignment, :int, # Number of vertex required for index alignment (LINES, TRIANGLES)
257
+ :textureId, :uint, # Texture id to be used on the draw -> Use to create new draw call if changes
229
258
  )
230
259
  end
231
260
 
261
+ # rlRenderBatch type
232
262
  class RlRenderBatch < FFI::Struct
233
263
  layout(
234
- :bufferCount, :int,
235
- :currentBuffer, :int,
236
- :vertexBuffer, :pointer,
237
- :draws, :pointer,
238
- :drawCounter, :int,
239
- :currentDepth, :float,
264
+ :bufferCount, :int, # Number of vertex buffers (multi-buffering support)
265
+ :currentBuffer, :int, # Current buffer tracking in case of multi-buffering
266
+ :vertexBuffer, :pointer, # Dynamic buffer(s) for vertex data
267
+ :draws, :pointer, # Draw calls array, depends on textureId
268
+ :drawCounter, :int, # Draw calls counter
269
+ :currentDepth, :float, # Current depth value for next draw
240
270
  )
241
271
  end
242
272
 
243
273
 
244
274
  # Function
245
275
 
246
- def self.setup_rlgl_symbols()
247
- symbols = [
248
- :rlMatrixMode,
249
- :rlPushMatrix,
250
- :rlPopMatrix,
251
- :rlLoadIdentity,
252
- :rlTranslatef,
253
- :rlRotatef,
254
- :rlScalef,
255
- :rlMultMatrixf,
256
- :rlFrustum,
257
- :rlOrtho,
258
- :rlViewport,
259
- :rlBegin,
260
- :rlEnd,
261
- :rlVertex2i,
262
- :rlVertex2f,
263
- :rlVertex3f,
264
- :rlTexCoord2f,
265
- :rlNormal3f,
266
- :rlColor4ub,
267
- :rlColor3f,
268
- :rlColor4f,
269
- :rlEnableVertexArray,
270
- :rlDisableVertexArray,
271
- :rlEnableVertexBuffer,
272
- :rlDisableVertexBuffer,
273
- :rlEnableVertexBufferElement,
274
- :rlDisableVertexBufferElement,
275
- :rlEnableVertexAttribute,
276
- :rlDisableVertexAttribute,
277
- :rlActiveTextureSlot,
278
- :rlEnableTexture,
279
- :rlDisableTexture,
280
- :rlEnableTextureCubemap,
281
- :rlDisableTextureCubemap,
282
- :rlTextureParameters,
283
- :rlEnableShader,
284
- :rlDisableShader,
285
- :rlEnableFramebuffer,
286
- :rlDisableFramebuffer,
287
- :rlActiveDrawBuffers,
288
- :rlEnableColorBlend,
289
- :rlDisableColorBlend,
290
- :rlEnableDepthTest,
291
- :rlDisableDepthTest,
292
- :rlEnableDepthMask,
293
- :rlDisableDepthMask,
294
- :rlEnableBackfaceCulling,
295
- :rlDisableBackfaceCulling,
296
- :rlSetCullFace,
297
- :rlEnableScissorTest,
298
- :rlDisableScissorTest,
299
- :rlScissor,
300
- :rlEnableWireMode,
301
- :rlDisableWireMode,
302
- :rlSetLineWidth,
303
- :rlGetLineWidth,
304
- :rlEnableSmoothLines,
305
- :rlDisableSmoothLines,
306
- :rlEnableStereoRender,
307
- :rlDisableStereoRender,
308
- :rlIsStereoRenderEnabled,
309
- :rlClearColor,
310
- :rlClearScreenBuffers,
311
- :rlCheckErrors,
312
- :rlSetBlendMode,
313
- :rlSetBlendFactors,
314
- :rlSetBlendFactorsSeparate,
315
- :rlglInit,
316
- :rlglClose,
317
- :rlLoadExtensions,
318
- :rlGetVersion,
319
- :rlSetFramebufferWidth,
320
- :rlGetFramebufferWidth,
321
- :rlSetFramebufferHeight,
322
- :rlGetFramebufferHeight,
323
- :rlGetTextureIdDefault,
324
- :rlGetShaderIdDefault,
325
- :rlGetShaderLocsDefault,
326
- :rlLoadRenderBatch,
327
- :rlUnloadRenderBatch,
328
- :rlDrawRenderBatch,
329
- :rlSetRenderBatchActive,
330
- :rlDrawRenderBatchActive,
331
- :rlCheckRenderBatchLimit,
332
- :rlSetTexture,
333
- :rlLoadVertexArray,
334
- :rlLoadVertexBuffer,
335
- :rlLoadVertexBufferElement,
336
- :rlUpdateVertexBuffer,
337
- :rlUpdateVertexBufferElements,
338
- :rlUnloadVertexArray,
339
- :rlUnloadVertexBuffer,
340
- :rlSetVertexAttribute,
341
- :rlSetVertexAttributeDivisor,
342
- :rlSetVertexAttributeDefault,
343
- :rlDrawVertexArray,
344
- :rlDrawVertexArrayElements,
345
- :rlDrawVertexArrayInstanced,
346
- :rlDrawVertexArrayElementsInstanced,
347
- :rlLoadTexture,
348
- :rlLoadTextureDepth,
349
- :rlLoadTextureCubemap,
350
- :rlUpdateTexture,
351
- :rlGetGlTextureFormats,
352
- :rlGetPixelFormatName,
353
- :rlUnloadTexture,
354
- :rlGenTextureMipmaps,
355
- :rlReadTexturePixels,
356
- :rlReadScreenPixels,
357
- :rlLoadFramebuffer,
358
- :rlFramebufferAttach,
359
- :rlFramebufferComplete,
360
- :rlUnloadFramebuffer,
361
- :rlLoadShaderCode,
362
- :rlCompileShader,
363
- :rlLoadShaderProgram,
364
- :rlUnloadShaderProgram,
365
- :rlGetLocationUniform,
366
- :rlGetLocationAttrib,
367
- :rlSetUniform,
368
- :rlSetUniformMatrix,
369
- :rlSetUniformSampler,
370
- :rlSetShader,
371
- :rlLoadComputeShaderProgram,
372
- :rlComputeShaderDispatch,
373
- :rlLoadShaderBuffer,
374
- :rlUnloadShaderBuffer,
375
- :rlUpdateShaderBuffer,
376
- :rlBindShaderBuffer,
377
- :rlReadShaderBuffer,
378
- :rlCopyShaderBuffer,
379
- :rlGetShaderBufferSize,
380
- :rlBindImageTexture,
381
- :rlGetMatrixModelview,
382
- :rlGetMatrixProjection,
383
- :rlGetMatrixTransform,
384
- :rlGetMatrixProjectionStereo,
385
- :rlGetMatrixViewOffsetStereo,
386
- :rlSetMatrixProjection,
387
- :rlSetMatrixModelview,
388
- :rlSetMatrixProjectionStereo,
389
- :rlSetMatrixViewOffsetStereo,
390
- :rlLoadDrawCube,
391
- :rlLoadDrawQuad,
276
+ def self.setup_rlgl_symbols
277
+ entries = [
278
+
279
+ # rlMatrixMode : Choose the current matrix to be transformed
280
+ # @param mode [int]
281
+ # @return [void]
282
+ [:rlMatrixMode, :rlMatrixMode, [:int], :void],
283
+
284
+ # rlPushMatrix : Push the current matrix to stack
285
+ # @return [void]
286
+ [:rlPushMatrix, :rlPushMatrix, [], :void],
287
+
288
+ # rlPopMatrix : Pop lattest inserted matrix from stack
289
+ # @return [void]
290
+ [:rlPopMatrix, :rlPopMatrix, [], :void],
291
+
292
+ # rlLoadIdentity : Reset current matrix to identity matrix
293
+ # @return [void]
294
+ [:rlLoadIdentity, :rlLoadIdentity, [], :void],
295
+
296
+ # rlTranslatef : Multiply the current matrix by a translation matrix
297
+ # @param x [float]
298
+ # @param y [float]
299
+ # @param z [float]
300
+ # @return [void]
301
+ [:rlTranslatef, :rlTranslatef, [:float, :float, :float], :void],
302
+
303
+ # rlRotatef : Multiply the current matrix by a rotation matrix
304
+ # @param angle [float]
305
+ # @param x [float]
306
+ # @param y [float]
307
+ # @param z [float]
308
+ # @return [void]
309
+ [:rlRotatef, :rlRotatef, [:float, :float, :float, :float], :void],
310
+
311
+ # rlScalef : Multiply the current matrix by a scaling matrix
312
+ # @param x [float]
313
+ # @param y [float]
314
+ # @param z [float]
315
+ # @return [void]
316
+ [:rlScalef, :rlScalef, [:float, :float, :float], :void],
317
+
318
+ # rlMultMatrixf : Multiply the current matrix by another matrix
319
+ # @param matf [const float *]
320
+ # @return [void]
321
+ [:rlMultMatrixf, :rlMultMatrixf, [:pointer], :void],
322
+
323
+ # rlFrustum
324
+ # @param left [double]
325
+ # @param right [double]
326
+ # @param bottom [double]
327
+ # @param top [double]
328
+ # @param znear [double]
329
+ # @param zfar [double]
330
+ # @return [void]
331
+ [:rlFrustum, :rlFrustum, [:double, :double, :double, :double, :double, :double], :void],
332
+
333
+ # rlOrtho
334
+ # @param left [double]
335
+ # @param right [double]
336
+ # @param bottom [double]
337
+ # @param top [double]
338
+ # @param znear [double]
339
+ # @param zfar [double]
340
+ # @return [void]
341
+ [:rlOrtho, :rlOrtho, [:double, :double, :double, :double, :double, :double], :void],
342
+
343
+ # rlViewport : Set the viewport area
344
+ # @param x [int]
345
+ # @param y [int]
346
+ # @param width [int]
347
+ # @param height [int]
348
+ # @return [void]
349
+ [:rlViewport, :rlViewport, [:int, :int, :int, :int], :void],
350
+
351
+ # rlBegin : Initialize drawing mode (how to organize vertex)
352
+ # @param mode [int]
353
+ # @return [void]
354
+ [:rlBegin, :rlBegin, [:int], :void],
355
+
356
+ # rlEnd : Finish vertex providing
357
+ # @return [void]
358
+ [:rlEnd, :rlEnd, [], :void],
359
+
360
+ # rlVertex2i : Define one vertex (position) - 2 int
361
+ # @param x [int]
362
+ # @param y [int]
363
+ # @return [void]
364
+ [:rlVertex2i, :rlVertex2i, [:int, :int], :void],
365
+
366
+ # rlVertex2f : Define one vertex (position) - 2 float
367
+ # @param x [float]
368
+ # @param y [float]
369
+ # @return [void]
370
+ [:rlVertex2f, :rlVertex2f, [:float, :float], :void],
371
+
372
+ # rlVertex3f : Define one vertex (position) - 3 float
373
+ # @param x [float]
374
+ # @param y [float]
375
+ # @param z [float]
376
+ # @return [void]
377
+ [:rlVertex3f, :rlVertex3f, [:float, :float, :float], :void],
378
+
379
+ # rlTexCoord2f : Define one vertex (texture coordinate) - 2 float
380
+ # @param x [float]
381
+ # @param y [float]
382
+ # @return [void]
383
+ [:rlTexCoord2f, :rlTexCoord2f, [:float, :float], :void],
384
+
385
+ # rlNormal3f : Define one vertex (normal) - 3 float
386
+ # @param x [float]
387
+ # @param y [float]
388
+ # @param z [float]
389
+ # @return [void]
390
+ [:rlNormal3f, :rlNormal3f, [:float, :float, :float], :void],
391
+
392
+ # rlColor4ub : Define one vertex (color) - 4 byte
393
+ # @param r [unsigned char]
394
+ # @param g [unsigned char]
395
+ # @param b [unsigned char]
396
+ # @param a [unsigned char]
397
+ # @return [void]
398
+ [:rlColor4ub, :rlColor4ub, [:uchar, :uchar, :uchar, :uchar], :void],
399
+
400
+ # rlColor3f : Define one vertex (color) - 3 float
401
+ # @param x [float]
402
+ # @param y [float]
403
+ # @param z [float]
404
+ # @return [void]
405
+ [:rlColor3f, :rlColor3f, [:float, :float, :float], :void],
406
+
407
+ # rlColor4f : Define one vertex (color) - 4 float
408
+ # @param x [float]
409
+ # @param y [float]
410
+ # @param z [float]
411
+ # @param w [float]
412
+ # @return [void]
413
+ [:rlColor4f, :rlColor4f, [:float, :float, :float, :float], :void],
414
+
415
+ # rlEnableVertexArray : Enable vertex array (VAO, if supported)
416
+ # @param vaoId [unsigned int]
417
+ # @return [bool]
418
+ [:rlEnableVertexArray, :rlEnableVertexArray, [:uint], :bool],
419
+
420
+ # rlDisableVertexArray : Disable vertex array (VAO, if supported)
421
+ # @return [void]
422
+ [:rlDisableVertexArray, :rlDisableVertexArray, [], :void],
423
+
424
+ # rlEnableVertexBuffer : Enable vertex buffer (VBO)
425
+ # @param id [unsigned int]
426
+ # @return [void]
427
+ [:rlEnableVertexBuffer, :rlEnableVertexBuffer, [:uint], :void],
428
+
429
+ # rlDisableVertexBuffer : Disable vertex buffer (VBO)
430
+ # @return [void]
431
+ [:rlDisableVertexBuffer, :rlDisableVertexBuffer, [], :void],
432
+
433
+ # rlEnableVertexBufferElement : Enable vertex buffer element (VBO element)
434
+ # @param id [unsigned int]
435
+ # @return [void]
436
+ [:rlEnableVertexBufferElement, :rlEnableVertexBufferElement, [:uint], :void],
437
+
438
+ # rlDisableVertexBufferElement : Disable vertex buffer element (VBO element)
439
+ # @return [void]
440
+ [:rlDisableVertexBufferElement, :rlDisableVertexBufferElement, [], :void],
441
+
442
+ # rlEnableVertexAttribute : Enable vertex attribute index
443
+ # @param index [unsigned int]
444
+ # @return [void]
445
+ [:rlEnableVertexAttribute, :rlEnableVertexAttribute, [:uint], :void],
446
+
447
+ # rlDisableVertexAttribute : Disable vertex attribute index
448
+ # @param index [unsigned int]
449
+ # @return [void]
450
+ [:rlDisableVertexAttribute, :rlDisableVertexAttribute, [:uint], :void],
451
+
452
+ # rlActiveTextureSlot : Select and active a texture slot
453
+ # @param slot [int]
454
+ # @return [void]
455
+ [:rlActiveTextureSlot, :rlActiveTextureSlot, [:int], :void],
456
+
457
+ # rlEnableTexture : Enable texture
458
+ # @param id [unsigned int]
459
+ # @return [void]
460
+ [:rlEnableTexture, :rlEnableTexture, [:uint], :void],
461
+
462
+ # rlDisableTexture : Disable texture
463
+ # @return [void]
464
+ [:rlDisableTexture, :rlDisableTexture, [], :void],
465
+
466
+ # rlEnableTextureCubemap : Enable texture cubemap
467
+ # @param id [unsigned int]
468
+ # @return [void]
469
+ [:rlEnableTextureCubemap, :rlEnableTextureCubemap, [:uint], :void],
470
+
471
+ # rlDisableTextureCubemap : Disable texture cubemap
472
+ # @return [void]
473
+ [:rlDisableTextureCubemap, :rlDisableTextureCubemap, [], :void],
474
+
475
+ # rlTextureParameters : Set texture parameters (filter, wrap)
476
+ # @param id [unsigned int]
477
+ # @param param [int]
478
+ # @param value [int]
479
+ # @return [void]
480
+ [:rlTextureParameters, :rlTextureParameters, [:uint, :int, :int], :void],
481
+
482
+ # rlEnableShader : Enable shader program
483
+ # @param id [unsigned int]
484
+ # @return [void]
485
+ [:rlEnableShader, :rlEnableShader, [:uint], :void],
486
+
487
+ # rlDisableShader : Disable shader program
488
+ # @return [void]
489
+ [:rlDisableShader, :rlDisableShader, [], :void],
490
+
491
+ # rlEnableFramebuffer : Enable render texture (fbo)
492
+ # @param id [unsigned int]
493
+ # @return [void]
494
+ [:rlEnableFramebuffer, :rlEnableFramebuffer, [:uint], :void],
495
+
496
+ # rlDisableFramebuffer : Disable render texture (fbo), return to default framebuffer
497
+ # @return [void]
498
+ [:rlDisableFramebuffer, :rlDisableFramebuffer, [], :void],
499
+
500
+ # rlActiveDrawBuffers : Activate multiple draw color buffers
501
+ # @param count [int]
502
+ # @return [void]
503
+ [:rlActiveDrawBuffers, :rlActiveDrawBuffers, [:int], :void],
504
+
505
+ # rlEnableColorBlend : Enable color blending
506
+ # @return [void]
507
+ [:rlEnableColorBlend, :rlEnableColorBlend, [], :void],
508
+
509
+ # rlDisableColorBlend : Disable color blending
510
+ # @return [void]
511
+ [:rlDisableColorBlend, :rlDisableColorBlend, [], :void],
512
+
513
+ # rlEnableDepthTest : Enable depth test
514
+ # @return [void]
515
+ [:rlEnableDepthTest, :rlEnableDepthTest, [], :void],
516
+
517
+ # rlDisableDepthTest : Disable depth test
518
+ # @return [void]
519
+ [:rlDisableDepthTest, :rlDisableDepthTest, [], :void],
520
+
521
+ # rlEnableDepthMask : Enable depth write
522
+ # @return [void]
523
+ [:rlEnableDepthMask, :rlEnableDepthMask, [], :void],
524
+
525
+ # rlDisableDepthMask : Disable depth write
526
+ # @return [void]
527
+ [:rlDisableDepthMask, :rlDisableDepthMask, [], :void],
528
+
529
+ # rlEnableBackfaceCulling : Enable backface culling
530
+ # @return [void]
531
+ [:rlEnableBackfaceCulling, :rlEnableBackfaceCulling, [], :void],
532
+
533
+ # rlDisableBackfaceCulling : Disable backface culling
534
+ # @return [void]
535
+ [:rlDisableBackfaceCulling, :rlDisableBackfaceCulling, [], :void],
536
+
537
+ # rlSetCullFace : Set face culling mode
538
+ # @param mode [int]
539
+ # @return [void]
540
+ [:rlSetCullFace, :rlSetCullFace, [:int], :void],
541
+
542
+ # rlEnableScissorTest : Enable scissor test
543
+ # @return [void]
544
+ [:rlEnableScissorTest, :rlEnableScissorTest, [], :void],
545
+
546
+ # rlDisableScissorTest : Disable scissor test
547
+ # @return [void]
548
+ [:rlDisableScissorTest, :rlDisableScissorTest, [], :void],
549
+
550
+ # rlScissor : Scissor test
551
+ # @param x [int]
552
+ # @param y [int]
553
+ # @param width [int]
554
+ # @param height [int]
555
+ # @return [void]
556
+ [:rlScissor, :rlScissor, [:int, :int, :int, :int], :void],
557
+
558
+ # rlEnableWireMode : Enable wire mode
559
+ # @return [void]
560
+ [:rlEnableWireMode, :rlEnableWireMode, [], :void],
561
+
562
+ # rlDisableWireMode : Disable wire mode
563
+ # @return [void]
564
+ [:rlDisableWireMode, :rlDisableWireMode, [], :void],
565
+
566
+ # rlSetLineWidth : Set the line drawing width
567
+ # @param width [float]
568
+ # @return [void]
569
+ [:rlSetLineWidth, :rlSetLineWidth, [:float], :void],
570
+
571
+ # rlGetLineWidth : Get the line drawing width
572
+ # @return [float]
573
+ [:rlGetLineWidth, :rlGetLineWidth, [], :float],
574
+
575
+ # rlEnableSmoothLines : Enable line aliasing
576
+ # @return [void]
577
+ [:rlEnableSmoothLines, :rlEnableSmoothLines, [], :void],
578
+
579
+ # rlDisableSmoothLines : Disable line aliasing
580
+ # @return [void]
581
+ [:rlDisableSmoothLines, :rlDisableSmoothLines, [], :void],
582
+
583
+ # rlEnableStereoRender : Enable stereo rendering
584
+ # @return [void]
585
+ [:rlEnableStereoRender, :rlEnableStereoRender, [], :void],
586
+
587
+ # rlDisableStereoRender : Disable stereo rendering
588
+ # @return [void]
589
+ [:rlDisableStereoRender, :rlDisableStereoRender, [], :void],
590
+
591
+ # rlIsStereoRenderEnabled : Check if stereo render is enabled
592
+ # @return [bool]
593
+ [:rlIsStereoRenderEnabled, :rlIsStereoRenderEnabled, [], :bool],
594
+
595
+ # rlClearColor : Clear color buffer with color
596
+ # @param r [unsigned char]
597
+ # @param g [unsigned char]
598
+ # @param b [unsigned char]
599
+ # @param a [unsigned char]
600
+ # @return [void]
601
+ [:rlClearColor, :rlClearColor, [:uchar, :uchar, :uchar, :uchar], :void],
602
+
603
+ # rlClearScreenBuffers : Clear used screen buffers (color and depth)
604
+ # @return [void]
605
+ [:rlClearScreenBuffers, :rlClearScreenBuffers, [], :void],
606
+
607
+ # rlCheckErrors : Check and log OpenGL error codes
608
+ # @return [void]
609
+ [:rlCheckErrors, :rlCheckErrors, [], :void],
610
+
611
+ # rlSetBlendMode : Set blending mode
612
+ # @param mode [int]
613
+ # @return [void]
614
+ [:rlSetBlendMode, :rlSetBlendMode, [:int], :void],
615
+
616
+ # rlSetBlendFactors : Set blending mode factor and equation (using OpenGL factors)
617
+ # @param glSrcFactor [int]
618
+ # @param glDstFactor [int]
619
+ # @param glEquation [int]
620
+ # @return [void]
621
+ [:rlSetBlendFactors, :rlSetBlendFactors, [:int, :int, :int], :void],
622
+
623
+ # rlSetBlendFactorsSeparate : Set blending mode factors and equations separately (using OpenGL factors)
624
+ # @param glSrcRGB [int]
625
+ # @param glDstRGB [int]
626
+ # @param glSrcAlpha [int]
627
+ # @param glDstAlpha [int]
628
+ # @param glEqRGB [int]
629
+ # @param glEqAlpha [int]
630
+ # @return [void]
631
+ [:rlSetBlendFactorsSeparate, :rlSetBlendFactorsSeparate, [:int, :int, :int, :int, :int, :int], :void],
632
+
633
+ # rlglInit : Initialize rlgl (buffers, shaders, textures, states)
634
+ # @param width [int]
635
+ # @param height [int]
636
+ # @return [void]
637
+ [:rlglInit, :rlglInit, [:int, :int], :void],
638
+
639
+ # rlglClose : De-inititialize rlgl (buffers, shaders, textures)
640
+ # @return [void]
641
+ [:rlglClose, :rlglClose, [], :void],
642
+
643
+ # rlLoadExtensions : Load OpenGL extensions (loader function required)
644
+ # @param loader [void *]
645
+ # @return [void]
646
+ [:rlLoadExtensions, :rlLoadExtensions, [:pointer], :void],
647
+
648
+ # rlGetVersion : Get current OpenGL version
649
+ # @return [int]
650
+ [:rlGetVersion, :rlGetVersion, [], :int],
651
+
652
+ # rlSetFramebufferWidth : Set current framebuffer width
653
+ # @param width [int]
654
+ # @return [void]
655
+ [:rlSetFramebufferWidth, :rlSetFramebufferWidth, [:int], :void],
656
+
657
+ # rlGetFramebufferWidth : Get default framebuffer width
658
+ # @return [int]
659
+ [:rlGetFramebufferWidth, :rlGetFramebufferWidth, [], :int],
660
+
661
+ # rlSetFramebufferHeight : Set current framebuffer height
662
+ # @param height [int]
663
+ # @return [void]
664
+ [:rlSetFramebufferHeight, :rlSetFramebufferHeight, [:int], :void],
665
+
666
+ # rlGetFramebufferHeight : Get default framebuffer height
667
+ # @return [int]
668
+ [:rlGetFramebufferHeight, :rlGetFramebufferHeight, [], :int],
669
+
670
+ # rlGetTextureIdDefault : Get default texture id
671
+ # @return [unsigned int]
672
+ [:rlGetTextureIdDefault, :rlGetTextureIdDefault, [], :uint],
673
+
674
+ # rlGetShaderIdDefault : Get default shader id
675
+ # @return [unsigned int]
676
+ [:rlGetShaderIdDefault, :rlGetShaderIdDefault, [], :uint],
677
+
678
+ # rlGetShaderLocsDefault : Get default shader locations
679
+ # @return [int *]
680
+ [:rlGetShaderLocsDefault, :rlGetShaderLocsDefault, [], :pointer],
681
+
682
+ # rlLoadRenderBatch : Load a render batch system
683
+ # @param numBuffers [int]
684
+ # @param bufferElements [int]
685
+ # @return [rlRenderBatch]
686
+ [:rlLoadRenderBatch, :rlLoadRenderBatch, [:int, :int], RlRenderBatch.by_value],
687
+
688
+ # rlUnloadRenderBatch : Unload render batch system
689
+ # @param batch [rlRenderBatch]
690
+ # @return [void]
691
+ [:rlUnloadRenderBatch, :rlUnloadRenderBatch, [RlRenderBatch.by_value], :void],
692
+
693
+ # rlDrawRenderBatch : Draw render batch data (Update->Draw->Reset)
694
+ # @param batch [rlRenderBatch *]
695
+ # @return [void]
696
+ [:rlDrawRenderBatch, :rlDrawRenderBatch, [:pointer], :void],
697
+
698
+ # rlSetRenderBatchActive : Set the active render batch for rlgl (NULL for default internal)
699
+ # @param batch [rlRenderBatch *]
700
+ # @return [void]
701
+ [:rlSetRenderBatchActive, :rlSetRenderBatchActive, [:pointer], :void],
702
+
703
+ # rlDrawRenderBatchActive : Update and draw internal render batch
704
+ # @return [void]
705
+ [:rlDrawRenderBatchActive, :rlDrawRenderBatchActive, [], :void],
706
+
707
+ # rlCheckRenderBatchLimit : Check internal buffer overflow for a given number of vertex
708
+ # @param vCount [int]
709
+ # @return [bool]
710
+ [:rlCheckRenderBatchLimit, :rlCheckRenderBatchLimit, [:int], :bool],
711
+
712
+ # rlSetTexture : Set current texture for render batch and check buffers limits
713
+ # @param id [unsigned int]
714
+ # @return [void]
715
+ [:rlSetTexture, :rlSetTexture, [:uint], :void],
716
+
717
+ # rlLoadVertexArray : Load vertex array (vao) if supported
718
+ # @return [unsigned int]
719
+ [:rlLoadVertexArray, :rlLoadVertexArray, [], :uint],
720
+
721
+ # rlLoadVertexBuffer : Load a vertex buffer attribute
722
+ # @param buffer [const void *]
723
+ # @param size [int]
724
+ # @param dynamic [bool]
725
+ # @return [unsigned int]
726
+ [:rlLoadVertexBuffer, :rlLoadVertexBuffer, [:pointer, :int, :bool], :uint],
727
+
728
+ # rlLoadVertexBufferElement : Load a new attributes element buffer
729
+ # @param buffer [const void *]
730
+ # @param size [int]
731
+ # @param dynamic [bool]
732
+ # @return [unsigned int]
733
+ [:rlLoadVertexBufferElement, :rlLoadVertexBufferElement, [:pointer, :int, :bool], :uint],
734
+
735
+ # rlUpdateVertexBuffer : Update GPU buffer with new data
736
+ # @param bufferId [unsigned int]
737
+ # @param data [const void *]
738
+ # @param dataSize [int]
739
+ # @param offset [int]
740
+ # @return [void]
741
+ [:rlUpdateVertexBuffer, :rlUpdateVertexBuffer, [:uint, :pointer, :int, :int], :void],
742
+
743
+ # rlUpdateVertexBufferElements : Update vertex buffer elements with new data
744
+ # @param id [unsigned int]
745
+ # @param data [const void *]
746
+ # @param dataSize [int]
747
+ # @param offset [int]
748
+ # @return [void]
749
+ [:rlUpdateVertexBufferElements, :rlUpdateVertexBufferElements, [:uint, :pointer, :int, :int], :void],
750
+
751
+ # rlUnloadVertexArray
752
+ # @param vaoId [unsigned int]
753
+ # @return [void]
754
+ [:rlUnloadVertexArray, :rlUnloadVertexArray, [:uint], :void],
755
+
756
+ # rlUnloadVertexBuffer
757
+ # @param vboId [unsigned int]
758
+ # @return [void]
759
+ [:rlUnloadVertexBuffer, :rlUnloadVertexBuffer, [:uint], :void],
760
+
761
+ # rlSetVertexAttribute
762
+ # @param index [unsigned int]
763
+ # @param compSize [int]
764
+ # @param type [int]
765
+ # @param normalized [bool]
766
+ # @param stride [int]
767
+ # @param pointer [const void *]
768
+ # @return [void]
769
+ [:rlSetVertexAttribute, :rlSetVertexAttribute, [:uint, :int, :int, :bool, :int, :pointer], :void],
770
+
771
+ # rlSetVertexAttributeDivisor
772
+ # @param index [unsigned int]
773
+ # @param divisor [int]
774
+ # @return [void]
775
+ [:rlSetVertexAttributeDivisor, :rlSetVertexAttributeDivisor, [:uint, :int], :void],
776
+
777
+ # rlSetVertexAttributeDefault : Set vertex attribute default value
778
+ # @param locIndex [int]
779
+ # @param value [const void *]
780
+ # @param attribType [int]
781
+ # @param count [int]
782
+ # @return [void]
783
+ [:rlSetVertexAttributeDefault, :rlSetVertexAttributeDefault, [:int, :pointer, :int, :int], :void],
784
+
785
+ # rlDrawVertexArray
786
+ # @param offset [int]
787
+ # @param count [int]
788
+ # @return [void]
789
+ [:rlDrawVertexArray, :rlDrawVertexArray, [:int, :int], :void],
790
+
791
+ # rlDrawVertexArrayElements
792
+ # @param offset [int]
793
+ # @param count [int]
794
+ # @param buffer [const void *]
795
+ # @return [void]
796
+ [:rlDrawVertexArrayElements, :rlDrawVertexArrayElements, [:int, :int, :pointer], :void],
797
+
798
+ # rlDrawVertexArrayInstanced
799
+ # @param offset [int]
800
+ # @param count [int]
801
+ # @param instances [int]
802
+ # @return [void]
803
+ [:rlDrawVertexArrayInstanced, :rlDrawVertexArrayInstanced, [:int, :int, :int], :void],
804
+
805
+ # rlDrawVertexArrayElementsInstanced
806
+ # @param offset [int]
807
+ # @param count [int]
808
+ # @param buffer [const void *]
809
+ # @param instances [int]
810
+ # @return [void]
811
+ [:rlDrawVertexArrayElementsInstanced, :rlDrawVertexArrayElementsInstanced, [:int, :int, :pointer, :int], :void],
812
+
813
+ # rlLoadTexture : Load texture in GPU
814
+ # @param data [const void *]
815
+ # @param width [int]
816
+ # @param height [int]
817
+ # @param format [int]
818
+ # @param mipmapCount [int]
819
+ # @return [unsigned int]
820
+ [:rlLoadTexture, :rlLoadTexture, [:pointer, :int, :int, :int, :int], :uint],
821
+
822
+ # rlLoadTextureDepth : Load depth texture/renderbuffer (to be attached to fbo)
823
+ # @param width [int]
824
+ # @param height [int]
825
+ # @param useRenderBuffer [bool]
826
+ # @return [unsigned int]
827
+ [:rlLoadTextureDepth, :rlLoadTextureDepth, [:int, :int, :bool], :uint],
828
+
829
+ # rlLoadTextureCubemap : Load texture cubemap
830
+ # @param data [const void *]
831
+ # @param size [int]
832
+ # @param format [int]
833
+ # @return [unsigned int]
834
+ [:rlLoadTextureCubemap, :rlLoadTextureCubemap, [:pointer, :int, :int], :uint],
835
+
836
+ # rlUpdateTexture : Update GPU texture with new data
837
+ # @param id [unsigned int]
838
+ # @param offsetX [int]
839
+ # @param offsetY [int]
840
+ # @param width [int]
841
+ # @param height [int]
842
+ # @param format [int]
843
+ # @param data [const void *]
844
+ # @return [void]
845
+ [:rlUpdateTexture, :rlUpdateTexture, [:uint, :int, :int, :int, :int, :int, :pointer], :void],
846
+
847
+ # rlGetGlTextureFormats : Get OpenGL internal formats
848
+ # @param format [int]
849
+ # @param glInternalFormat [unsigned int *]
850
+ # @param glFormat [unsigned int *]
851
+ # @param glType [unsigned int *]
852
+ # @return [void]
853
+ [:rlGetGlTextureFormats, :rlGetGlTextureFormats, [:int, :pointer, :pointer, :pointer], :void],
854
+
855
+ # rlGetPixelFormatName : Get name string for pixel format
856
+ # @param format [unsigned int]
857
+ # @return [const char *]
858
+ [:rlGetPixelFormatName, :rlGetPixelFormatName, [:uint], :pointer],
859
+
860
+ # rlUnloadTexture : Unload texture from GPU memory
861
+ # @param id [unsigned int]
862
+ # @return [void]
863
+ [:rlUnloadTexture, :rlUnloadTexture, [:uint], :void],
864
+
865
+ # rlGenTextureMipmaps : Generate mipmap data for selected texture
866
+ # @param id [unsigned int]
867
+ # @param width [int]
868
+ # @param height [int]
869
+ # @param format [int]
870
+ # @param mipmaps [int *]
871
+ # @return [void]
872
+ [:rlGenTextureMipmaps, :rlGenTextureMipmaps, [:uint, :int, :int, :int, :pointer], :void],
873
+
874
+ # rlReadTexturePixels : Read texture pixel data
875
+ # @param id [unsigned int]
876
+ # @param width [int]
877
+ # @param height [int]
878
+ # @param format [int]
879
+ # @return [void *]
880
+ [:rlReadTexturePixels, :rlReadTexturePixels, [:uint, :int, :int, :int], :pointer],
881
+
882
+ # rlReadScreenPixels : Read screen pixel data (color buffer)
883
+ # @param width [int]
884
+ # @param height [int]
885
+ # @return [unsigned char *]
886
+ [:rlReadScreenPixels, :rlReadScreenPixels, [:int, :int], :pointer],
887
+
888
+ # rlLoadFramebuffer : Load an empty framebuffer
889
+ # @param width [int]
890
+ # @param height [int]
891
+ # @return [unsigned int]
892
+ [:rlLoadFramebuffer, :rlLoadFramebuffer, [:int, :int], :uint],
893
+
894
+ # rlFramebufferAttach : Attach texture/renderbuffer to a framebuffer
895
+ # @param fboId [unsigned int]
896
+ # @param texId [unsigned int]
897
+ # @param attachType [int]
898
+ # @param texType [int]
899
+ # @param mipLevel [int]
900
+ # @return [void]
901
+ [:rlFramebufferAttach, :rlFramebufferAttach, [:uint, :uint, :int, :int, :int], :void],
902
+
903
+ # rlFramebufferComplete : Verify framebuffer is complete
904
+ # @param id [unsigned int]
905
+ # @return [bool]
906
+ [:rlFramebufferComplete, :rlFramebufferComplete, [:uint], :bool],
907
+
908
+ # rlUnloadFramebuffer : Delete framebuffer from GPU
909
+ # @param id [unsigned int]
910
+ # @return [void]
911
+ [:rlUnloadFramebuffer, :rlUnloadFramebuffer, [:uint], :void],
912
+
913
+ # rlLoadShaderCode : Load shader from code strings
914
+ # @param vsCode [const char *]
915
+ # @param fsCode [const char *]
916
+ # @return [unsigned int]
917
+ [:rlLoadShaderCode, :rlLoadShaderCode, [:pointer, :pointer], :uint],
918
+
919
+ # rlCompileShader : Compile custom shader and return shader id (type: RL_VERTEX_SHADER, RL_FRAGMENT_SHADER, RL_COMPUTE_SHADER)
920
+ # @param shaderCode [const char *]
921
+ # @param type [int]
922
+ # @return [unsigned int]
923
+ [:rlCompileShader, :rlCompileShader, [:pointer, :int], :uint],
924
+
925
+ # rlLoadShaderProgram : Load custom shader program
926
+ # @param vShaderId [unsigned int]
927
+ # @param fShaderId [unsigned int]
928
+ # @return [unsigned int]
929
+ [:rlLoadShaderProgram, :rlLoadShaderProgram, [:uint, :uint], :uint],
930
+
931
+ # rlUnloadShaderProgram : Unload shader program
932
+ # @param id [unsigned int]
933
+ # @return [void]
934
+ [:rlUnloadShaderProgram, :rlUnloadShaderProgram, [:uint], :void],
935
+
936
+ # rlGetLocationUniform : Get shader location uniform
937
+ # @param shaderId [unsigned int]
938
+ # @param uniformName [const char *]
939
+ # @return [int]
940
+ [:rlGetLocationUniform, :rlGetLocationUniform, [:uint, :pointer], :int],
941
+
942
+ # rlGetLocationAttrib : Get shader location attribute
943
+ # @param shaderId [unsigned int]
944
+ # @param attribName [const char *]
945
+ # @return [int]
946
+ [:rlGetLocationAttrib, :rlGetLocationAttrib, [:uint, :pointer], :int],
947
+
948
+ # rlSetUniform : Set shader value uniform
949
+ # @param locIndex [int]
950
+ # @param value [const void *]
951
+ # @param uniformType [int]
952
+ # @param count [int]
953
+ # @return [void]
954
+ [:rlSetUniform, :rlSetUniform, [:int, :pointer, :int, :int], :void],
955
+
956
+ # rlSetUniformMatrix : Set shader value matrix
957
+ # @param locIndex [int]
958
+ # @param mat [Matrix]
959
+ # @return [void]
960
+ [:rlSetUniformMatrix, :rlSetUniformMatrix, [:int, Matrix.by_value], :void],
961
+
962
+ # rlSetUniformSampler : Set shader value sampler
963
+ # @param locIndex [int]
964
+ # @param textureId [unsigned int]
965
+ # @return [void]
966
+ [:rlSetUniformSampler, :rlSetUniformSampler, [:int, :uint], :void],
967
+
968
+ # rlSetShader : Set shader currently active (id and locations)
969
+ # @param id [unsigned int]
970
+ # @param locs [int *]
971
+ # @return [void]
972
+ [:rlSetShader, :rlSetShader, [:uint, :pointer], :void],
973
+
974
+ # rlLoadComputeShaderProgram : Load compute shader program
975
+ # @param shaderId [unsigned int]
976
+ # @return [unsigned int]
977
+ [:rlLoadComputeShaderProgram, :rlLoadComputeShaderProgram, [:uint], :uint],
978
+
979
+ # rlComputeShaderDispatch : Dispatch compute shader (equivalent to *draw* for graphics pilepine)
980
+ # @param groupX [unsigned int]
981
+ # @param groupY [unsigned int]
982
+ # @param groupZ [unsigned int]
983
+ # @return [void]
984
+ [:rlComputeShaderDispatch, :rlComputeShaderDispatch, [:uint, :uint, :uint], :void],
985
+
986
+ # rlLoadShaderBuffer : Load shader storage buffer object (SSBO)
987
+ # @param size [unsigned int]
988
+ # @param data [const void *]
989
+ # @param usageHint [int]
990
+ # @return [unsigned int]
991
+ [:rlLoadShaderBuffer, :rlLoadShaderBuffer, [:uint, :pointer, :int], :uint],
992
+
993
+ # rlUnloadShaderBuffer : Unload shader storage buffer object (SSBO)
994
+ # @param ssboId [unsigned int]
995
+ # @return [void]
996
+ [:rlUnloadShaderBuffer, :rlUnloadShaderBuffer, [:uint], :void],
997
+
998
+ # rlUpdateShaderBuffer : Update SSBO buffer data
999
+ # @param id [unsigned int]
1000
+ # @param data [const void *]
1001
+ # @param dataSize [unsigned int]
1002
+ # @param offset [unsigned int]
1003
+ # @return [void]
1004
+ [:rlUpdateShaderBuffer, :rlUpdateShaderBuffer, [:uint, :pointer, :uint, :uint], :void],
1005
+
1006
+ # rlBindShaderBuffer : Bind SSBO buffer
1007
+ # @param id [unsigned int]
1008
+ # @param index [unsigned int]
1009
+ # @return [void]
1010
+ [:rlBindShaderBuffer, :rlBindShaderBuffer, [:uint, :uint], :void],
1011
+
1012
+ # rlReadShaderBuffer : Read SSBO buffer data (GPU->CPU)
1013
+ # @param id [unsigned int]
1014
+ # @param dest [void *]
1015
+ # @param count [unsigned int]
1016
+ # @param offset [unsigned int]
1017
+ # @return [void]
1018
+ [:rlReadShaderBuffer, :rlReadShaderBuffer, [:uint, :pointer, :uint, :uint], :void],
1019
+
1020
+ # rlCopyShaderBuffer : Copy SSBO data between buffers
1021
+ # @param destId [unsigned int]
1022
+ # @param srcId [unsigned int]
1023
+ # @param destOffset [unsigned int]
1024
+ # @param srcOffset [unsigned int]
1025
+ # @param count [unsigned int]
1026
+ # @return [void]
1027
+ [:rlCopyShaderBuffer, :rlCopyShaderBuffer, [:uint, :uint, :uint, :uint, :uint], :void],
1028
+
1029
+ # rlGetShaderBufferSize : Get SSBO buffer size
1030
+ # @param id [unsigned int]
1031
+ # @return [unsigned int]
1032
+ [:rlGetShaderBufferSize, :rlGetShaderBufferSize, [:uint], :uint],
1033
+
1034
+ # rlBindImageTexture : Bind image texture
1035
+ # @param id [unsigned int]
1036
+ # @param index [unsigned int]
1037
+ # @param format [int]
1038
+ # @param readonly [bool]
1039
+ # @return [void]
1040
+ [:rlBindImageTexture, :rlBindImageTexture, [:uint, :uint, :int, :bool], :void],
1041
+
1042
+ # rlGetMatrixModelview : Get internal modelview matrix
1043
+ # @return [Matrix]
1044
+ [:rlGetMatrixModelview, :rlGetMatrixModelview, [], Matrix.by_value],
1045
+
1046
+ # rlGetMatrixProjection : Get internal projection matrix
1047
+ # @return [Matrix]
1048
+ [:rlGetMatrixProjection, :rlGetMatrixProjection, [], Matrix.by_value],
1049
+
1050
+ # rlGetMatrixTransform : Get internal accumulated transform matrix
1051
+ # @return [Matrix]
1052
+ [:rlGetMatrixTransform, :rlGetMatrixTransform, [], Matrix.by_value],
1053
+
1054
+ # rlGetMatrixProjectionStereo : Get internal projection matrix for stereo render (selected eye)
1055
+ # @param eye [int]
1056
+ # @return [Matrix]
1057
+ [:rlGetMatrixProjectionStereo, :rlGetMatrixProjectionStereo, [:int], Matrix.by_value],
1058
+
1059
+ # rlGetMatrixViewOffsetStereo : Get internal view offset matrix for stereo render (selected eye)
1060
+ # @param eye [int]
1061
+ # @return [Matrix]
1062
+ [:rlGetMatrixViewOffsetStereo, :rlGetMatrixViewOffsetStereo, [:int], Matrix.by_value],
1063
+
1064
+ # rlSetMatrixProjection : Set a custom projection matrix (replaces internal projection matrix)
1065
+ # @param proj [Matrix]
1066
+ # @return [void]
1067
+ [:rlSetMatrixProjection, :rlSetMatrixProjection, [Matrix.by_value], :void],
1068
+
1069
+ # rlSetMatrixModelview : Set a custom modelview matrix (replaces internal modelview matrix)
1070
+ # @param view [Matrix]
1071
+ # @return [void]
1072
+ [:rlSetMatrixModelview, :rlSetMatrixModelview, [Matrix.by_value], :void],
1073
+
1074
+ # rlSetMatrixProjectionStereo : Set eyes projection matrices for stereo rendering
1075
+ # @param right [Matrix]
1076
+ # @param left [Matrix]
1077
+ # @return [void]
1078
+ [:rlSetMatrixProjectionStereo, :rlSetMatrixProjectionStereo, [Matrix.by_value, Matrix.by_value], :void],
1079
+
1080
+ # rlSetMatrixViewOffsetStereo : Set eyes view offsets matrices for stereo rendering
1081
+ # @param right [Matrix]
1082
+ # @param left [Matrix]
1083
+ # @return [void]
1084
+ [:rlSetMatrixViewOffsetStereo, :rlSetMatrixViewOffsetStereo, [Matrix.by_value, Matrix.by_value], :void],
1085
+
1086
+ # rlLoadDrawCube : Load and draw a cube
1087
+ # @return [void]
1088
+ [:rlLoadDrawCube, :rlLoadDrawCube, [], :void],
1089
+
1090
+ # rlLoadDrawQuad : Load and draw a quad
1091
+ # @return [void]
1092
+ [:rlLoadDrawQuad, :rlLoadDrawQuad, [], :void],
392
1093
  ]
393
- args = {
394
- :rlMatrixMode => [:int],
395
- :rlPushMatrix => [],
396
- :rlPopMatrix => [],
397
- :rlLoadIdentity => [],
398
- :rlTranslatef => [:float, :float, :float],
399
- :rlRotatef => [:float, :float, :float, :float],
400
- :rlScalef => [:float, :float, :float],
401
- :rlMultMatrixf => [:pointer],
402
- :rlFrustum => [:double, :double, :double, :double, :double, :double],
403
- :rlOrtho => [:double, :double, :double, :double, :double, :double],
404
- :rlViewport => [:int, :int, :int, :int],
405
- :rlBegin => [:int],
406
- :rlEnd => [],
407
- :rlVertex2i => [:int, :int],
408
- :rlVertex2f => [:float, :float],
409
- :rlVertex3f => [:float, :float, :float],
410
- :rlTexCoord2f => [:float, :float],
411
- :rlNormal3f => [:float, :float, :float],
412
- :rlColor4ub => [:uchar, :uchar, :uchar, :uchar],
413
- :rlColor3f => [:float, :float, :float],
414
- :rlColor4f => [:float, :float, :float, :float],
415
- :rlEnableVertexArray => [:uint],
416
- :rlDisableVertexArray => [],
417
- :rlEnableVertexBuffer => [:uint],
418
- :rlDisableVertexBuffer => [],
419
- :rlEnableVertexBufferElement => [:uint],
420
- :rlDisableVertexBufferElement => [],
421
- :rlEnableVertexAttribute => [:uint],
422
- :rlDisableVertexAttribute => [:uint],
423
- :rlActiveTextureSlot => [:int],
424
- :rlEnableTexture => [:uint],
425
- :rlDisableTexture => [],
426
- :rlEnableTextureCubemap => [:uint],
427
- :rlDisableTextureCubemap => [],
428
- :rlTextureParameters => [:uint, :int, :int],
429
- :rlEnableShader => [:uint],
430
- :rlDisableShader => [],
431
- :rlEnableFramebuffer => [:uint],
432
- :rlDisableFramebuffer => [],
433
- :rlActiveDrawBuffers => [:int],
434
- :rlEnableColorBlend => [],
435
- :rlDisableColorBlend => [],
436
- :rlEnableDepthTest => [],
437
- :rlDisableDepthTest => [],
438
- :rlEnableDepthMask => [],
439
- :rlDisableDepthMask => [],
440
- :rlEnableBackfaceCulling => [],
441
- :rlDisableBackfaceCulling => [],
442
- :rlSetCullFace => [:int],
443
- :rlEnableScissorTest => [],
444
- :rlDisableScissorTest => [],
445
- :rlScissor => [:int, :int, :int, :int],
446
- :rlEnableWireMode => [],
447
- :rlDisableWireMode => [],
448
- :rlSetLineWidth => [:float],
449
- :rlGetLineWidth => [],
450
- :rlEnableSmoothLines => [],
451
- :rlDisableSmoothLines => [],
452
- :rlEnableStereoRender => [],
453
- :rlDisableStereoRender => [],
454
- :rlIsStereoRenderEnabled => [],
455
- :rlClearColor => [:uchar, :uchar, :uchar, :uchar],
456
- :rlClearScreenBuffers => [],
457
- :rlCheckErrors => [],
458
- :rlSetBlendMode => [:int],
459
- :rlSetBlendFactors => [:int, :int, :int],
460
- :rlSetBlendFactorsSeparate => [:int, :int, :int, :int, :int, :int],
461
- :rlglInit => [:int, :int],
462
- :rlglClose => [],
463
- :rlLoadExtensions => [:pointer],
464
- :rlGetVersion => [],
465
- :rlSetFramebufferWidth => [:int],
466
- :rlGetFramebufferWidth => [],
467
- :rlSetFramebufferHeight => [:int],
468
- :rlGetFramebufferHeight => [],
469
- :rlGetTextureIdDefault => [],
470
- :rlGetShaderIdDefault => [],
471
- :rlGetShaderLocsDefault => [],
472
- :rlLoadRenderBatch => [:int, :int],
473
- :rlUnloadRenderBatch => [RlRenderBatch.by_value],
474
- :rlDrawRenderBatch => [:pointer],
475
- :rlSetRenderBatchActive => [:pointer],
476
- :rlDrawRenderBatchActive => [],
477
- :rlCheckRenderBatchLimit => [:int],
478
- :rlSetTexture => [:uint],
479
- :rlLoadVertexArray => [],
480
- :rlLoadVertexBuffer => [:pointer, :int, :bool],
481
- :rlLoadVertexBufferElement => [:pointer, :int, :bool],
482
- :rlUpdateVertexBuffer => [:uint, :pointer, :int, :int],
483
- :rlUpdateVertexBufferElements => [:uint, :pointer, :int, :int],
484
- :rlUnloadVertexArray => [:uint],
485
- :rlUnloadVertexBuffer => [:uint],
486
- :rlSetVertexAttribute => [:uint, :int, :int, :bool, :int, :pointer],
487
- :rlSetVertexAttributeDivisor => [:uint, :int],
488
- :rlSetVertexAttributeDefault => [:int, :pointer, :int, :int],
489
- :rlDrawVertexArray => [:int, :int],
490
- :rlDrawVertexArrayElements => [:int, :int, :pointer],
491
- :rlDrawVertexArrayInstanced => [:int, :int, :int],
492
- :rlDrawVertexArrayElementsInstanced => [:int, :int, :pointer, :int],
493
- :rlLoadTexture => [:pointer, :int, :int, :int, :int],
494
- :rlLoadTextureDepth => [:int, :int, :bool],
495
- :rlLoadTextureCubemap => [:pointer, :int, :int],
496
- :rlUpdateTexture => [:uint, :int, :int, :int, :int, :int, :pointer],
497
- :rlGetGlTextureFormats => [:int, :pointer, :pointer, :pointer],
498
- :rlGetPixelFormatName => [:uint],
499
- :rlUnloadTexture => [:uint],
500
- :rlGenTextureMipmaps => [:uint, :int, :int, :int, :pointer],
501
- :rlReadTexturePixels => [:uint, :int, :int, :int],
502
- :rlReadScreenPixels => [:int, :int],
503
- :rlLoadFramebuffer => [:int, :int],
504
- :rlFramebufferAttach => [:uint, :uint, :int, :int, :int],
505
- :rlFramebufferComplete => [:uint],
506
- :rlUnloadFramebuffer => [:uint],
507
- :rlLoadShaderCode => [:pointer, :pointer],
508
- :rlCompileShader => [:pointer, :int],
509
- :rlLoadShaderProgram => [:uint, :uint],
510
- :rlUnloadShaderProgram => [:uint],
511
- :rlGetLocationUniform => [:uint, :pointer],
512
- :rlGetLocationAttrib => [:uint, :pointer],
513
- :rlSetUniform => [:int, :pointer, :int, :int],
514
- :rlSetUniformMatrix => [:int, Matrix.by_value],
515
- :rlSetUniformSampler => [:int, :uint],
516
- :rlSetShader => [:uint, :pointer],
517
- :rlLoadComputeShaderProgram => [:uint],
518
- :rlComputeShaderDispatch => [:uint, :uint, :uint],
519
- :rlLoadShaderBuffer => [:uint, :pointer, :int],
520
- :rlUnloadShaderBuffer => [:uint],
521
- :rlUpdateShaderBuffer => [:uint, :pointer, :uint, :uint],
522
- :rlBindShaderBuffer => [:uint, :uint],
523
- :rlReadShaderBuffer => [:uint, :pointer, :uint, :uint],
524
- :rlCopyShaderBuffer => [:uint, :uint, :uint, :uint, :uint],
525
- :rlGetShaderBufferSize => [:uint],
526
- :rlBindImageTexture => [:uint, :uint, :int, :bool],
527
- :rlGetMatrixModelview => [],
528
- :rlGetMatrixProjection => [],
529
- :rlGetMatrixTransform => [],
530
- :rlGetMatrixProjectionStereo => [:int],
531
- :rlGetMatrixViewOffsetStereo => [:int],
532
- :rlSetMatrixProjection => [Matrix.by_value],
533
- :rlSetMatrixModelview => [Matrix.by_value],
534
- :rlSetMatrixProjectionStereo => [Matrix.by_value, Matrix.by_value],
535
- :rlSetMatrixViewOffsetStereo => [Matrix.by_value, Matrix.by_value],
536
- :rlLoadDrawCube => [],
537
- :rlLoadDrawQuad => [],
538
- }
539
- retvals = {
540
- :rlMatrixMode => :void,
541
- :rlPushMatrix => :void,
542
- :rlPopMatrix => :void,
543
- :rlLoadIdentity => :void,
544
- :rlTranslatef => :void,
545
- :rlRotatef => :void,
546
- :rlScalef => :void,
547
- :rlMultMatrixf => :void,
548
- :rlFrustum => :void,
549
- :rlOrtho => :void,
550
- :rlViewport => :void,
551
- :rlBegin => :void,
552
- :rlEnd => :void,
553
- :rlVertex2i => :void,
554
- :rlVertex2f => :void,
555
- :rlVertex3f => :void,
556
- :rlTexCoord2f => :void,
557
- :rlNormal3f => :void,
558
- :rlColor4ub => :void,
559
- :rlColor3f => :void,
560
- :rlColor4f => :void,
561
- :rlEnableVertexArray => :bool,
562
- :rlDisableVertexArray => :void,
563
- :rlEnableVertexBuffer => :void,
564
- :rlDisableVertexBuffer => :void,
565
- :rlEnableVertexBufferElement => :void,
566
- :rlDisableVertexBufferElement => :void,
567
- :rlEnableVertexAttribute => :void,
568
- :rlDisableVertexAttribute => :void,
569
- :rlActiveTextureSlot => :void,
570
- :rlEnableTexture => :void,
571
- :rlDisableTexture => :void,
572
- :rlEnableTextureCubemap => :void,
573
- :rlDisableTextureCubemap => :void,
574
- :rlTextureParameters => :void,
575
- :rlEnableShader => :void,
576
- :rlDisableShader => :void,
577
- :rlEnableFramebuffer => :void,
578
- :rlDisableFramebuffer => :void,
579
- :rlActiveDrawBuffers => :void,
580
- :rlEnableColorBlend => :void,
581
- :rlDisableColorBlend => :void,
582
- :rlEnableDepthTest => :void,
583
- :rlDisableDepthTest => :void,
584
- :rlEnableDepthMask => :void,
585
- :rlDisableDepthMask => :void,
586
- :rlEnableBackfaceCulling => :void,
587
- :rlDisableBackfaceCulling => :void,
588
- :rlSetCullFace => :void,
589
- :rlEnableScissorTest => :void,
590
- :rlDisableScissorTest => :void,
591
- :rlScissor => :void,
592
- :rlEnableWireMode => :void,
593
- :rlDisableWireMode => :void,
594
- :rlSetLineWidth => :void,
595
- :rlGetLineWidth => :float,
596
- :rlEnableSmoothLines => :void,
597
- :rlDisableSmoothLines => :void,
598
- :rlEnableStereoRender => :void,
599
- :rlDisableStereoRender => :void,
600
- :rlIsStereoRenderEnabled => :bool,
601
- :rlClearColor => :void,
602
- :rlClearScreenBuffers => :void,
603
- :rlCheckErrors => :void,
604
- :rlSetBlendMode => :void,
605
- :rlSetBlendFactors => :void,
606
- :rlSetBlendFactorsSeparate => :void,
607
- :rlglInit => :void,
608
- :rlglClose => :void,
609
- :rlLoadExtensions => :void,
610
- :rlGetVersion => :int,
611
- :rlSetFramebufferWidth => :void,
612
- :rlGetFramebufferWidth => :int,
613
- :rlSetFramebufferHeight => :void,
614
- :rlGetFramebufferHeight => :int,
615
- :rlGetTextureIdDefault => :uint,
616
- :rlGetShaderIdDefault => :uint,
617
- :rlGetShaderLocsDefault => :pointer,
618
- :rlLoadRenderBatch => RlRenderBatch.by_value,
619
- :rlUnloadRenderBatch => :void,
620
- :rlDrawRenderBatch => :void,
621
- :rlSetRenderBatchActive => :void,
622
- :rlDrawRenderBatchActive => :void,
623
- :rlCheckRenderBatchLimit => :bool,
624
- :rlSetTexture => :void,
625
- :rlLoadVertexArray => :uint,
626
- :rlLoadVertexBuffer => :uint,
627
- :rlLoadVertexBufferElement => :uint,
628
- :rlUpdateVertexBuffer => :void,
629
- :rlUpdateVertexBufferElements => :void,
630
- :rlUnloadVertexArray => :void,
631
- :rlUnloadVertexBuffer => :void,
632
- :rlSetVertexAttribute => :void,
633
- :rlSetVertexAttributeDivisor => :void,
634
- :rlSetVertexAttributeDefault => :void,
635
- :rlDrawVertexArray => :void,
636
- :rlDrawVertexArrayElements => :void,
637
- :rlDrawVertexArrayInstanced => :void,
638
- :rlDrawVertexArrayElementsInstanced => :void,
639
- :rlLoadTexture => :uint,
640
- :rlLoadTextureDepth => :uint,
641
- :rlLoadTextureCubemap => :uint,
642
- :rlUpdateTexture => :void,
643
- :rlGetGlTextureFormats => :void,
644
- :rlGetPixelFormatName => :pointer,
645
- :rlUnloadTexture => :void,
646
- :rlGenTextureMipmaps => :void,
647
- :rlReadTexturePixels => :pointer,
648
- :rlReadScreenPixels => :pointer,
649
- :rlLoadFramebuffer => :uint,
650
- :rlFramebufferAttach => :void,
651
- :rlFramebufferComplete => :bool,
652
- :rlUnloadFramebuffer => :void,
653
- :rlLoadShaderCode => :uint,
654
- :rlCompileShader => :uint,
655
- :rlLoadShaderProgram => :uint,
656
- :rlUnloadShaderProgram => :void,
657
- :rlGetLocationUniform => :int,
658
- :rlGetLocationAttrib => :int,
659
- :rlSetUniform => :void,
660
- :rlSetUniformMatrix => :void,
661
- :rlSetUniformSampler => :void,
662
- :rlSetShader => :void,
663
- :rlLoadComputeShaderProgram => :uint,
664
- :rlComputeShaderDispatch => :void,
665
- :rlLoadShaderBuffer => :uint,
666
- :rlUnloadShaderBuffer => :void,
667
- :rlUpdateShaderBuffer => :void,
668
- :rlBindShaderBuffer => :void,
669
- :rlReadShaderBuffer => :void,
670
- :rlCopyShaderBuffer => :void,
671
- :rlGetShaderBufferSize => :uint,
672
- :rlBindImageTexture => :void,
673
- :rlGetMatrixModelview => Matrix.by_value,
674
- :rlGetMatrixProjection => Matrix.by_value,
675
- :rlGetMatrixTransform => Matrix.by_value,
676
- :rlGetMatrixProjectionStereo => Matrix.by_value,
677
- :rlGetMatrixViewOffsetStereo => Matrix.by_value,
678
- :rlSetMatrixProjection => :void,
679
- :rlSetMatrixModelview => :void,
680
- :rlSetMatrixProjectionStereo => :void,
681
- :rlSetMatrixViewOffsetStereo => :void,
682
- :rlLoadDrawCube => :void,
683
- :rlLoadDrawQuad => :void,
684
- }
685
- symbols.each do |sym|
686
- begin
687
- attach_function sym, args[sym], retvals[sym]
688
- rescue FFI::NotFoundError => error
689
- $stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
690
- end
1094
+ entries.each do |entry|
1095
+ attach_function entry[0], entry[1], entry[2], entry[3]
1096
+ rescue FFI::NotFoundError => e
1097
+ warn "[Warning] Failed to import #{entry[0]} (#{e})."
691
1098
  end
692
1099
  end
693
-
694
1100
  end
695
-