1use super::*;
4
5pub const METADATA_SDL_PROP_GPU_DEVICE_CREATE_DEBUGMODE_BOOLEAN: Property = Property {
6 module: "gpu",
7 name: "SDL_PROP_GPU_DEVICE_CREATE_DEBUGMODE_BOOLEAN",
8 short_name: "GPU_DEVICE_CREATE_DEBUGMODE_BOOLEAN",
9 value: crate::gpu::SDL_PROP_GPU_DEVICE_CREATE_DEBUGMODE_BOOLEAN,
10 ty: PropertyType::BOOLEAN,
11 doc: None,
12 available_since: None,
13};
14pub const METADATA_SDL_PROP_GPU_DEVICE_CREATE_PREFERLOWPOWER_BOOLEAN: Property = Property {
15 module: "gpu",
16 name: "SDL_PROP_GPU_DEVICE_CREATE_PREFERLOWPOWER_BOOLEAN",
17 short_name: "GPU_DEVICE_CREATE_PREFERLOWPOWER_BOOLEAN",
18 value: crate::gpu::SDL_PROP_GPU_DEVICE_CREATE_PREFERLOWPOWER_BOOLEAN,
19 ty: PropertyType::BOOLEAN,
20 doc: None,
21 available_since: None,
22};
23pub const METADATA_SDL_PROP_GPU_DEVICE_CREATE_VERBOSE_BOOLEAN: Property = Property {
24 module: "gpu",
25 name: "SDL_PROP_GPU_DEVICE_CREATE_VERBOSE_BOOLEAN",
26 short_name: "GPU_DEVICE_CREATE_VERBOSE_BOOLEAN",
27 value: crate::gpu::SDL_PROP_GPU_DEVICE_CREATE_VERBOSE_BOOLEAN,
28 ty: PropertyType::BOOLEAN,
29 doc: None,
30 available_since: None,
31};
32pub const METADATA_SDL_PROP_GPU_DEVICE_CREATE_NAME_STRING: Property = Property {
33 module: "gpu",
34 name: "SDL_PROP_GPU_DEVICE_CREATE_NAME_STRING",
35 short_name: "GPU_DEVICE_CREATE_NAME_STRING",
36 value: crate::gpu::SDL_PROP_GPU_DEVICE_CREATE_NAME_STRING,
37 ty: PropertyType::STRING,
38 doc: None,
39 available_since: None,
40};
41pub const METADATA_SDL_PROP_GPU_DEVICE_CREATE_FEATURE_CLIP_DISTANCE_BOOLEAN: Property = Property {
42 module: "gpu",
43 name: "SDL_PROP_GPU_DEVICE_CREATE_FEATURE_CLIP_DISTANCE_BOOLEAN",
44 short_name: "GPU_DEVICE_CREATE_FEATURE_CLIP_DISTANCE_BOOLEAN",
45 value: crate::gpu::SDL_PROP_GPU_DEVICE_CREATE_FEATURE_CLIP_DISTANCE_BOOLEAN,
46 ty: PropertyType::BOOLEAN,
47 doc: None,
48 available_since: None,
49};
50pub const METADATA_SDL_PROP_GPU_DEVICE_CREATE_FEATURE_DEPTH_CLAMPING_BOOLEAN: Property = Property {
51 module: "gpu",
52 name: "SDL_PROP_GPU_DEVICE_CREATE_FEATURE_DEPTH_CLAMPING_BOOLEAN",
53 short_name: "GPU_DEVICE_CREATE_FEATURE_DEPTH_CLAMPING_BOOLEAN",
54 value: crate::gpu::SDL_PROP_GPU_DEVICE_CREATE_FEATURE_DEPTH_CLAMPING_BOOLEAN,
55 ty: PropertyType::BOOLEAN,
56 doc: None,
57 available_since: None,
58};
59pub const METADATA_SDL_PROP_GPU_DEVICE_CREATE_FEATURE_INDIRECT_DRAW_FIRST_INSTANCE_BOOLEAN:
60 Property = Property {
61 module: "gpu",
62 name: "SDL_PROP_GPU_DEVICE_CREATE_FEATURE_INDIRECT_DRAW_FIRST_INSTANCE_BOOLEAN",
63 short_name: "GPU_DEVICE_CREATE_FEATURE_INDIRECT_DRAW_FIRST_INSTANCE_BOOLEAN",
64 value: crate::gpu::SDL_PROP_GPU_DEVICE_CREATE_FEATURE_INDIRECT_DRAW_FIRST_INSTANCE_BOOLEAN,
65 ty: PropertyType::BOOLEAN,
66 doc: None,
67 available_since: None,
68};
69pub const METADATA_SDL_PROP_GPU_DEVICE_CREATE_FEATURE_ANISOTROPY_BOOLEAN: Property = Property {
70 module: "gpu",
71 name: "SDL_PROP_GPU_DEVICE_CREATE_FEATURE_ANISOTROPY_BOOLEAN",
72 short_name: "GPU_DEVICE_CREATE_FEATURE_ANISOTROPY_BOOLEAN",
73 value: crate::gpu::SDL_PROP_GPU_DEVICE_CREATE_FEATURE_ANISOTROPY_BOOLEAN,
74 ty: PropertyType::BOOLEAN,
75 doc: None,
76 available_since: None,
77};
78pub const METADATA_SDL_PROP_GPU_DEVICE_CREATE_SHADERS_PRIVATE_BOOLEAN: Property = Property {
79 module: "gpu",
80 name: "SDL_PROP_GPU_DEVICE_CREATE_SHADERS_PRIVATE_BOOLEAN",
81 short_name: "GPU_DEVICE_CREATE_SHADERS_PRIVATE_BOOLEAN",
82 value: crate::gpu::SDL_PROP_GPU_DEVICE_CREATE_SHADERS_PRIVATE_BOOLEAN,
83 ty: PropertyType::BOOLEAN,
84 doc: None,
85 available_since: None,
86};
87pub const METADATA_SDL_PROP_GPU_DEVICE_CREATE_SHADERS_SPIRV_BOOLEAN: Property = Property {
88 module: "gpu",
89 name: "SDL_PROP_GPU_DEVICE_CREATE_SHADERS_SPIRV_BOOLEAN",
90 short_name: "GPU_DEVICE_CREATE_SHADERS_SPIRV_BOOLEAN",
91 value: crate::gpu::SDL_PROP_GPU_DEVICE_CREATE_SHADERS_SPIRV_BOOLEAN,
92 ty: PropertyType::BOOLEAN,
93 doc: None,
94 available_since: None,
95};
96pub const METADATA_SDL_PROP_GPU_DEVICE_CREATE_SHADERS_DXBC_BOOLEAN: Property = Property {
97 module: "gpu",
98 name: "SDL_PROP_GPU_DEVICE_CREATE_SHADERS_DXBC_BOOLEAN",
99 short_name: "GPU_DEVICE_CREATE_SHADERS_DXBC_BOOLEAN",
100 value: crate::gpu::SDL_PROP_GPU_DEVICE_CREATE_SHADERS_DXBC_BOOLEAN,
101 ty: PropertyType::BOOLEAN,
102 doc: None,
103 available_since: None,
104};
105pub const METADATA_SDL_PROP_GPU_DEVICE_CREATE_SHADERS_DXIL_BOOLEAN: Property = Property {
106 module: "gpu",
107 name: "SDL_PROP_GPU_DEVICE_CREATE_SHADERS_DXIL_BOOLEAN",
108 short_name: "GPU_DEVICE_CREATE_SHADERS_DXIL_BOOLEAN",
109 value: crate::gpu::SDL_PROP_GPU_DEVICE_CREATE_SHADERS_DXIL_BOOLEAN,
110 ty: PropertyType::BOOLEAN,
111 doc: None,
112 available_since: None,
113};
114pub const METADATA_SDL_PROP_GPU_DEVICE_CREATE_SHADERS_MSL_BOOLEAN: Property = Property {
115 module: "gpu",
116 name: "SDL_PROP_GPU_DEVICE_CREATE_SHADERS_MSL_BOOLEAN",
117 short_name: "GPU_DEVICE_CREATE_SHADERS_MSL_BOOLEAN",
118 value: crate::gpu::SDL_PROP_GPU_DEVICE_CREATE_SHADERS_MSL_BOOLEAN,
119 ty: PropertyType::BOOLEAN,
120 doc: None,
121 available_since: None,
122};
123pub const METADATA_SDL_PROP_GPU_DEVICE_CREATE_SHADERS_METALLIB_BOOLEAN: Property = Property {
124 module: "gpu",
125 name: "SDL_PROP_GPU_DEVICE_CREATE_SHADERS_METALLIB_BOOLEAN",
126 short_name: "GPU_DEVICE_CREATE_SHADERS_METALLIB_BOOLEAN",
127 value: crate::gpu::SDL_PROP_GPU_DEVICE_CREATE_SHADERS_METALLIB_BOOLEAN,
128 ty: PropertyType::BOOLEAN,
129 doc: None,
130 available_since: None,
131};
132pub const METADATA_SDL_PROP_GPU_DEVICE_CREATE_D3D12_ALLOW_FEWER_RESOURCE_SLOTS_BOOLEAN: Property =
133 Property {
134 module: "gpu",
135 name: "SDL_PROP_GPU_DEVICE_CREATE_D3D12_ALLOW_FEWER_RESOURCE_SLOTS_BOOLEAN",
136 short_name: "GPU_DEVICE_CREATE_D3D12_ALLOW_FEWER_RESOURCE_SLOTS_BOOLEAN",
137 value: crate::gpu::SDL_PROP_GPU_DEVICE_CREATE_D3D12_ALLOW_FEWER_RESOURCE_SLOTS_BOOLEAN,
138 ty: PropertyType::BOOLEAN,
139 doc: None,
140 available_since: None,
141 };
142pub const METADATA_SDL_PROP_GPU_DEVICE_CREATE_D3D12_SEMANTIC_NAME_STRING: Property = Property {
143 module: "gpu",
144 name: "SDL_PROP_GPU_DEVICE_CREATE_D3D12_SEMANTIC_NAME_STRING",
145 short_name: "GPU_DEVICE_CREATE_D3D12_SEMANTIC_NAME_STRING",
146 value: crate::gpu::SDL_PROP_GPU_DEVICE_CREATE_D3D12_SEMANTIC_NAME_STRING,
147 ty: PropertyType::STRING,
148 doc: None,
149 available_since: None,
150};
151pub const METADATA_SDL_PROP_GPU_DEVICE_CREATE_D3D12_AGILITY_SDK_VERSION_NUMBER: Property =
152 Property {
153 module: "gpu",
154 name: "SDL_PROP_GPU_DEVICE_CREATE_D3D12_AGILITY_SDK_VERSION_NUMBER",
155 short_name: "GPU_DEVICE_CREATE_D3D12_AGILITY_SDK_VERSION_NUMBER",
156 value: crate::gpu::SDL_PROP_GPU_DEVICE_CREATE_D3D12_AGILITY_SDK_VERSION_NUMBER,
157 ty: PropertyType::NUMBER,
158 doc: None,
159 available_since: None,
160 };
161pub const METADATA_SDL_PROP_GPU_DEVICE_CREATE_D3D12_AGILITY_SDK_PATH_STRING: Property = Property {
162 module: "gpu",
163 name: "SDL_PROP_GPU_DEVICE_CREATE_D3D12_AGILITY_SDK_PATH_STRING",
164 short_name: "GPU_DEVICE_CREATE_D3D12_AGILITY_SDK_PATH_STRING",
165 value: crate::gpu::SDL_PROP_GPU_DEVICE_CREATE_D3D12_AGILITY_SDK_PATH_STRING,
166 ty: PropertyType::STRING,
167 doc: None,
168 available_since: None,
169};
170pub const METADATA_SDL_PROP_GPU_DEVICE_CREATE_VULKAN_REQUIRE_HARDWARE_ACCELERATION_BOOLEAN:
171 Property = Property {
172 module: "gpu",
173 name: "SDL_PROP_GPU_DEVICE_CREATE_VULKAN_REQUIRE_HARDWARE_ACCELERATION_BOOLEAN",
174 short_name: "GPU_DEVICE_CREATE_VULKAN_REQUIRE_HARDWARE_ACCELERATION_BOOLEAN",
175 value: crate::gpu::SDL_PROP_GPU_DEVICE_CREATE_VULKAN_REQUIRE_HARDWARE_ACCELERATION_BOOLEAN,
176 ty: PropertyType::BOOLEAN,
177 doc: None,
178 available_since: None,
179};
180pub const METADATA_SDL_PROP_GPU_DEVICE_CREATE_VULKAN_OPTIONS_POINTER: Property = Property {
181 module: "gpu",
182 name: "SDL_PROP_GPU_DEVICE_CREATE_VULKAN_OPTIONS_POINTER",
183 short_name: "GPU_DEVICE_CREATE_VULKAN_OPTIONS_POINTER",
184 value: crate::gpu::SDL_PROP_GPU_DEVICE_CREATE_VULKAN_OPTIONS_POINTER,
185 ty: PropertyType::POINTER,
186 doc: None,
187 available_since: None,
188};
189pub const METADATA_SDL_PROP_GPU_DEVICE_CREATE_METAL_ALLOW_MACFAMILY1_BOOLEAN: Property = Property {
190 module: "gpu",
191 name: "SDL_PROP_GPU_DEVICE_CREATE_METAL_ALLOW_MACFAMILY1_BOOLEAN",
192 short_name: "GPU_DEVICE_CREATE_METAL_ALLOW_MACFAMILY1_BOOLEAN",
193 value: crate::gpu::SDL_PROP_GPU_DEVICE_CREATE_METAL_ALLOW_MACFAMILY1_BOOLEAN,
194 ty: PropertyType::BOOLEAN,
195 doc: None,
196 available_since: None,
197};
198pub const METADATA_SDL_PROP_GPU_DEVICE_NAME_STRING: Property = Property {
199 module: "gpu",
200 name: "SDL_PROP_GPU_DEVICE_NAME_STRING",
201 short_name: "GPU_DEVICE_NAME_STRING",
202 value: crate::gpu::SDL_PROP_GPU_DEVICE_NAME_STRING,
203 ty: PropertyType::STRING,
204 doc: None,
205 available_since: None,
206};
207pub const METADATA_SDL_PROP_GPU_DEVICE_DRIVER_NAME_STRING: Property = Property {
208 module: "gpu",
209 name: "SDL_PROP_GPU_DEVICE_DRIVER_NAME_STRING",
210 short_name: "GPU_DEVICE_DRIVER_NAME_STRING",
211 value: crate::gpu::SDL_PROP_GPU_DEVICE_DRIVER_NAME_STRING,
212 ty: PropertyType::STRING,
213 doc: None,
214 available_since: None,
215};
216pub const METADATA_SDL_PROP_GPU_DEVICE_DRIVER_VERSION_STRING: Property = Property {
217 module: "gpu",
218 name: "SDL_PROP_GPU_DEVICE_DRIVER_VERSION_STRING",
219 short_name: "GPU_DEVICE_DRIVER_VERSION_STRING",
220 value: crate::gpu::SDL_PROP_GPU_DEVICE_DRIVER_VERSION_STRING,
221 ty: PropertyType::STRING,
222 doc: None,
223 available_since: None,
224};
225pub const METADATA_SDL_PROP_GPU_DEVICE_DRIVER_INFO_STRING: Property = Property {
226 module: "gpu",
227 name: "SDL_PROP_GPU_DEVICE_DRIVER_INFO_STRING",
228 short_name: "GPU_DEVICE_DRIVER_INFO_STRING",
229 value: crate::gpu::SDL_PROP_GPU_DEVICE_DRIVER_INFO_STRING,
230 ty: PropertyType::STRING,
231 doc: None,
232 available_since: None,
233};
234pub const METADATA_SDL_PROP_GPU_COMPUTEPIPELINE_CREATE_NAME_STRING: Property = Property {
235 module: "gpu",
236 name: "SDL_PROP_GPU_COMPUTEPIPELINE_CREATE_NAME_STRING",
237 short_name: "GPU_COMPUTEPIPELINE_CREATE_NAME_STRING",
238 value: crate::gpu::SDL_PROP_GPU_COMPUTEPIPELINE_CREATE_NAME_STRING,
239 ty: PropertyType::STRING,
240 doc: None,
241 available_since: None,
242};
243pub const METADATA_SDL_PROP_GPU_GRAPHICSPIPELINE_CREATE_NAME_STRING: Property = Property {
244 module: "gpu",
245 name: "SDL_PROP_GPU_GRAPHICSPIPELINE_CREATE_NAME_STRING",
246 short_name: "GPU_GRAPHICSPIPELINE_CREATE_NAME_STRING",
247 value: crate::gpu::SDL_PROP_GPU_GRAPHICSPIPELINE_CREATE_NAME_STRING,
248 ty: PropertyType::STRING,
249 doc: None,
250 available_since: None,
251};
252pub const METADATA_SDL_PROP_GPU_SAMPLER_CREATE_NAME_STRING: Property = Property {
253 module: "gpu",
254 name: "SDL_PROP_GPU_SAMPLER_CREATE_NAME_STRING",
255 short_name: "GPU_SAMPLER_CREATE_NAME_STRING",
256 value: crate::gpu::SDL_PROP_GPU_SAMPLER_CREATE_NAME_STRING,
257 ty: PropertyType::STRING,
258 doc: None,
259 available_since: None,
260};
261pub const METADATA_SDL_PROP_GPU_SHADER_CREATE_NAME_STRING: Property = Property {
262 module: "gpu",
263 name: "SDL_PROP_GPU_SHADER_CREATE_NAME_STRING",
264 short_name: "GPU_SHADER_CREATE_NAME_STRING",
265 value: crate::gpu::SDL_PROP_GPU_SHADER_CREATE_NAME_STRING,
266 ty: PropertyType::STRING,
267 doc: None,
268 available_since: None,
269};
270pub const METADATA_SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_R_FLOAT: Property = Property {
271 module: "gpu",
272 name: "SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_R_FLOAT",
273 short_name: "GPU_TEXTURE_CREATE_D3D12_CLEAR_R_FLOAT",
274 value: crate::gpu::SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_R_FLOAT,
275 ty: PropertyType::FLOAT,
276 doc: None,
277 available_since: None,
278};
279pub const METADATA_SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_G_FLOAT: Property = Property {
280 module: "gpu",
281 name: "SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_G_FLOAT",
282 short_name: "GPU_TEXTURE_CREATE_D3D12_CLEAR_G_FLOAT",
283 value: crate::gpu::SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_G_FLOAT,
284 ty: PropertyType::FLOAT,
285 doc: None,
286 available_since: None,
287};
288pub const METADATA_SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_B_FLOAT: Property = Property {
289 module: "gpu",
290 name: "SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_B_FLOAT",
291 short_name: "GPU_TEXTURE_CREATE_D3D12_CLEAR_B_FLOAT",
292 value: crate::gpu::SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_B_FLOAT,
293 ty: PropertyType::FLOAT,
294 doc: None,
295 available_since: None,
296};
297pub const METADATA_SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_A_FLOAT: Property = Property {
298 module: "gpu",
299 name: "SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_A_FLOAT",
300 short_name: "GPU_TEXTURE_CREATE_D3D12_CLEAR_A_FLOAT",
301 value: crate::gpu::SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_A_FLOAT,
302 ty: PropertyType::FLOAT,
303 doc: None,
304 available_since: None,
305};
306pub const METADATA_SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_DEPTH_FLOAT: Property = Property {
307 module: "gpu",
308 name: "SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_DEPTH_FLOAT",
309 short_name: "GPU_TEXTURE_CREATE_D3D12_CLEAR_DEPTH_FLOAT",
310 value: crate::gpu::SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_DEPTH_FLOAT,
311 ty: PropertyType::FLOAT,
312 doc: None,
313 available_since: None,
314};
315pub const METADATA_SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_STENCIL_NUMBER: Property = Property {
316 module: "gpu",
317 name: "SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_STENCIL_NUMBER",
318 short_name: "GPU_TEXTURE_CREATE_D3D12_CLEAR_STENCIL_NUMBER",
319 value: crate::gpu::SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_STENCIL_NUMBER,
320 ty: PropertyType::NUMBER,
321 doc: None,
322 available_since: None,
323};
324pub const METADATA_SDL_PROP_GPU_TEXTURE_CREATE_NAME_STRING: Property = Property {
325 module: "gpu",
326 name: "SDL_PROP_GPU_TEXTURE_CREATE_NAME_STRING",
327 short_name: "GPU_TEXTURE_CREATE_NAME_STRING",
328 value: crate::gpu::SDL_PROP_GPU_TEXTURE_CREATE_NAME_STRING,
329 ty: PropertyType::STRING,
330 doc: None,
331 available_since: None,
332};
333pub const METADATA_SDL_PROP_GPU_BUFFER_CREATE_NAME_STRING: Property = Property {
334 module: "gpu",
335 name: "SDL_PROP_GPU_BUFFER_CREATE_NAME_STRING",
336 short_name: "GPU_BUFFER_CREATE_NAME_STRING",
337 value: crate::gpu::SDL_PROP_GPU_BUFFER_CREATE_NAME_STRING,
338 ty: PropertyType::STRING,
339 doc: None,
340 available_since: None,
341};
342pub const METADATA_SDL_PROP_GPU_TRANSFERBUFFER_CREATE_NAME_STRING: Property = Property {
343 module: "gpu",
344 name: "SDL_PROP_GPU_TRANSFERBUFFER_CREATE_NAME_STRING",
345 short_name: "GPU_TRANSFERBUFFER_CREATE_NAME_STRING",
346 value: crate::gpu::SDL_PROP_GPU_TRANSFERBUFFER_CREATE_NAME_STRING,
347 ty: PropertyType::STRING,
348 doc: None,
349 available_since: None,
350};
351pub const METADATA_SDL_GPUPrimitiveType: Group = Group {
352 module: "gpu",
353 kind: GroupKind::Enum,
354 name: "SDL_GPUPrimitiveType",
355 short_name: "GPUPrimitiveType",
356 doc: Some(
357 "Specifies the primitive topology of a graphics pipeline.\n\nIf you are using POINTLIST you must include a point size output in the\nvertex shader.\n\n- For HLSL compiling to SPIRV you must decorate a float output with\n\\[\\[vk::builtin(\"PointSize\")\\]\\].\n- For GLSL you must set the gl_PointSize builtin.\n- For MSL you must include a float output with the \\[\\[point_size\\]\\]\ndecorator.\n\nNote that sized point topology is totally unsupported on D3D12. Any size\nother than 1 will be ignored. In general, you should avoid using point\ntopology for both compatibility and performance reasons. You WILL regret\nusing it.\n\n## Availability\nThis enum is available since SDL 3.2.0.\n\n## See also\n- [`SDL_CreateGPUGraphicsPipeline`]\n",
358 ),
359 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
360 values: &[
361 GroupValue {
362 name: "SDL_GPU_PRIMITIVETYPE_TRIANGLELIST",
363 short_name: "TRIANGLELIST",
364 doc: Some("A series of separate triangles.\n"),
365 available_since: None,
366 },
367 GroupValue {
368 name: "SDL_GPU_PRIMITIVETYPE_TRIANGLESTRIP",
369 short_name: "TRIANGLESTRIP",
370 doc: Some("A series of connected triangles.\n"),
371 available_since: None,
372 },
373 GroupValue {
374 name: "SDL_GPU_PRIMITIVETYPE_LINELIST",
375 short_name: "LINELIST",
376 doc: Some("A series of separate lines.\n"),
377 available_since: None,
378 },
379 GroupValue {
380 name: "SDL_GPU_PRIMITIVETYPE_LINESTRIP",
381 short_name: "LINESTRIP",
382 doc: Some("A series of connected lines.\n"),
383 available_since: None,
384 },
385 GroupValue {
386 name: "SDL_GPU_PRIMITIVETYPE_POINTLIST",
387 short_name: "POINTLIST",
388 doc: Some("A series of separate points.\n"),
389 available_since: None,
390 },
391 ],
392};
393pub const METADATA_SDL_GPULoadOp: Group = Group {
394 module: "gpu",
395 kind: GroupKind::Enum,
396 name: "SDL_GPULoadOp",
397 short_name: "GPULoadOp",
398 doc: Some(
399 "Specifies how the contents of a texture attached to a render pass are\ntreated at the beginning of the render pass.\n\n## Availability\nThis enum is available since SDL 3.2.0.\n\n## See also\n- [`SDL_BeginGPURenderPass`]\n",
400 ),
401 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
402 values: &[
403 GroupValue {
404 name: "SDL_GPU_LOADOP_LOAD",
405 short_name: "LOAD",
406 doc: Some("The previous contents of the texture will be preserved.\n"),
407 available_since: None,
408 },
409 GroupValue {
410 name: "SDL_GPU_LOADOP_CLEAR",
411 short_name: "CLEAR",
412 doc: Some("The contents of the texture will be cleared to a color.\n"),
413 available_since: None,
414 },
415 GroupValue {
416 name: "SDL_GPU_LOADOP_DONT_CARE",
417 short_name: "DONT_CARE",
418 doc: Some(
419 "The previous contents of the texture need not be preserved. The contents will be undefined.\n",
420 ),
421 available_since: None,
422 },
423 ],
424};
425pub const METADATA_SDL_GPUStoreOp: Group = Group {
426 module: "gpu",
427 kind: GroupKind::Enum,
428 name: "SDL_GPUStoreOp",
429 short_name: "GPUStoreOp",
430 doc: Some(
431 "Specifies how the contents of a texture attached to a render pass are\ntreated at the end of the render pass.\n\n## Availability\nThis enum is available since SDL 3.2.0.\n\n## See also\n- [`SDL_BeginGPURenderPass`]\n",
432 ),
433 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
434 values: &[
435 GroupValue {
436 name: "SDL_GPU_STOREOP_STORE",
437 short_name: "STORE",
438 doc: Some("The contents generated during the render pass will be written to memory.\n"),
439 available_since: None,
440 },
441 GroupValue {
442 name: "SDL_GPU_STOREOP_DONT_CARE",
443 short_name: "DONT_CARE",
444 doc: Some(
445 "The contents generated during the render pass are not needed and may be discarded. The contents will be undefined.\n",
446 ),
447 available_since: None,
448 },
449 GroupValue {
450 name: "SDL_GPU_STOREOP_RESOLVE",
451 short_name: "RESOLVE",
452 doc: Some(
453 "The multisample contents generated during the render pass will be resolved to a non-multisample texture. The contents in the multisample texture may then be discarded and will be undefined.\n",
454 ),
455 available_since: None,
456 },
457 GroupValue {
458 name: "SDL_GPU_STOREOP_RESOLVE_AND_STORE",
459 short_name: "RESOLVE_AND_STORE",
460 doc: Some(
461 "The multisample contents generated during the render pass will be resolved to a non-multisample texture. The contents in the multisample texture will be written to memory.\n",
462 ),
463 available_since: None,
464 },
465 ],
466};
467pub const METADATA_SDL_GPUIndexElementSize: Group = Group {
468 module: "gpu",
469 kind: GroupKind::Enum,
470 name: "SDL_GPUIndexElementSize",
471 short_name: "GPUIndexElementSize",
472 doc: Some(
473 "Specifies the size of elements in an index buffer.\n\n## Availability\nThis enum is available since SDL 3.2.0.\n\n## See also\n- [`SDL_CreateGPUGraphicsPipeline`]\n",
474 ),
475 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
476 values: &[
477 GroupValue {
478 name: "SDL_GPU_INDEXELEMENTSIZE_16BIT",
479 short_name: "_16BIT",
480 doc: Some("The index elements are 16-bit.\n"),
481 available_since: None,
482 },
483 GroupValue {
484 name: "SDL_GPU_INDEXELEMENTSIZE_32BIT",
485 short_name: "_32BIT",
486 doc: Some("The index elements are 32-bit.\n"),
487 available_since: None,
488 },
489 ],
490};
491pub const METADATA_SDL_GPUTextureFormat: Group = Group {
492 module: "gpu",
493 kind: GroupKind::Enum,
494 name: "SDL_GPUTextureFormat",
495 short_name: "GPUTextureFormat",
496 doc: Some(
497 "Specifies the pixel format of a texture.\n\nTexture format support varies depending on driver, hardware, and usage\nflags. In general, you should use [`SDL_GPUTextureSupportsFormat`] to query if\na format is supported before using it. However, there are a few guaranteed\nformats.\n\nFIXME: Check universal support for 32-bit component formats FIXME: Check\nuniversal support for SIMULTANEOUS_READ_WRITE\n\nFor SAMPLER usage, the following formats are universally supported:\n\n- R8G8B8A8_UNORM\n- B8G8R8A8_UNORM\n- R8_UNORM\n- R8_SNORM\n- R8G8_UNORM\n- R8G8_SNORM\n- R8G8B8A8_SNORM\n- R16_FLOAT\n- R16G16_FLOAT\n- R16G16B16A16_FLOAT\n- R32_FLOAT\n- R32G32_FLOAT\n- R32G32B32A32_FLOAT\n- R11G11B10_UFLOAT\n- R8G8B8A8_UNORM_SRGB\n- B8G8R8A8_UNORM_SRGB\n- D16_UNORM\n\nFor COLOR_TARGET usage, the following formats are universally supported:\n\n- R8G8B8A8_UNORM\n- B8G8R8A8_UNORM\n- R8_UNORM\n- R16_FLOAT\n- R16G16_FLOAT\n- R16G16B16A16_FLOAT\n- R32_FLOAT\n- R32G32_FLOAT\n- R32G32B32A32_FLOAT\n- R8_UINT\n- R8G8_UINT\n- R8G8B8A8_UINT\n- R16_UINT\n- R16G16_UINT\n- R16G16B16A16_UINT\n- R8_INT\n- R8G8_INT\n- R8G8B8A8_INT\n- R16_INT\n- R16G16_INT\n- R16G16B16A16_INT\n- R8G8B8A8_UNORM_SRGB\n- B8G8R8A8_UNORM_SRGB\n\nFor STORAGE usages, the following formats are universally supported:\n\n- R8G8B8A8_UNORM\n- R8G8B8A8_SNORM\n- R16G16B16A16_FLOAT\n- R32_FLOAT\n- R32G32_FLOAT\n- R32G32B32A32_FLOAT\n- R8G8B8A8_UINT\n- R16G16B16A16_UINT\n- R8G8B8A8_INT\n- R16G16B16A16_INT\n\nFor DEPTH_STENCIL_TARGET usage, the following formats are universally\nsupported:\n\n- D16_UNORM\n- Either (but not necessarily both!) D24_UNORM or D32_FLOAT\n- Either (but not necessarily both!) D24_UNORM_S8_UINT or D32_FLOAT_S8_UINT\n\nUnless D16_UNORM is sufficient for your purposes, always check which of\nD24/D32 is supported before creating a depth-stencil texture!\n\n## Availability\nThis enum is available since SDL 3.2.0.\n\n## See also\n- [`SDL_CreateGPUTexture`]\n- [`SDL_GPUTextureSupportsFormat`]\n",
498 ),
499 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
500 values: &[
501 GroupValue {
502 name: "SDL_GPU_TEXTUREFORMAT_INVALID",
503 short_name: "INVALID",
504 doc: None,
505 available_since: None,
506 },
507 GroupValue {
508 name: "SDL_GPU_TEXTUREFORMAT_A8_UNORM",
509 short_name: "A8_UNORM",
510 doc: None,
511 available_since: None,
512 },
513 GroupValue {
514 name: "SDL_GPU_TEXTUREFORMAT_R8_UNORM",
515 short_name: "R8_UNORM",
516 doc: None,
517 available_since: None,
518 },
519 GroupValue {
520 name: "SDL_GPU_TEXTUREFORMAT_R8G8_UNORM",
521 short_name: "R8G8_UNORM",
522 doc: None,
523 available_since: None,
524 },
525 GroupValue {
526 name: "SDL_GPU_TEXTUREFORMAT_R8G8B8A8_UNORM",
527 short_name: "R8G8B8A8_UNORM",
528 doc: None,
529 available_since: None,
530 },
531 GroupValue {
532 name: "SDL_GPU_TEXTUREFORMAT_R16_UNORM",
533 short_name: "R16_UNORM",
534 doc: None,
535 available_since: None,
536 },
537 GroupValue {
538 name: "SDL_GPU_TEXTUREFORMAT_R16G16_UNORM",
539 short_name: "R16G16_UNORM",
540 doc: None,
541 available_since: None,
542 },
543 GroupValue {
544 name: "SDL_GPU_TEXTUREFORMAT_R16G16B16A16_UNORM",
545 short_name: "R16G16B16A16_UNORM",
546 doc: None,
547 available_since: None,
548 },
549 GroupValue {
550 name: "SDL_GPU_TEXTUREFORMAT_R10G10B10A2_UNORM",
551 short_name: "R10G10B10A2_UNORM",
552 doc: None,
553 available_since: None,
554 },
555 GroupValue {
556 name: "SDL_GPU_TEXTUREFORMAT_B5G6R5_UNORM",
557 short_name: "B5G6R5_UNORM",
558 doc: None,
559 available_since: None,
560 },
561 GroupValue {
562 name: "SDL_GPU_TEXTUREFORMAT_B5G5R5A1_UNORM",
563 short_name: "B5G5R5A1_UNORM",
564 doc: None,
565 available_since: None,
566 },
567 GroupValue {
568 name: "SDL_GPU_TEXTUREFORMAT_B4G4R4A4_UNORM",
569 short_name: "B4G4R4A4_UNORM",
570 doc: None,
571 available_since: None,
572 },
573 GroupValue {
574 name: "SDL_GPU_TEXTUREFORMAT_B8G8R8A8_UNORM",
575 short_name: "B8G8R8A8_UNORM",
576 doc: None,
577 available_since: None,
578 },
579 GroupValue {
580 name: "SDL_GPU_TEXTUREFORMAT_BC1_RGBA_UNORM",
581 short_name: "BC1_RGBA_UNORM",
582 doc: None,
583 available_since: None,
584 },
585 GroupValue {
586 name: "SDL_GPU_TEXTUREFORMAT_BC2_RGBA_UNORM",
587 short_name: "BC2_RGBA_UNORM",
588 doc: None,
589 available_since: None,
590 },
591 GroupValue {
592 name: "SDL_GPU_TEXTUREFORMAT_BC3_RGBA_UNORM",
593 short_name: "BC3_RGBA_UNORM",
594 doc: None,
595 available_since: None,
596 },
597 GroupValue {
598 name: "SDL_GPU_TEXTUREFORMAT_BC4_R_UNORM",
599 short_name: "BC4_R_UNORM",
600 doc: None,
601 available_since: None,
602 },
603 GroupValue {
604 name: "SDL_GPU_TEXTUREFORMAT_BC5_RG_UNORM",
605 short_name: "BC5_RG_UNORM",
606 doc: None,
607 available_since: None,
608 },
609 GroupValue {
610 name: "SDL_GPU_TEXTUREFORMAT_BC7_RGBA_UNORM",
611 short_name: "BC7_RGBA_UNORM",
612 doc: None,
613 available_since: None,
614 },
615 GroupValue {
616 name: "SDL_GPU_TEXTUREFORMAT_BC6H_RGB_FLOAT",
617 short_name: "BC6H_RGB_FLOAT",
618 doc: None,
619 available_since: None,
620 },
621 GroupValue {
622 name: "SDL_GPU_TEXTUREFORMAT_BC6H_RGB_UFLOAT",
623 short_name: "BC6H_RGB_UFLOAT",
624 doc: None,
625 available_since: None,
626 },
627 GroupValue {
628 name: "SDL_GPU_TEXTUREFORMAT_R8_SNORM",
629 short_name: "R8_SNORM",
630 doc: None,
631 available_since: None,
632 },
633 GroupValue {
634 name: "SDL_GPU_TEXTUREFORMAT_R8G8_SNORM",
635 short_name: "R8G8_SNORM",
636 doc: None,
637 available_since: None,
638 },
639 GroupValue {
640 name: "SDL_GPU_TEXTUREFORMAT_R8G8B8A8_SNORM",
641 short_name: "R8G8B8A8_SNORM",
642 doc: None,
643 available_since: None,
644 },
645 GroupValue {
646 name: "SDL_GPU_TEXTUREFORMAT_R16_SNORM",
647 short_name: "R16_SNORM",
648 doc: None,
649 available_since: None,
650 },
651 GroupValue {
652 name: "SDL_GPU_TEXTUREFORMAT_R16G16_SNORM",
653 short_name: "R16G16_SNORM",
654 doc: None,
655 available_since: None,
656 },
657 GroupValue {
658 name: "SDL_GPU_TEXTUREFORMAT_R16G16B16A16_SNORM",
659 short_name: "R16G16B16A16_SNORM",
660 doc: None,
661 available_since: None,
662 },
663 GroupValue {
664 name: "SDL_GPU_TEXTUREFORMAT_R16_FLOAT",
665 short_name: "R16_FLOAT",
666 doc: None,
667 available_since: None,
668 },
669 GroupValue {
670 name: "SDL_GPU_TEXTUREFORMAT_R16G16_FLOAT",
671 short_name: "R16G16_FLOAT",
672 doc: None,
673 available_since: None,
674 },
675 GroupValue {
676 name: "SDL_GPU_TEXTUREFORMAT_R16G16B16A16_FLOAT",
677 short_name: "R16G16B16A16_FLOAT",
678 doc: None,
679 available_since: None,
680 },
681 GroupValue {
682 name: "SDL_GPU_TEXTUREFORMAT_R32_FLOAT",
683 short_name: "R32_FLOAT",
684 doc: None,
685 available_since: None,
686 },
687 GroupValue {
688 name: "SDL_GPU_TEXTUREFORMAT_R32G32_FLOAT",
689 short_name: "R32G32_FLOAT",
690 doc: None,
691 available_since: None,
692 },
693 GroupValue {
694 name: "SDL_GPU_TEXTUREFORMAT_R32G32B32A32_FLOAT",
695 short_name: "R32G32B32A32_FLOAT",
696 doc: None,
697 available_since: None,
698 },
699 GroupValue {
700 name: "SDL_GPU_TEXTUREFORMAT_R11G11B10_UFLOAT",
701 short_name: "R11G11B10_UFLOAT",
702 doc: None,
703 available_since: None,
704 },
705 GroupValue {
706 name: "SDL_GPU_TEXTUREFORMAT_R8_UINT",
707 short_name: "R8_UINT",
708 doc: None,
709 available_since: None,
710 },
711 GroupValue {
712 name: "SDL_GPU_TEXTUREFORMAT_R8G8_UINT",
713 short_name: "R8G8_UINT",
714 doc: None,
715 available_since: None,
716 },
717 GroupValue {
718 name: "SDL_GPU_TEXTUREFORMAT_R8G8B8A8_UINT",
719 short_name: "R8G8B8A8_UINT",
720 doc: None,
721 available_since: None,
722 },
723 GroupValue {
724 name: "SDL_GPU_TEXTUREFORMAT_R16_UINT",
725 short_name: "R16_UINT",
726 doc: None,
727 available_since: None,
728 },
729 GroupValue {
730 name: "SDL_GPU_TEXTUREFORMAT_R16G16_UINT",
731 short_name: "R16G16_UINT",
732 doc: None,
733 available_since: None,
734 },
735 GroupValue {
736 name: "SDL_GPU_TEXTUREFORMAT_R16G16B16A16_UINT",
737 short_name: "R16G16B16A16_UINT",
738 doc: None,
739 available_since: None,
740 },
741 GroupValue {
742 name: "SDL_GPU_TEXTUREFORMAT_R32_UINT",
743 short_name: "R32_UINT",
744 doc: None,
745 available_since: None,
746 },
747 GroupValue {
748 name: "SDL_GPU_TEXTUREFORMAT_R32G32_UINT",
749 short_name: "R32G32_UINT",
750 doc: None,
751 available_since: None,
752 },
753 GroupValue {
754 name: "SDL_GPU_TEXTUREFORMAT_R32G32B32A32_UINT",
755 short_name: "R32G32B32A32_UINT",
756 doc: None,
757 available_since: None,
758 },
759 GroupValue {
760 name: "SDL_GPU_TEXTUREFORMAT_R8_INT",
761 short_name: "R8_INT",
762 doc: None,
763 available_since: None,
764 },
765 GroupValue {
766 name: "SDL_GPU_TEXTUREFORMAT_R8G8_INT",
767 short_name: "R8G8_INT",
768 doc: None,
769 available_since: None,
770 },
771 GroupValue {
772 name: "SDL_GPU_TEXTUREFORMAT_R8G8B8A8_INT",
773 short_name: "R8G8B8A8_INT",
774 doc: None,
775 available_since: None,
776 },
777 GroupValue {
778 name: "SDL_GPU_TEXTUREFORMAT_R16_INT",
779 short_name: "R16_INT",
780 doc: None,
781 available_since: None,
782 },
783 GroupValue {
784 name: "SDL_GPU_TEXTUREFORMAT_R16G16_INT",
785 short_name: "R16G16_INT",
786 doc: None,
787 available_since: None,
788 },
789 GroupValue {
790 name: "SDL_GPU_TEXTUREFORMAT_R16G16B16A16_INT",
791 short_name: "R16G16B16A16_INT",
792 doc: None,
793 available_since: None,
794 },
795 GroupValue {
796 name: "SDL_GPU_TEXTUREFORMAT_R32_INT",
797 short_name: "R32_INT",
798 doc: None,
799 available_since: None,
800 },
801 GroupValue {
802 name: "SDL_GPU_TEXTUREFORMAT_R32G32_INT",
803 short_name: "R32G32_INT",
804 doc: None,
805 available_since: None,
806 },
807 GroupValue {
808 name: "SDL_GPU_TEXTUREFORMAT_R32G32B32A32_INT",
809 short_name: "R32G32B32A32_INT",
810 doc: None,
811 available_since: None,
812 },
813 GroupValue {
814 name: "SDL_GPU_TEXTUREFORMAT_R8G8B8A8_UNORM_SRGB",
815 short_name: "R8G8B8A8_UNORM_SRGB",
816 doc: None,
817 available_since: None,
818 },
819 GroupValue {
820 name: "SDL_GPU_TEXTUREFORMAT_B8G8R8A8_UNORM_SRGB",
821 short_name: "B8G8R8A8_UNORM_SRGB",
822 doc: None,
823 available_since: None,
824 },
825 GroupValue {
826 name: "SDL_GPU_TEXTUREFORMAT_BC1_RGBA_UNORM_SRGB",
827 short_name: "BC1_RGBA_UNORM_SRGB",
828 doc: None,
829 available_since: None,
830 },
831 GroupValue {
832 name: "SDL_GPU_TEXTUREFORMAT_BC2_RGBA_UNORM_SRGB",
833 short_name: "BC2_RGBA_UNORM_SRGB",
834 doc: None,
835 available_since: None,
836 },
837 GroupValue {
838 name: "SDL_GPU_TEXTUREFORMAT_BC3_RGBA_UNORM_SRGB",
839 short_name: "BC3_RGBA_UNORM_SRGB",
840 doc: None,
841 available_since: None,
842 },
843 GroupValue {
844 name: "SDL_GPU_TEXTUREFORMAT_BC7_RGBA_UNORM_SRGB",
845 short_name: "BC7_RGBA_UNORM_SRGB",
846 doc: None,
847 available_since: None,
848 },
849 GroupValue {
850 name: "SDL_GPU_TEXTUREFORMAT_D16_UNORM",
851 short_name: "D16_UNORM",
852 doc: None,
853 available_since: None,
854 },
855 GroupValue {
856 name: "SDL_GPU_TEXTUREFORMAT_D24_UNORM",
857 short_name: "D24_UNORM",
858 doc: None,
859 available_since: None,
860 },
861 GroupValue {
862 name: "SDL_GPU_TEXTUREFORMAT_D32_FLOAT",
863 short_name: "D32_FLOAT",
864 doc: None,
865 available_since: None,
866 },
867 GroupValue {
868 name: "SDL_GPU_TEXTUREFORMAT_D24_UNORM_S8_UINT",
869 short_name: "D24_UNORM_S8_UINT",
870 doc: None,
871 available_since: None,
872 },
873 GroupValue {
874 name: "SDL_GPU_TEXTUREFORMAT_D32_FLOAT_S8_UINT",
875 short_name: "D32_FLOAT_S8_UINT",
876 doc: None,
877 available_since: None,
878 },
879 GroupValue {
880 name: "SDL_GPU_TEXTUREFORMAT_ASTC_4x4_UNORM",
881 short_name: "ASTC_4x4_UNORM",
882 doc: None,
883 available_since: None,
884 },
885 GroupValue {
886 name: "SDL_GPU_TEXTUREFORMAT_ASTC_5x4_UNORM",
887 short_name: "ASTC_5x4_UNORM",
888 doc: None,
889 available_since: None,
890 },
891 GroupValue {
892 name: "SDL_GPU_TEXTUREFORMAT_ASTC_5x5_UNORM",
893 short_name: "ASTC_5x5_UNORM",
894 doc: None,
895 available_since: None,
896 },
897 GroupValue {
898 name: "SDL_GPU_TEXTUREFORMAT_ASTC_6x5_UNORM",
899 short_name: "ASTC_6x5_UNORM",
900 doc: None,
901 available_since: None,
902 },
903 GroupValue {
904 name: "SDL_GPU_TEXTUREFORMAT_ASTC_6x6_UNORM",
905 short_name: "ASTC_6x6_UNORM",
906 doc: None,
907 available_since: None,
908 },
909 GroupValue {
910 name: "SDL_GPU_TEXTUREFORMAT_ASTC_8x5_UNORM",
911 short_name: "ASTC_8x5_UNORM",
912 doc: None,
913 available_since: None,
914 },
915 GroupValue {
916 name: "SDL_GPU_TEXTUREFORMAT_ASTC_8x6_UNORM",
917 short_name: "ASTC_8x6_UNORM",
918 doc: None,
919 available_since: None,
920 },
921 GroupValue {
922 name: "SDL_GPU_TEXTUREFORMAT_ASTC_8x8_UNORM",
923 short_name: "ASTC_8x8_UNORM",
924 doc: None,
925 available_since: None,
926 },
927 GroupValue {
928 name: "SDL_GPU_TEXTUREFORMAT_ASTC_10x5_UNORM",
929 short_name: "ASTC_10x5_UNORM",
930 doc: None,
931 available_since: None,
932 },
933 GroupValue {
934 name: "SDL_GPU_TEXTUREFORMAT_ASTC_10x6_UNORM",
935 short_name: "ASTC_10x6_UNORM",
936 doc: None,
937 available_since: None,
938 },
939 GroupValue {
940 name: "SDL_GPU_TEXTUREFORMAT_ASTC_10x8_UNORM",
941 short_name: "ASTC_10x8_UNORM",
942 doc: None,
943 available_since: None,
944 },
945 GroupValue {
946 name: "SDL_GPU_TEXTUREFORMAT_ASTC_10x10_UNORM",
947 short_name: "ASTC_10x10_UNORM",
948 doc: None,
949 available_since: None,
950 },
951 GroupValue {
952 name: "SDL_GPU_TEXTUREFORMAT_ASTC_12x10_UNORM",
953 short_name: "ASTC_12x10_UNORM",
954 doc: None,
955 available_since: None,
956 },
957 GroupValue {
958 name: "SDL_GPU_TEXTUREFORMAT_ASTC_12x12_UNORM",
959 short_name: "ASTC_12x12_UNORM",
960 doc: None,
961 available_since: None,
962 },
963 GroupValue {
964 name: "SDL_GPU_TEXTUREFORMAT_ASTC_4x4_UNORM_SRGB",
965 short_name: "ASTC_4x4_UNORM_SRGB",
966 doc: None,
967 available_since: None,
968 },
969 GroupValue {
970 name: "SDL_GPU_TEXTUREFORMAT_ASTC_5x4_UNORM_SRGB",
971 short_name: "ASTC_5x4_UNORM_SRGB",
972 doc: None,
973 available_since: None,
974 },
975 GroupValue {
976 name: "SDL_GPU_TEXTUREFORMAT_ASTC_5x5_UNORM_SRGB",
977 short_name: "ASTC_5x5_UNORM_SRGB",
978 doc: None,
979 available_since: None,
980 },
981 GroupValue {
982 name: "SDL_GPU_TEXTUREFORMAT_ASTC_6x5_UNORM_SRGB",
983 short_name: "ASTC_6x5_UNORM_SRGB",
984 doc: None,
985 available_since: None,
986 },
987 GroupValue {
988 name: "SDL_GPU_TEXTUREFORMAT_ASTC_6x6_UNORM_SRGB",
989 short_name: "ASTC_6x6_UNORM_SRGB",
990 doc: None,
991 available_since: None,
992 },
993 GroupValue {
994 name: "SDL_GPU_TEXTUREFORMAT_ASTC_8x5_UNORM_SRGB",
995 short_name: "ASTC_8x5_UNORM_SRGB",
996 doc: None,
997 available_since: None,
998 },
999 GroupValue {
1000 name: "SDL_GPU_TEXTUREFORMAT_ASTC_8x6_UNORM_SRGB",
1001 short_name: "ASTC_8x6_UNORM_SRGB",
1002 doc: None,
1003 available_since: None,
1004 },
1005 GroupValue {
1006 name: "SDL_GPU_TEXTUREFORMAT_ASTC_8x8_UNORM_SRGB",
1007 short_name: "ASTC_8x8_UNORM_SRGB",
1008 doc: None,
1009 available_since: None,
1010 },
1011 GroupValue {
1012 name: "SDL_GPU_TEXTUREFORMAT_ASTC_10x5_UNORM_SRGB",
1013 short_name: "ASTC_10x5_UNORM_SRGB",
1014 doc: None,
1015 available_since: None,
1016 },
1017 GroupValue {
1018 name: "SDL_GPU_TEXTUREFORMAT_ASTC_10x6_UNORM_SRGB",
1019 short_name: "ASTC_10x6_UNORM_SRGB",
1020 doc: None,
1021 available_since: None,
1022 },
1023 GroupValue {
1024 name: "SDL_GPU_TEXTUREFORMAT_ASTC_10x8_UNORM_SRGB",
1025 short_name: "ASTC_10x8_UNORM_SRGB",
1026 doc: None,
1027 available_since: None,
1028 },
1029 GroupValue {
1030 name: "SDL_GPU_TEXTUREFORMAT_ASTC_10x10_UNORM_SRGB",
1031 short_name: "ASTC_10x10_UNORM_SRGB",
1032 doc: None,
1033 available_since: None,
1034 },
1035 GroupValue {
1036 name: "SDL_GPU_TEXTUREFORMAT_ASTC_12x10_UNORM_SRGB",
1037 short_name: "ASTC_12x10_UNORM_SRGB",
1038 doc: None,
1039 available_since: None,
1040 },
1041 GroupValue {
1042 name: "SDL_GPU_TEXTUREFORMAT_ASTC_12x12_UNORM_SRGB",
1043 short_name: "ASTC_12x12_UNORM_SRGB",
1044 doc: None,
1045 available_since: None,
1046 },
1047 GroupValue {
1048 name: "SDL_GPU_TEXTUREFORMAT_ASTC_4x4_FLOAT",
1049 short_name: "ASTC_4x4_FLOAT",
1050 doc: None,
1051 available_since: None,
1052 },
1053 GroupValue {
1054 name: "SDL_GPU_TEXTUREFORMAT_ASTC_5x4_FLOAT",
1055 short_name: "ASTC_5x4_FLOAT",
1056 doc: None,
1057 available_since: None,
1058 },
1059 GroupValue {
1060 name: "SDL_GPU_TEXTUREFORMAT_ASTC_5x5_FLOAT",
1061 short_name: "ASTC_5x5_FLOAT",
1062 doc: None,
1063 available_since: None,
1064 },
1065 GroupValue {
1066 name: "SDL_GPU_TEXTUREFORMAT_ASTC_6x5_FLOAT",
1067 short_name: "ASTC_6x5_FLOAT",
1068 doc: None,
1069 available_since: None,
1070 },
1071 GroupValue {
1072 name: "SDL_GPU_TEXTUREFORMAT_ASTC_6x6_FLOAT",
1073 short_name: "ASTC_6x6_FLOAT",
1074 doc: None,
1075 available_since: None,
1076 },
1077 GroupValue {
1078 name: "SDL_GPU_TEXTUREFORMAT_ASTC_8x5_FLOAT",
1079 short_name: "ASTC_8x5_FLOAT",
1080 doc: None,
1081 available_since: None,
1082 },
1083 GroupValue {
1084 name: "SDL_GPU_TEXTUREFORMAT_ASTC_8x6_FLOAT",
1085 short_name: "ASTC_8x6_FLOAT",
1086 doc: None,
1087 available_since: None,
1088 },
1089 GroupValue {
1090 name: "SDL_GPU_TEXTUREFORMAT_ASTC_8x8_FLOAT",
1091 short_name: "ASTC_8x8_FLOAT",
1092 doc: None,
1093 available_since: None,
1094 },
1095 GroupValue {
1096 name: "SDL_GPU_TEXTUREFORMAT_ASTC_10x5_FLOAT",
1097 short_name: "ASTC_10x5_FLOAT",
1098 doc: None,
1099 available_since: None,
1100 },
1101 GroupValue {
1102 name: "SDL_GPU_TEXTUREFORMAT_ASTC_10x6_FLOAT",
1103 short_name: "ASTC_10x6_FLOAT",
1104 doc: None,
1105 available_since: None,
1106 },
1107 GroupValue {
1108 name: "SDL_GPU_TEXTUREFORMAT_ASTC_10x8_FLOAT",
1109 short_name: "ASTC_10x8_FLOAT",
1110 doc: None,
1111 available_since: None,
1112 },
1113 GroupValue {
1114 name: "SDL_GPU_TEXTUREFORMAT_ASTC_10x10_FLOAT",
1115 short_name: "ASTC_10x10_FLOAT",
1116 doc: None,
1117 available_since: None,
1118 },
1119 GroupValue {
1120 name: "SDL_GPU_TEXTUREFORMAT_ASTC_12x10_FLOAT",
1121 short_name: "ASTC_12x10_FLOAT",
1122 doc: None,
1123 available_since: None,
1124 },
1125 GroupValue {
1126 name: "SDL_GPU_TEXTUREFORMAT_ASTC_12x12_FLOAT",
1127 short_name: "ASTC_12x12_FLOAT",
1128 doc: None,
1129 available_since: None,
1130 },
1131 ],
1132};
1133pub const METADATA_SDL_GPUTextureUsageFlags: Group = Group {
1134 module: "gpu",
1135 kind: GroupKind::Flags,
1136 name: "SDL_GPUTextureUsageFlags",
1137 short_name: "GPUTextureUsageFlags",
1138 doc: Some(
1139 "Specifies how a texture is intended to be used by the client.\n\nA texture must have at least one usage flag. Note that some usage flag\ncombinations are invalid.\n\nWith regards to compute storage usage, READ | WRITE means that you can have\nshader A that only writes into the texture and shader B that only reads\nfrom the texture and bind the same texture to either shader respectively.\nSIMULTANEOUS means that you can do reads and writes within the same shader\nor compute pass. It also implies that atomic ops can be used, since those\nare read-modify-write operations. If you use SIMULTANEOUS, you are\nresponsible for avoiding data races, as there is no data synchronization\nwithin a compute pass. Note that SIMULTANEOUS usage is only supported by a\nlimited number of texture formats.\n\n## Availability\nThis datatype is available since SDL 3.2.0.\n\n## See also\n- [`SDL_CreateGPUTexture`]\n",
1140 ),
1141 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
1142 values: &[
1143 GroupValue {
1144 name: "SDL_GPU_TEXTUREUSAGE_SAMPLER",
1145 short_name: "SAMPLER",
1146 doc: Some("Texture supports sampling.\n"),
1147 available_since: None,
1148 },
1149 GroupValue {
1150 name: "SDL_GPU_TEXTUREUSAGE_COLOR_TARGET",
1151 short_name: "COLOR_TARGET",
1152 doc: Some("Texture is a color render target.\n"),
1153 available_since: None,
1154 },
1155 GroupValue {
1156 name: "SDL_GPU_TEXTUREUSAGE_DEPTH_STENCIL_TARGET",
1157 short_name: "DEPTH_STENCIL_TARGET",
1158 doc: Some("Texture is a depth stencil target.\n"),
1159 available_since: None,
1160 },
1161 GroupValue {
1162 name: "SDL_GPU_TEXTUREUSAGE_GRAPHICS_STORAGE_READ",
1163 short_name: "GRAPHICS_STORAGE_READ",
1164 doc: Some("Texture supports storage reads in graphics stages.\n"),
1165 available_since: None,
1166 },
1167 GroupValue {
1168 name: "SDL_GPU_TEXTUREUSAGE_COMPUTE_STORAGE_READ",
1169 short_name: "COMPUTE_STORAGE_READ",
1170 doc: Some("Texture supports storage reads in the compute stage.\n"),
1171 available_since: None,
1172 },
1173 GroupValue {
1174 name: "SDL_GPU_TEXTUREUSAGE_COMPUTE_STORAGE_WRITE",
1175 short_name: "COMPUTE_STORAGE_WRITE",
1176 doc: Some("Texture supports storage writes in the compute stage.\n"),
1177 available_since: None,
1178 },
1179 GroupValue {
1180 name: "SDL_GPU_TEXTUREUSAGE_COMPUTE_STORAGE_SIMULTANEOUS_READ_WRITE",
1181 short_name: "COMPUTE_STORAGE_SIMULTANEOUS_READ_WRITE",
1182 doc: Some(
1183 "Texture supports reads and writes in the same compute shader. This is NOT equivalent to READ | WRITE.\n",
1184 ),
1185 available_since: None,
1186 },
1187 ],
1188};
1189pub const METADATA_SDL_GPUTextureType: Group = Group {
1190 module: "gpu",
1191 kind: GroupKind::Enum,
1192 name: "SDL_GPUTextureType",
1193 short_name: "GPUTextureType",
1194 doc: Some(
1195 "Specifies the type of a texture.\n\n## Availability\nThis enum is available since SDL 3.2.0.\n\n## See also\n- [`SDL_CreateGPUTexture`]\n",
1196 ),
1197 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
1198 values: &[
1199 GroupValue {
1200 name: "SDL_GPU_TEXTURETYPE_2D",
1201 short_name: "_2D",
1202 doc: Some("The texture is a 2-dimensional image.\n"),
1203 available_since: None,
1204 },
1205 GroupValue {
1206 name: "SDL_GPU_TEXTURETYPE_2D_ARRAY",
1207 short_name: "_2D_ARRAY",
1208 doc: Some("The texture is a 2-dimensional array image.\n"),
1209 available_since: None,
1210 },
1211 GroupValue {
1212 name: "SDL_GPU_TEXTURETYPE_3D",
1213 short_name: "_3D",
1214 doc: Some("The texture is a 3-dimensional image.\n"),
1215 available_since: None,
1216 },
1217 GroupValue {
1218 name: "SDL_GPU_TEXTURETYPE_CUBE",
1219 short_name: "CUBE",
1220 doc: Some("The texture is a cube image.\n"),
1221 available_since: None,
1222 },
1223 GroupValue {
1224 name: "SDL_GPU_TEXTURETYPE_CUBE_ARRAY",
1225 short_name: "CUBE_ARRAY",
1226 doc: Some("The texture is a cube array image.\n"),
1227 available_since: None,
1228 },
1229 ],
1230};
1231pub const METADATA_SDL_GPUSampleCount: Group = Group {
1232 module: "gpu",
1233 kind: GroupKind::Enum,
1234 name: "SDL_GPUSampleCount",
1235 short_name: "GPUSampleCount",
1236 doc: Some(
1237 "Specifies the sample count of a texture.\n\nUsed in multisampling. Note that this value only applies when the texture\nis used as a render target.\n\n## Availability\nThis enum is available since SDL 3.2.0.\n\n## See also\n- [`SDL_CreateGPUTexture`]\n- [`SDL_GPUTextureSupportsSampleCount`]\n",
1238 ),
1239 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
1240 values: &[
1241 GroupValue {
1242 name: "SDL_GPU_SAMPLECOUNT_1",
1243 short_name: "_1",
1244 doc: Some("No multisampling.\n"),
1245 available_since: None,
1246 },
1247 GroupValue {
1248 name: "SDL_GPU_SAMPLECOUNT_2",
1249 short_name: "_2",
1250 doc: Some("MSAA 2x\n"),
1251 available_since: None,
1252 },
1253 GroupValue {
1254 name: "SDL_GPU_SAMPLECOUNT_4",
1255 short_name: "_4",
1256 doc: Some("MSAA 4x\n"),
1257 available_since: None,
1258 },
1259 GroupValue {
1260 name: "SDL_GPU_SAMPLECOUNT_8",
1261 short_name: "_8",
1262 doc: Some("MSAA 8x\n"),
1263 available_since: None,
1264 },
1265 ],
1266};
1267pub const METADATA_SDL_GPUCubeMapFace: Group = Group {
1268 module: "gpu",
1269 kind: GroupKind::Enum,
1270 name: "SDL_GPUCubeMapFace",
1271 short_name: "GPUCubeMapFace",
1272 doc: Some(
1273 "Specifies the face of a cube map.\n\nCan be passed in as the layer field in texture-related structs.\n\n## Availability\nThis enum is available since SDL 3.2.0.\n",
1274 ),
1275 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
1276 values: &[
1277 GroupValue {
1278 name: "SDL_GPU_CUBEMAPFACE_POSITIVEX",
1279 short_name: "POSITIVEX",
1280 doc: None,
1281 available_since: None,
1282 },
1283 GroupValue {
1284 name: "SDL_GPU_CUBEMAPFACE_NEGATIVEX",
1285 short_name: "NEGATIVEX",
1286 doc: None,
1287 available_since: None,
1288 },
1289 GroupValue {
1290 name: "SDL_GPU_CUBEMAPFACE_POSITIVEY",
1291 short_name: "POSITIVEY",
1292 doc: None,
1293 available_since: None,
1294 },
1295 GroupValue {
1296 name: "SDL_GPU_CUBEMAPFACE_NEGATIVEY",
1297 short_name: "NEGATIVEY",
1298 doc: None,
1299 available_since: None,
1300 },
1301 GroupValue {
1302 name: "SDL_GPU_CUBEMAPFACE_POSITIVEZ",
1303 short_name: "POSITIVEZ",
1304 doc: None,
1305 available_since: None,
1306 },
1307 GroupValue {
1308 name: "SDL_GPU_CUBEMAPFACE_NEGATIVEZ",
1309 short_name: "NEGATIVEZ",
1310 doc: None,
1311 available_since: None,
1312 },
1313 ],
1314};
1315pub const METADATA_SDL_GPUBufferUsageFlags: Group = Group {
1316 module: "gpu",
1317 kind: GroupKind::Flags,
1318 name: "SDL_GPUBufferUsageFlags",
1319 short_name: "GPUBufferUsageFlags",
1320 doc: Some(
1321 "Specifies how a buffer is intended to be used by the client.\n\nA buffer must have at least one usage flag. Note that some usage flag\ncombinations are invalid.\n\nUnlike textures, READ | WRITE can be used for simultaneous read-write\nusage. The same data synchronization concerns as textures apply.\n\nIf you use a STORAGE flag, the data in the buffer must respect std140\nlayout conventions. In practical terms this means you must ensure that vec3\nand vec4 fields are 16-byte aligned.\n\n## Availability\nThis datatype is available since SDL 3.2.0.\n\n## See also\n- [`SDL_CreateGPUBuffer`]\n",
1322 ),
1323 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
1324 values: &[
1325 GroupValue {
1326 name: "SDL_GPU_BUFFERUSAGE_VERTEX",
1327 short_name: "VERTEX",
1328 doc: Some("Buffer is a vertex buffer.\n"),
1329 available_since: None,
1330 },
1331 GroupValue {
1332 name: "SDL_GPU_BUFFERUSAGE_INDEX",
1333 short_name: "INDEX",
1334 doc: Some("Buffer is an index buffer.\n"),
1335 available_since: None,
1336 },
1337 GroupValue {
1338 name: "SDL_GPU_BUFFERUSAGE_INDIRECT",
1339 short_name: "INDIRECT",
1340 doc: Some("Buffer is an indirect buffer.\n"),
1341 available_since: None,
1342 },
1343 GroupValue {
1344 name: "SDL_GPU_BUFFERUSAGE_GRAPHICS_STORAGE_READ",
1345 short_name: "GRAPHICS_STORAGE_READ",
1346 doc: Some("Buffer supports storage reads in graphics stages.\n"),
1347 available_since: None,
1348 },
1349 GroupValue {
1350 name: "SDL_GPU_BUFFERUSAGE_COMPUTE_STORAGE_READ",
1351 short_name: "COMPUTE_STORAGE_READ",
1352 doc: Some("Buffer supports storage reads in the compute stage.\n"),
1353 available_since: None,
1354 },
1355 GroupValue {
1356 name: "SDL_GPU_BUFFERUSAGE_COMPUTE_STORAGE_WRITE",
1357 short_name: "COMPUTE_STORAGE_WRITE",
1358 doc: Some("Buffer supports storage writes in the compute stage.\n"),
1359 available_since: None,
1360 },
1361 ],
1362};
1363pub const METADATA_SDL_GPUTransferBufferUsage: Group = Group {
1364 module: "gpu",
1365 kind: GroupKind::Enum,
1366 name: "SDL_GPUTransferBufferUsage",
1367 short_name: "GPUTransferBufferUsage",
1368 doc: Some(
1369 "Specifies how a transfer buffer is intended to be used by the client.\n\nNote that mapping and copying FROM an upload transfer buffer or TO a\ndownload transfer buffer is undefined behavior.\n\n## Availability\nThis enum is available since SDL 3.2.0.\n\n## See also\n- [`SDL_CreateGPUTransferBuffer`]\n",
1370 ),
1371 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
1372 values: &[
1373 GroupValue {
1374 name: "SDL_GPU_TRANSFERBUFFERUSAGE_UPLOAD",
1375 short_name: "UPLOAD",
1376 doc: None,
1377 available_since: None,
1378 },
1379 GroupValue {
1380 name: "SDL_GPU_TRANSFERBUFFERUSAGE_DOWNLOAD",
1381 short_name: "DOWNLOAD",
1382 doc: None,
1383 available_since: None,
1384 },
1385 ],
1386};
1387pub const METADATA_SDL_GPUShaderStage: Group = Group {
1388 module: "gpu",
1389 kind: GroupKind::Enum,
1390 name: "SDL_GPUShaderStage",
1391 short_name: "GPUShaderStage",
1392 doc: Some(
1393 "Specifies which stage a shader program corresponds to.\n\n## Availability\nThis enum is available since SDL 3.2.0.\n\n## See also\n- [`SDL_CreateGPUShader`]\n",
1394 ),
1395 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
1396 values: &[
1397 GroupValue {
1398 name: "SDL_GPU_SHADERSTAGE_VERTEX",
1399 short_name: "VERTEX",
1400 doc: None,
1401 available_since: None,
1402 },
1403 GroupValue {
1404 name: "SDL_GPU_SHADERSTAGE_FRAGMENT",
1405 short_name: "FRAGMENT",
1406 doc: None,
1407 available_since: None,
1408 },
1409 ],
1410};
1411pub const METADATA_SDL_GPUShaderFormat: Group = Group {
1412 module: "gpu",
1413 kind: GroupKind::Flags,
1414 name: "SDL_GPUShaderFormat",
1415 short_name: "GPUShaderFormat",
1416 doc: Some(
1417 "Specifies the format of shader code.\n\nEach format corresponds to a specific backend that accepts it.\n\n## Availability\nThis datatype is available since SDL 3.2.0.\n\n## See also\n- [`SDL_CreateGPUShader`]\n",
1418 ),
1419 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
1420 values: &[
1421 GroupValue {
1422 name: "SDL_GPU_SHADERFORMAT_INVALID",
1423 short_name: "INVALID",
1424 doc: None,
1425 available_since: None,
1426 },
1427 GroupValue {
1428 name: "SDL_GPU_SHADERFORMAT_PRIVATE",
1429 short_name: "PRIVATE",
1430 doc: Some("Shaders for NDA'd platforms.\n"),
1431 available_since: None,
1432 },
1433 GroupValue {
1434 name: "SDL_GPU_SHADERFORMAT_SPIRV",
1435 short_name: "SPIRV",
1436 doc: Some("SPIR-V shaders for Vulkan.\n"),
1437 available_since: None,
1438 },
1439 GroupValue {
1440 name: "SDL_GPU_SHADERFORMAT_DXBC",
1441 short_name: "DXBC",
1442 doc: Some("DXBC SM5_1 shaders for D3D12.\n"),
1443 available_since: None,
1444 },
1445 GroupValue {
1446 name: "SDL_GPU_SHADERFORMAT_DXIL",
1447 short_name: "DXIL",
1448 doc: Some("DXIL SM6_0 shaders for D3D12.\n"),
1449 available_since: None,
1450 },
1451 GroupValue {
1452 name: "SDL_GPU_SHADERFORMAT_MSL",
1453 short_name: "MSL",
1454 doc: Some("MSL shaders for Metal.\n"),
1455 available_since: None,
1456 },
1457 GroupValue {
1458 name: "SDL_GPU_SHADERFORMAT_METALLIB",
1459 short_name: "METALLIB",
1460 doc: Some("Precompiled metallib shaders for Metal.\n"),
1461 available_since: None,
1462 },
1463 ],
1464};
1465pub const METADATA_SDL_GPUVertexElementFormat: Group = Group {
1466 module: "gpu",
1467 kind: GroupKind::Enum,
1468 name: "SDL_GPUVertexElementFormat",
1469 short_name: "GPUVertexElementFormat",
1470 doc: Some(
1471 "Specifies the format of a vertex attribute.\n\n## Availability\nThis enum is available since SDL 3.2.0.\n\n## See also\n- [`SDL_CreateGPUGraphicsPipeline`]\n",
1472 ),
1473 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
1474 values: &[
1475 GroupValue {
1476 name: "SDL_GPU_VERTEXELEMENTFORMAT_INVALID",
1477 short_name: "INVALID",
1478 doc: None,
1479 available_since: None,
1480 },
1481 GroupValue {
1482 name: "SDL_GPU_VERTEXELEMENTFORMAT_INT",
1483 short_name: "INT",
1484 doc: None,
1485 available_since: None,
1486 },
1487 GroupValue {
1488 name: "SDL_GPU_VERTEXELEMENTFORMAT_INT2",
1489 short_name: "INT2",
1490 doc: None,
1491 available_since: None,
1492 },
1493 GroupValue {
1494 name: "SDL_GPU_VERTEXELEMENTFORMAT_INT3",
1495 short_name: "INT3",
1496 doc: None,
1497 available_since: None,
1498 },
1499 GroupValue {
1500 name: "SDL_GPU_VERTEXELEMENTFORMAT_INT4",
1501 short_name: "INT4",
1502 doc: None,
1503 available_since: None,
1504 },
1505 GroupValue {
1506 name: "SDL_GPU_VERTEXELEMENTFORMAT_UINT",
1507 short_name: "UINT",
1508 doc: None,
1509 available_since: None,
1510 },
1511 GroupValue {
1512 name: "SDL_GPU_VERTEXELEMENTFORMAT_UINT2",
1513 short_name: "UINT2",
1514 doc: None,
1515 available_since: None,
1516 },
1517 GroupValue {
1518 name: "SDL_GPU_VERTEXELEMENTFORMAT_UINT3",
1519 short_name: "UINT3",
1520 doc: None,
1521 available_since: None,
1522 },
1523 GroupValue {
1524 name: "SDL_GPU_VERTEXELEMENTFORMAT_UINT4",
1525 short_name: "UINT4",
1526 doc: None,
1527 available_since: None,
1528 },
1529 GroupValue {
1530 name: "SDL_GPU_VERTEXELEMENTFORMAT_FLOAT",
1531 short_name: "FLOAT",
1532 doc: None,
1533 available_since: None,
1534 },
1535 GroupValue {
1536 name: "SDL_GPU_VERTEXELEMENTFORMAT_FLOAT2",
1537 short_name: "FLOAT2",
1538 doc: None,
1539 available_since: None,
1540 },
1541 GroupValue {
1542 name: "SDL_GPU_VERTEXELEMENTFORMAT_FLOAT3",
1543 short_name: "FLOAT3",
1544 doc: None,
1545 available_since: None,
1546 },
1547 GroupValue {
1548 name: "SDL_GPU_VERTEXELEMENTFORMAT_FLOAT4",
1549 short_name: "FLOAT4",
1550 doc: None,
1551 available_since: None,
1552 },
1553 GroupValue {
1554 name: "SDL_GPU_VERTEXELEMENTFORMAT_BYTE2",
1555 short_name: "BYTE2",
1556 doc: None,
1557 available_since: None,
1558 },
1559 GroupValue {
1560 name: "SDL_GPU_VERTEXELEMENTFORMAT_BYTE4",
1561 short_name: "BYTE4",
1562 doc: None,
1563 available_since: None,
1564 },
1565 GroupValue {
1566 name: "SDL_GPU_VERTEXELEMENTFORMAT_UBYTE2",
1567 short_name: "UBYTE2",
1568 doc: None,
1569 available_since: None,
1570 },
1571 GroupValue {
1572 name: "SDL_GPU_VERTEXELEMENTFORMAT_UBYTE4",
1573 short_name: "UBYTE4",
1574 doc: None,
1575 available_since: None,
1576 },
1577 GroupValue {
1578 name: "SDL_GPU_VERTEXELEMENTFORMAT_BYTE2_NORM",
1579 short_name: "BYTE2_NORM",
1580 doc: None,
1581 available_since: None,
1582 },
1583 GroupValue {
1584 name: "SDL_GPU_VERTEXELEMENTFORMAT_BYTE4_NORM",
1585 short_name: "BYTE4_NORM",
1586 doc: None,
1587 available_since: None,
1588 },
1589 GroupValue {
1590 name: "SDL_GPU_VERTEXELEMENTFORMAT_UBYTE2_NORM",
1591 short_name: "UBYTE2_NORM",
1592 doc: None,
1593 available_since: None,
1594 },
1595 GroupValue {
1596 name: "SDL_GPU_VERTEXELEMENTFORMAT_UBYTE4_NORM",
1597 short_name: "UBYTE4_NORM",
1598 doc: None,
1599 available_since: None,
1600 },
1601 GroupValue {
1602 name: "SDL_GPU_VERTEXELEMENTFORMAT_SHORT2",
1603 short_name: "SHORT2",
1604 doc: None,
1605 available_since: None,
1606 },
1607 GroupValue {
1608 name: "SDL_GPU_VERTEXELEMENTFORMAT_SHORT4",
1609 short_name: "SHORT4",
1610 doc: None,
1611 available_since: None,
1612 },
1613 GroupValue {
1614 name: "SDL_GPU_VERTEXELEMENTFORMAT_USHORT2",
1615 short_name: "USHORT2",
1616 doc: None,
1617 available_since: None,
1618 },
1619 GroupValue {
1620 name: "SDL_GPU_VERTEXELEMENTFORMAT_USHORT4",
1621 short_name: "USHORT4",
1622 doc: None,
1623 available_since: None,
1624 },
1625 GroupValue {
1626 name: "SDL_GPU_VERTEXELEMENTFORMAT_SHORT2_NORM",
1627 short_name: "SHORT2_NORM",
1628 doc: None,
1629 available_since: None,
1630 },
1631 GroupValue {
1632 name: "SDL_GPU_VERTEXELEMENTFORMAT_SHORT4_NORM",
1633 short_name: "SHORT4_NORM",
1634 doc: None,
1635 available_since: None,
1636 },
1637 GroupValue {
1638 name: "SDL_GPU_VERTEXELEMENTFORMAT_USHORT2_NORM",
1639 short_name: "USHORT2_NORM",
1640 doc: None,
1641 available_since: None,
1642 },
1643 GroupValue {
1644 name: "SDL_GPU_VERTEXELEMENTFORMAT_USHORT4_NORM",
1645 short_name: "USHORT4_NORM",
1646 doc: None,
1647 available_since: None,
1648 },
1649 GroupValue {
1650 name: "SDL_GPU_VERTEXELEMENTFORMAT_HALF2",
1651 short_name: "HALF2",
1652 doc: None,
1653 available_since: None,
1654 },
1655 GroupValue {
1656 name: "SDL_GPU_VERTEXELEMENTFORMAT_HALF4",
1657 short_name: "HALF4",
1658 doc: None,
1659 available_since: None,
1660 },
1661 ],
1662};
1663pub const METADATA_SDL_GPUVertexInputRate: Group = Group {
1664 module: "gpu",
1665 kind: GroupKind::Enum,
1666 name: "SDL_GPUVertexInputRate",
1667 short_name: "GPUVertexInputRate",
1668 doc: Some(
1669 "Specifies the rate at which vertex attributes are pulled from buffers.\n\n## Availability\nThis enum is available since SDL 3.2.0.\n\n## See also\n- [`SDL_CreateGPUGraphicsPipeline`]\n",
1670 ),
1671 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
1672 values: &[
1673 GroupValue {
1674 name: "SDL_GPU_VERTEXINPUTRATE_VERTEX",
1675 short_name: "VERTEX",
1676 doc: Some("Attribute addressing is a function of the vertex index.\n"),
1677 available_since: None,
1678 },
1679 GroupValue {
1680 name: "SDL_GPU_VERTEXINPUTRATE_INSTANCE",
1681 short_name: "INSTANCE",
1682 doc: Some("Attribute addressing is a function of the instance index.\n"),
1683 available_since: None,
1684 },
1685 ],
1686};
1687pub const METADATA_SDL_GPUFillMode: Group = Group {
1688 module: "gpu",
1689 kind: GroupKind::Enum,
1690 name: "SDL_GPUFillMode",
1691 short_name: "GPUFillMode",
1692 doc: Some(
1693 "Specifies the fill mode of the graphics pipeline.\n\n## Availability\nThis enum is available since SDL 3.2.0.\n\n## See also\n- [`SDL_CreateGPUGraphicsPipeline`]\n",
1694 ),
1695 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
1696 values: &[
1697 GroupValue {
1698 name: "SDL_GPU_FILLMODE_FILL",
1699 short_name: "FILL",
1700 doc: Some("Polygons will be rendered via rasterization.\n"),
1701 available_since: None,
1702 },
1703 GroupValue {
1704 name: "SDL_GPU_FILLMODE_LINE",
1705 short_name: "LINE",
1706 doc: Some("Polygon edges will be drawn as line segments.\n"),
1707 available_since: None,
1708 },
1709 ],
1710};
1711pub const METADATA_SDL_GPUCullMode: Group = Group {
1712 module: "gpu",
1713 kind: GroupKind::Enum,
1714 name: "SDL_GPUCullMode",
1715 short_name: "GPUCullMode",
1716 doc: Some(
1717 "Specifies the facing direction in which triangle faces will be culled.\n\n## Availability\nThis enum is available since SDL 3.2.0.\n\n## See also\n- [`SDL_CreateGPUGraphicsPipeline`]\n",
1718 ),
1719 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
1720 values: &[
1721 GroupValue {
1722 name: "SDL_GPU_CULLMODE_NONE",
1723 short_name: "NONE",
1724 doc: Some("No triangles are culled.\n"),
1725 available_since: None,
1726 },
1727 GroupValue {
1728 name: "SDL_GPU_CULLMODE_FRONT",
1729 short_name: "FRONT",
1730 doc: Some("Front-facing triangles are culled.\n"),
1731 available_since: None,
1732 },
1733 GroupValue {
1734 name: "SDL_GPU_CULLMODE_BACK",
1735 short_name: "BACK",
1736 doc: Some("Back-facing triangles are culled.\n"),
1737 available_since: None,
1738 },
1739 ],
1740};
1741pub const METADATA_SDL_GPUFrontFace: Group = Group {
1742 module: "gpu",
1743 kind: GroupKind::Enum,
1744 name: "SDL_GPUFrontFace",
1745 short_name: "GPUFrontFace",
1746 doc: Some(
1747 "Specifies the vertex winding that will cause a triangle to be determined to\nbe front-facing.\n\n## Availability\nThis enum is available since SDL 3.2.0.\n\n## See also\n- [`SDL_CreateGPUGraphicsPipeline`]\n",
1748 ),
1749 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
1750 values: &[
1751 GroupValue {
1752 name: "SDL_GPU_FRONTFACE_COUNTER_CLOCKWISE",
1753 short_name: "COUNTER_CLOCKWISE",
1754 doc: Some(
1755 "A triangle with counter-clockwise vertex winding will be considered front-facing.\n",
1756 ),
1757 available_since: None,
1758 },
1759 GroupValue {
1760 name: "SDL_GPU_FRONTFACE_CLOCKWISE",
1761 short_name: "CLOCKWISE",
1762 doc: Some(
1763 "A triangle with clockwise vertex winding will be considered front-facing.\n",
1764 ),
1765 available_since: None,
1766 },
1767 ],
1768};
1769pub const METADATA_SDL_GPUCompareOp: Group = Group {
1770 module: "gpu",
1771 kind: GroupKind::Enum,
1772 name: "SDL_GPUCompareOp",
1773 short_name: "GPUCompareOp",
1774 doc: Some(
1775 "Specifies a comparison operator for depth, stencil and sampler operations.\n\n## Availability\nThis enum is available since SDL 3.2.0.\n\n## See also\n- [`SDL_CreateGPUGraphicsPipeline`]\n",
1776 ),
1777 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
1778 values: &[
1779 GroupValue {
1780 name: "SDL_GPU_COMPAREOP_INVALID",
1781 short_name: "INVALID",
1782 doc: None,
1783 available_since: None,
1784 },
1785 GroupValue {
1786 name: "SDL_GPU_COMPAREOP_NEVER",
1787 short_name: "NEVER",
1788 doc: Some("The comparison always evaluates false.\n"),
1789 available_since: None,
1790 },
1791 GroupValue {
1792 name: "SDL_GPU_COMPAREOP_LESS",
1793 short_name: "LESS",
1794 doc: Some("The comparison evaluates reference < test.\n"),
1795 available_since: None,
1796 },
1797 GroupValue {
1798 name: "SDL_GPU_COMPAREOP_EQUAL",
1799 short_name: "EQUAL",
1800 doc: Some("The comparison evaluates reference == test.\n"),
1801 available_since: None,
1802 },
1803 GroupValue {
1804 name: "SDL_GPU_COMPAREOP_LESS_OR_EQUAL",
1805 short_name: "LESS_OR_EQUAL",
1806 doc: Some("The comparison evaluates reference <= test.\n"),
1807 available_since: None,
1808 },
1809 GroupValue {
1810 name: "SDL_GPU_COMPAREOP_GREATER",
1811 short_name: "GREATER",
1812 doc: Some("The comparison evaluates reference > test.\n"),
1813 available_since: None,
1814 },
1815 GroupValue {
1816 name: "SDL_GPU_COMPAREOP_NOT_EQUAL",
1817 short_name: "NOT_EQUAL",
1818 doc: Some("The comparison evaluates reference != test.\n"),
1819 available_since: None,
1820 },
1821 GroupValue {
1822 name: "SDL_GPU_COMPAREOP_GREATER_OR_EQUAL",
1823 short_name: "GREATER_OR_EQUAL",
1824 doc: Some("The comparison evaluates reference >= test.\n"),
1825 available_since: None,
1826 },
1827 GroupValue {
1828 name: "SDL_GPU_COMPAREOP_ALWAYS",
1829 short_name: "ALWAYS",
1830 doc: Some("The comparison always evaluates true.\n"),
1831 available_since: None,
1832 },
1833 ],
1834};
1835pub const METADATA_SDL_GPUStencilOp: Group = Group {
1836 module: "gpu",
1837 kind: GroupKind::Enum,
1838 name: "SDL_GPUStencilOp",
1839 short_name: "GPUStencilOp",
1840 doc: Some(
1841 "Specifies what happens to a stored stencil value if stencil tests fail or\npass.\n\n## Availability\nThis enum is available since SDL 3.2.0.\n\n## See also\n- [`SDL_CreateGPUGraphicsPipeline`]\n",
1842 ),
1843 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
1844 values: &[
1845 GroupValue {
1846 name: "SDL_GPU_STENCILOP_INVALID",
1847 short_name: "INVALID",
1848 doc: None,
1849 available_since: None,
1850 },
1851 GroupValue {
1852 name: "SDL_GPU_STENCILOP_KEEP",
1853 short_name: "KEEP",
1854 doc: Some("Keeps the current value.\n"),
1855 available_since: None,
1856 },
1857 GroupValue {
1858 name: "SDL_GPU_STENCILOP_ZERO",
1859 short_name: "ZERO",
1860 doc: Some("Sets the value to 0.\n"),
1861 available_since: None,
1862 },
1863 GroupValue {
1864 name: "SDL_GPU_STENCILOP_REPLACE",
1865 short_name: "REPLACE",
1866 doc: Some("Sets the value to reference.\n"),
1867 available_since: None,
1868 },
1869 GroupValue {
1870 name: "SDL_GPU_STENCILOP_INCREMENT_AND_CLAMP",
1871 short_name: "INCREMENT_AND_CLAMP",
1872 doc: Some("Increments the current value and clamps to the maximum value.\n"),
1873 available_since: None,
1874 },
1875 GroupValue {
1876 name: "SDL_GPU_STENCILOP_DECREMENT_AND_CLAMP",
1877 short_name: "DECREMENT_AND_CLAMP",
1878 doc: Some("Decrements the current value and clamps to 0.\n"),
1879 available_since: None,
1880 },
1881 GroupValue {
1882 name: "SDL_GPU_STENCILOP_INVERT",
1883 short_name: "INVERT",
1884 doc: Some("Bitwise-inverts the current value.\n"),
1885 available_since: None,
1886 },
1887 GroupValue {
1888 name: "SDL_GPU_STENCILOP_INCREMENT_AND_WRAP",
1889 short_name: "INCREMENT_AND_WRAP",
1890 doc: Some("Increments the current value and wraps back to 0.\n"),
1891 available_since: None,
1892 },
1893 GroupValue {
1894 name: "SDL_GPU_STENCILOP_DECREMENT_AND_WRAP",
1895 short_name: "DECREMENT_AND_WRAP",
1896 doc: Some("Decrements the current value and wraps to the maximum value.\n"),
1897 available_since: None,
1898 },
1899 ],
1900};
1901pub const METADATA_SDL_GPUBlendOp: Group = Group {
1902 module: "gpu",
1903 kind: GroupKind::Enum,
1904 name: "SDL_GPUBlendOp",
1905 short_name: "GPUBlendOp",
1906 doc: Some(
1907 "Specifies the operator to be used when pixels in a render target are\nblended with existing pixels in the texture.\n\nThe source color is the value written by the fragment shader. The\ndestination color is the value currently existing in the texture.\n\n## Availability\nThis enum is available since SDL 3.2.0.\n\n## See also\n- [`SDL_CreateGPUGraphicsPipeline`]\n",
1908 ),
1909 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
1910 values: &[
1911 GroupValue {
1912 name: "SDL_GPU_BLENDOP_INVALID",
1913 short_name: "INVALID",
1914 doc: None,
1915 available_since: None,
1916 },
1917 GroupValue {
1918 name: "SDL_GPU_BLENDOP_ADD",
1919 short_name: "ADD",
1920 doc: Some("(source * source_factor) + (destination * destination_factor)\n"),
1921 available_since: None,
1922 },
1923 GroupValue {
1924 name: "SDL_GPU_BLENDOP_SUBTRACT",
1925 short_name: "SUBTRACT",
1926 doc: Some("(source * source_factor) - (destination * destination_factor)\n"),
1927 available_since: None,
1928 },
1929 GroupValue {
1930 name: "SDL_GPU_BLENDOP_REVERSE_SUBTRACT",
1931 short_name: "REVERSE_SUBTRACT",
1932 doc: Some("(destination * destination_factor) - (source * source_factor)\n"),
1933 available_since: None,
1934 },
1935 GroupValue {
1936 name: "SDL_GPU_BLENDOP_MIN",
1937 short_name: "MIN",
1938 doc: Some("min(source, destination)\n"),
1939 available_since: None,
1940 },
1941 GroupValue {
1942 name: "SDL_GPU_BLENDOP_MAX",
1943 short_name: "MAX",
1944 doc: Some("max(source, destination)\n"),
1945 available_since: None,
1946 },
1947 ],
1948};
1949pub const METADATA_SDL_GPUBlendFactor: Group = Group {
1950 module: "gpu",
1951 kind: GroupKind::Enum,
1952 name: "SDL_GPUBlendFactor",
1953 short_name: "GPUBlendFactor",
1954 doc: Some(
1955 "Specifies a blending factor to be used when pixels in a render target are\nblended with existing pixels in the texture.\n\nThe source color is the value written by the fragment shader. The\ndestination color is the value currently existing in the texture.\n\n## Availability\nThis enum is available since SDL 3.2.0.\n\n## See also\n- [`SDL_CreateGPUGraphicsPipeline`]\n",
1956 ),
1957 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
1958 values: &[
1959 GroupValue {
1960 name: "SDL_GPU_BLENDFACTOR_INVALID",
1961 short_name: "INVALID",
1962 doc: None,
1963 available_since: None,
1964 },
1965 GroupValue {
1966 name: "SDL_GPU_BLENDFACTOR_ZERO",
1967 short_name: "ZERO",
1968 doc: Some("0\n"),
1969 available_since: None,
1970 },
1971 GroupValue {
1972 name: "SDL_GPU_BLENDFACTOR_ONE",
1973 short_name: "ONE",
1974 doc: Some("1\n"),
1975 available_since: None,
1976 },
1977 GroupValue {
1978 name: "SDL_GPU_BLENDFACTOR_SRC_COLOR",
1979 short_name: "SRC_COLOR",
1980 doc: Some("source color\n"),
1981 available_since: None,
1982 },
1983 GroupValue {
1984 name: "SDL_GPU_BLENDFACTOR_ONE_MINUS_SRC_COLOR",
1985 short_name: "ONE_MINUS_SRC_COLOR",
1986 doc: Some("1 - source color\n"),
1987 available_since: None,
1988 },
1989 GroupValue {
1990 name: "SDL_GPU_BLENDFACTOR_DST_COLOR",
1991 short_name: "DST_COLOR",
1992 doc: Some("destination color\n"),
1993 available_since: None,
1994 },
1995 GroupValue {
1996 name: "SDL_GPU_BLENDFACTOR_ONE_MINUS_DST_COLOR",
1997 short_name: "ONE_MINUS_DST_COLOR",
1998 doc: Some("1 - destination color\n"),
1999 available_since: None,
2000 },
2001 GroupValue {
2002 name: "SDL_GPU_BLENDFACTOR_SRC_ALPHA",
2003 short_name: "SRC_ALPHA",
2004 doc: Some("source alpha\n"),
2005 available_since: None,
2006 },
2007 GroupValue {
2008 name: "SDL_GPU_BLENDFACTOR_ONE_MINUS_SRC_ALPHA",
2009 short_name: "ONE_MINUS_SRC_ALPHA",
2010 doc: Some("1 - source alpha\n"),
2011 available_since: None,
2012 },
2013 GroupValue {
2014 name: "SDL_GPU_BLENDFACTOR_DST_ALPHA",
2015 short_name: "DST_ALPHA",
2016 doc: Some("destination alpha\n"),
2017 available_since: None,
2018 },
2019 GroupValue {
2020 name: "SDL_GPU_BLENDFACTOR_ONE_MINUS_DST_ALPHA",
2021 short_name: "ONE_MINUS_DST_ALPHA",
2022 doc: Some("1 - destination alpha\n"),
2023 available_since: None,
2024 },
2025 GroupValue {
2026 name: "SDL_GPU_BLENDFACTOR_CONSTANT_COLOR",
2027 short_name: "CONSTANT_COLOR",
2028 doc: Some("blend constant\n"),
2029 available_since: None,
2030 },
2031 GroupValue {
2032 name: "SDL_GPU_BLENDFACTOR_ONE_MINUS_CONSTANT_COLOR",
2033 short_name: "ONE_MINUS_CONSTANT_COLOR",
2034 doc: Some("1 - blend constant\n"),
2035 available_since: None,
2036 },
2037 GroupValue {
2038 name: "SDL_GPU_BLENDFACTOR_SRC_ALPHA_SATURATE",
2039 short_name: "SRC_ALPHA_SATURATE",
2040 doc: Some("min(source alpha, 1 - destination alpha)\n"),
2041 available_since: None,
2042 },
2043 ],
2044};
2045pub const METADATA_SDL_GPUColorComponentFlags: Group = Group {
2046 module: "gpu",
2047 kind: GroupKind::Flags,
2048 name: "SDL_GPUColorComponentFlags",
2049 short_name: "GPUColorComponentFlags",
2050 doc: Some(
2051 "Specifies which color components are written in a graphics pipeline.\n\n## Availability\nThis datatype is available since SDL 3.2.0.\n\n## See also\n- [`SDL_CreateGPUGraphicsPipeline`]\n",
2052 ),
2053 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
2054 values: &[
2055 GroupValue {
2056 name: "SDL_GPU_COLORCOMPONENT_R",
2057 short_name: "R",
2058 doc: Some("the red component\n"),
2059 available_since: None,
2060 },
2061 GroupValue {
2062 name: "SDL_GPU_COLORCOMPONENT_G",
2063 short_name: "G",
2064 doc: Some("the green component\n"),
2065 available_since: None,
2066 },
2067 GroupValue {
2068 name: "SDL_GPU_COLORCOMPONENT_B",
2069 short_name: "B",
2070 doc: Some("the blue component\n"),
2071 available_since: None,
2072 },
2073 GroupValue {
2074 name: "SDL_GPU_COLORCOMPONENT_A",
2075 short_name: "A",
2076 doc: Some("the alpha component\n"),
2077 available_since: None,
2078 },
2079 ],
2080};
2081pub const METADATA_SDL_GPUFilter: Group = Group {
2082 module: "gpu",
2083 kind: GroupKind::Enum,
2084 name: "SDL_GPUFilter",
2085 short_name: "GPUFilter",
2086 doc: Some(
2087 "Specifies a filter operation used by a sampler.\n\n## Availability\nThis enum is available since SDL 3.2.0.\n\n## See also\n- [`SDL_CreateGPUSampler`]\n",
2088 ),
2089 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
2090 values: &[
2091 GroupValue {
2092 name: "SDL_GPU_FILTER_NEAREST",
2093 short_name: "NEAREST",
2094 doc: Some("Point filtering.\n"),
2095 available_since: None,
2096 },
2097 GroupValue {
2098 name: "SDL_GPU_FILTER_LINEAR",
2099 short_name: "LINEAR",
2100 doc: Some("Linear filtering.\n"),
2101 available_since: None,
2102 },
2103 ],
2104};
2105pub const METADATA_SDL_GPUSamplerMipmapMode: Group = Group {
2106 module: "gpu",
2107 kind: GroupKind::Enum,
2108 name: "SDL_GPUSamplerMipmapMode",
2109 short_name: "GPUSamplerMipmapMode",
2110 doc: Some(
2111 "Specifies a mipmap mode used by a sampler.\n\n## Availability\nThis enum is available since SDL 3.2.0.\n\n## See also\n- [`SDL_CreateGPUSampler`]\n",
2112 ),
2113 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
2114 values: &[
2115 GroupValue {
2116 name: "SDL_GPU_SAMPLERMIPMAPMODE_NEAREST",
2117 short_name: "NEAREST",
2118 doc: Some("Point filtering.\n"),
2119 available_since: None,
2120 },
2121 GroupValue {
2122 name: "SDL_GPU_SAMPLERMIPMAPMODE_LINEAR",
2123 short_name: "LINEAR",
2124 doc: Some("Linear filtering.\n"),
2125 available_since: None,
2126 },
2127 ],
2128};
2129pub const METADATA_SDL_GPUSamplerAddressMode: Group = Group {
2130 module: "gpu",
2131 kind: GroupKind::Enum,
2132 name: "SDL_GPUSamplerAddressMode",
2133 short_name: "GPUSamplerAddressMode",
2134 doc: Some(
2135 "Specifies behavior of texture sampling when the coordinates exceed the 0-1\nrange.\n\n## Availability\nThis enum is available since SDL 3.2.0.\n\n## See also\n- [`SDL_CreateGPUSampler`]\n",
2136 ),
2137 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
2138 values: &[
2139 GroupValue {
2140 name: "SDL_GPU_SAMPLERADDRESSMODE_REPEAT",
2141 short_name: "REPEAT",
2142 doc: Some("Specifies that the coordinates will wrap around.\n"),
2143 available_since: None,
2144 },
2145 GroupValue {
2146 name: "SDL_GPU_SAMPLERADDRESSMODE_MIRRORED_REPEAT",
2147 short_name: "MIRRORED_REPEAT",
2148 doc: Some("Specifies that the coordinates will wrap around mirrored.\n"),
2149 available_since: None,
2150 },
2151 GroupValue {
2152 name: "SDL_GPU_SAMPLERADDRESSMODE_CLAMP_TO_EDGE",
2153 short_name: "CLAMP_TO_EDGE",
2154 doc: Some("Specifies that the coordinates will clamp to the 0-1 range.\n"),
2155 available_since: None,
2156 },
2157 ],
2158};
2159pub const METADATA_SDL_GPUPresentMode: Group = Group {
2160 module: "gpu",
2161 kind: GroupKind::Enum,
2162 name: "SDL_GPUPresentMode",
2163 short_name: "GPUPresentMode",
2164 doc: Some(
2165 "Specifies the timing that will be used to present swapchain textures to the\nOS.\n\nVSYNC mode will always be supported. IMMEDIATE and MAILBOX modes may not be\nsupported on certain systems.\n\nIt is recommended to query [`SDL_WindowSupportsGPUPresentMode`] after claiming\nthe window if you wish to change the present mode to IMMEDIATE or MAILBOX.\n\n- VSYNC: Waits for vblank before presenting. No tearing is possible. If\nthere is a pending image to present, the new image is enqueued for\npresentation. Disallows tearing at the cost of visual latency.\n- IMMEDIATE: Immediately presents. Lowest latency option, but tearing may\noccur.\n- MAILBOX: Waits for vblank before presenting. No tearing is possible. If\nthere is a pending image to present, the pending image is replaced by the\nnew image. Similar to VSYNC, but with reduced visual latency.\n\n## Availability\nThis enum is available since SDL 3.2.0.\n\n## See also\n- [`SDL_SetGPUSwapchainParameters`]\n- [`SDL_WindowSupportsGPUPresentMode`]\n- [`SDL_WaitAndAcquireGPUSwapchainTexture`]\n",
2166 ),
2167 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
2168 values: &[
2169 GroupValue {
2170 name: "SDL_GPU_PRESENTMODE_VSYNC",
2171 short_name: "VSYNC",
2172 doc: None,
2173 available_since: None,
2174 },
2175 GroupValue {
2176 name: "SDL_GPU_PRESENTMODE_IMMEDIATE",
2177 short_name: "IMMEDIATE",
2178 doc: None,
2179 available_since: None,
2180 },
2181 GroupValue {
2182 name: "SDL_GPU_PRESENTMODE_MAILBOX",
2183 short_name: "MAILBOX",
2184 doc: None,
2185 available_since: None,
2186 },
2187 ],
2188};
2189pub const METADATA_SDL_GPUSwapchainComposition: Group = Group {
2190 module: "gpu",
2191 kind: GroupKind::Enum,
2192 name: "SDL_GPUSwapchainComposition",
2193 short_name: "GPUSwapchainComposition",
2194 doc: Some(
2195 "Specifies the texture format and colorspace of the swapchain textures.\n\nSDR will always be supported. Other compositions may not be supported on\ncertain systems.\n\nIt is recommended to query [`SDL_WindowSupportsGPUSwapchainComposition`] after\nclaiming the window if you wish to change the swapchain composition from\nSDR.\n\n- SDR: B8G8R8A8 or R8G8B8A8 swapchain. Pixel values are in sRGB encoding.\n- SDR_LINEAR: B8G8R8A8_SRGB or R8G8B8A8_SRGB swapchain. Pixel values are\nstored in memory in sRGB encoding but accessed in shaders in \"linear\nsRGB\" encoding which is sRGB but with a linear transfer function.\n- HDR_EXTENDED_LINEAR: R16G16B16A16_FLOAT swapchain. Pixel values are in\nextended linear sRGB encoding and permits values outside of the \\[0, 1\\]\nrange.\n- HDR10_ST2084: A2R10G10B10 or A2B10G10R10 swapchain. Pixel values are in\nBT.2020 ST2084 (PQ) encoding.\n\n## Availability\nThis enum is available since SDL 3.2.0.\n\n## See also\n- [`SDL_SetGPUSwapchainParameters`]\n- [`SDL_WindowSupportsGPUSwapchainComposition`]\n- [`SDL_WaitAndAcquireGPUSwapchainTexture`]\n",
2196 ),
2197 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
2198 values: &[
2199 GroupValue {
2200 name: "SDL_GPU_SWAPCHAINCOMPOSITION_SDR",
2201 short_name: "SDR",
2202 doc: None,
2203 available_since: None,
2204 },
2205 GroupValue {
2206 name: "SDL_GPU_SWAPCHAINCOMPOSITION_SDR_LINEAR",
2207 short_name: "SDR_LINEAR",
2208 doc: None,
2209 available_since: None,
2210 },
2211 GroupValue {
2212 name: "SDL_GPU_SWAPCHAINCOMPOSITION_HDR_EXTENDED_LINEAR",
2213 short_name: "HDR_EXTENDED_LINEAR",
2214 doc: None,
2215 available_since: None,
2216 },
2217 GroupValue {
2218 name: "SDL_GPU_SWAPCHAINCOMPOSITION_HDR10_ST2084",
2219 short_name: "HDR10_ST2084",
2220 doc: None,
2221 available_since: None,
2222 },
2223 ],
2224};
2225pub const METADATA_SDL_GPUViewport: Struct = Struct {
2226 module: "gpu",
2227 kind: StructKind::Struct,
2228 name: "SDL_GPUViewport",
2229 doc: Some(
2230 "A structure specifying a viewport.\n\n## Availability\nThis struct is available since SDL 3.2.0.\n\n## See also\n- [`SDL_SetGPUViewport`]\n",
2231 ),
2232 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
2233 fields: &[
2234 Field {
2235 name: "x",
2236 doc: Some("The left offset of the viewport.\n"),
2237 available_since: None,
2238 ty: "::core::ffi::c_float",
2239 },
2240 Field {
2241 name: "y",
2242 doc: Some("The top offset of the viewport.\n"),
2243 available_since: None,
2244 ty: "::core::ffi::c_float",
2245 },
2246 Field {
2247 name: "w",
2248 doc: Some("The width of the viewport.\n"),
2249 available_since: None,
2250 ty: "::core::ffi::c_float",
2251 },
2252 Field {
2253 name: "h",
2254 doc: Some("The height of the viewport.\n"),
2255 available_since: None,
2256 ty: "::core::ffi::c_float",
2257 },
2258 Field {
2259 name: "min_depth",
2260 doc: Some("The minimum depth of the viewport.\n"),
2261 available_since: None,
2262 ty: "::core::ffi::c_float",
2263 },
2264 Field {
2265 name: "max_depth",
2266 doc: Some("The maximum depth of the viewport.\n"),
2267 available_since: None,
2268 ty: "::core::ffi::c_float",
2269 },
2270 ],
2271};
2272pub const METADATA_SDL_GPUTextureTransferInfo: Struct = Struct {
2273 module: "gpu",
2274 kind: StructKind::Struct,
2275 name: "SDL_GPUTextureTransferInfo",
2276 doc: Some(
2277 "A structure specifying parameters related to transferring data to or from a\ntexture.\n\nIf either of `pixels_per_row` or `rows_per_layer` is zero, then width and\nheight of passed [`SDL_GPUTextureRegion`] to [`SDL_UploadToGPUTexture`] or\n[`SDL_DownloadFromGPUTexture`] are used as default values respectively and data\nis considered to be tightly packed.\n\n**WARNING**: On some older/integrated hardware, Direct3D 12 requires\ntexture data row pitch to be 256 byte aligned, and offsets to be aligned to\n512 bytes. If they are not, SDL will make a temporary copy of the data that\nis properly aligned, but this adds overhead to the transfer process. Apps\ncan avoid this by aligning their data appropriately, or using a different\nGPU backend than Direct3D 12.\n\n## Availability\nThis struct is available since SDL 3.2.0.\n\n## See also\n- [`SDL_UploadToGPUTexture`]\n- [`SDL_DownloadFromGPUTexture`]\n",
2278 ),
2279 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
2280 fields: &[
2281 Field {
2282 name: "transfer_buffer",
2283 doc: Some("The transfer buffer used in the transfer operation.\n"),
2284 available_since: None,
2285 ty: "*mut SDL_GPUTransferBuffer",
2286 },
2287 Field {
2288 name: "offset",
2289 doc: Some("The starting byte of the image data in the transfer buffer.\n"),
2290 available_since: None,
2291 ty: "Uint32",
2292 },
2293 Field {
2294 name: "pixels_per_row",
2295 doc: Some("The number of pixels from one row to the next.\n"),
2296 available_since: None,
2297 ty: "Uint32",
2298 },
2299 Field {
2300 name: "rows_per_layer",
2301 doc: Some("The number of rows from one layer/depth-slice to the next.\n"),
2302 available_since: None,
2303 ty: "Uint32",
2304 },
2305 ],
2306};
2307pub const METADATA_SDL_GPUTransferBufferLocation: Struct = Struct {
2308 module: "gpu",
2309 kind: StructKind::Struct,
2310 name: "SDL_GPUTransferBufferLocation",
2311 doc: Some(
2312 "A structure specifying a location in a transfer buffer.\n\nUsed when transferring buffer data to or from a transfer buffer.\n\n## Availability\nThis struct is available since SDL 3.2.0.\n\n## See also\n- [`SDL_UploadToGPUBuffer`]\n- [`SDL_DownloadFromGPUBuffer`]\n",
2313 ),
2314 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
2315 fields: &[
2316 Field {
2317 name: "transfer_buffer",
2318 doc: Some("The transfer buffer used in the transfer operation.\n"),
2319 available_since: None,
2320 ty: "*mut SDL_GPUTransferBuffer",
2321 },
2322 Field {
2323 name: "offset",
2324 doc: Some("The starting byte of the buffer data in the transfer buffer.\n"),
2325 available_since: None,
2326 ty: "Uint32",
2327 },
2328 ],
2329};
2330pub const METADATA_SDL_GPUTextureLocation: Struct = Struct {
2331 module: "gpu",
2332 kind: StructKind::Struct,
2333 name: "SDL_GPUTextureLocation",
2334 doc: Some(
2335 "A structure specifying a location in a texture.\n\nUsed when copying data from one texture to another.\n\n## Availability\nThis struct is available since SDL 3.2.0.\n\n## See also\n- [`SDL_CopyGPUTextureToTexture`]\n",
2336 ),
2337 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
2338 fields: &[
2339 Field {
2340 name: "texture",
2341 doc: Some("The texture used in the copy operation.\n"),
2342 available_since: None,
2343 ty: "*mut SDL_GPUTexture",
2344 },
2345 Field {
2346 name: "mip_level",
2347 doc: Some("The mip level index of the location.\n"),
2348 available_since: None,
2349 ty: "Uint32",
2350 },
2351 Field {
2352 name: "layer",
2353 doc: Some("The layer index of the location.\n"),
2354 available_since: None,
2355 ty: "Uint32",
2356 },
2357 Field {
2358 name: "x",
2359 doc: Some("The left offset of the location.\n"),
2360 available_since: None,
2361 ty: "Uint32",
2362 },
2363 Field {
2364 name: "y",
2365 doc: Some("The top offset of the location.\n"),
2366 available_since: None,
2367 ty: "Uint32",
2368 },
2369 Field {
2370 name: "z",
2371 doc: Some("The front offset of the location.\n"),
2372 available_since: None,
2373 ty: "Uint32",
2374 },
2375 ],
2376};
2377pub const METADATA_SDL_GPUTextureRegion: Struct = Struct {
2378 module: "gpu",
2379 kind: StructKind::Struct,
2380 name: "SDL_GPUTextureRegion",
2381 doc: Some(
2382 "A structure specifying a region of a texture.\n\nUsed when transferring data to or from a texture.\n\n## Availability\nThis struct is available since SDL 3.2.0.\n\n## See also\n- [`SDL_UploadToGPUTexture`]\n- [`SDL_DownloadFromGPUTexture`]\n- [`SDL_CreateGPUTexture`]\n",
2383 ),
2384 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
2385 fields: &[
2386 Field {
2387 name: "texture",
2388 doc: Some("The texture used in the copy operation.\n"),
2389 available_since: None,
2390 ty: "*mut SDL_GPUTexture",
2391 },
2392 Field {
2393 name: "mip_level",
2394 doc: Some("The mip level index to transfer.\n"),
2395 available_since: None,
2396 ty: "Uint32",
2397 },
2398 Field {
2399 name: "layer",
2400 doc: Some("The layer index to transfer.\n"),
2401 available_since: None,
2402 ty: "Uint32",
2403 },
2404 Field {
2405 name: "x",
2406 doc: Some("The left offset of the region.\n"),
2407 available_since: None,
2408 ty: "Uint32",
2409 },
2410 Field {
2411 name: "y",
2412 doc: Some("The top offset of the region.\n"),
2413 available_since: None,
2414 ty: "Uint32",
2415 },
2416 Field {
2417 name: "z",
2418 doc: Some("The front offset of the region.\n"),
2419 available_since: None,
2420 ty: "Uint32",
2421 },
2422 Field {
2423 name: "w",
2424 doc: Some("The width of the region.\n"),
2425 available_since: None,
2426 ty: "Uint32",
2427 },
2428 Field {
2429 name: "h",
2430 doc: Some("The height of the region.\n"),
2431 available_since: None,
2432 ty: "Uint32",
2433 },
2434 Field {
2435 name: "d",
2436 doc: Some("The depth of the region.\n"),
2437 available_since: None,
2438 ty: "Uint32",
2439 },
2440 ],
2441};
2442pub const METADATA_SDL_GPUBlitRegion: Struct = Struct {
2443 module: "gpu",
2444 kind: StructKind::Struct,
2445 name: "SDL_GPUBlitRegion",
2446 doc: Some(
2447 "A structure specifying a region of a texture used in the blit operation.\n\n## Availability\nThis struct is available since SDL 3.2.0.\n\n## See also\n- [`SDL_BlitGPUTexture`]\n",
2448 ),
2449 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
2450 fields: &[
2451 Field {
2452 name: "texture",
2453 doc: Some("The texture.\n"),
2454 available_since: None,
2455 ty: "*mut SDL_GPUTexture",
2456 },
2457 Field {
2458 name: "mip_level",
2459 doc: Some("The mip level index of the region.\n"),
2460 available_since: None,
2461 ty: "Uint32",
2462 },
2463 Field {
2464 name: "layer_or_depth_plane",
2465 doc: Some(
2466 "The layer index or depth plane of the region. This value is treated as a layer index on 2D array and cube textures, and as a depth plane on 3D textures.\n",
2467 ),
2468 available_since: None,
2469 ty: "Uint32",
2470 },
2471 Field {
2472 name: "x",
2473 doc: Some("The left offset of the region.\n"),
2474 available_since: None,
2475 ty: "Uint32",
2476 },
2477 Field {
2478 name: "y",
2479 doc: Some("The top offset of the region.\n"),
2480 available_since: None,
2481 ty: "Uint32",
2482 },
2483 Field {
2484 name: "w",
2485 doc: Some("The width of the region.\n"),
2486 available_since: None,
2487 ty: "Uint32",
2488 },
2489 Field {
2490 name: "h",
2491 doc: Some("The height of the region.\n"),
2492 available_since: None,
2493 ty: "Uint32",
2494 },
2495 ],
2496};
2497pub const METADATA_SDL_GPUBufferLocation: Struct = Struct {
2498 module: "gpu",
2499 kind: StructKind::Struct,
2500 name: "SDL_GPUBufferLocation",
2501 doc: Some(
2502 "A structure specifying a location in a buffer.\n\nUsed when copying data between buffers.\n\n## Availability\nThis struct is available since SDL 3.2.0.\n\n## See also\n- [`SDL_CopyGPUBufferToBuffer`]\n",
2503 ),
2504 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
2505 fields: &[
2506 Field {
2507 name: "buffer",
2508 doc: Some("The buffer.\n"),
2509 available_since: None,
2510 ty: "*mut SDL_GPUBuffer",
2511 },
2512 Field {
2513 name: "offset",
2514 doc: Some("The starting byte within the buffer.\n"),
2515 available_since: None,
2516 ty: "Uint32",
2517 },
2518 ],
2519};
2520pub const METADATA_SDL_GPUBufferRegion: Struct = Struct {
2521 module: "gpu",
2522 kind: StructKind::Struct,
2523 name: "SDL_GPUBufferRegion",
2524 doc: Some(
2525 "A structure specifying a region of a buffer.\n\nUsed when transferring data to or from buffers.\n\n## Availability\nThis struct is available since SDL 3.2.0.\n\n## See also\n- [`SDL_UploadToGPUBuffer`]\n- [`SDL_DownloadFromGPUBuffer`]\n",
2526 ),
2527 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
2528 fields: &[
2529 Field {
2530 name: "buffer",
2531 doc: Some("The buffer.\n"),
2532 available_since: None,
2533 ty: "*mut SDL_GPUBuffer",
2534 },
2535 Field {
2536 name: "offset",
2537 doc: Some("The starting byte within the buffer.\n"),
2538 available_since: None,
2539 ty: "Uint32",
2540 },
2541 Field {
2542 name: "size",
2543 doc: Some("The size in bytes of the region.\n"),
2544 available_since: None,
2545 ty: "Uint32",
2546 },
2547 ],
2548};
2549pub const METADATA_SDL_GPUIndirectDrawCommand: Struct = Struct {
2550 module: "gpu",
2551 kind: StructKind::Struct,
2552 name: "SDL_GPUIndirectDrawCommand",
2553 doc: Some(
2554 "A structure specifying the parameters of an indirect draw command.\n\nNote that the `first_vertex` and `first_instance` parameters are NOT\ncompatible with built-in vertex/instance ID variables in shaders (for\nexample, SV_VertexID); GPU APIs and shader languages do not define these\nbuilt-in variables consistently, so if your shader depends on them, the\nonly way to keep behavior consistent and portable is to always pass 0 for\nthe correlating parameter in the draw calls.\n\n## Availability\nThis struct is available since SDL 3.2.0.\n\n## See also\n- [`SDL_DrawGPUPrimitivesIndirect`]\n",
2555 ),
2556 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
2557 fields: &[
2558 Field {
2559 name: "num_vertices",
2560 doc: Some("The number of vertices to draw.\n"),
2561 available_since: None,
2562 ty: "Uint32",
2563 },
2564 Field {
2565 name: "num_instances",
2566 doc: Some("The number of instances to draw.\n"),
2567 available_since: None,
2568 ty: "Uint32",
2569 },
2570 Field {
2571 name: "first_vertex",
2572 doc: Some("The index of the first vertex to draw.\n"),
2573 available_since: None,
2574 ty: "Uint32",
2575 },
2576 Field {
2577 name: "first_instance",
2578 doc: Some("The ID of the first instance to draw.\n"),
2579 available_since: None,
2580 ty: "Uint32",
2581 },
2582 ],
2583};
2584pub const METADATA_SDL_GPUIndexedIndirectDrawCommand: Struct = Struct {
2585 module: "gpu",
2586 kind: StructKind::Struct,
2587 name: "SDL_GPUIndexedIndirectDrawCommand",
2588 doc: Some(
2589 "A structure specifying the parameters of an indexed indirect draw command.\n\nNote that the `first_vertex` and `first_instance` parameters are NOT\ncompatible with built-in vertex/instance ID variables in shaders (for\nexample, SV_VertexID); GPU APIs and shader languages do not define these\nbuilt-in variables consistently, so if your shader depends on them, the\nonly way to keep behavior consistent and portable is to always pass 0 for\nthe correlating parameter in the draw calls.\n\n## Availability\nThis struct is available since SDL 3.2.0.\n\n## See also\n- [`SDL_DrawGPUIndexedPrimitivesIndirect`]\n",
2590 ),
2591 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
2592 fields: &[
2593 Field {
2594 name: "num_indices",
2595 doc: Some("The number of indices to draw per instance.\n"),
2596 available_since: None,
2597 ty: "Uint32",
2598 },
2599 Field {
2600 name: "num_instances",
2601 doc: Some("The number of instances to draw.\n"),
2602 available_since: None,
2603 ty: "Uint32",
2604 },
2605 Field {
2606 name: "first_index",
2607 doc: Some("The base index within the index buffer.\n"),
2608 available_since: None,
2609 ty: "Uint32",
2610 },
2611 Field {
2612 name: "vertex_offset",
2613 doc: Some(
2614 "The value added to the vertex index before indexing into the vertex buffer.\n",
2615 ),
2616 available_since: None,
2617 ty: "Sint32",
2618 },
2619 Field {
2620 name: "first_instance",
2621 doc: Some("The ID of the first instance to draw.\n"),
2622 available_since: None,
2623 ty: "Uint32",
2624 },
2625 ],
2626};
2627pub const METADATA_SDL_GPUIndirectDispatchCommand: Struct = Struct {
2628 module: "gpu",
2629 kind: StructKind::Struct,
2630 name: "SDL_GPUIndirectDispatchCommand",
2631 doc: Some(
2632 "A structure specifying the parameters of an indexed dispatch command.\n\n## Availability\nThis struct is available since SDL 3.2.0.\n\n## See also\n- [`SDL_DispatchGPUComputeIndirect`]\n",
2633 ),
2634 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
2635 fields: &[
2636 Field {
2637 name: "groupcount_x",
2638 doc: Some("The number of local workgroups to dispatch in the X dimension.\n"),
2639 available_since: None,
2640 ty: "Uint32",
2641 },
2642 Field {
2643 name: "groupcount_y",
2644 doc: Some("The number of local workgroups to dispatch in the Y dimension.\n"),
2645 available_since: None,
2646 ty: "Uint32",
2647 },
2648 Field {
2649 name: "groupcount_z",
2650 doc: Some("The number of local workgroups to dispatch in the Z dimension.\n"),
2651 available_since: None,
2652 ty: "Uint32",
2653 },
2654 ],
2655};
2656pub const METADATA_SDL_GPUSamplerCreateInfo: Struct = Struct {
2657 module: "gpu",
2658 kind: StructKind::Struct,
2659 name: "SDL_GPUSamplerCreateInfo",
2660 doc: Some(
2661 "A structure specifying the parameters of a sampler.\n\nNote that mip_lod_bias is a no-op for the Metal driver. For Metal, LOD bias\nmust be applied via shader instead.\n\n## Availability\nThis function is available since SDL 3.2.0.\n\n## See also\n- [`SDL_CreateGPUSampler`]\n- [`SDL_GPUFilter`]\n- [`SDL_GPUSamplerMipmapMode`]\n- [`SDL_GPUSamplerAddressMode`]\n- [`SDL_GPUCompareOp`]\n\n## Notes for `sdl3-sys`\nThis struct has padding fields which shouldn't be accessed directly; use struct update syntax with e.g. `..Default::default()` for manual construction.\n",
2662 ),
2663 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
2664 fields: &[
2665 Field {
2666 name: "min_filter",
2667 doc: Some("The minification filter to apply to lookups.\n"),
2668 available_since: None,
2669 ty: "SDL_GPUFilter",
2670 },
2671 Field {
2672 name: "mag_filter",
2673 doc: Some("The magnification filter to apply to lookups.\n"),
2674 available_since: None,
2675 ty: "SDL_GPUFilter",
2676 },
2677 Field {
2678 name: "mipmap_mode",
2679 doc: Some("The mipmap filter to apply to lookups.\n"),
2680 available_since: None,
2681 ty: "SDL_GPUSamplerMipmapMode",
2682 },
2683 Field {
2684 name: "address_mode_u",
2685 doc: Some("The addressing mode for U coordinates outside [0, 1).\n"),
2686 available_since: None,
2687 ty: "SDL_GPUSamplerAddressMode",
2688 },
2689 Field {
2690 name: "address_mode_v",
2691 doc: Some("The addressing mode for V coordinates outside [0, 1).\n"),
2692 available_since: None,
2693 ty: "SDL_GPUSamplerAddressMode",
2694 },
2695 Field {
2696 name: "address_mode_w",
2697 doc: Some("The addressing mode for W coordinates outside [0, 1).\n"),
2698 available_since: None,
2699 ty: "SDL_GPUSamplerAddressMode",
2700 },
2701 Field {
2702 name: "mip_lod_bias",
2703 doc: Some("The bias to be added to mipmap LOD calculation.\n"),
2704 available_since: None,
2705 ty: "::core::ffi::c_float",
2706 },
2707 Field {
2708 name: "max_anisotropy",
2709 doc: Some(
2710 "The anisotropy value clamp used by the sampler. If enable_anisotropy is false, this is ignored.\n",
2711 ),
2712 available_since: None,
2713 ty: "::core::ffi::c_float",
2714 },
2715 Field {
2716 name: "compare_op",
2717 doc: Some("The comparison operator to apply to fetched data before filtering.\n"),
2718 available_since: None,
2719 ty: "SDL_GPUCompareOp",
2720 },
2721 Field {
2722 name: "min_lod",
2723 doc: Some("Clamps the minimum of the computed LOD value.\n"),
2724 available_since: None,
2725 ty: "::core::ffi::c_float",
2726 },
2727 Field {
2728 name: "max_lod",
2729 doc: Some("Clamps the maximum of the computed LOD value.\n"),
2730 available_since: None,
2731 ty: "::core::ffi::c_float",
2732 },
2733 Field {
2734 name: "enable_anisotropy",
2735 doc: Some("true to enable anisotropic filtering.\n"),
2736 available_since: None,
2737 ty: "::core::primitive::bool",
2738 },
2739 Field {
2740 name: "enable_compare",
2741 doc: Some("true to enable comparison against a reference value during lookups.\n"),
2742 available_since: None,
2743 ty: "::core::primitive::bool",
2744 },
2745 Field {
2746 name: "padding1",
2747 doc: None,
2748 available_since: None,
2749 ty: "Uint8",
2750 },
2751 Field {
2752 name: "padding2",
2753 doc: None,
2754 available_since: None,
2755 ty: "Uint8",
2756 },
2757 Field {
2758 name: "props",
2759 doc: Some("A properties ID for extensions. Should be 0 if no extensions are needed.\n"),
2760 available_since: None,
2761 ty: "SDL_PropertiesID",
2762 },
2763 ],
2764};
2765pub const METADATA_SDL_GPUVertexBufferDescription: Struct = Struct {
2766 module: "gpu",
2767 kind: StructKind::Struct,
2768 name: "SDL_GPUVertexBufferDescription",
2769 doc: Some(
2770 "A structure specifying the parameters of vertex buffers used in a graphics\npipeline.\n\nWhen you call [`SDL_BindGPUVertexBuffers`], you specify the binding slots of\nthe vertex buffers. For example if you called [`SDL_BindGPUVertexBuffers`] with\na first_slot of 2 and num_bindings of 3, the binding slots 2, 3, 4 would be\nused by the vertex buffers you pass in.\n\nVertex attributes are linked to buffers via the buffer_slot field of\n[`SDL_GPUVertexAttribute`]. For example, if an attribute has a buffer_slot of\n0, then that attribute belongs to the vertex buffer bound at slot 0.\n\n## Availability\nThis struct is available since SDL 3.2.0.\n\n## See also\n- [`SDL_GPUVertexAttribute`]\n- [`SDL_GPUVertexInputRate`]\n",
2771 ),
2772 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
2773 fields: &[
2774 Field {
2775 name: "slot",
2776 doc: Some("The binding slot of the vertex buffer.\n"),
2777 available_since: None,
2778 ty: "Uint32",
2779 },
2780 Field {
2781 name: "pitch",
2782 doc: Some("The size of a single element + the offset between elements.\n"),
2783 available_since: None,
2784 ty: "Uint32",
2785 },
2786 Field {
2787 name: "input_rate",
2788 doc: Some(
2789 "Whether attribute addressing is a function of the vertex index or instance index.\n",
2790 ),
2791 available_since: None,
2792 ty: "SDL_GPUVertexInputRate",
2793 },
2794 Field {
2795 name: "instance_step_rate",
2796 doc: Some("Reserved for future use. Must be set to 0.\n"),
2797 available_since: None,
2798 ty: "Uint32",
2799 },
2800 ],
2801};
2802pub const METADATA_SDL_GPUVertexAttribute: Struct = Struct {
2803 module: "gpu",
2804 kind: StructKind::Struct,
2805 name: "SDL_GPUVertexAttribute",
2806 doc: Some(
2807 "A structure specifying a vertex attribute.\n\nAll vertex attribute locations provided to an [`SDL_GPUVertexInputState`] must\nbe unique.\n\n## Availability\nThis struct is available since SDL 3.2.0.\n\n## See also\n- [`SDL_GPUVertexBufferDescription`]\n- [`SDL_GPUVertexInputState`]\n- [`SDL_GPUVertexElementFormat`]\n",
2808 ),
2809 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
2810 fields: &[
2811 Field {
2812 name: "location",
2813 doc: Some("The shader input location index.\n"),
2814 available_since: None,
2815 ty: "Uint32",
2816 },
2817 Field {
2818 name: "buffer_slot",
2819 doc: Some("The binding slot of the associated vertex buffer.\n"),
2820 available_since: None,
2821 ty: "Uint32",
2822 },
2823 Field {
2824 name: "format",
2825 doc: Some("The size and type of the attribute data.\n"),
2826 available_since: None,
2827 ty: "SDL_GPUVertexElementFormat",
2828 },
2829 Field {
2830 name: "offset",
2831 doc: Some(
2832 "The byte offset of this attribute relative to the start of the vertex element.\n",
2833 ),
2834 available_since: None,
2835 ty: "Uint32",
2836 },
2837 ],
2838};
2839pub const METADATA_SDL_GPUVertexInputState: Struct = Struct {
2840 module: "gpu",
2841 kind: StructKind::Struct,
2842 name: "SDL_GPUVertexInputState",
2843 doc: Some(
2844 "A structure specifying the parameters of a graphics pipeline vertex input\nstate.\n\n## Availability\nThis struct is available since SDL 3.2.0.\n\n## See also\n- [`SDL_GPUGraphicsPipelineCreateInfo`]\n- [`SDL_GPUVertexBufferDescription`]\n- [`SDL_GPUVertexAttribute`]\n",
2845 ),
2846 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
2847 fields: &[
2848 Field {
2849 name: "vertex_buffer_descriptions",
2850 doc: Some("A pointer to an array of vertex buffer descriptions.\n"),
2851 available_since: None,
2852 ty: "*const SDL_GPUVertexBufferDescription",
2853 },
2854 Field {
2855 name: "num_vertex_buffers",
2856 doc: Some("The number of vertex buffer descriptions in the above array.\n"),
2857 available_since: None,
2858 ty: "Uint32",
2859 },
2860 Field {
2861 name: "vertex_attributes",
2862 doc: Some("A pointer to an array of vertex attribute descriptions.\n"),
2863 available_since: None,
2864 ty: "*const SDL_GPUVertexAttribute",
2865 },
2866 Field {
2867 name: "num_vertex_attributes",
2868 doc: Some("The number of vertex attribute descriptions in the above array.\n"),
2869 available_since: None,
2870 ty: "Uint32",
2871 },
2872 ],
2873};
2874pub const METADATA_SDL_GPUStencilOpState: Struct = Struct {
2875 module: "gpu",
2876 kind: StructKind::Struct,
2877 name: "SDL_GPUStencilOpState",
2878 doc: Some(
2879 "A structure specifying the stencil operation state of a graphics pipeline.\n\n## Availability\nThis struct is available since SDL 3.2.0.\n\n## See also\n- [`SDL_GPUDepthStencilState`]\n",
2880 ),
2881 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
2882 fields: &[
2883 Field {
2884 name: "fail_op",
2885 doc: Some("The action performed on samples that fail the stencil test.\n"),
2886 available_since: None,
2887 ty: "SDL_GPUStencilOp",
2888 },
2889 Field {
2890 name: "pass_op",
2891 doc: Some("The action performed on samples that pass the depth and stencil tests.\n"),
2892 available_since: None,
2893 ty: "SDL_GPUStencilOp",
2894 },
2895 Field {
2896 name: "depth_fail_op",
2897 doc: Some(
2898 "The action performed on samples that pass the stencil test and fail the depth test.\n",
2899 ),
2900 available_since: None,
2901 ty: "SDL_GPUStencilOp",
2902 },
2903 Field {
2904 name: "compare_op",
2905 doc: Some("The comparison operator used in the stencil test.\n"),
2906 available_since: None,
2907 ty: "SDL_GPUCompareOp",
2908 },
2909 ],
2910};
2911pub const METADATA_SDL_GPUColorTargetBlendState: Struct = Struct {
2912 module: "gpu",
2913 kind: StructKind::Struct,
2914 name: "SDL_GPUColorTargetBlendState",
2915 doc: Some(
2916 "A structure specifying the blend state of a color target.\n\n## Availability\nThis struct is available since SDL 3.2.0.\n\n## See also\n- [`SDL_GPUColorTargetDescription`]\n- [`SDL_GPUBlendFactor`]\n- [`SDL_GPUBlendOp`]\n- [`SDL_GPUColorComponentFlags`]\n\n## Notes for `sdl3-sys`\nThis struct has padding fields which shouldn't be accessed directly; use struct update syntax with e.g. `..Default::default()` for manual construction.\n",
2917 ),
2918 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
2919 fields: &[
2920 Field {
2921 name: "src_color_blendfactor",
2922 doc: Some("The value to be multiplied by the source RGB value.\n"),
2923 available_since: None,
2924 ty: "SDL_GPUBlendFactor",
2925 },
2926 Field {
2927 name: "dst_color_blendfactor",
2928 doc: Some("The value to be multiplied by the destination RGB value.\n"),
2929 available_since: None,
2930 ty: "SDL_GPUBlendFactor",
2931 },
2932 Field {
2933 name: "color_blend_op",
2934 doc: Some("The blend operation for the RGB components.\n"),
2935 available_since: None,
2936 ty: "SDL_GPUBlendOp",
2937 },
2938 Field {
2939 name: "src_alpha_blendfactor",
2940 doc: Some("The value to be multiplied by the source alpha.\n"),
2941 available_since: None,
2942 ty: "SDL_GPUBlendFactor",
2943 },
2944 Field {
2945 name: "dst_alpha_blendfactor",
2946 doc: Some("The value to be multiplied by the destination alpha.\n"),
2947 available_since: None,
2948 ty: "SDL_GPUBlendFactor",
2949 },
2950 Field {
2951 name: "alpha_blend_op",
2952 doc: Some("The blend operation for the alpha component.\n"),
2953 available_since: None,
2954 ty: "SDL_GPUBlendOp",
2955 },
2956 Field {
2957 name: "color_write_mask",
2958 doc: Some(
2959 "A bitmask specifying which of the RGBA components are enabled for writing. Writes to all channels if enable_color_write_mask is false.\n",
2960 ),
2961 available_since: None,
2962 ty: "SDL_GPUColorComponentFlags",
2963 },
2964 Field {
2965 name: "enable_blend",
2966 doc: Some("Whether blending is enabled for the color target.\n"),
2967 available_since: None,
2968 ty: "::core::primitive::bool",
2969 },
2970 Field {
2971 name: "enable_color_write_mask",
2972 doc: Some("Whether the color write mask is enabled.\n"),
2973 available_since: None,
2974 ty: "::core::primitive::bool",
2975 },
2976 Field {
2977 name: "padding1",
2978 doc: None,
2979 available_since: None,
2980 ty: "Uint8",
2981 },
2982 Field {
2983 name: "padding2",
2984 doc: None,
2985 available_since: None,
2986 ty: "Uint8",
2987 },
2988 ],
2989};
2990pub const METADATA_SDL_GPUShaderCreateInfo: Struct = Struct {
2991 module: "gpu",
2992 kind: StructKind::Struct,
2993 name: "SDL_GPUShaderCreateInfo",
2994 doc: Some(
2995 "A structure specifying code and metadata for creating a shader object.\n\n## Availability\nThis struct is available since SDL 3.2.0.\n\n## See also\n- [`SDL_CreateGPUShader`]\n- [`SDL_GPUShaderFormat`]\n- [`SDL_GPUShaderStage`]\n",
2996 ),
2997 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
2998 fields: &[
2999 Field {
3000 name: "code_size",
3001 doc: Some("The size in bytes of the code pointed to.\n"),
3002 available_since: None,
3003 ty: "::core::primitive::usize",
3004 },
3005 Field {
3006 name: "code",
3007 doc: Some("A pointer to shader code.\n"),
3008 available_since: None,
3009 ty: "*const Uint8",
3010 },
3011 Field {
3012 name: "entrypoint",
3013 doc: Some(
3014 "A pointer to a null-terminated UTF-8 string specifying the entry point function name for the shader.\n",
3015 ),
3016 available_since: None,
3017 ty: "*const ::core::ffi::c_char",
3018 },
3019 Field {
3020 name: "format",
3021 doc: Some("The format of the shader code.\n"),
3022 available_since: None,
3023 ty: "SDL_GPUShaderFormat",
3024 },
3025 Field {
3026 name: "stage",
3027 doc: Some("The stage the shader program corresponds to.\n"),
3028 available_since: None,
3029 ty: "SDL_GPUShaderStage",
3030 },
3031 Field {
3032 name: "num_samplers",
3033 doc: Some("The number of samplers defined in the shader.\n"),
3034 available_since: None,
3035 ty: "Uint32",
3036 },
3037 Field {
3038 name: "num_storage_textures",
3039 doc: Some("The number of storage textures defined in the shader.\n"),
3040 available_since: None,
3041 ty: "Uint32",
3042 },
3043 Field {
3044 name: "num_storage_buffers",
3045 doc: Some("The number of storage buffers defined in the shader.\n"),
3046 available_since: None,
3047 ty: "Uint32",
3048 },
3049 Field {
3050 name: "num_uniform_buffers",
3051 doc: Some("The number of uniform buffers defined in the shader.\n"),
3052 available_since: None,
3053 ty: "Uint32",
3054 },
3055 Field {
3056 name: "props",
3057 doc: Some("A properties ID for extensions. Should be 0 if no extensions are needed.\n"),
3058 available_since: None,
3059 ty: "SDL_PropertiesID",
3060 },
3061 ],
3062};
3063pub const METADATA_SDL_GPUTextureCreateInfo: Struct = Struct {
3064 module: "gpu",
3065 kind: StructKind::Struct,
3066 name: "SDL_GPUTextureCreateInfo",
3067 doc: Some(
3068 "A structure specifying the parameters of a texture.\n\nUsage flags can be bitwise OR'd together for combinations of usages. Note\nthat certain usage combinations are invalid, for example SAMPLER and\nGRAPHICS_STORAGE.\n\n## Availability\nThis struct is available since SDL 3.2.0.\n\n## See also\n- [`SDL_CreateGPUTexture`]\n- [`SDL_GPUTextureType`]\n- [`SDL_GPUTextureFormat`]\n- [`SDL_GPUTextureUsageFlags`]\n- [`SDL_GPUSampleCount`]\n",
3069 ),
3070 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
3071 fields: &[
3072 Field {
3073 name: "r#type",
3074 doc: Some("The base dimensionality of the texture.\n"),
3075 available_since: None,
3076 ty: "SDL_GPUTextureType",
3077 },
3078 Field {
3079 name: "format",
3080 doc: Some("The pixel format of the texture.\n"),
3081 available_since: None,
3082 ty: "SDL_GPUTextureFormat",
3083 },
3084 Field {
3085 name: "usage",
3086 doc: Some("How the texture is intended to be used by the client.\n"),
3087 available_since: None,
3088 ty: "SDL_GPUTextureUsageFlags",
3089 },
3090 Field {
3091 name: "width",
3092 doc: Some("The width of the texture.\n"),
3093 available_since: None,
3094 ty: "Uint32",
3095 },
3096 Field {
3097 name: "height",
3098 doc: Some("The height of the texture.\n"),
3099 available_since: None,
3100 ty: "Uint32",
3101 },
3102 Field {
3103 name: "layer_count_or_depth",
3104 doc: Some(
3105 "The layer count or depth of the texture. This value is treated as a layer count on 2D array textures, and as a depth value on 3D textures.\n",
3106 ),
3107 available_since: None,
3108 ty: "Uint32",
3109 },
3110 Field {
3111 name: "num_levels",
3112 doc: Some("The number of mip levels in the texture.\n"),
3113 available_since: None,
3114 ty: "Uint32",
3115 },
3116 Field {
3117 name: "sample_count",
3118 doc: Some(
3119 "The number of samples per texel. Only applies if the texture is used as a render target.\n",
3120 ),
3121 available_since: None,
3122 ty: "SDL_GPUSampleCount",
3123 },
3124 Field {
3125 name: "props",
3126 doc: Some("A properties ID for extensions. Should be 0 if no extensions are needed.\n"),
3127 available_since: None,
3128 ty: "SDL_PropertiesID",
3129 },
3130 ],
3131};
3132pub const METADATA_SDL_GPUBufferCreateInfo: Struct = Struct {
3133 module: "gpu",
3134 kind: StructKind::Struct,
3135 name: "SDL_GPUBufferCreateInfo",
3136 doc: Some(
3137 "A structure specifying the parameters of a buffer.\n\nUsage flags can be bitwise OR'd together for combinations of usages. Note\nthat certain combinations are invalid, for example VERTEX and INDEX.\n\n## Availability\nThis struct is available since SDL 3.2.0.\n\n## See also\n- [`SDL_CreateGPUBuffer`]\n- [`SDL_GPUBufferUsageFlags`]\n",
3138 ),
3139 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
3140 fields: &[
3141 Field {
3142 name: "usage",
3143 doc: Some("How the buffer is intended to be used by the client.\n"),
3144 available_since: None,
3145 ty: "SDL_GPUBufferUsageFlags",
3146 },
3147 Field {
3148 name: "size",
3149 doc: Some("The size in bytes of the buffer.\n"),
3150 available_since: None,
3151 ty: "Uint32",
3152 },
3153 Field {
3154 name: "props",
3155 doc: Some("A properties ID for extensions. Should be 0 if no extensions are needed.\n"),
3156 available_since: None,
3157 ty: "SDL_PropertiesID",
3158 },
3159 ],
3160};
3161pub const METADATA_SDL_GPUTransferBufferCreateInfo: Struct = Struct {
3162 module: "gpu",
3163 kind: StructKind::Struct,
3164 name: "SDL_GPUTransferBufferCreateInfo",
3165 doc: Some(
3166 "A structure specifying the parameters of a transfer buffer.\n\n## Availability\nThis struct is available since SDL 3.2.0.\n\n## See also\n- [`SDL_CreateGPUTransferBuffer`]\n",
3167 ),
3168 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
3169 fields: &[
3170 Field {
3171 name: "usage",
3172 doc: Some("How the transfer buffer is intended to be used by the client.\n"),
3173 available_since: None,
3174 ty: "SDL_GPUTransferBufferUsage",
3175 },
3176 Field {
3177 name: "size",
3178 doc: Some("The size in bytes of the transfer buffer.\n"),
3179 available_since: None,
3180 ty: "Uint32",
3181 },
3182 Field {
3183 name: "props",
3184 doc: Some("A properties ID for extensions. Should be 0 if no extensions are needed.\n"),
3185 available_since: None,
3186 ty: "SDL_PropertiesID",
3187 },
3188 ],
3189};
3190pub const METADATA_SDL_GPURasterizerState: Struct = Struct {
3191 module: "gpu",
3192 kind: StructKind::Struct,
3193 name: "SDL_GPURasterizerState",
3194 doc: Some(
3195 "A structure specifying the parameters of the graphics pipeline rasterizer\nstate.\n\nNote that [`SDL_GPU_FILLMODE_LINE`] is not supported on many Android devices.\nFor those devices, the fill mode will automatically fall back to FILL.\n\nAlso note that the D3D12 driver will enable depth clamping even if\nenable_depth_clip is true. If you need this clamp+clip behavior, consider\nenabling depth clip and then manually clamping depth in your fragment\nshaders on Metal and Vulkan.\n\n## Availability\nThis struct is available since SDL 3.2.0.\n\n## See also\n- [`SDL_GPUGraphicsPipelineCreateInfo`]\n\n## Notes for `sdl3-sys`\nThis struct has padding fields which shouldn't be accessed directly; use struct update syntax with e.g. `..Default::default()` for manual construction.\n",
3196 ),
3197 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
3198 fields: &[
3199 Field {
3200 name: "fill_mode",
3201 doc: Some("Whether polygons will be filled in or drawn as lines.\n"),
3202 available_since: None,
3203 ty: "SDL_GPUFillMode",
3204 },
3205 Field {
3206 name: "cull_mode",
3207 doc: Some("The facing direction in which triangles will be culled.\n"),
3208 available_since: None,
3209 ty: "SDL_GPUCullMode",
3210 },
3211 Field {
3212 name: "front_face",
3213 doc: Some(
3214 "The vertex winding that will cause a triangle to be determined as front-facing.\n",
3215 ),
3216 available_since: None,
3217 ty: "SDL_GPUFrontFace",
3218 },
3219 Field {
3220 name: "depth_bias_constant_factor",
3221 doc: Some("A scalar factor controlling the depth value added to each fragment.\n"),
3222 available_since: None,
3223 ty: "::core::ffi::c_float",
3224 },
3225 Field {
3226 name: "depth_bias_clamp",
3227 doc: Some("The maximum depth bias of a fragment.\n"),
3228 available_since: None,
3229 ty: "::core::ffi::c_float",
3230 },
3231 Field {
3232 name: "depth_bias_slope_factor",
3233 doc: Some("A scalar factor applied to a fragment's slope in depth calculations.\n"),
3234 available_since: None,
3235 ty: "::core::ffi::c_float",
3236 },
3237 Field {
3238 name: "enable_depth_bias",
3239 doc: Some("true to bias fragment depth values.\n"),
3240 available_since: None,
3241 ty: "::core::primitive::bool",
3242 },
3243 Field {
3244 name: "enable_depth_clip",
3245 doc: Some("true to enable depth clip, false to enable depth clamp.\n"),
3246 available_since: None,
3247 ty: "::core::primitive::bool",
3248 },
3249 Field {
3250 name: "padding1",
3251 doc: None,
3252 available_since: None,
3253 ty: "Uint8",
3254 },
3255 Field {
3256 name: "padding2",
3257 doc: None,
3258 available_since: None,
3259 ty: "Uint8",
3260 },
3261 ],
3262};
3263pub const METADATA_SDL_GPUMultisampleState: Struct = Struct {
3264 module: "gpu",
3265 kind: StructKind::Struct,
3266 name: "SDL_GPUMultisampleState",
3267 doc: Some(
3268 "A structure specifying the parameters of the graphics pipeline multisample\nstate.\n\n## Availability\nThis struct is available since SDL 3.2.0.\n\n## See also\n- [`SDL_GPUGraphicsPipelineCreateInfo`]\n\n## Notes for `sdl3-sys`\nThis struct has padding fields which shouldn't be accessed directly; use struct update syntax with e.g. `..Default::default()` for manual construction.\n",
3269 ),
3270 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
3271 fields: &[
3272 Field {
3273 name: "sample_count",
3274 doc: Some("The number of samples to be used in rasterization.\n"),
3275 available_since: None,
3276 ty: "SDL_GPUSampleCount",
3277 },
3278 Field {
3279 name: "sample_mask",
3280 doc: Some("Reserved for future use. Must be set to 0.\n"),
3281 available_since: None,
3282 ty: "Uint32",
3283 },
3284 Field {
3285 name: "enable_mask",
3286 doc: Some("Reserved for future use. Must be set to false.\n"),
3287 available_since: None,
3288 ty: "::core::primitive::bool",
3289 },
3290 Field {
3291 name: "enable_alpha_to_coverage",
3292 doc: Some("true enables the alpha-to-coverage feature.\n"),
3293 available_since: None,
3294 ty: "::core::primitive::bool",
3295 },
3296 Field {
3297 name: "padding2",
3298 doc: None,
3299 available_since: None,
3300 ty: "Uint8",
3301 },
3302 Field {
3303 name: "padding3",
3304 doc: None,
3305 available_since: None,
3306 ty: "Uint8",
3307 },
3308 ],
3309};
3310pub const METADATA_SDL_GPUDepthStencilState: Struct = Struct {
3311 module: "gpu",
3312 kind: StructKind::Struct,
3313 name: "SDL_GPUDepthStencilState",
3314 doc: Some(
3315 "A structure specifying the parameters of the graphics pipeline depth\nstencil state.\n\n## Availability\nThis struct is available since SDL 3.2.0.\n\n## See also\n- [`SDL_GPUGraphicsPipelineCreateInfo`]\n\n## Notes for `sdl3-sys`\nThis struct has padding fields which shouldn't be accessed directly; use struct update syntax with e.g. `..Default::default()` for manual construction.\n",
3316 ),
3317 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
3318 fields: &[
3319 Field {
3320 name: "compare_op",
3321 doc: Some("The comparison operator used for depth testing.\n"),
3322 available_since: None,
3323 ty: "SDL_GPUCompareOp",
3324 },
3325 Field {
3326 name: "back_stencil_state",
3327 doc: Some("The stencil op state for back-facing triangles.\n"),
3328 available_since: None,
3329 ty: "SDL_GPUStencilOpState",
3330 },
3331 Field {
3332 name: "front_stencil_state",
3333 doc: Some("The stencil op state for front-facing triangles.\n"),
3334 available_since: None,
3335 ty: "SDL_GPUStencilOpState",
3336 },
3337 Field {
3338 name: "compare_mask",
3339 doc: Some(
3340 "Selects the bits of the stencil values participating in the stencil test.\n",
3341 ),
3342 available_since: None,
3343 ty: "Uint8",
3344 },
3345 Field {
3346 name: "write_mask",
3347 doc: Some("Selects the bits of the stencil values updated by the stencil test.\n"),
3348 available_since: None,
3349 ty: "Uint8",
3350 },
3351 Field {
3352 name: "enable_depth_test",
3353 doc: Some("true enables the depth test.\n"),
3354 available_since: None,
3355 ty: "::core::primitive::bool",
3356 },
3357 Field {
3358 name: "enable_depth_write",
3359 doc: Some(
3360 "true enables depth writes. Depth writes are always disabled when enable_depth_test is false.\n",
3361 ),
3362 available_since: None,
3363 ty: "::core::primitive::bool",
3364 },
3365 Field {
3366 name: "enable_stencil_test",
3367 doc: Some("true enables the stencil test.\n"),
3368 available_since: None,
3369 ty: "::core::primitive::bool",
3370 },
3371 Field {
3372 name: "padding1",
3373 doc: None,
3374 available_since: None,
3375 ty: "Uint8",
3376 },
3377 Field {
3378 name: "padding2",
3379 doc: None,
3380 available_since: None,
3381 ty: "Uint8",
3382 },
3383 Field {
3384 name: "padding3",
3385 doc: None,
3386 available_since: None,
3387 ty: "Uint8",
3388 },
3389 ],
3390};
3391pub const METADATA_SDL_GPUColorTargetDescription: Struct = Struct {
3392 module: "gpu",
3393 kind: StructKind::Struct,
3394 name: "SDL_GPUColorTargetDescription",
3395 doc: Some(
3396 "A structure specifying the parameters of color targets used in a graphics\npipeline.\n\n## Availability\nThis struct is available since SDL 3.2.0.\n\n## See also\n- [`SDL_GPUGraphicsPipelineTargetInfo`]\n",
3397 ),
3398 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
3399 fields: &[
3400 Field {
3401 name: "format",
3402 doc: Some("The pixel format of the texture to be used as a color target.\n"),
3403 available_since: None,
3404 ty: "SDL_GPUTextureFormat",
3405 },
3406 Field {
3407 name: "blend_state",
3408 doc: Some("The blend state to be used for the color target.\n"),
3409 available_since: None,
3410 ty: "SDL_GPUColorTargetBlendState",
3411 },
3412 ],
3413};
3414pub const METADATA_SDL_GPUGraphicsPipelineTargetInfo: Struct = Struct {
3415 module: "gpu",
3416 kind: StructKind::Struct,
3417 name: "SDL_GPUGraphicsPipelineTargetInfo",
3418 doc: Some(
3419 "A structure specifying the descriptions of render targets used in a\ngraphics pipeline.\n\n## Availability\nThis struct is available since SDL 3.2.0.\n\n## See also\n- [`SDL_GPUGraphicsPipelineCreateInfo`]\n- [`SDL_GPUColorTargetDescription`]\n- [`SDL_GPUTextureFormat`]\n\n## Notes for `sdl3-sys`\nThis struct has padding fields which shouldn't be accessed directly; use struct update syntax with e.g. `..Default::default()` for manual construction.\n",
3420 ),
3421 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
3422 fields: &[
3423 Field {
3424 name: "color_target_descriptions",
3425 doc: Some("A pointer to an array of color target descriptions.\n"),
3426 available_since: None,
3427 ty: "*const SDL_GPUColorTargetDescription",
3428 },
3429 Field {
3430 name: "num_color_targets",
3431 doc: Some("The number of color target descriptions in the above array.\n"),
3432 available_since: None,
3433 ty: "Uint32",
3434 },
3435 Field {
3436 name: "depth_stencil_format",
3437 doc: Some(
3438 "The pixel format of the depth-stencil target. Ignored if has_depth_stencil_target is false.\n",
3439 ),
3440 available_since: None,
3441 ty: "SDL_GPUTextureFormat",
3442 },
3443 Field {
3444 name: "has_depth_stencil_target",
3445 doc: Some("true specifies that the pipeline uses a depth-stencil target.\n"),
3446 available_since: None,
3447 ty: "::core::primitive::bool",
3448 },
3449 Field {
3450 name: "padding1",
3451 doc: None,
3452 available_since: None,
3453 ty: "Uint8",
3454 },
3455 Field {
3456 name: "padding2",
3457 doc: None,
3458 available_since: None,
3459 ty: "Uint8",
3460 },
3461 Field {
3462 name: "padding3",
3463 doc: None,
3464 available_since: None,
3465 ty: "Uint8",
3466 },
3467 ],
3468};
3469pub const METADATA_SDL_GPUGraphicsPipelineCreateInfo: Struct = Struct {
3470 module: "gpu",
3471 kind: StructKind::Struct,
3472 name: "SDL_GPUGraphicsPipelineCreateInfo",
3473 doc: Some(
3474 "A structure specifying the parameters of a graphics pipeline state.\n\n## Availability\nThis struct is available since SDL 3.2.0.\n\n## See also\n- [`SDL_CreateGPUGraphicsPipeline`]\n- [`SDL_GPUShader`]\n- [`SDL_GPUVertexInputState`]\n- [`SDL_GPUPrimitiveType`]\n- [`SDL_GPURasterizerState`]\n- [`SDL_GPUMultisampleState`]\n- [`SDL_GPUDepthStencilState`]\n- [`SDL_GPUGraphicsPipelineTargetInfo`]\n",
3475 ),
3476 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
3477 fields: &[
3478 Field {
3479 name: "vertex_shader",
3480 doc: Some("The vertex shader used by the graphics pipeline.\n"),
3481 available_since: None,
3482 ty: "*mut SDL_GPUShader",
3483 },
3484 Field {
3485 name: "fragment_shader",
3486 doc: Some("The fragment shader used by the graphics pipeline.\n"),
3487 available_since: None,
3488 ty: "*mut SDL_GPUShader",
3489 },
3490 Field {
3491 name: "vertex_input_state",
3492 doc: Some("The vertex layout of the graphics pipeline.\n"),
3493 available_since: None,
3494 ty: "SDL_GPUVertexInputState",
3495 },
3496 Field {
3497 name: "primitive_type",
3498 doc: Some("The primitive topology of the graphics pipeline.\n"),
3499 available_since: None,
3500 ty: "SDL_GPUPrimitiveType",
3501 },
3502 Field {
3503 name: "rasterizer_state",
3504 doc: Some("The rasterizer state of the graphics pipeline.\n"),
3505 available_since: None,
3506 ty: "SDL_GPURasterizerState",
3507 },
3508 Field {
3509 name: "multisample_state",
3510 doc: Some("The multisample state of the graphics pipeline.\n"),
3511 available_since: None,
3512 ty: "SDL_GPUMultisampleState",
3513 },
3514 Field {
3515 name: "depth_stencil_state",
3516 doc: Some("The depth-stencil state of the graphics pipeline.\n"),
3517 available_since: None,
3518 ty: "SDL_GPUDepthStencilState",
3519 },
3520 Field {
3521 name: "target_info",
3522 doc: Some("Formats and blend modes for the render targets of the graphics pipeline.\n"),
3523 available_since: None,
3524 ty: "SDL_GPUGraphicsPipelineTargetInfo",
3525 },
3526 Field {
3527 name: "props",
3528 doc: Some("A properties ID for extensions. Should be 0 if no extensions are needed.\n"),
3529 available_since: None,
3530 ty: "SDL_PropertiesID",
3531 },
3532 ],
3533};
3534pub const METADATA_SDL_GPUComputePipelineCreateInfo: Struct = Struct {
3535 module: "gpu",
3536 kind: StructKind::Struct,
3537 name: "SDL_GPUComputePipelineCreateInfo",
3538 doc: Some(
3539 "A structure specifying the parameters of a compute pipeline state.\n\n## Availability\nThis struct is available since SDL 3.2.0.\n\n## See also\n- [`SDL_CreateGPUComputePipeline`]\n- [`SDL_GPUShaderFormat`]\n",
3540 ),
3541 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
3542 fields: &[
3543 Field {
3544 name: "code_size",
3545 doc: Some("The size in bytes of the compute shader code pointed to.\n"),
3546 available_since: None,
3547 ty: "::core::primitive::usize",
3548 },
3549 Field {
3550 name: "code",
3551 doc: Some("A pointer to compute shader code.\n"),
3552 available_since: None,
3553 ty: "*const Uint8",
3554 },
3555 Field {
3556 name: "entrypoint",
3557 doc: Some(
3558 "A pointer to a null-terminated UTF-8 string specifying the entry point function name for the shader.\n",
3559 ),
3560 available_since: None,
3561 ty: "*const ::core::ffi::c_char",
3562 },
3563 Field {
3564 name: "format",
3565 doc: Some("The format of the compute shader code.\n"),
3566 available_since: None,
3567 ty: "SDL_GPUShaderFormat",
3568 },
3569 Field {
3570 name: "num_samplers",
3571 doc: Some("The number of samplers defined in the shader.\n"),
3572 available_since: None,
3573 ty: "Uint32",
3574 },
3575 Field {
3576 name: "num_readonly_storage_textures",
3577 doc: Some("The number of readonly storage textures defined in the shader.\n"),
3578 available_since: None,
3579 ty: "Uint32",
3580 },
3581 Field {
3582 name: "num_readonly_storage_buffers",
3583 doc: Some("The number of readonly storage buffers defined in the shader.\n"),
3584 available_since: None,
3585 ty: "Uint32",
3586 },
3587 Field {
3588 name: "num_readwrite_storage_textures",
3589 doc: Some("The number of read-write storage textures defined in the shader.\n"),
3590 available_since: None,
3591 ty: "Uint32",
3592 },
3593 Field {
3594 name: "num_readwrite_storage_buffers",
3595 doc: Some("The number of read-write storage buffers defined in the shader.\n"),
3596 available_since: None,
3597 ty: "Uint32",
3598 },
3599 Field {
3600 name: "num_uniform_buffers",
3601 doc: Some("The number of uniform buffers defined in the shader.\n"),
3602 available_since: None,
3603 ty: "Uint32",
3604 },
3605 Field {
3606 name: "threadcount_x",
3607 doc: Some(
3608 "The number of threads in the X dimension. This should match the value in the shader.\n",
3609 ),
3610 available_since: None,
3611 ty: "Uint32",
3612 },
3613 Field {
3614 name: "threadcount_y",
3615 doc: Some(
3616 "The number of threads in the Y dimension. This should match the value in the shader.\n",
3617 ),
3618 available_since: None,
3619 ty: "Uint32",
3620 },
3621 Field {
3622 name: "threadcount_z",
3623 doc: Some(
3624 "The number of threads in the Z dimension. This should match the value in the shader.\n",
3625 ),
3626 available_since: None,
3627 ty: "Uint32",
3628 },
3629 Field {
3630 name: "props",
3631 doc: Some("A properties ID for extensions. Should be 0 if no extensions are needed.\n"),
3632 available_since: None,
3633 ty: "SDL_PropertiesID",
3634 },
3635 ],
3636};
3637pub const METADATA_SDL_GPUColorTargetInfo: Struct = Struct {
3638 module: "gpu",
3639 kind: StructKind::Struct,
3640 name: "SDL_GPUColorTargetInfo",
3641 doc: Some(
3642 "A structure specifying the parameters of a color target used by a render\npass.\n\nThe load_op field determines what is done with the texture at the beginning\nof the render pass.\n\n- LOAD: Loads the data currently in the texture. Not recommended for\nmultisample textures as it requires significant memory bandwidth.\n- CLEAR: Clears the texture to a single color.\n- DONT_CARE: The driver will do whatever it wants with the texture memory.\nThis is a good option if you know that every single pixel will be touched\nin the render pass.\n\nThe store_op field determines what is done with the color results of the\nrender pass.\n\n- STORE: Stores the results of the render pass in the texture. Not\nrecommended for multisample textures as it requires significant memory\nbandwidth.\n- DONT_CARE: The driver will do whatever it wants with the texture memory.\nThis is often a good option for depth/stencil textures.\n- RESOLVE: Resolves a multisample texture into resolve_texture, which must\nhave a sample count of 1. Then the driver may discard the multisample\ntexture memory. This is the most performant method of resolving a\nmultisample target.\n- RESOLVE_AND_STORE: Resolves a multisample texture into the\nresolve_texture, which must have a sample count of 1. Then the driver\nstores the multisample texture's contents. Not recommended as it requires\nsignificant memory bandwidth.\n\n## Availability\nThis struct is available since SDL 3.2.0.\n\n## See also\n- [`SDL_BeginGPURenderPass`]\n- [`SDL_FColor`]\n\n## Notes for `sdl3-sys`\nThis struct has padding fields which shouldn't be accessed directly; use struct update syntax with e.g. `..Default::default()` for manual construction.\n",
3643 ),
3644 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
3645 fields: &[
3646 Field {
3647 name: "texture",
3648 doc: Some("The texture that will be used as a color target by a render pass.\n"),
3649 available_since: None,
3650 ty: "*mut SDL_GPUTexture",
3651 },
3652 Field {
3653 name: "mip_level",
3654 doc: Some("The mip level to use as a color target.\n"),
3655 available_since: None,
3656 ty: "Uint32",
3657 },
3658 Field {
3659 name: "layer_or_depth_plane",
3660 doc: Some(
3661 "The layer index or depth plane to use as a color target. This value is treated as a layer index on 2D array and cube textures, and as a depth plane on 3D textures.\n",
3662 ),
3663 available_since: None,
3664 ty: "Uint32",
3665 },
3666 Field {
3667 name: "clear_color",
3668 doc: Some(
3669 "The color to clear the color target to at the start of the render pass. Ignored if [`SDL_GPU_LOADOP_CLEAR`] is not used.\n",
3670 ),
3671 available_since: None,
3672 ty: "SDL_FColor",
3673 },
3674 Field {
3675 name: "load_op",
3676 doc: Some(
3677 "What is done with the contents of the color target at the beginning of the render pass.\n",
3678 ),
3679 available_since: None,
3680 ty: "SDL_GPULoadOp",
3681 },
3682 Field {
3683 name: "store_op",
3684 doc: Some("What is done with the results of the render pass.\n"),
3685 available_since: None,
3686 ty: "SDL_GPUStoreOp",
3687 },
3688 Field {
3689 name: "resolve_texture",
3690 doc: Some(
3691 "The texture that will receive the results of a multisample resolve operation. Ignored if a RESOLVE* store_op is not used.\n",
3692 ),
3693 available_since: None,
3694 ty: "*mut SDL_GPUTexture",
3695 },
3696 Field {
3697 name: "resolve_mip_level",
3698 doc: Some(
3699 "The mip level of the resolve texture to use for the resolve operation. Ignored if a RESOLVE* store_op is not used.\n",
3700 ),
3701 available_since: None,
3702 ty: "Uint32",
3703 },
3704 Field {
3705 name: "resolve_layer",
3706 doc: Some(
3707 "The layer index of the resolve texture to use for the resolve operation. Ignored if a RESOLVE* store_op is not used.\n",
3708 ),
3709 available_since: None,
3710 ty: "Uint32",
3711 },
3712 Field {
3713 name: "cycle",
3714 doc: Some("true cycles the texture if the texture is bound and load_op is not LOAD\n"),
3715 available_since: None,
3716 ty: "::core::primitive::bool",
3717 },
3718 Field {
3719 name: "cycle_resolve_texture",
3720 doc: Some(
3721 "true cycles the resolve texture if the resolve texture is bound. Ignored if a RESOLVE* store_op is not used.\n",
3722 ),
3723 available_since: None,
3724 ty: "::core::primitive::bool",
3725 },
3726 Field {
3727 name: "padding1",
3728 doc: None,
3729 available_since: None,
3730 ty: "Uint8",
3731 },
3732 Field {
3733 name: "padding2",
3734 doc: None,
3735 available_since: None,
3736 ty: "Uint8",
3737 },
3738 ],
3739};
3740pub const METADATA_SDL_GPUDepthStencilTargetInfo: Struct = Struct {
3741 module: "gpu",
3742 kind: StructKind::Struct,
3743 name: "SDL_GPUDepthStencilTargetInfo",
3744 doc: Some(
3745 "A structure specifying the parameters of a depth-stencil target used by a\nrender pass.\n\nThe load_op field determines what is done with the depth contents of the\ntexture at the beginning of the render pass.\n\n- LOAD: Loads the depth values currently in the texture.\n- CLEAR: Clears the texture to a single depth.\n- DONT_CARE: The driver will do whatever it wants with the memory. This is\na good option if you know that every single pixel will be touched in the\nrender pass.\n\nThe store_op field determines what is done with the depth results of the\nrender pass.\n\n- STORE: Stores the depth results in the texture.\n- DONT_CARE: The driver will do whatever it wants with the depth results.\nThis is often a good option for depth/stencil textures that don't need to\nbe reused again.\n\nThe stencil_load_op field determines what is done with the stencil contents\nof the texture at the beginning of the render pass.\n\n- LOAD: Loads the stencil values currently in the texture.\n- CLEAR: Clears the stencil values to a single value.\n- DONT_CARE: The driver will do whatever it wants with the memory. This is\na good option if you know that every single pixel will be touched in the\nrender pass.\n\nThe stencil_store_op field determines what is done with the stencil results\nof the render pass.\n\n- STORE: Stores the stencil results in the texture.\n- DONT_CARE: The driver will do whatever it wants with the stencil results.\nThis is often a good option for depth/stencil textures that don't need to\nbe reused again.\n\nNote that depth/stencil targets do not support multisample resolves.\n\nDue to ABI limitations, depth textures with more than 255 layers are not\nsupported.\n\n## Availability\nThis struct is available since SDL 3.2.0.\n\n## See also\n- [`SDL_BeginGPURenderPass`]\n",
3746 ),
3747 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
3748 fields: &[
3749 Field {
3750 name: "texture",
3751 doc: Some(
3752 "The texture that will be used as the depth stencil target by the render pass.\n",
3753 ),
3754 available_since: None,
3755 ty: "*mut SDL_GPUTexture",
3756 },
3757 Field {
3758 name: "clear_depth",
3759 doc: Some(
3760 "The value to clear the depth component to at the beginning of the render pass. Ignored if [`SDL_GPU_LOADOP_CLEAR`] is not used.\n",
3761 ),
3762 available_since: None,
3763 ty: "::core::ffi::c_float",
3764 },
3765 Field {
3766 name: "load_op",
3767 doc: Some(
3768 "What is done with the depth contents at the beginning of the render pass.\n",
3769 ),
3770 available_since: None,
3771 ty: "SDL_GPULoadOp",
3772 },
3773 Field {
3774 name: "store_op",
3775 doc: Some("What is done with the depth results of the render pass.\n"),
3776 available_since: None,
3777 ty: "SDL_GPUStoreOp",
3778 },
3779 Field {
3780 name: "stencil_load_op",
3781 doc: Some(
3782 "What is done with the stencil contents at the beginning of the render pass.\n",
3783 ),
3784 available_since: None,
3785 ty: "SDL_GPULoadOp",
3786 },
3787 Field {
3788 name: "stencil_store_op",
3789 doc: Some("What is done with the stencil results of the render pass.\n"),
3790 available_since: None,
3791 ty: "SDL_GPUStoreOp",
3792 },
3793 Field {
3794 name: "cycle",
3795 doc: Some(
3796 "true cycles the texture if the texture is bound and any load ops are not LOAD\n",
3797 ),
3798 available_since: None,
3799 ty: "::core::primitive::bool",
3800 },
3801 Field {
3802 name: "clear_stencil",
3803 doc: Some(
3804 "The value to clear the stencil component to at the beginning of the render pass. Ignored if [`SDL_GPU_LOADOP_CLEAR`] is not used.\n",
3805 ),
3806 available_since: None,
3807 ty: "Uint8",
3808 },
3809 Field {
3810 name: "mip_level",
3811 doc: Some("The mip level to use as the depth stencil target.\n"),
3812 available_since: None,
3813 ty: "Uint8",
3814 },
3815 Field {
3816 name: "layer",
3817 doc: Some("The layer index to use as the depth stencil target.\n"),
3818 available_since: None,
3819 ty: "Uint8",
3820 },
3821 ],
3822};
3823pub const METADATA_SDL_GPUBlitInfo: Struct = Struct {
3824 module: "gpu",
3825 kind: StructKind::Struct,
3826 name: "SDL_GPUBlitInfo",
3827 doc: Some(
3828 "A structure containing parameters for a blit command.\n\n## Availability\nThis struct is available since SDL 3.2.0.\n\n## See also\n- [`SDL_BlitGPUTexture`]\n\n## Notes for `sdl3-sys`\nThis struct has padding fields which shouldn't be accessed directly; use struct update syntax with e.g. `..Default::default()` for manual construction.\n",
3829 ),
3830 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
3831 fields: &[
3832 Field {
3833 name: "source",
3834 doc: Some("The source region for the blit.\n"),
3835 available_since: None,
3836 ty: "SDL_GPUBlitRegion",
3837 },
3838 Field {
3839 name: "destination",
3840 doc: Some("The destination region for the blit.\n"),
3841 available_since: None,
3842 ty: "SDL_GPUBlitRegion",
3843 },
3844 Field {
3845 name: "load_op",
3846 doc: Some("What is done with the contents of the destination before the blit.\n"),
3847 available_since: None,
3848 ty: "SDL_GPULoadOp",
3849 },
3850 Field {
3851 name: "clear_color",
3852 doc: Some(
3853 "The color to clear the destination region to before the blit. Ignored if load_op is not [`SDL_GPU_LOADOP_CLEAR`].\n",
3854 ),
3855 available_since: None,
3856 ty: "SDL_FColor",
3857 },
3858 Field {
3859 name: "flip_mode",
3860 doc: Some("The flip mode for the source region.\n"),
3861 available_since: None,
3862 ty: "SDL_FlipMode",
3863 },
3864 Field {
3865 name: "filter",
3866 doc: Some("The filter mode used when blitting.\n"),
3867 available_since: None,
3868 ty: "SDL_GPUFilter",
3869 },
3870 Field {
3871 name: "cycle",
3872 doc: Some("true cycles the destination texture if it is already bound.\n"),
3873 available_since: None,
3874 ty: "::core::primitive::bool",
3875 },
3876 Field {
3877 name: "padding1",
3878 doc: None,
3879 available_since: None,
3880 ty: "Uint8",
3881 },
3882 Field {
3883 name: "padding2",
3884 doc: None,
3885 available_since: None,
3886 ty: "Uint8",
3887 },
3888 Field {
3889 name: "padding3",
3890 doc: None,
3891 available_since: None,
3892 ty: "Uint8",
3893 },
3894 ],
3895};
3896pub const METADATA_SDL_GPUBufferBinding: Struct = Struct {
3897 module: "gpu",
3898 kind: StructKind::Struct,
3899 name: "SDL_GPUBufferBinding",
3900 doc: Some(
3901 "A structure specifying parameters in a buffer binding call.\n\n## Availability\nThis struct is available since SDL 3.2.0.\n\n## See also\n- [`SDL_BindGPUVertexBuffers`]\n- [`SDL_BindGPUIndexBuffer`]\n",
3902 ),
3903 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
3904 fields: &[
3905 Field {
3906 name: "buffer",
3907 doc: Some(
3908 "The buffer to bind. Must have been created with [`SDL_GPU_BUFFERUSAGE_VERTEX`] for [`SDL_BindGPUVertexBuffers`], or [`SDL_GPU_BUFFERUSAGE_INDEX`] for [`SDL_BindGPUIndexBuffer`].\n",
3909 ),
3910 available_since: None,
3911 ty: "*mut SDL_GPUBuffer",
3912 },
3913 Field {
3914 name: "offset",
3915 doc: Some("The starting byte of the data to bind in the buffer.\n"),
3916 available_since: None,
3917 ty: "Uint32",
3918 },
3919 ],
3920};
3921pub const METADATA_SDL_GPUTextureSamplerBinding: Struct = Struct {
3922 module: "gpu",
3923 kind: StructKind::Struct,
3924 name: "SDL_GPUTextureSamplerBinding",
3925 doc: Some(
3926 "A structure specifying parameters in a sampler binding call.\n\n## Availability\nThis struct is available since SDL 3.2.0.\n\n## See also\n- [`SDL_BindGPUVertexSamplers`]\n- [`SDL_BindGPUFragmentSamplers`]\n- [`SDL_GPUTexture`]\n- [`SDL_GPUSampler`]\n",
3927 ),
3928 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
3929 fields: &[
3930 Field {
3931 name: "texture",
3932 doc: Some(
3933 "The texture to bind. Must have been created with [`SDL_GPU_TEXTUREUSAGE_SAMPLER`].\n",
3934 ),
3935 available_since: None,
3936 ty: "*mut SDL_GPUTexture",
3937 },
3938 Field {
3939 name: "sampler",
3940 doc: Some("The sampler to bind.\n"),
3941 available_since: None,
3942 ty: "*mut SDL_GPUSampler",
3943 },
3944 ],
3945};
3946pub const METADATA_SDL_GPUStorageBufferReadWriteBinding: Struct = Struct {
3947 module: "gpu",
3948 kind: StructKind::Struct,
3949 name: "SDL_GPUStorageBufferReadWriteBinding",
3950 doc: Some(
3951 "A structure specifying parameters related to binding buffers in a compute\npass.\n\n## Availability\nThis struct is available since SDL 3.2.0.\n\n## See also\n- [`SDL_BeginGPUComputePass`]\n\n## Notes for `sdl3-sys`\nThis struct has padding fields which shouldn't be accessed directly; use struct update syntax with e.g. `..Default::default()` for manual construction.\n",
3952 ),
3953 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
3954 fields: &[
3955 Field {
3956 name: "buffer",
3957 doc: Some(
3958 "The buffer to bind. Must have been created with [`SDL_GPU_BUFFERUSAGE_COMPUTE_STORAGE_WRITE`].\n",
3959 ),
3960 available_since: None,
3961 ty: "*mut SDL_GPUBuffer",
3962 },
3963 Field {
3964 name: "cycle",
3965 doc: Some("true cycles the buffer if it is already bound.\n"),
3966 available_since: None,
3967 ty: "::core::primitive::bool",
3968 },
3969 Field {
3970 name: "padding1",
3971 doc: None,
3972 available_since: None,
3973 ty: "Uint8",
3974 },
3975 Field {
3976 name: "padding2",
3977 doc: None,
3978 available_since: None,
3979 ty: "Uint8",
3980 },
3981 Field {
3982 name: "padding3",
3983 doc: None,
3984 available_since: None,
3985 ty: "Uint8",
3986 },
3987 ],
3988};
3989pub const METADATA_SDL_GPUStorageTextureReadWriteBinding: Struct = Struct {
3990 module: "gpu",
3991 kind: StructKind::Struct,
3992 name: "SDL_GPUStorageTextureReadWriteBinding",
3993 doc: Some(
3994 "A structure specifying parameters related to binding textures in a compute\npass.\n\n## Availability\nThis struct is available since SDL 3.2.0.\n\n## See also\n- [`SDL_BeginGPUComputePass`]\n\n## Notes for `sdl3-sys`\nThis struct has padding fields which shouldn't be accessed directly; use struct update syntax with e.g. `..Default::default()` for manual construction.\n",
3995 ),
3996 available_since: Some(SDL_VERSIONNUM(3, 2, 0)),
3997 fields: &[
3998 Field {
3999 name: "texture",
4000 doc: Some(
4001 "The texture to bind. Must have been created with [`SDL_GPU_TEXTUREUSAGE_COMPUTE_STORAGE_WRITE`] or [`SDL_GPU_TEXTUREUSAGE_COMPUTE_STORAGE_SIMULTANEOUS_READ_WRITE`].\n",
4002 ),
4003 available_since: None,
4004 ty: "*mut SDL_GPUTexture",
4005 },
4006 Field {
4007 name: "mip_level",
4008 doc: Some("The mip level index to bind.\n"),
4009 available_since: None,
4010 ty: "Uint32",
4011 },
4012 Field {
4013 name: "layer",
4014 doc: Some("The layer index to bind.\n"),
4015 available_since: None,
4016 ty: "Uint32",
4017 },
4018 Field {
4019 name: "cycle",
4020 doc: Some("true cycles the texture if it is already bound.\n"),
4021 available_since: None,
4022 ty: "::core::primitive::bool",
4023 },
4024 Field {
4025 name: "padding1",
4026 doc: None,
4027 available_since: None,
4028 ty: "Uint8",
4029 },
4030 Field {
4031 name: "padding2",
4032 doc: None,
4033 available_since: None,
4034 ty: "Uint8",
4035 },
4036 Field {
4037 name: "padding3",
4038 doc: None,
4039 available_since: None,
4040 ty: "Uint8",
4041 },
4042 ],
4043};
4044pub const METADATA_SDL_GPUVulkanOptions: Struct = Struct {
4045 module: "gpu",
4046 kind: StructKind::Struct,
4047 name: "SDL_GPUVulkanOptions",
4048 doc: Some(
4049 "A structure specifying additional options when using Vulkan.\n\nWhen no such structure is provided, SDL will use Vulkan API version 1.0 and\na minimal set of features. The requested API version influences how the\nfeature_list is processed by SDL. When requesting API version 1.0, the\nfeature_list is ignored. Only the vulkan_10_physical_device_features and\nthe extension lists are used. When requesting API version 1.1, the\nfeature_list is scanned for feature structures introduced in Vulkan 1.1.\nWhen requesting Vulkan 1.2 or higher, the feature_list is additionally\nscanned for compound feature structs such as\nVkPhysicalDeviceVulkan11Features. The device and instance extension lists,\nas well as vulkan_10_physical_device_features, are always processed.\n\n## Availability\nThis struct is available since SDL 3.4.0.\n",
4050 ),
4051 available_since: Some(SDL_VERSIONNUM(3, 4, 0)),
4052 fields: &[
4053 Field {
4054 name: "vulkan_api_version",
4055 doc: Some(
4056 "The Vulkan API version to request for the instance. Use Vulkan's VK_MAKE_VERSION or VK_MAKE_API_VERSION.\n",
4057 ),
4058 available_since: None,
4059 ty: "Uint32",
4060 },
4061 Field {
4062 name: "feature_list",
4063 doc: Some(
4064 "Pointer to the first element of a chain of Vulkan feature structs. (Requires API version 1.1 or higher.)\n",
4065 ),
4066 available_since: None,
4067 ty: "*mut ::core::ffi::c_void",
4068 },
4069 Field {
4070 name: "vulkan_10_physical_device_features",
4071 doc: Some(
4072 "Pointer to a VkPhysicalDeviceFeatures struct to enable additional Vulkan 1.0 features.\n",
4073 ),
4074 available_since: None,
4075 ty: "*mut ::core::ffi::c_void",
4076 },
4077 Field {
4078 name: "device_extension_count",
4079 doc: Some("Number of additional device extensions to require.\n"),
4080 available_since: None,
4081 ty: "Uint32",
4082 },
4083 Field {
4084 name: "device_extension_names",
4085 doc: Some("Pointer to a list of additional device extensions to require.\n"),
4086 available_since: None,
4087 ty: "*mut *const ::core::ffi::c_char",
4088 },
4089 Field {
4090 name: "instance_extension_count",
4091 doc: Some("Number of additional instance extensions to require.\n"),
4092 available_since: None,
4093 ty: "Uint32",
4094 },
4095 Field {
4096 name: "instance_extension_names",
4097 doc: Some("Pointer to a list of additional instance extensions to require.\n"),
4098 available_since: None,
4099 ty: "*mut *const ::core::ffi::c_char",
4100 },
4101 ],
4102};