raylib-bindings 0.1.2 → 0.1.4

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