sdl3-bindings 1.0.0.beta.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/ChangeLog +159 -0
- data/LICENSE.txt +21 -0
- data/README.md +132 -0
- data/lib/sdl3.rb +150 -0
- data/lib/sdl3_assert.rb +61 -0
- data/lib/sdl3_asyncio.rb +68 -0
- data/lib/sdl3_atomic.rb +64 -0
- data/lib/sdl3_audio.rb +120 -0
- data/lib/sdl3_bits.rb +38 -0
- data/lib/sdl3_blendmode.rb +63 -0
- data/lib/sdl3_camera.rb +67 -0
- data/lib/sdl3_clipboard.rb +49 -0
- data/lib/sdl3_cpuinfo.rb +55 -0
- data/lib/sdl3_dialog.rb +60 -0
- data/lib/sdl3_endian.rb +39 -0
- data/lib/sdl3_error.rb +41 -0
- data/lib/sdl3_events.rb +680 -0
- data/lib/sdl3_filesystem.rb +82 -0
- data/lib/sdl3_gamepad.rb +216 -0
- data/lib/sdl3_gpu.rb +836 -0
- data/lib/sdl3_guid.rb +44 -0
- data/lib/sdl3_haptic.rb +209 -0
- data/lib/sdl3_hidapi.rb +84 -0
- data/lib/sdl3_hints.rb +285 -0
- data/lib/sdl3_image.rb +108 -0
- data/lib/sdl3_init.rb +71 -0
- data/lib/sdl3_iostream.rb +115 -0
- data/lib/sdl3_joystick.rb +174 -0
- data/lib/sdl3_keyboard.rb +81 -0
- data/lib/sdl3_keycode.rb +310 -0
- data/lib/sdl3_loadso.rb +39 -0
- data/lib/sdl3_locale.rb +44 -0
- data/lib/sdl3_log.rb +85 -0
- data/lib/sdl3_messagebox.rb +88 -0
- data/lib/sdl3_misc.rb +37 -0
- data/lib/sdl3_mixer.rb +179 -0
- data/lib/sdl3_mouse.rb +90 -0
- data/lib/sdl3_mutex.rb +77 -0
- data/lib/sdl3_pen.rb +56 -0
- data/lib/sdl3_pixels.rb +296 -0
- data/lib/sdl3_platform.rb +37 -0
- data/lib/sdl3_power.rb +44 -0
- data/lib/sdl3_process.rb +65 -0
- data/lib/sdl3_properties.rb +67 -0
- data/lib/sdl3_rect.rb +98 -0
- data/lib/sdl3_render.rb +240 -0
- data/lib/sdl3_revision.rb +37 -0
- data/lib/sdl3_scancode.rb +286 -0
- data/lib/sdl3_sensor.rb +61 -0
- data/lib/sdl3_sound.rb +98 -0
- data/lib/sdl3_stdinc.rb +229 -0
- data/lib/sdl3_storage.rb +70 -0
- data/lib/sdl3_surface.rb +122 -0
- data/lib/sdl3_thread.rb +65 -0
- data/lib/sdl3_time.rb +66 -0
- data/lib/sdl3_timer.rb +54 -0
- data/lib/sdl3_touch.rb +56 -0
- data/lib/sdl3_tray.rb +66 -0
- data/lib/sdl3_ttf.rb +216 -0
- data/lib/sdl3_version.rb +41 -0
- data/lib/sdl3_video.rb +341 -0
- data/lib/sdl3_vulkan.rb +46 -0
- metadata +118 -0
data/lib/sdl3_gpu.rb
ADDED
@@ -0,0 +1,836 @@
|
|
1
|
+
# Ruby-SDL3 : SDL3 wrapper for Ruby
|
2
|
+
#
|
3
|
+
# * https://github.com/vaiorabbit/sdl3-bindings
|
4
|
+
#
|
5
|
+
# [NOTICE] Autogenerated. Do not edit.
|
6
|
+
|
7
|
+
require 'ffi'
|
8
|
+
require_relative 'sdl3_pixels'
|
9
|
+
|
10
|
+
module SDL
|
11
|
+
extend FFI::Library
|
12
|
+
# Define/Macro
|
13
|
+
|
14
|
+
GPU_TEXTUREUSAGE_SAMPLER = 1 << 0
|
15
|
+
GPU_TEXTUREUSAGE_COLOR_TARGET = 1 << 1
|
16
|
+
GPU_TEXTUREUSAGE_DEPTH_STENCIL_TARGET = 1 << 2
|
17
|
+
GPU_TEXTUREUSAGE_GRAPHICS_STORAGE_READ = 1 << 3
|
18
|
+
GPU_TEXTUREUSAGE_COMPUTE_STORAGE_READ = 1 << 4
|
19
|
+
GPU_TEXTUREUSAGE_COMPUTE_STORAGE_WRITE = 1 << 5
|
20
|
+
GPU_TEXTUREUSAGE_COMPUTE_STORAGE_SIMULTANEOUS_READ_WRITE = 1 << 6
|
21
|
+
GPU_BUFFERUSAGE_VERTEX = 1 << 0
|
22
|
+
GPU_BUFFERUSAGE_INDEX = 1 << 1
|
23
|
+
GPU_BUFFERUSAGE_INDIRECT = 1 << 2
|
24
|
+
GPU_BUFFERUSAGE_GRAPHICS_STORAGE_READ = 1 << 3
|
25
|
+
GPU_BUFFERUSAGE_COMPUTE_STORAGE_READ = 1 << 4
|
26
|
+
GPU_BUFFERUSAGE_COMPUTE_STORAGE_WRITE = 1 << 5
|
27
|
+
GPU_SHADERFORMAT_INVALID = 0
|
28
|
+
GPU_SHADERFORMAT_PRIVATE = 1 << 0
|
29
|
+
GPU_SHADERFORMAT_SPIRV = 1 << 1
|
30
|
+
GPU_SHADERFORMAT_DXBC = 1 << 2
|
31
|
+
GPU_SHADERFORMAT_DXIL = 1 << 3
|
32
|
+
GPU_SHADERFORMAT_MSL = 1 << 4
|
33
|
+
GPU_SHADERFORMAT_METALLIB = 1 << 5
|
34
|
+
GPU_COLORCOMPONENT_R = 1 << 0
|
35
|
+
GPU_COLORCOMPONENT_G = 1 << 1
|
36
|
+
GPU_COLORCOMPONENT_B = 1 << 2
|
37
|
+
GPU_COLORCOMPONENT_A = 1 << 3
|
38
|
+
PROP_GPU_DEVICE_CREATE_DEBUGMODE_BOOLEAN = "SDL.gpu.device.create.debugmode"
|
39
|
+
PROP_GPU_DEVICE_CREATE_PREFERLOWPOWER_BOOLEAN = "SDL.gpu.device.create.preferlowpower"
|
40
|
+
PROP_GPU_DEVICE_CREATE_NAME_STRING = "SDL.gpu.device.create.name"
|
41
|
+
PROP_GPU_DEVICE_CREATE_SHADERS_PRIVATE_BOOLEAN = "SDL.gpu.device.create.shaders.private"
|
42
|
+
PROP_GPU_DEVICE_CREATE_SHADERS_SPIRV_BOOLEAN = "SDL.gpu.device.create.shaders.spirv"
|
43
|
+
PROP_GPU_DEVICE_CREATE_SHADERS_DXBC_BOOLEAN = "SDL.gpu.device.create.shaders.dxbc"
|
44
|
+
PROP_GPU_DEVICE_CREATE_SHADERS_DXIL_BOOLEAN = "SDL.gpu.device.create.shaders.dxil"
|
45
|
+
PROP_GPU_DEVICE_CREATE_SHADERS_MSL_BOOLEAN = "SDL.gpu.device.create.shaders.msl"
|
46
|
+
PROP_GPU_DEVICE_CREATE_SHADERS_METALLIB_BOOLEAN = "SDL.gpu.device.create.shaders.metallib"
|
47
|
+
PROP_GPU_DEVICE_CREATE_D3D12_SEMANTIC_NAME_STRING = "SDL.gpu.device.create.d3d12.semantic"
|
48
|
+
PROP_GPU_COMPUTEPIPELINE_CREATE_NAME_STRING = "SDL.gpu.computepipeline.create.name"
|
49
|
+
PROP_GPU_GRAPHICSPIPELINE_CREATE_NAME_STRING = "SDL.gpu.graphicspipeline.create.name"
|
50
|
+
PROP_GPU_SAMPLER_CREATE_NAME_STRING = "SDL.gpu.sampler.create.name"
|
51
|
+
PROP_GPU_SHADER_CREATE_NAME_STRING = "SDL.gpu.shader.create.name"
|
52
|
+
PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_R_FLOAT = "SDL.gpu.texture.create.d3d12.clear.r"
|
53
|
+
PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_G_FLOAT = "SDL.gpu.texture.create.d3d12.clear.g"
|
54
|
+
PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_B_FLOAT = "SDL.gpu.texture.create.d3d12.clear.b"
|
55
|
+
PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_A_FLOAT = "SDL.gpu.texture.create.d3d12.clear.a"
|
56
|
+
PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_DEPTH_FLOAT = "SDL.gpu.texture.create.d3d12.clear.depth"
|
57
|
+
PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_STENCIL_UINT8 = "SDL.gpu.texture.create.d3d12.clear.stencil"
|
58
|
+
PROP_GPU_TEXTURE_CREATE_NAME_STRING = "SDL.gpu.texture.create.name"
|
59
|
+
PROP_GPU_BUFFER_CREATE_NAME_STRING = "SDL.gpu.buffer.create.name"
|
60
|
+
PROP_GPU_TRANSFERBUFFER_CREATE_NAME_STRING = "SDL.gpu.transferbuffer.create.name"
|
61
|
+
|
62
|
+
# Enum
|
63
|
+
|
64
|
+
GPU_PRIMITIVETYPE_TRIANGLELIST = 0
|
65
|
+
GPU_PRIMITIVETYPE_TRIANGLESTRIP = 1
|
66
|
+
GPU_PRIMITIVETYPE_LINELIST = 2
|
67
|
+
GPU_PRIMITIVETYPE_LINESTRIP = 3
|
68
|
+
GPU_PRIMITIVETYPE_POINTLIST = 4
|
69
|
+
GPU_LOADOP_LOAD = 0
|
70
|
+
GPU_LOADOP_CLEAR = 1
|
71
|
+
GPU_LOADOP_DONT_CARE = 2
|
72
|
+
GPU_STOREOP_STORE = 0
|
73
|
+
GPU_STOREOP_DONT_CARE = 1
|
74
|
+
GPU_STOREOP_RESOLVE = 2
|
75
|
+
GPU_STOREOP_RESOLVE_AND_STORE = 3
|
76
|
+
GPU_INDEXELEMENTSIZE_16BIT = 0
|
77
|
+
GPU_INDEXELEMENTSIZE_32BIT = 1
|
78
|
+
GPU_TEXTUREFORMAT_INVALID = 0
|
79
|
+
GPU_TEXTUREFORMAT_A8_UNORM = 1
|
80
|
+
GPU_TEXTUREFORMAT_R8_UNORM = 2
|
81
|
+
GPU_TEXTUREFORMAT_R8G8_UNORM = 3
|
82
|
+
GPU_TEXTUREFORMAT_R8G8B8A8_UNORM = 4
|
83
|
+
GPU_TEXTUREFORMAT_R16_UNORM = 5
|
84
|
+
GPU_TEXTUREFORMAT_R16G16_UNORM = 6
|
85
|
+
GPU_TEXTUREFORMAT_R16G16B16A16_UNORM = 7
|
86
|
+
GPU_TEXTUREFORMAT_R10G10B10A2_UNORM = 8
|
87
|
+
GPU_TEXTUREFORMAT_B5G6R5_UNORM = 9
|
88
|
+
GPU_TEXTUREFORMAT_B5G5R5A1_UNORM = 10
|
89
|
+
GPU_TEXTUREFORMAT_B4G4R4A4_UNORM = 11
|
90
|
+
GPU_TEXTUREFORMAT_B8G8R8A8_UNORM = 12
|
91
|
+
GPU_TEXTUREFORMAT_BC1_RGBA_UNORM = 13
|
92
|
+
GPU_TEXTUREFORMAT_BC2_RGBA_UNORM = 14
|
93
|
+
GPU_TEXTUREFORMAT_BC3_RGBA_UNORM = 15
|
94
|
+
GPU_TEXTUREFORMAT_BC4_R_UNORM = 16
|
95
|
+
GPU_TEXTUREFORMAT_BC5_RG_UNORM = 17
|
96
|
+
GPU_TEXTUREFORMAT_BC7_RGBA_UNORM = 18
|
97
|
+
GPU_TEXTUREFORMAT_BC6H_RGB_FLOAT = 19
|
98
|
+
GPU_TEXTUREFORMAT_BC6H_RGB_UFLOAT = 20
|
99
|
+
GPU_TEXTUREFORMAT_R8_SNORM = 21
|
100
|
+
GPU_TEXTUREFORMAT_R8G8_SNORM = 22
|
101
|
+
GPU_TEXTUREFORMAT_R8G8B8A8_SNORM = 23
|
102
|
+
GPU_TEXTUREFORMAT_R16_SNORM = 24
|
103
|
+
GPU_TEXTUREFORMAT_R16G16_SNORM = 25
|
104
|
+
GPU_TEXTUREFORMAT_R16G16B16A16_SNORM = 26
|
105
|
+
GPU_TEXTUREFORMAT_R16_FLOAT = 27
|
106
|
+
GPU_TEXTUREFORMAT_R16G16_FLOAT = 28
|
107
|
+
GPU_TEXTUREFORMAT_R16G16B16A16_FLOAT = 29
|
108
|
+
GPU_TEXTUREFORMAT_R32_FLOAT = 30
|
109
|
+
GPU_TEXTUREFORMAT_R32G32_FLOAT = 31
|
110
|
+
GPU_TEXTUREFORMAT_R32G32B32A32_FLOAT = 32
|
111
|
+
GPU_TEXTUREFORMAT_R11G11B10_UFLOAT = 33
|
112
|
+
GPU_TEXTUREFORMAT_R8_UINT = 34
|
113
|
+
GPU_TEXTUREFORMAT_R8G8_UINT = 35
|
114
|
+
GPU_TEXTUREFORMAT_R8G8B8A8_UINT = 36
|
115
|
+
GPU_TEXTUREFORMAT_R16_UINT = 37
|
116
|
+
GPU_TEXTUREFORMAT_R16G16_UINT = 38
|
117
|
+
GPU_TEXTUREFORMAT_R16G16B16A16_UINT = 39
|
118
|
+
GPU_TEXTUREFORMAT_R32_UINT = 40
|
119
|
+
GPU_TEXTUREFORMAT_R32G32_UINT = 41
|
120
|
+
GPU_TEXTUREFORMAT_R32G32B32A32_UINT = 42
|
121
|
+
GPU_TEXTUREFORMAT_R8_INT = 43
|
122
|
+
GPU_TEXTUREFORMAT_R8G8_INT = 44
|
123
|
+
GPU_TEXTUREFORMAT_R8G8B8A8_INT = 45
|
124
|
+
GPU_TEXTUREFORMAT_R16_INT = 46
|
125
|
+
GPU_TEXTUREFORMAT_R16G16_INT = 47
|
126
|
+
GPU_TEXTUREFORMAT_R16G16B16A16_INT = 48
|
127
|
+
GPU_TEXTUREFORMAT_R32_INT = 49
|
128
|
+
GPU_TEXTUREFORMAT_R32G32_INT = 50
|
129
|
+
GPU_TEXTUREFORMAT_R32G32B32A32_INT = 51
|
130
|
+
GPU_TEXTUREFORMAT_R8G8B8A8_UNORM_SRGB = 52
|
131
|
+
GPU_TEXTUREFORMAT_B8G8R8A8_UNORM_SRGB = 53
|
132
|
+
GPU_TEXTUREFORMAT_BC1_RGBA_UNORM_SRGB = 54
|
133
|
+
GPU_TEXTUREFORMAT_BC2_RGBA_UNORM_SRGB = 55
|
134
|
+
GPU_TEXTUREFORMAT_BC3_RGBA_UNORM_SRGB = 56
|
135
|
+
GPU_TEXTUREFORMAT_BC7_RGBA_UNORM_SRGB = 57
|
136
|
+
GPU_TEXTUREFORMAT_D16_UNORM = 58
|
137
|
+
GPU_TEXTUREFORMAT_D24_UNORM = 59
|
138
|
+
GPU_TEXTUREFORMAT_D32_FLOAT = 60
|
139
|
+
GPU_TEXTUREFORMAT_D24_UNORM_S8_UINT = 61
|
140
|
+
GPU_TEXTUREFORMAT_D32_FLOAT_S8_UINT = 62
|
141
|
+
GPU_TEXTUREFORMAT_ASTC_4x4_UNORM = 63
|
142
|
+
GPU_TEXTUREFORMAT_ASTC_5x4_UNORM = 64
|
143
|
+
GPU_TEXTUREFORMAT_ASTC_5x5_UNORM = 65
|
144
|
+
GPU_TEXTUREFORMAT_ASTC_6x5_UNORM = 66
|
145
|
+
GPU_TEXTUREFORMAT_ASTC_6x6_UNORM = 67
|
146
|
+
GPU_TEXTUREFORMAT_ASTC_8x5_UNORM = 68
|
147
|
+
GPU_TEXTUREFORMAT_ASTC_8x6_UNORM = 69
|
148
|
+
GPU_TEXTUREFORMAT_ASTC_8x8_UNORM = 70
|
149
|
+
GPU_TEXTUREFORMAT_ASTC_10x5_UNORM = 71
|
150
|
+
GPU_TEXTUREFORMAT_ASTC_10x6_UNORM = 72
|
151
|
+
GPU_TEXTUREFORMAT_ASTC_10x8_UNORM = 73
|
152
|
+
GPU_TEXTUREFORMAT_ASTC_10x10_UNORM = 74
|
153
|
+
GPU_TEXTUREFORMAT_ASTC_12x10_UNORM = 75
|
154
|
+
GPU_TEXTUREFORMAT_ASTC_12x12_UNORM = 76
|
155
|
+
GPU_TEXTUREFORMAT_ASTC_4x4_UNORM_SRGB = 77
|
156
|
+
GPU_TEXTUREFORMAT_ASTC_5x4_UNORM_SRGB = 78
|
157
|
+
GPU_TEXTUREFORMAT_ASTC_5x5_UNORM_SRGB = 79
|
158
|
+
GPU_TEXTUREFORMAT_ASTC_6x5_UNORM_SRGB = 80
|
159
|
+
GPU_TEXTUREFORMAT_ASTC_6x6_UNORM_SRGB = 81
|
160
|
+
GPU_TEXTUREFORMAT_ASTC_8x5_UNORM_SRGB = 82
|
161
|
+
GPU_TEXTUREFORMAT_ASTC_8x6_UNORM_SRGB = 83
|
162
|
+
GPU_TEXTUREFORMAT_ASTC_8x8_UNORM_SRGB = 84
|
163
|
+
GPU_TEXTUREFORMAT_ASTC_10x5_UNORM_SRGB = 85
|
164
|
+
GPU_TEXTUREFORMAT_ASTC_10x6_UNORM_SRGB = 86
|
165
|
+
GPU_TEXTUREFORMAT_ASTC_10x8_UNORM_SRGB = 87
|
166
|
+
GPU_TEXTUREFORMAT_ASTC_10x10_UNORM_SRGB = 88
|
167
|
+
GPU_TEXTUREFORMAT_ASTC_12x10_UNORM_SRGB = 89
|
168
|
+
GPU_TEXTUREFORMAT_ASTC_12x12_UNORM_SRGB = 90
|
169
|
+
GPU_TEXTUREFORMAT_ASTC_4x4_FLOAT = 91
|
170
|
+
GPU_TEXTUREFORMAT_ASTC_5x4_FLOAT = 92
|
171
|
+
GPU_TEXTUREFORMAT_ASTC_5x5_FLOAT = 93
|
172
|
+
GPU_TEXTUREFORMAT_ASTC_6x5_FLOAT = 94
|
173
|
+
GPU_TEXTUREFORMAT_ASTC_6x6_FLOAT = 95
|
174
|
+
GPU_TEXTUREFORMAT_ASTC_8x5_FLOAT = 96
|
175
|
+
GPU_TEXTUREFORMAT_ASTC_8x6_FLOAT = 97
|
176
|
+
GPU_TEXTUREFORMAT_ASTC_8x8_FLOAT = 98
|
177
|
+
GPU_TEXTUREFORMAT_ASTC_10x5_FLOAT = 99
|
178
|
+
GPU_TEXTUREFORMAT_ASTC_10x6_FLOAT = 100
|
179
|
+
GPU_TEXTUREFORMAT_ASTC_10x8_FLOAT = 101
|
180
|
+
GPU_TEXTUREFORMAT_ASTC_10x10_FLOAT = 102
|
181
|
+
GPU_TEXTUREFORMAT_ASTC_12x10_FLOAT = 103
|
182
|
+
GPU_TEXTUREFORMAT_ASTC_12x12_FLOAT = 104
|
183
|
+
GPU_TEXTURETYPE_2D = 0
|
184
|
+
GPU_TEXTURETYPE_2D_ARRAY = 1
|
185
|
+
GPU_TEXTURETYPE_3D = 2
|
186
|
+
GPU_TEXTURETYPE_CUBE = 3
|
187
|
+
GPU_TEXTURETYPE_CUBE_ARRAY = 4
|
188
|
+
GPU_SAMPLECOUNT_1 = 0
|
189
|
+
GPU_SAMPLECOUNT_2 = 1
|
190
|
+
GPU_SAMPLECOUNT_4 = 2
|
191
|
+
GPU_SAMPLECOUNT_8 = 3
|
192
|
+
GPU_CUBEMAPFACE_POSITIVEX = 0
|
193
|
+
GPU_CUBEMAPFACE_NEGATIVEX = 1
|
194
|
+
GPU_CUBEMAPFACE_POSITIVEY = 2
|
195
|
+
GPU_CUBEMAPFACE_NEGATIVEY = 3
|
196
|
+
GPU_CUBEMAPFACE_POSITIVEZ = 4
|
197
|
+
GPU_CUBEMAPFACE_NEGATIVEZ = 5
|
198
|
+
GPU_TRANSFERBUFFERUSAGE_UPLOAD = 0
|
199
|
+
GPU_TRANSFERBUFFERUSAGE_DOWNLOAD = 1
|
200
|
+
GPU_SHADERSTAGE_VERTEX = 0
|
201
|
+
GPU_SHADERSTAGE_FRAGMENT = 1
|
202
|
+
GPU_VERTEXELEMENTFORMAT_INVALID = 0
|
203
|
+
GPU_VERTEXELEMENTFORMAT_INT = 1
|
204
|
+
GPU_VERTEXELEMENTFORMAT_INT2 = 2
|
205
|
+
GPU_VERTEXELEMENTFORMAT_INT3 = 3
|
206
|
+
GPU_VERTEXELEMENTFORMAT_INT4 = 4
|
207
|
+
GPU_VERTEXELEMENTFORMAT_UINT = 5
|
208
|
+
GPU_VERTEXELEMENTFORMAT_UINT2 = 6
|
209
|
+
GPU_VERTEXELEMENTFORMAT_UINT3 = 7
|
210
|
+
GPU_VERTEXELEMENTFORMAT_UINT4 = 8
|
211
|
+
GPU_VERTEXELEMENTFORMAT_FLOAT = 9
|
212
|
+
GPU_VERTEXELEMENTFORMAT_FLOAT2 = 10
|
213
|
+
GPU_VERTEXELEMENTFORMAT_FLOAT3 = 11
|
214
|
+
GPU_VERTEXELEMENTFORMAT_FLOAT4 = 12
|
215
|
+
GPU_VERTEXELEMENTFORMAT_BYTE2 = 13
|
216
|
+
GPU_VERTEXELEMENTFORMAT_BYTE4 = 14
|
217
|
+
GPU_VERTEXELEMENTFORMAT_UBYTE2 = 15
|
218
|
+
GPU_VERTEXELEMENTFORMAT_UBYTE4 = 16
|
219
|
+
GPU_VERTEXELEMENTFORMAT_BYTE2_NORM = 17
|
220
|
+
GPU_VERTEXELEMENTFORMAT_BYTE4_NORM = 18
|
221
|
+
GPU_VERTEXELEMENTFORMAT_UBYTE2_NORM = 19
|
222
|
+
GPU_VERTEXELEMENTFORMAT_UBYTE4_NORM = 20
|
223
|
+
GPU_VERTEXELEMENTFORMAT_SHORT2 = 21
|
224
|
+
GPU_VERTEXELEMENTFORMAT_SHORT4 = 22
|
225
|
+
GPU_VERTEXELEMENTFORMAT_USHORT2 = 23
|
226
|
+
GPU_VERTEXELEMENTFORMAT_USHORT4 = 24
|
227
|
+
GPU_VERTEXELEMENTFORMAT_SHORT2_NORM = 25
|
228
|
+
GPU_VERTEXELEMENTFORMAT_SHORT4_NORM = 26
|
229
|
+
GPU_VERTEXELEMENTFORMAT_USHORT2_NORM = 27
|
230
|
+
GPU_VERTEXELEMENTFORMAT_USHORT4_NORM = 28
|
231
|
+
GPU_VERTEXELEMENTFORMAT_HALF2 = 29
|
232
|
+
GPU_VERTEXELEMENTFORMAT_HALF4 = 30
|
233
|
+
GPU_VERTEXINPUTRATE_VERTEX = 0
|
234
|
+
GPU_VERTEXINPUTRATE_INSTANCE = 1
|
235
|
+
GPU_FILLMODE_FILL = 0
|
236
|
+
GPU_FILLMODE_LINE = 1
|
237
|
+
GPU_CULLMODE_NONE = 0
|
238
|
+
GPU_CULLMODE_FRONT = 1
|
239
|
+
GPU_CULLMODE_BACK = 2
|
240
|
+
GPU_FRONTFACE_COUNTER_CLOCKWISE = 0
|
241
|
+
GPU_FRONTFACE_CLOCKWISE = 1
|
242
|
+
GPU_COMPAREOP_INVALID = 0
|
243
|
+
GPU_COMPAREOP_NEVER = 1
|
244
|
+
GPU_COMPAREOP_LESS = 2
|
245
|
+
GPU_COMPAREOP_EQUAL = 3
|
246
|
+
GPU_COMPAREOP_LESS_OR_EQUAL = 4
|
247
|
+
GPU_COMPAREOP_GREATER = 5
|
248
|
+
GPU_COMPAREOP_NOT_EQUAL = 6
|
249
|
+
GPU_COMPAREOP_GREATER_OR_EQUAL = 7
|
250
|
+
GPU_COMPAREOP_ALWAYS = 8
|
251
|
+
GPU_STENCILOP_INVALID = 0
|
252
|
+
GPU_STENCILOP_KEEP = 1
|
253
|
+
GPU_STENCILOP_ZERO = 2
|
254
|
+
GPU_STENCILOP_REPLACE = 3
|
255
|
+
GPU_STENCILOP_INCREMENT_AND_CLAMP = 4
|
256
|
+
GPU_STENCILOP_DECREMENT_AND_CLAMP = 5
|
257
|
+
GPU_STENCILOP_INVERT = 6
|
258
|
+
GPU_STENCILOP_INCREMENT_AND_WRAP = 7
|
259
|
+
GPU_STENCILOP_DECREMENT_AND_WRAP = 8
|
260
|
+
GPU_BLENDOP_INVALID = 0
|
261
|
+
GPU_BLENDOP_ADD = 1
|
262
|
+
GPU_BLENDOP_SUBTRACT = 2
|
263
|
+
GPU_BLENDOP_REVERSE_SUBTRACT = 3
|
264
|
+
GPU_BLENDOP_MIN = 4
|
265
|
+
GPU_BLENDOP_MAX = 5
|
266
|
+
GPU_BLENDFACTOR_INVALID = 0
|
267
|
+
GPU_BLENDFACTOR_ZERO = 1
|
268
|
+
GPU_BLENDFACTOR_ONE = 2
|
269
|
+
GPU_BLENDFACTOR_SRC_COLOR = 3
|
270
|
+
GPU_BLENDFACTOR_ONE_MINUS_SRC_COLOR = 4
|
271
|
+
GPU_BLENDFACTOR_DST_COLOR = 5
|
272
|
+
GPU_BLENDFACTOR_ONE_MINUS_DST_COLOR = 6
|
273
|
+
GPU_BLENDFACTOR_SRC_ALPHA = 7
|
274
|
+
GPU_BLENDFACTOR_ONE_MINUS_SRC_ALPHA = 8
|
275
|
+
GPU_BLENDFACTOR_DST_ALPHA = 9
|
276
|
+
GPU_BLENDFACTOR_ONE_MINUS_DST_ALPHA = 10
|
277
|
+
GPU_BLENDFACTOR_CONSTANT_COLOR = 11
|
278
|
+
GPU_BLENDFACTOR_ONE_MINUS_CONSTANT_COLOR = 12
|
279
|
+
GPU_BLENDFACTOR_SRC_ALPHA_SATURATE = 13
|
280
|
+
GPU_FILTER_NEAREST = 0
|
281
|
+
GPU_FILTER_LINEAR = 1
|
282
|
+
GPU_SAMPLERMIPMAPMODE_NEAREST = 0
|
283
|
+
GPU_SAMPLERMIPMAPMODE_LINEAR = 1
|
284
|
+
GPU_SAMPLERADDRESSMODE_REPEAT = 0
|
285
|
+
GPU_SAMPLERADDRESSMODE_MIRRORED_REPEAT = 1
|
286
|
+
GPU_SAMPLERADDRESSMODE_CLAMP_TO_EDGE = 2
|
287
|
+
GPU_PRESENTMODE_VSYNC = 0
|
288
|
+
GPU_PRESENTMODE_IMMEDIATE = 1
|
289
|
+
GPU_PRESENTMODE_MAILBOX = 2
|
290
|
+
GPU_SWAPCHAINCOMPOSITION_SDR = 0
|
291
|
+
GPU_SWAPCHAINCOMPOSITION_SDR_LINEAR = 1
|
292
|
+
GPU_SWAPCHAINCOMPOSITION_HDR_EXTENDED_LINEAR = 2
|
293
|
+
GPU_SWAPCHAINCOMPOSITION_HDR10_ST2084 = 3
|
294
|
+
|
295
|
+
# Typedef
|
296
|
+
|
297
|
+
typedef :int, :SDL_GPUPrimitiveType
|
298
|
+
typedef :int, :SDL_GPULoadOp
|
299
|
+
typedef :int, :SDL_GPUStoreOp
|
300
|
+
typedef :int, :SDL_GPUIndexElementSize
|
301
|
+
typedef :int, :SDL_GPUTextureFormat
|
302
|
+
typedef :uint, :SDL_GPUTextureUsageFlags
|
303
|
+
typedef :int, :SDL_GPUTextureType
|
304
|
+
typedef :int, :SDL_GPUSampleCount
|
305
|
+
typedef :int, :SDL_GPUCubeMapFace
|
306
|
+
typedef :uint, :SDL_GPUBufferUsageFlags
|
307
|
+
typedef :int, :SDL_GPUTransferBufferUsage
|
308
|
+
typedef :int, :SDL_GPUShaderStage
|
309
|
+
typedef :uint, :SDL_GPUShaderFormat
|
310
|
+
typedef :int, :SDL_GPUVertexElementFormat
|
311
|
+
typedef :int, :SDL_GPUVertexInputRate
|
312
|
+
typedef :int, :SDL_GPUFillMode
|
313
|
+
typedef :int, :SDL_GPUCullMode
|
314
|
+
typedef :int, :SDL_GPUFrontFace
|
315
|
+
typedef :int, :SDL_GPUCompareOp
|
316
|
+
typedef :int, :SDL_GPUStencilOp
|
317
|
+
typedef :int, :SDL_GPUBlendOp
|
318
|
+
typedef :int, :SDL_GPUBlendFactor
|
319
|
+
typedef :uchar, :SDL_GPUColorComponentFlags
|
320
|
+
typedef :int, :SDL_GPUFilter
|
321
|
+
typedef :int, :SDL_GPUSamplerMipmapMode
|
322
|
+
typedef :int, :SDL_GPUSamplerAddressMode
|
323
|
+
typedef :int, :SDL_GPUPresentMode
|
324
|
+
typedef :int, :SDL_GPUSwapchainComposition
|
325
|
+
|
326
|
+
# Struct
|
327
|
+
|
328
|
+
class GPUViewport < FFI::Struct
|
329
|
+
layout(
|
330
|
+
:x, :float,
|
331
|
+
:y, :float,
|
332
|
+
:w, :float,
|
333
|
+
:h, :float,
|
334
|
+
:min_depth, :float,
|
335
|
+
:max_depth, :float,
|
336
|
+
)
|
337
|
+
end
|
338
|
+
|
339
|
+
class GPUTextureTransferInfo < FFI::Struct
|
340
|
+
layout(
|
341
|
+
:transfer_buffer, :pointer,
|
342
|
+
:offset, :uint,
|
343
|
+
:pixels_per_row, :uint,
|
344
|
+
:rows_per_layer, :uint,
|
345
|
+
)
|
346
|
+
end
|
347
|
+
|
348
|
+
class GPUTransferBufferLocation < FFI::Struct
|
349
|
+
layout(
|
350
|
+
:transfer_buffer, :pointer,
|
351
|
+
:offset, :uint,
|
352
|
+
)
|
353
|
+
end
|
354
|
+
|
355
|
+
class GPUTextureLocation < FFI::Struct
|
356
|
+
layout(
|
357
|
+
:texture, :pointer,
|
358
|
+
:mip_level, :uint,
|
359
|
+
:layer, :uint,
|
360
|
+
:x, :uint,
|
361
|
+
:y, :uint,
|
362
|
+
:z, :uint,
|
363
|
+
)
|
364
|
+
end
|
365
|
+
|
366
|
+
class GPUTextureRegion < FFI::Struct
|
367
|
+
layout(
|
368
|
+
:texture, :pointer,
|
369
|
+
:mip_level, :uint,
|
370
|
+
:layer, :uint,
|
371
|
+
:x, :uint,
|
372
|
+
:y, :uint,
|
373
|
+
:z, :uint,
|
374
|
+
:w, :uint,
|
375
|
+
:h, :uint,
|
376
|
+
:d, :uint,
|
377
|
+
)
|
378
|
+
end
|
379
|
+
|
380
|
+
class GPUBlitRegion < FFI::Struct
|
381
|
+
layout(
|
382
|
+
:texture, :pointer,
|
383
|
+
:mip_level, :uint,
|
384
|
+
:layer_or_depth_plane, :uint,
|
385
|
+
:x, :uint,
|
386
|
+
:y, :uint,
|
387
|
+
:w, :uint,
|
388
|
+
:h, :uint,
|
389
|
+
)
|
390
|
+
end
|
391
|
+
|
392
|
+
class GPUBufferLocation < FFI::Struct
|
393
|
+
layout(
|
394
|
+
:buffer, :pointer,
|
395
|
+
:offset, :uint,
|
396
|
+
)
|
397
|
+
end
|
398
|
+
|
399
|
+
class GPUBufferRegion < FFI::Struct
|
400
|
+
layout(
|
401
|
+
:buffer, :pointer,
|
402
|
+
:offset, :uint,
|
403
|
+
:size, :uint,
|
404
|
+
)
|
405
|
+
end
|
406
|
+
|
407
|
+
class GPUIndirectDrawCommand < FFI::Struct
|
408
|
+
layout(
|
409
|
+
:num_vertices, :uint,
|
410
|
+
:num_instances, :uint,
|
411
|
+
:first_vertex, :uint,
|
412
|
+
:first_instance, :uint,
|
413
|
+
)
|
414
|
+
end
|
415
|
+
|
416
|
+
class GPUIndexedIndirectDrawCommand < FFI::Struct
|
417
|
+
layout(
|
418
|
+
:num_indices, :uint,
|
419
|
+
:num_instances, :uint,
|
420
|
+
:first_index, :uint,
|
421
|
+
:vertex_offset, :int,
|
422
|
+
:first_instance, :uint,
|
423
|
+
)
|
424
|
+
end
|
425
|
+
|
426
|
+
class GPUIndirectDispatchCommand < FFI::Struct
|
427
|
+
layout(
|
428
|
+
:groupcount_x, :uint,
|
429
|
+
:groupcount_y, :uint,
|
430
|
+
:groupcount_z, :uint,
|
431
|
+
)
|
432
|
+
end
|
433
|
+
|
434
|
+
class GPUSamplerCreateInfo < FFI::Struct
|
435
|
+
layout(
|
436
|
+
:min_filter, :int,
|
437
|
+
:mag_filter, :int,
|
438
|
+
:mipmap_mode, :int,
|
439
|
+
:address_mode_u, :int,
|
440
|
+
:address_mode_v, :int,
|
441
|
+
:address_mode_w, :int,
|
442
|
+
:mip_lod_bias, :float,
|
443
|
+
:max_anisotropy, :float,
|
444
|
+
:compare_op, :int,
|
445
|
+
:min_lod, :float,
|
446
|
+
:max_lod, :float,
|
447
|
+
:enable_anisotropy, :bool,
|
448
|
+
:enable_compare, :bool,
|
449
|
+
:padding1, :uchar,
|
450
|
+
:padding2, :uchar,
|
451
|
+
:props, :uint,
|
452
|
+
)
|
453
|
+
end
|
454
|
+
|
455
|
+
class GPUVertexBufferDescription < FFI::Struct
|
456
|
+
layout(
|
457
|
+
:slot, :uint,
|
458
|
+
:pitch, :uint,
|
459
|
+
:input_rate, :int,
|
460
|
+
:instance_step_rate, :uint,
|
461
|
+
)
|
462
|
+
end
|
463
|
+
|
464
|
+
class GPUVertexAttribute < FFI::Struct
|
465
|
+
layout(
|
466
|
+
:location, :uint,
|
467
|
+
:buffer_slot, :uint,
|
468
|
+
:format, :int,
|
469
|
+
:offset, :uint,
|
470
|
+
)
|
471
|
+
end
|
472
|
+
|
473
|
+
class GPUVertexInputState < FFI::Struct
|
474
|
+
layout(
|
475
|
+
:vertex_buffer_descriptions, :pointer,
|
476
|
+
:num_vertex_buffers, :uint,
|
477
|
+
:vertex_attributes, :pointer,
|
478
|
+
:num_vertex_attributes, :uint,
|
479
|
+
)
|
480
|
+
end
|
481
|
+
|
482
|
+
class GPUStencilOpState < FFI::Struct
|
483
|
+
layout(
|
484
|
+
:fail_op, :int,
|
485
|
+
:pass_op, :int,
|
486
|
+
:depth_fail_op, :int,
|
487
|
+
:compare_op, :int,
|
488
|
+
)
|
489
|
+
end
|
490
|
+
|
491
|
+
class GPUColorTargetBlendState < FFI::Struct
|
492
|
+
layout(
|
493
|
+
:src_color_blendfactor, :int,
|
494
|
+
:dst_color_blendfactor, :int,
|
495
|
+
:color_blend_op, :int,
|
496
|
+
:src_alpha_blendfactor, :int,
|
497
|
+
:dst_alpha_blendfactor, :int,
|
498
|
+
:alpha_blend_op, :int,
|
499
|
+
:color_write_mask, :uchar,
|
500
|
+
:enable_blend, :bool,
|
501
|
+
:enable_color_write_mask, :bool,
|
502
|
+
:padding1, :uchar,
|
503
|
+
:padding2, :uchar,
|
504
|
+
)
|
505
|
+
end
|
506
|
+
|
507
|
+
class GPUShaderCreateInfo < FFI::Struct
|
508
|
+
layout(
|
509
|
+
:code_size, :ulong_long,
|
510
|
+
:code, :pointer,
|
511
|
+
:entrypoint, :pointer,
|
512
|
+
:format, :uint,
|
513
|
+
:stage, :int,
|
514
|
+
:num_samplers, :uint,
|
515
|
+
:num_storage_textures, :uint,
|
516
|
+
:num_storage_buffers, :uint,
|
517
|
+
:num_uniform_buffers, :uint,
|
518
|
+
:props, :uint,
|
519
|
+
)
|
520
|
+
end
|
521
|
+
|
522
|
+
class GPUTextureCreateInfo < FFI::Struct
|
523
|
+
layout(
|
524
|
+
:type, :int,
|
525
|
+
:format, :int,
|
526
|
+
:usage, :uint,
|
527
|
+
:width, :uint,
|
528
|
+
:height, :uint,
|
529
|
+
:layer_count_or_depth, :uint,
|
530
|
+
:num_levels, :uint,
|
531
|
+
:sample_count, :int,
|
532
|
+
:props, :uint,
|
533
|
+
)
|
534
|
+
end
|
535
|
+
|
536
|
+
class GPUBufferCreateInfo < FFI::Struct
|
537
|
+
layout(
|
538
|
+
:usage, :uint,
|
539
|
+
:size, :uint,
|
540
|
+
:props, :uint,
|
541
|
+
)
|
542
|
+
end
|
543
|
+
|
544
|
+
class GPUTransferBufferCreateInfo < FFI::Struct
|
545
|
+
layout(
|
546
|
+
:usage, :int,
|
547
|
+
:size, :uint,
|
548
|
+
:props, :uint,
|
549
|
+
)
|
550
|
+
end
|
551
|
+
|
552
|
+
class GPURasterizerState < FFI::Struct
|
553
|
+
layout(
|
554
|
+
:fill_mode, :int,
|
555
|
+
:cull_mode, :int,
|
556
|
+
:front_face, :int,
|
557
|
+
:depth_bias_constant_factor, :float,
|
558
|
+
:depth_bias_clamp, :float,
|
559
|
+
:depth_bias_slope_factor, :float,
|
560
|
+
:enable_depth_bias, :bool,
|
561
|
+
:enable_depth_clip, :bool,
|
562
|
+
:padding1, :uchar,
|
563
|
+
:padding2, :uchar,
|
564
|
+
)
|
565
|
+
end
|
566
|
+
|
567
|
+
class GPUMultisampleState < FFI::Struct
|
568
|
+
layout(
|
569
|
+
:sample_count, :int,
|
570
|
+
:sample_mask, :uint,
|
571
|
+
:enable_mask, :bool,
|
572
|
+
:padding1, :uchar,
|
573
|
+
:padding2, :uchar,
|
574
|
+
:padding3, :uchar,
|
575
|
+
)
|
576
|
+
end
|
577
|
+
|
578
|
+
class GPUDepthStencilState < FFI::Struct
|
579
|
+
layout(
|
580
|
+
:compare_op, :int,
|
581
|
+
:back_stencil_state, GPUStencilOpState,
|
582
|
+
:front_stencil_state, GPUStencilOpState,
|
583
|
+
:compare_mask, :uchar,
|
584
|
+
:write_mask, :uchar,
|
585
|
+
:enable_depth_test, :bool,
|
586
|
+
:enable_depth_write, :bool,
|
587
|
+
:enable_stencil_test, :bool,
|
588
|
+
:padding1, :uchar,
|
589
|
+
:padding2, :uchar,
|
590
|
+
:padding3, :uchar,
|
591
|
+
)
|
592
|
+
end
|
593
|
+
|
594
|
+
class GPUColorTargetDescription < FFI::Struct
|
595
|
+
layout(
|
596
|
+
:format, :int,
|
597
|
+
:blend_state, GPUColorTargetBlendState,
|
598
|
+
)
|
599
|
+
end
|
600
|
+
|
601
|
+
class GPUGraphicsPipelineTargetInfo < FFI::Struct
|
602
|
+
layout(
|
603
|
+
:color_target_descriptions, :pointer,
|
604
|
+
:num_color_targets, :uint,
|
605
|
+
:depth_stencil_format, :int,
|
606
|
+
:has_depth_stencil_target, :bool,
|
607
|
+
:padding1, :uchar,
|
608
|
+
:padding2, :uchar,
|
609
|
+
:padding3, :uchar,
|
610
|
+
)
|
611
|
+
end
|
612
|
+
|
613
|
+
class GPUGraphicsPipelineCreateInfo < FFI::Struct
|
614
|
+
layout(
|
615
|
+
:vertex_shader, :pointer,
|
616
|
+
:fragment_shader, :pointer,
|
617
|
+
:vertex_input_state, GPUVertexInputState,
|
618
|
+
:primitive_type, :int,
|
619
|
+
:rasterizer_state, GPURasterizerState,
|
620
|
+
:multisample_state, GPUMultisampleState,
|
621
|
+
:depth_stencil_state, GPUDepthStencilState,
|
622
|
+
:target_info, GPUGraphicsPipelineTargetInfo,
|
623
|
+
:props, :uint,
|
624
|
+
)
|
625
|
+
end
|
626
|
+
|
627
|
+
class GPUComputePipelineCreateInfo < FFI::Struct
|
628
|
+
layout(
|
629
|
+
:code_size, :ulong_long,
|
630
|
+
:code, :pointer,
|
631
|
+
:entrypoint, :pointer,
|
632
|
+
:format, :uint,
|
633
|
+
:num_samplers, :uint,
|
634
|
+
:num_readonly_storage_textures, :uint,
|
635
|
+
:num_readonly_storage_buffers, :uint,
|
636
|
+
:num_readwrite_storage_textures, :uint,
|
637
|
+
:num_readwrite_storage_buffers, :uint,
|
638
|
+
:num_uniform_buffers, :uint,
|
639
|
+
:threadcount_x, :uint,
|
640
|
+
:threadcount_y, :uint,
|
641
|
+
:threadcount_z, :uint,
|
642
|
+
:props, :uint,
|
643
|
+
)
|
644
|
+
end
|
645
|
+
|
646
|
+
class GPUColorTargetInfo < FFI::Struct
|
647
|
+
layout(
|
648
|
+
:texture, :pointer,
|
649
|
+
:mip_level, :uint,
|
650
|
+
:layer_or_depth_plane, :uint,
|
651
|
+
:clear_color, FColor,
|
652
|
+
:load_op, :int,
|
653
|
+
:store_op, :int,
|
654
|
+
:resolve_texture, :pointer,
|
655
|
+
:resolve_mip_level, :uint,
|
656
|
+
:resolve_layer, :uint,
|
657
|
+
:cycle, :bool,
|
658
|
+
:cycle_resolve_texture, :bool,
|
659
|
+
:padding1, :uchar,
|
660
|
+
:padding2, :uchar,
|
661
|
+
)
|
662
|
+
end
|
663
|
+
|
664
|
+
class GPUDepthStencilTargetInfo < FFI::Struct
|
665
|
+
layout(
|
666
|
+
:texture, :pointer,
|
667
|
+
:clear_depth, :float,
|
668
|
+
:load_op, :int,
|
669
|
+
:store_op, :int,
|
670
|
+
:stencil_load_op, :int,
|
671
|
+
:stencil_store_op, :int,
|
672
|
+
:cycle, :bool,
|
673
|
+
:clear_stencil, :uchar,
|
674
|
+
:padding1, :uchar,
|
675
|
+
:padding2, :uchar,
|
676
|
+
)
|
677
|
+
end
|
678
|
+
|
679
|
+
class GPUBlitInfo < FFI::Struct
|
680
|
+
layout(
|
681
|
+
:source, GPUBlitRegion,
|
682
|
+
:destination, GPUBlitRegion,
|
683
|
+
:load_op, :int,
|
684
|
+
:clear_color, FColor,
|
685
|
+
:flip_mode, :int,
|
686
|
+
:filter, :int,
|
687
|
+
:cycle, :bool,
|
688
|
+
:padding1, :uchar,
|
689
|
+
:padding2, :uchar,
|
690
|
+
:padding3, :uchar,
|
691
|
+
)
|
692
|
+
end
|
693
|
+
|
694
|
+
class GPUBufferBinding < FFI::Struct
|
695
|
+
layout(
|
696
|
+
:buffer, :pointer,
|
697
|
+
:offset, :uint,
|
698
|
+
)
|
699
|
+
end
|
700
|
+
|
701
|
+
class GPUTextureSamplerBinding < FFI::Struct
|
702
|
+
layout(
|
703
|
+
:texture, :pointer,
|
704
|
+
:sampler, :pointer,
|
705
|
+
)
|
706
|
+
end
|
707
|
+
|
708
|
+
class GPUStorageBufferReadWriteBinding < FFI::Struct
|
709
|
+
layout(
|
710
|
+
:buffer, :pointer,
|
711
|
+
:cycle, :bool,
|
712
|
+
:padding1, :uchar,
|
713
|
+
:padding2, :uchar,
|
714
|
+
:padding3, :uchar,
|
715
|
+
)
|
716
|
+
end
|
717
|
+
|
718
|
+
class GPUStorageTextureReadWriteBinding < FFI::Struct
|
719
|
+
layout(
|
720
|
+
:texture, :pointer,
|
721
|
+
:mip_level, :uint,
|
722
|
+
:layer, :uint,
|
723
|
+
:cycle, :bool,
|
724
|
+
:padding1, :uchar,
|
725
|
+
:padding2, :uchar,
|
726
|
+
:padding3, :uchar,
|
727
|
+
)
|
728
|
+
end
|
729
|
+
|
730
|
+
|
731
|
+
# Function
|
732
|
+
|
733
|
+
def self.setup_gpu_symbols(output_error = false)
|
734
|
+
entries = [
|
735
|
+
[:GPUSupportsShaderFormats, :SDL_GPUSupportsShaderFormats, [:uint, :pointer], :bool],
|
736
|
+
[:GPUSupportsProperties, :SDL_GPUSupportsProperties, [:uint], :bool],
|
737
|
+
[:CreateGPUDevice, :SDL_CreateGPUDevice, [:uint, :bool, :pointer], :pointer],
|
738
|
+
[:CreateGPUDeviceWithProperties, :SDL_CreateGPUDeviceWithProperties, [:uint], :pointer],
|
739
|
+
[:DestroyGPUDevice, :SDL_DestroyGPUDevice, [:pointer], :void],
|
740
|
+
[:GetNumGPUDrivers, :SDL_GetNumGPUDrivers, [], :int],
|
741
|
+
[:GetGPUDriver, :SDL_GetGPUDriver, [:int], :pointer],
|
742
|
+
[:GetGPUDeviceDriver, :SDL_GetGPUDeviceDriver, [:pointer], :pointer],
|
743
|
+
[:GetGPUShaderFormats, :SDL_GetGPUShaderFormats, [:pointer], :uint],
|
744
|
+
[:CreateGPUComputePipeline, :SDL_CreateGPUComputePipeline, [:pointer, :pointer], :pointer],
|
745
|
+
[:CreateGPUGraphicsPipeline, :SDL_CreateGPUGraphicsPipeline, [:pointer, :pointer], :pointer],
|
746
|
+
[:CreateGPUSampler, :SDL_CreateGPUSampler, [:pointer, :pointer], :pointer],
|
747
|
+
[:CreateGPUShader, :SDL_CreateGPUShader, [:pointer, :pointer], :pointer],
|
748
|
+
[:CreateGPUTexture, :SDL_CreateGPUTexture, [:pointer, :pointer], :pointer],
|
749
|
+
[:CreateGPUBuffer, :SDL_CreateGPUBuffer, [:pointer, :pointer], :pointer],
|
750
|
+
[:CreateGPUTransferBuffer, :SDL_CreateGPUTransferBuffer, [:pointer, :pointer], :pointer],
|
751
|
+
[:SetGPUBufferName, :SDL_SetGPUBufferName, [:pointer, :pointer, :pointer], :void],
|
752
|
+
[:SetGPUTextureName, :SDL_SetGPUTextureName, [:pointer, :pointer, :pointer], :void],
|
753
|
+
[:InsertGPUDebugLabel, :SDL_InsertGPUDebugLabel, [:pointer, :pointer], :void],
|
754
|
+
[:PushGPUDebugGroup, :SDL_PushGPUDebugGroup, [:pointer, :pointer], :void],
|
755
|
+
[:PopGPUDebugGroup, :SDL_PopGPUDebugGroup, [:pointer], :void],
|
756
|
+
[:ReleaseGPUTexture, :SDL_ReleaseGPUTexture, [:pointer, :pointer], :void],
|
757
|
+
[:ReleaseGPUSampler, :SDL_ReleaseGPUSampler, [:pointer, :pointer], :void],
|
758
|
+
[:ReleaseGPUBuffer, :SDL_ReleaseGPUBuffer, [:pointer, :pointer], :void],
|
759
|
+
[:ReleaseGPUTransferBuffer, :SDL_ReleaseGPUTransferBuffer, [:pointer, :pointer], :void],
|
760
|
+
[:ReleaseGPUComputePipeline, :SDL_ReleaseGPUComputePipeline, [:pointer, :pointer], :void],
|
761
|
+
[:ReleaseGPUShader, :SDL_ReleaseGPUShader, [:pointer, :pointer], :void],
|
762
|
+
[:ReleaseGPUGraphicsPipeline, :SDL_ReleaseGPUGraphicsPipeline, [:pointer, :pointer], :void],
|
763
|
+
[:AcquireGPUCommandBuffer, :SDL_AcquireGPUCommandBuffer, [:pointer], :pointer],
|
764
|
+
[:PushGPUVertexUniformData, :SDL_PushGPUVertexUniformData, [:pointer, :uint, :pointer, :uint], :void],
|
765
|
+
[:PushGPUFragmentUniformData, :SDL_PushGPUFragmentUniformData, [:pointer, :uint, :pointer, :uint], :void],
|
766
|
+
[:PushGPUComputeUniformData, :SDL_PushGPUComputeUniformData, [:pointer, :uint, :pointer, :uint], :void],
|
767
|
+
[:BeginGPURenderPass, :SDL_BeginGPURenderPass, [:pointer, :pointer, :uint, :pointer], :pointer],
|
768
|
+
[:BindGPUGraphicsPipeline, :SDL_BindGPUGraphicsPipeline, [:pointer, :pointer], :void],
|
769
|
+
[:SetGPUViewport, :SDL_SetGPUViewport, [:pointer, :pointer], :void],
|
770
|
+
[:SetGPUScissor, :SDL_SetGPUScissor, [:pointer, :pointer], :void],
|
771
|
+
[:SetGPUBlendConstants, :SDL_SetGPUBlendConstants, [:pointer, FColor.by_value], :void],
|
772
|
+
[:SetGPUStencilReference, :SDL_SetGPUStencilReference, [:pointer, :uchar], :void],
|
773
|
+
[:BindGPUVertexBuffers, :SDL_BindGPUVertexBuffers, [:pointer, :uint, :pointer, :uint], :void],
|
774
|
+
[:BindGPUIndexBuffer, :SDL_BindGPUIndexBuffer, [:pointer, :pointer, :int], :void],
|
775
|
+
[:BindGPUVertexSamplers, :SDL_BindGPUVertexSamplers, [:pointer, :uint, :pointer, :uint], :void],
|
776
|
+
[:BindGPUVertexStorageTextures, :SDL_BindGPUVertexStorageTextures, [:pointer, :uint, :pointer, :uint], :void],
|
777
|
+
[:BindGPUVertexStorageBuffers, :SDL_BindGPUVertexStorageBuffers, [:pointer, :uint, :pointer, :uint], :void],
|
778
|
+
[:BindGPUFragmentSamplers, :SDL_BindGPUFragmentSamplers, [:pointer, :uint, :pointer, :uint], :void],
|
779
|
+
[:BindGPUFragmentStorageTextures, :SDL_BindGPUFragmentStorageTextures, [:pointer, :uint, :pointer, :uint], :void],
|
780
|
+
[:BindGPUFragmentStorageBuffers, :SDL_BindGPUFragmentStorageBuffers, [:pointer, :uint, :pointer, :uint], :void],
|
781
|
+
[:DrawGPUIndexedPrimitives, :SDL_DrawGPUIndexedPrimitives, [:pointer, :uint, :uint, :uint, :int, :uint], :void],
|
782
|
+
[:DrawGPUPrimitives, :SDL_DrawGPUPrimitives, [:pointer, :uint, :uint, :uint, :uint], :void],
|
783
|
+
[:DrawGPUPrimitivesIndirect, :SDL_DrawGPUPrimitivesIndirect, [:pointer, :pointer, :uint, :uint], :void],
|
784
|
+
[:DrawGPUIndexedPrimitivesIndirect, :SDL_DrawGPUIndexedPrimitivesIndirect, [:pointer, :pointer, :uint, :uint], :void],
|
785
|
+
[:EndGPURenderPass, :SDL_EndGPURenderPass, [:pointer], :void],
|
786
|
+
[:BeginGPUComputePass, :SDL_BeginGPUComputePass, [:pointer, :pointer, :uint, :pointer, :uint], :pointer],
|
787
|
+
[:BindGPUComputePipeline, :SDL_BindGPUComputePipeline, [:pointer, :pointer], :void],
|
788
|
+
[:BindGPUComputeSamplers, :SDL_BindGPUComputeSamplers, [:pointer, :uint, :pointer, :uint], :void],
|
789
|
+
[:BindGPUComputeStorageTextures, :SDL_BindGPUComputeStorageTextures, [:pointer, :uint, :pointer, :uint], :void],
|
790
|
+
[:BindGPUComputeStorageBuffers, :SDL_BindGPUComputeStorageBuffers, [:pointer, :uint, :pointer, :uint], :void],
|
791
|
+
[:DispatchGPUCompute, :SDL_DispatchGPUCompute, [:pointer, :uint, :uint, :uint], :void],
|
792
|
+
[:DispatchGPUComputeIndirect, :SDL_DispatchGPUComputeIndirect, [:pointer, :pointer, :uint], :void],
|
793
|
+
[:EndGPUComputePass, :SDL_EndGPUComputePass, [:pointer], :void],
|
794
|
+
[:MapGPUTransferBuffer, :SDL_MapGPUTransferBuffer, [:pointer, :pointer, :bool], :pointer],
|
795
|
+
[:UnmapGPUTransferBuffer, :SDL_UnmapGPUTransferBuffer, [:pointer, :pointer], :void],
|
796
|
+
[:BeginGPUCopyPass, :SDL_BeginGPUCopyPass, [:pointer], :pointer],
|
797
|
+
[:UploadToGPUTexture, :SDL_UploadToGPUTexture, [:pointer, :pointer, :pointer, :bool], :void],
|
798
|
+
[:UploadToGPUBuffer, :SDL_UploadToGPUBuffer, [:pointer, :pointer, :pointer, :bool], :void],
|
799
|
+
[:CopyGPUTextureToTexture, :SDL_CopyGPUTextureToTexture, [:pointer, :pointer, :pointer, :uint, :uint, :uint, :bool], :void],
|
800
|
+
[:CopyGPUBufferToBuffer, :SDL_CopyGPUBufferToBuffer, [:pointer, :pointer, :pointer, :uint, :bool], :void],
|
801
|
+
[:DownloadFromGPUTexture, :SDL_DownloadFromGPUTexture, [:pointer, :pointer, :pointer], :void],
|
802
|
+
[:DownloadFromGPUBuffer, :SDL_DownloadFromGPUBuffer, [:pointer, :pointer, :pointer], :void],
|
803
|
+
[:EndGPUCopyPass, :SDL_EndGPUCopyPass, [:pointer], :void],
|
804
|
+
[:GenerateMipmapsForGPUTexture, :SDL_GenerateMipmapsForGPUTexture, [:pointer, :pointer], :void],
|
805
|
+
[:BlitGPUTexture, :SDL_BlitGPUTexture, [:pointer, :pointer], :void],
|
806
|
+
[:WindowSupportsGPUSwapchainComposition, :SDL_WindowSupportsGPUSwapchainComposition, [:pointer, :pointer, :int], :bool],
|
807
|
+
[:WindowSupportsGPUPresentMode, :SDL_WindowSupportsGPUPresentMode, [:pointer, :pointer, :int], :bool],
|
808
|
+
[:ClaimWindowForGPUDevice, :SDL_ClaimWindowForGPUDevice, [:pointer, :pointer], :bool],
|
809
|
+
[:ReleaseWindowFromGPUDevice, :SDL_ReleaseWindowFromGPUDevice, [:pointer, :pointer], :void],
|
810
|
+
[:SetGPUSwapchainParameters, :SDL_SetGPUSwapchainParameters, [:pointer, :pointer, :int, :int], :bool],
|
811
|
+
[:SetGPUAllowedFramesInFlight, :SDL_SetGPUAllowedFramesInFlight, [:pointer, :uint], :bool],
|
812
|
+
[:GetGPUSwapchainTextureFormat, :SDL_GetGPUSwapchainTextureFormat, [:pointer, :pointer], :int],
|
813
|
+
[:AcquireGPUSwapchainTexture, :SDL_AcquireGPUSwapchainTexture, [:pointer, :pointer, :pointer, :pointer, :pointer], :bool],
|
814
|
+
[:WaitForGPUSwapchain, :SDL_WaitForGPUSwapchain, [:pointer, :pointer], :bool],
|
815
|
+
[:WaitAndAcquireGPUSwapchainTexture, :SDL_WaitAndAcquireGPUSwapchainTexture, [:pointer, :pointer, :pointer, :pointer, :pointer], :bool],
|
816
|
+
[:SubmitGPUCommandBuffer, :SDL_SubmitGPUCommandBuffer, [:pointer], :bool],
|
817
|
+
[:SubmitGPUCommandBufferAndAcquireFence, :SDL_SubmitGPUCommandBufferAndAcquireFence, [:pointer], :pointer],
|
818
|
+
[:CancelGPUCommandBuffer, :SDL_CancelGPUCommandBuffer, [:pointer], :bool],
|
819
|
+
[:WaitForGPUIdle, :SDL_WaitForGPUIdle, [:pointer], :bool],
|
820
|
+
[:WaitForGPUFences, :SDL_WaitForGPUFences, [:pointer, :bool, :pointer, :uint], :bool],
|
821
|
+
[:QueryGPUFence, :SDL_QueryGPUFence, [:pointer, :pointer], :bool],
|
822
|
+
[:ReleaseGPUFence, :SDL_ReleaseGPUFence, [:pointer, :pointer], :void],
|
823
|
+
[:GPUTextureFormatTexelBlockSize, :SDL_GPUTextureFormatTexelBlockSize, [:int], :uint],
|
824
|
+
[:GPUTextureSupportsFormat, :SDL_GPUTextureSupportsFormat, [:pointer, :int, :int, :uint], :bool],
|
825
|
+
[:GPUTextureSupportsSampleCount, :SDL_GPUTextureSupportsSampleCount, [:pointer, :int, :int], :bool],
|
826
|
+
[:CalculateGPUTextureFormatSize, :SDL_CalculateGPUTextureFormatSize, [:int, :uint, :uint, :uint], :uint],
|
827
|
+
]
|
828
|
+
entries.each do |entry|
|
829
|
+
attach_function entry[0], entry[1], entry[2], entry[3]
|
830
|
+
rescue FFI::NotFoundError => e
|
831
|
+
warn "[Warning] Failed to import #{entry[0]} (#{e})." if output_error
|
832
|
+
end
|
833
|
+
end
|
834
|
+
|
835
|
+
end
|
836
|
+
|