Skip to main content

sdl3_sys/metadata/generated/
gpu.rs

1//! Metadata for items in the `crate::gpu` module
2
3use 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};