wgpu 1.1.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +88 -0
  3. data/README.md +44 -5
  4. data/docs/README.md +22 -0
  5. data/docs/api_coverage.md +140 -0
  6. data/docs/async.md +41 -0
  7. data/docs/bind_groups.md +25 -0
  8. data/docs/buffer_data.md +37 -0
  9. data/docs/command_encoding.md +49 -0
  10. data/docs/errors.md +40 -0
  11. data/docs/getting_started_compute.md +62 -0
  12. data/docs/getting_started_rendering.md +62 -0
  13. data/docs/installation.md +94 -0
  14. data/docs/pipeline_descriptors.md +43 -0
  15. data/docs/releasing.md +32 -0
  16. data/docs/resource_lifetime.md +108 -0
  17. data/docs/shaders.md +32 -0
  18. data/docs/texture_readback.md +46 -0
  19. data/docs/troubleshooting.md +53 -0
  20. data/docs/upgrading_wgpu_native.md +37 -0
  21. data/ext/wgpu/extconf.rb +10 -142
  22. data/lib/wgpu/async_task.rb +19 -0
  23. data/lib/wgpu/commands/command_buffer.rb +25 -1
  24. data/lib/wgpu/commands/command_encoder.rb +123 -9
  25. data/lib/wgpu/commands/compute_pass.rb +53 -0
  26. data/lib/wgpu/commands/render_bundle.rb +9 -1
  27. data/lib/wgpu/commands/render_bundle_encoder.rb +65 -4
  28. data/lib/wgpu/commands/render_pass.rb +136 -8
  29. data/lib/wgpu/core/adapter.rb +123 -19
  30. data/lib/wgpu/core/async_waiter.rb +47 -4
  31. data/lib/wgpu/core/canvas_context.rb +32 -2
  32. data/lib/wgpu/core/device.rb +399 -53
  33. data/lib/wgpu/core/instance.rb +28 -4
  34. data/lib/wgpu/core/queue.rb +197 -51
  35. data/lib/wgpu/core/surface.rb +64 -17
  36. data/lib/wgpu/data_types.rb +83 -0
  37. data/lib/wgpu/descriptor_helpers.rb +104 -0
  38. data/lib/wgpu/error.rb +70 -0
  39. data/lib/wgpu/logging.rb +63 -0
  40. data/lib/wgpu/native/abi_verifier.rb +143 -0
  41. data/lib/wgpu/native/callbacks.rb +10 -1
  42. data/lib/wgpu/native/capabilities.rb +32 -2
  43. data/lib/wgpu/native/distribution.rb +176 -0
  44. data/lib/wgpu/native/enum_helper.rb +80 -0
  45. data/lib/wgpu/native/enums.rb +68 -8
  46. data/lib/wgpu/native/fixtures/webgpu-v27.0.4.0-enums.h +848 -0
  47. data/lib/wgpu/native/functions.rb +21 -10
  48. data/lib/wgpu/native/installer.rb +223 -0
  49. data/lib/wgpu/native/loader.rb +61 -21
  50. data/lib/wgpu/native/structs.rb +18 -1
  51. data/lib/wgpu/native_resource.rb +342 -0
  52. data/lib/wgpu/pipeline/bind_group.rb +21 -0
  53. data/lib/wgpu/pipeline/bind_group_layout.rb +108 -41
  54. data/lib/wgpu/pipeline/compute_pipeline.rb +40 -50
  55. data/lib/wgpu/pipeline/pipeline_layout.rb +8 -0
  56. data/lib/wgpu/pipeline/render_pipeline.rb +207 -110
  57. data/lib/wgpu/pipeline/shader_module.rb +95 -28
  58. data/lib/wgpu/resources/buffer.rb +387 -85
  59. data/lib/wgpu/resources/query_set.rb +26 -12
  60. data/lib/wgpu/resources/sampler.rb +43 -20
  61. data/lib/wgpu/resources/texture.rb +89 -48
  62. data/lib/wgpu/resources/texture_view.rb +35 -7
  63. data/lib/wgpu/texture_format.rb +96 -0
  64. data/lib/wgpu/version.rb +1 -1
  65. data/lib/wgpu/window.rb +34 -1
  66. data/lib/wgpu.rb +32 -0
  67. data/sig/wgpu.rbs +460 -0
  68. metadata +33 -16
@@ -0,0 +1,848 @@
1
+ /*
2
+ * Generated from include/webgpu/webgpu.h in the official wgpu-native v27.0.4.0
3
+ * release artifact. Only enum declarations consumed by AbiVerifier are kept.
4
+ * Source SHA-256: a6fccf7f9f2fa674d1adfe4f6ea89784a876395b2307bfc2b06f2e77cf6cf356
5
+ * Regenerate: bundle exec ruby script/update_abi_fixture.rb PATH_TO_WEBGPU_H
6
+ */
7
+
8
+ typedef enum WGPUAdapterType {
9
+ WGPUAdapterType_DiscreteGPU = 0x00000001,
10
+ WGPUAdapterType_IntegratedGPU = 0x00000002,
11
+ WGPUAdapterType_CPU = 0x00000003,
12
+ WGPUAdapterType_Unknown = 0x00000004,
13
+ WGPUAdapterType_Force32 = 0x7FFFFFFF
14
+ } WGPUAdapterType WGPU_ENUM_ATTRIBUTE;
15
+
16
+ typedef enum WGPUAddressMode {
17
+ /**
18
+ * `0x00000000`.
19
+ * Indicates no value is passed for this argument. See @ref SentinelValues.
20
+ */
21
+ WGPUAddressMode_Undefined = 0x00000000,
22
+ WGPUAddressMode_ClampToEdge = 0x00000001,
23
+ WGPUAddressMode_Repeat = 0x00000002,
24
+ WGPUAddressMode_MirrorRepeat = 0x00000003,
25
+ WGPUAddressMode_Force32 = 0x7FFFFFFF
26
+ } WGPUAddressMode WGPU_ENUM_ATTRIBUTE;
27
+
28
+ typedef enum WGPUBackendType {
29
+ /**
30
+ * `0x00000000`.
31
+ * Indicates no value is passed for this argument. See @ref SentinelValues.
32
+ */
33
+ WGPUBackendType_Undefined = 0x00000000,
34
+ WGPUBackendType_Null = 0x00000001,
35
+ WGPUBackendType_WebGPU = 0x00000002,
36
+ WGPUBackendType_D3D11 = 0x00000003,
37
+ WGPUBackendType_D3D12 = 0x00000004,
38
+ WGPUBackendType_Metal = 0x00000005,
39
+ WGPUBackendType_Vulkan = 0x00000006,
40
+ WGPUBackendType_OpenGL = 0x00000007,
41
+ WGPUBackendType_OpenGLES = 0x00000008,
42
+ WGPUBackendType_Force32 = 0x7FFFFFFF
43
+ } WGPUBackendType WGPU_ENUM_ATTRIBUTE;
44
+
45
+ typedef enum WGPUBlendFactor {
46
+ /**
47
+ * `0x00000000`.
48
+ * Indicates no value is passed for this argument. See @ref SentinelValues.
49
+ */
50
+ WGPUBlendFactor_Undefined = 0x00000000,
51
+ WGPUBlendFactor_Zero = 0x00000001,
52
+ WGPUBlendFactor_One = 0x00000002,
53
+ WGPUBlendFactor_Src = 0x00000003,
54
+ WGPUBlendFactor_OneMinusSrc = 0x00000004,
55
+ WGPUBlendFactor_SrcAlpha = 0x00000005,
56
+ WGPUBlendFactor_OneMinusSrcAlpha = 0x00000006,
57
+ WGPUBlendFactor_Dst = 0x00000007,
58
+ WGPUBlendFactor_OneMinusDst = 0x00000008,
59
+ WGPUBlendFactor_DstAlpha = 0x00000009,
60
+ WGPUBlendFactor_OneMinusDstAlpha = 0x0000000A,
61
+ WGPUBlendFactor_SrcAlphaSaturated = 0x0000000B,
62
+ WGPUBlendFactor_Constant = 0x0000000C,
63
+ WGPUBlendFactor_OneMinusConstant = 0x0000000D,
64
+ WGPUBlendFactor_Src1 = 0x0000000E,
65
+ WGPUBlendFactor_OneMinusSrc1 = 0x0000000F,
66
+ WGPUBlendFactor_Src1Alpha = 0x00000010,
67
+ WGPUBlendFactor_OneMinusSrc1Alpha = 0x00000011,
68
+ WGPUBlendFactor_Force32 = 0x7FFFFFFF
69
+ } WGPUBlendFactor WGPU_ENUM_ATTRIBUTE;
70
+
71
+ typedef enum WGPUBlendOperation {
72
+ /**
73
+ * `0x00000000`.
74
+ * Indicates no value is passed for this argument. See @ref SentinelValues.
75
+ */
76
+ WGPUBlendOperation_Undefined = 0x00000000,
77
+ WGPUBlendOperation_Add = 0x00000001,
78
+ WGPUBlendOperation_Subtract = 0x00000002,
79
+ WGPUBlendOperation_ReverseSubtract = 0x00000003,
80
+ WGPUBlendOperation_Min = 0x00000004,
81
+ WGPUBlendOperation_Max = 0x00000005,
82
+ WGPUBlendOperation_Force32 = 0x7FFFFFFF
83
+ } WGPUBlendOperation WGPU_ENUM_ATTRIBUTE;
84
+
85
+ typedef enum WGPUBufferBindingType {
86
+ /**
87
+ * `0x00000000`.
88
+ * Indicates that this @ref WGPUBufferBindingLayout member of
89
+ * its parent @ref WGPUBindGroupLayoutEntry is not used.
90
+ * (See also @ref SentinelValues.)
91
+ */
92
+ WGPUBufferBindingType_BindingNotUsed = 0x00000000,
93
+ /**
94
+ * `0x00000001`.
95
+ * Indicates no value is passed for this argument. See @ref SentinelValues.
96
+ */
97
+ WGPUBufferBindingType_Undefined = 0x00000001,
98
+ WGPUBufferBindingType_Uniform = 0x00000002,
99
+ WGPUBufferBindingType_Storage = 0x00000003,
100
+ WGPUBufferBindingType_ReadOnlyStorage = 0x00000004,
101
+ WGPUBufferBindingType_Force32 = 0x7FFFFFFF
102
+ } WGPUBufferBindingType WGPU_ENUM_ATTRIBUTE;
103
+
104
+ typedef enum WGPUBufferMapState {
105
+ WGPUBufferMapState_Unmapped = 0x00000001,
106
+ WGPUBufferMapState_Pending = 0x00000002,
107
+ WGPUBufferMapState_Mapped = 0x00000003,
108
+ WGPUBufferMapState_Force32 = 0x7FFFFFFF
109
+ } WGPUBufferMapState WGPU_ENUM_ATTRIBUTE;
110
+
111
+ typedef enum WGPUCallbackMode {
112
+ /**
113
+ * `0x00000001`.
114
+ * Callbacks created with `WGPUCallbackMode_WaitAnyOnly`:
115
+ * - fire when the asynchronous operation's future is passed to a call to `::wgpuInstanceWaitAny`
116
+ * AND the operation has already completed or it completes inside the call to `::wgpuInstanceWaitAny`.
117
+ */
118
+ WGPUCallbackMode_WaitAnyOnly = 0x00000001,
119
+ /**
120
+ * `0x00000002`.
121
+ * Callbacks created with `WGPUCallbackMode_AllowProcessEvents`:
122
+ * - fire for the same reasons as callbacks created with `WGPUCallbackMode_WaitAnyOnly`
123
+ * - fire inside a call to `::wgpuInstanceProcessEvents` if the asynchronous operation is complete.
124
+ */
125
+ WGPUCallbackMode_AllowProcessEvents = 0x00000002,
126
+ /**
127
+ * `0x00000003`.
128
+ * Callbacks created with `WGPUCallbackMode_AllowSpontaneous`:
129
+ * - fire for the same reasons as callbacks created with `WGPUCallbackMode_AllowProcessEvents`
130
+ * - **may** fire spontaneously on an arbitrary or application thread, when the WebGPU implementations discovers that the asynchronous operation is complete.
131
+ *
132
+ * Implementations _should_ fire spontaneous callbacks as soon as possible.
133
+ *
134
+ * @note Because spontaneous callbacks may fire at an arbitrary time on an arbitrary thread, applications should take extra care when acquiring locks or mutating state inside the callback. It undefined behavior to re-entrantly call into the webgpu.h API if the callback fires while inside the callstack of another webgpu.h function that is not `wgpuInstanceWaitAny` or `wgpuInstanceProcessEvents`.
135
+ */
136
+ WGPUCallbackMode_AllowSpontaneous = 0x00000003,
137
+ WGPUCallbackMode_Force32 = 0x7FFFFFFF
138
+ } WGPUCallbackMode WGPU_ENUM_ATTRIBUTE;
139
+
140
+ typedef enum WGPUCompareFunction {
141
+ /**
142
+ * `0x00000000`.
143
+ * Indicates no value is passed for this argument. See @ref SentinelValues.
144
+ */
145
+ WGPUCompareFunction_Undefined = 0x00000000,
146
+ WGPUCompareFunction_Never = 0x00000001,
147
+ WGPUCompareFunction_Less = 0x00000002,
148
+ WGPUCompareFunction_Equal = 0x00000003,
149
+ WGPUCompareFunction_LessEqual = 0x00000004,
150
+ WGPUCompareFunction_Greater = 0x00000005,
151
+ WGPUCompareFunction_NotEqual = 0x00000006,
152
+ WGPUCompareFunction_GreaterEqual = 0x00000007,
153
+ WGPUCompareFunction_Always = 0x00000008,
154
+ WGPUCompareFunction_Force32 = 0x7FFFFFFF
155
+ } WGPUCompareFunction WGPU_ENUM_ATTRIBUTE;
156
+
157
+ typedef enum WGPUCompilationInfoRequestStatus {
158
+ WGPUCompilationInfoRequestStatus_Success = 0x00000001,
159
+ WGPUCompilationInfoRequestStatus_InstanceDropped = 0x00000002,
160
+ WGPUCompilationInfoRequestStatus_Error = 0x00000003,
161
+ WGPUCompilationInfoRequestStatus_Unknown = 0x00000004,
162
+ WGPUCompilationInfoRequestStatus_Force32 = 0x7FFFFFFF
163
+ } WGPUCompilationInfoRequestStatus WGPU_ENUM_ATTRIBUTE;
164
+
165
+ typedef enum WGPUCompilationMessageType {
166
+ WGPUCompilationMessageType_Error = 0x00000001,
167
+ WGPUCompilationMessageType_Warning = 0x00000002,
168
+ WGPUCompilationMessageType_Info = 0x00000003,
169
+ WGPUCompilationMessageType_Force32 = 0x7FFFFFFF
170
+ } WGPUCompilationMessageType WGPU_ENUM_ATTRIBUTE;
171
+
172
+ typedef enum WGPUCompositeAlphaMode {
173
+ /**
174
+ * `0x00000000`.
175
+ * Lets the WebGPU implementation choose the best mode (supported, and with the best performance) between @ref WGPUCompositeAlphaMode_Opaque or @ref WGPUCompositeAlphaMode_Inherit.
176
+ */
177
+ WGPUCompositeAlphaMode_Auto = 0x00000000,
178
+ /**
179
+ * `0x00000001`.
180
+ * The alpha component of the image is ignored and teated as if it is always 1.0.
181
+ */
182
+ WGPUCompositeAlphaMode_Opaque = 0x00000001,
183
+ /**
184
+ * `0x00000002`.
185
+ * The alpha component is respected and non-alpha components are assumed to be already multiplied with the alpha component. For example, (0.5, 0, 0, 0.5) is semi-transparent bright red.
186
+ */
187
+ WGPUCompositeAlphaMode_Premultiplied = 0x00000002,
188
+ /**
189
+ * `0x00000003`.
190
+ * The alpha component is respected and non-alpha components are assumed to NOT be already multiplied with the alpha component. For example, (1.0, 0, 0, 0.5) is semi-transparent bright red.
191
+ */
192
+ WGPUCompositeAlphaMode_Unpremultiplied = 0x00000003,
193
+ /**
194
+ * `0x00000004`.
195
+ * The handling of the alpha component is unknown to WebGPU and should be handled by the application using system-specific APIs. This mode may be unavailable (for example on Wasm).
196
+ */
197
+ WGPUCompositeAlphaMode_Inherit = 0x00000004,
198
+ WGPUCompositeAlphaMode_Force32 = 0x7FFFFFFF
199
+ } WGPUCompositeAlphaMode WGPU_ENUM_ATTRIBUTE;
200
+
201
+ typedef enum WGPUCreatePipelineAsyncStatus {
202
+ WGPUCreatePipelineAsyncStatus_Success = 0x00000001,
203
+ WGPUCreatePipelineAsyncStatus_InstanceDropped = 0x00000002,
204
+ WGPUCreatePipelineAsyncStatus_ValidationError = 0x00000003,
205
+ WGPUCreatePipelineAsyncStatus_InternalError = 0x00000004,
206
+ WGPUCreatePipelineAsyncStatus_Unknown = 0x00000005,
207
+ WGPUCreatePipelineAsyncStatus_Force32 = 0x7FFFFFFF
208
+ } WGPUCreatePipelineAsyncStatus WGPU_ENUM_ATTRIBUTE;
209
+
210
+ typedef enum WGPUCullMode {
211
+ /**
212
+ * `0x00000000`.
213
+ * Indicates no value is passed for this argument. See @ref SentinelValues.
214
+ */
215
+ WGPUCullMode_Undefined = 0x00000000,
216
+ WGPUCullMode_None = 0x00000001,
217
+ WGPUCullMode_Front = 0x00000002,
218
+ WGPUCullMode_Back = 0x00000003,
219
+ WGPUCullMode_Force32 = 0x7FFFFFFF
220
+ } WGPUCullMode WGPU_ENUM_ATTRIBUTE;
221
+
222
+ typedef enum WGPUDeviceLostReason {
223
+ WGPUDeviceLostReason_Unknown = 0x00000001,
224
+ WGPUDeviceLostReason_Destroyed = 0x00000002,
225
+ WGPUDeviceLostReason_InstanceDropped = 0x00000003,
226
+ WGPUDeviceLostReason_FailedCreation = 0x00000004,
227
+ WGPUDeviceLostReason_Force32 = 0x7FFFFFFF
228
+ } WGPUDeviceLostReason WGPU_ENUM_ATTRIBUTE;
229
+
230
+ typedef enum WGPUErrorFilter {
231
+ WGPUErrorFilter_Validation = 0x00000001,
232
+ WGPUErrorFilter_OutOfMemory = 0x00000002,
233
+ WGPUErrorFilter_Internal = 0x00000003,
234
+ WGPUErrorFilter_Force32 = 0x7FFFFFFF
235
+ } WGPUErrorFilter WGPU_ENUM_ATTRIBUTE;
236
+
237
+ typedef enum WGPUErrorType {
238
+ WGPUErrorType_NoError = 0x00000001,
239
+ WGPUErrorType_Validation = 0x00000002,
240
+ WGPUErrorType_OutOfMemory = 0x00000003,
241
+ WGPUErrorType_Internal = 0x00000004,
242
+ WGPUErrorType_Unknown = 0x00000005,
243
+ WGPUErrorType_Force32 = 0x7FFFFFFF
244
+ } WGPUErrorType WGPU_ENUM_ATTRIBUTE;
245
+
246
+ typedef enum WGPUFeatureLevel {
247
+ /**
248
+ * `0x00000001`.
249
+ * "Compatibility" profile which can be supported on OpenGL ES 3.1.
250
+ */
251
+ WGPUFeatureLevel_Compatibility = 0x00000001,
252
+ /**
253
+ * `0x00000002`.
254
+ * "Core" profile which can be supported on Vulkan/Metal/D3D12.
255
+ */
256
+ WGPUFeatureLevel_Core = 0x00000002,
257
+ WGPUFeatureLevel_Force32 = 0x7FFFFFFF
258
+ } WGPUFeatureLevel WGPU_ENUM_ATTRIBUTE;
259
+
260
+ typedef enum WGPUFeatureName {
261
+ WGPUFeatureName_Undefined = 0x00000000,
262
+ WGPUFeatureName_DepthClipControl = 0x00000001,
263
+ WGPUFeatureName_Depth32FloatStencil8 = 0x00000002,
264
+ WGPUFeatureName_TimestampQuery = 0x00000003,
265
+ WGPUFeatureName_TextureCompressionBC = 0x00000004,
266
+ WGPUFeatureName_TextureCompressionBCSliced3D = 0x00000005,
267
+ WGPUFeatureName_TextureCompressionETC2 = 0x00000006,
268
+ WGPUFeatureName_TextureCompressionASTC = 0x00000007,
269
+ WGPUFeatureName_TextureCompressionASTCSliced3D = 0x00000008,
270
+ WGPUFeatureName_IndirectFirstInstance = 0x00000009,
271
+ WGPUFeatureName_ShaderF16 = 0x0000000A,
272
+ WGPUFeatureName_RG11B10UfloatRenderable = 0x0000000B,
273
+ WGPUFeatureName_BGRA8UnormStorage = 0x0000000C,
274
+ WGPUFeatureName_Float32Filterable = 0x0000000D,
275
+ WGPUFeatureName_Float32Blendable = 0x0000000E,
276
+ WGPUFeatureName_ClipDistances = 0x0000000F,
277
+ WGPUFeatureName_DualSourceBlending = 0x00000010,
278
+ WGPUFeatureName_Force32 = 0x7FFFFFFF
279
+ } WGPUFeatureName WGPU_ENUM_ATTRIBUTE;
280
+
281
+ typedef enum WGPUFilterMode {
282
+ /**
283
+ * `0x00000000`.
284
+ * Indicates no value is passed for this argument. See @ref SentinelValues.
285
+ */
286
+ WGPUFilterMode_Undefined = 0x00000000,
287
+ WGPUFilterMode_Nearest = 0x00000001,
288
+ WGPUFilterMode_Linear = 0x00000002,
289
+ WGPUFilterMode_Force32 = 0x7FFFFFFF
290
+ } WGPUFilterMode WGPU_ENUM_ATTRIBUTE;
291
+
292
+ typedef enum WGPUFrontFace {
293
+ /**
294
+ * `0x00000000`.
295
+ * Indicates no value is passed for this argument. See @ref SentinelValues.
296
+ */
297
+ WGPUFrontFace_Undefined = 0x00000000,
298
+ WGPUFrontFace_CCW = 0x00000001,
299
+ WGPUFrontFace_CW = 0x00000002,
300
+ WGPUFrontFace_Force32 = 0x7FFFFFFF
301
+ } WGPUFrontFace WGPU_ENUM_ATTRIBUTE;
302
+
303
+ typedef enum WGPUIndexFormat {
304
+ /**
305
+ * `0x00000000`.
306
+ * Indicates no value is passed for this argument. See @ref SentinelValues.
307
+ */
308
+ WGPUIndexFormat_Undefined = 0x00000000,
309
+ WGPUIndexFormat_Uint16 = 0x00000001,
310
+ WGPUIndexFormat_Uint32 = 0x00000002,
311
+ WGPUIndexFormat_Force32 = 0x7FFFFFFF
312
+ } WGPUIndexFormat WGPU_ENUM_ATTRIBUTE;
313
+
314
+ typedef enum WGPULoadOp {
315
+ /**
316
+ * `0x00000000`.
317
+ * Indicates no value is passed for this argument. See @ref SentinelValues.
318
+ */
319
+ WGPULoadOp_Undefined = 0x00000000,
320
+ WGPULoadOp_Load = 0x00000001,
321
+ WGPULoadOp_Clear = 0x00000002,
322
+ WGPULoadOp_Force32 = 0x7FFFFFFF
323
+ } WGPULoadOp WGPU_ENUM_ATTRIBUTE;
324
+
325
+ typedef enum WGPUMapAsyncStatus {
326
+ WGPUMapAsyncStatus_Success = 0x00000001,
327
+ WGPUMapAsyncStatus_InstanceDropped = 0x00000002,
328
+ WGPUMapAsyncStatus_Error = 0x00000003,
329
+ WGPUMapAsyncStatus_Aborted = 0x00000004,
330
+ WGPUMapAsyncStatus_Unknown = 0x00000005,
331
+ WGPUMapAsyncStatus_Force32 = 0x7FFFFFFF
332
+ } WGPUMapAsyncStatus WGPU_ENUM_ATTRIBUTE;
333
+
334
+ typedef enum WGPUMipmapFilterMode {
335
+ /**
336
+ * `0x00000000`.
337
+ * Indicates no value is passed for this argument. See @ref SentinelValues.
338
+ */
339
+ WGPUMipmapFilterMode_Undefined = 0x00000000,
340
+ WGPUMipmapFilterMode_Nearest = 0x00000001,
341
+ WGPUMipmapFilterMode_Linear = 0x00000002,
342
+ WGPUMipmapFilterMode_Force32 = 0x7FFFFFFF
343
+ } WGPUMipmapFilterMode WGPU_ENUM_ATTRIBUTE;
344
+
345
+ typedef enum WGPUOptionalBool {
346
+ WGPUOptionalBool_False = 0x00000000,
347
+ WGPUOptionalBool_True = 0x00000001,
348
+ WGPUOptionalBool_Undefined = 0x00000002,
349
+ WGPUOptionalBool_Force32 = 0x7FFFFFFF
350
+ } WGPUOptionalBool WGPU_ENUM_ATTRIBUTE;
351
+
352
+ typedef enum WGPUPopErrorScopeStatus {
353
+ /**
354
+ * `0x00000001`.
355
+ * The error scope stack was successfully popped and a result was reported.
356
+ */
357
+ WGPUPopErrorScopeStatus_Success = 0x00000001,
358
+ WGPUPopErrorScopeStatus_InstanceDropped = 0x00000002,
359
+ /**
360
+ * `0x00000003`.
361
+ * The error scope stack could not be popped, because it was empty.
362
+ */
363
+ WGPUPopErrorScopeStatus_EmptyStack = 0x00000003,
364
+ WGPUPopErrorScopeStatus_Force32 = 0x7FFFFFFF
365
+ } WGPUPopErrorScopeStatus WGPU_ENUM_ATTRIBUTE;
366
+
367
+ typedef enum WGPUPowerPreference {
368
+ /**
369
+ * `0x00000000`.
370
+ * No preference. (See also @ref SentinelValues.)
371
+ */
372
+ WGPUPowerPreference_Undefined = 0x00000000,
373
+ WGPUPowerPreference_LowPower = 0x00000001,
374
+ WGPUPowerPreference_HighPerformance = 0x00000002,
375
+ WGPUPowerPreference_Force32 = 0x7FFFFFFF
376
+ } WGPUPowerPreference WGPU_ENUM_ATTRIBUTE;
377
+
378
+ typedef enum WGPUPresentMode {
379
+ /**
380
+ * `0x00000000`.
381
+ * Present mode is not specified. Use the default.
382
+ */
383
+ WGPUPresentMode_Undefined = 0x00000000,
384
+ /**
385
+ * `0x00000001`.
386
+ * The presentation of the image to the user waits for the next vertical blanking period to update in a first-in, first-out manner.
387
+ * Tearing cannot be observed and frame-loop will be limited to the display's refresh rate.
388
+ * This is the only mode that's always available.
389
+ */
390
+ WGPUPresentMode_Fifo = 0x00000001,
391
+ /**
392
+ * `0x00000002`.
393
+ * The presentation of the image to the user tries to wait for the next vertical blanking period but may decide to not wait if a frame is presented late.
394
+ * Tearing can sometimes be observed but late-frame don't produce a full-frame stutter in the presentation.
395
+ * This is still a first-in, first-out mechanism so a frame-loop will be limited to the display's refresh rate.
396
+ */
397
+ WGPUPresentMode_FifoRelaxed = 0x00000002,
398
+ /**
399
+ * `0x00000003`.
400
+ * The presentation of the image to the user is updated immediately without waiting for a vertical blank.
401
+ * Tearing can be observed but latency is minimized.
402
+ */
403
+ WGPUPresentMode_Immediate = 0x00000003,
404
+ /**
405
+ * `0x00000004`.
406
+ * The presentation of the image to the user waits for the next vertical blanking period to update to the latest provided image.
407
+ * Tearing cannot be observed and a frame-loop is not limited to the display's refresh rate.
408
+ */
409
+ WGPUPresentMode_Mailbox = 0x00000004,
410
+ WGPUPresentMode_Force32 = 0x7FFFFFFF
411
+ } WGPUPresentMode WGPU_ENUM_ATTRIBUTE;
412
+
413
+ typedef enum WGPUPrimitiveTopology {
414
+ /**
415
+ * `0x00000000`.
416
+ * Indicates no value is passed for this argument. See @ref SentinelValues.
417
+ */
418
+ WGPUPrimitiveTopology_Undefined = 0x00000000,
419
+ WGPUPrimitiveTopology_PointList = 0x00000001,
420
+ WGPUPrimitiveTopology_LineList = 0x00000002,
421
+ WGPUPrimitiveTopology_LineStrip = 0x00000003,
422
+ WGPUPrimitiveTopology_TriangleList = 0x00000004,
423
+ WGPUPrimitiveTopology_TriangleStrip = 0x00000005,
424
+ WGPUPrimitiveTopology_Force32 = 0x7FFFFFFF
425
+ } WGPUPrimitiveTopology WGPU_ENUM_ATTRIBUTE;
426
+
427
+ typedef enum WGPUQueryType {
428
+ WGPUQueryType_Occlusion = 0x00000001,
429
+ WGPUQueryType_Timestamp = 0x00000002,
430
+ WGPUQueryType_Force32 = 0x7FFFFFFF
431
+ } WGPUQueryType WGPU_ENUM_ATTRIBUTE;
432
+
433
+ typedef enum WGPUQueueWorkDoneStatus {
434
+ WGPUQueueWorkDoneStatus_Success = 0x00000001,
435
+ WGPUQueueWorkDoneStatus_InstanceDropped = 0x00000002,
436
+ WGPUQueueWorkDoneStatus_Error = 0x00000003,
437
+ WGPUQueueWorkDoneStatus_Unknown = 0x00000004,
438
+ WGPUQueueWorkDoneStatus_Force32 = 0x7FFFFFFF
439
+ } WGPUQueueWorkDoneStatus WGPU_ENUM_ATTRIBUTE;
440
+
441
+ typedef enum WGPURequestAdapterStatus {
442
+ WGPURequestAdapterStatus_Success = 0x00000001,
443
+ WGPURequestAdapterStatus_InstanceDropped = 0x00000002,
444
+ WGPURequestAdapterStatus_Unavailable = 0x00000003,
445
+ WGPURequestAdapterStatus_Error = 0x00000004,
446
+ WGPURequestAdapterStatus_Unknown = 0x00000005,
447
+ WGPURequestAdapterStatus_Force32 = 0x7FFFFFFF
448
+ } WGPURequestAdapterStatus WGPU_ENUM_ATTRIBUTE;
449
+
450
+ typedef enum WGPURequestDeviceStatus {
451
+ WGPURequestDeviceStatus_Success = 0x00000001,
452
+ WGPURequestDeviceStatus_InstanceDropped = 0x00000002,
453
+ WGPURequestDeviceStatus_Error = 0x00000003,
454
+ WGPURequestDeviceStatus_Unknown = 0x00000004,
455
+ WGPURequestDeviceStatus_Force32 = 0x7FFFFFFF
456
+ } WGPURequestDeviceStatus WGPU_ENUM_ATTRIBUTE;
457
+
458
+ typedef enum WGPUSType {
459
+ WGPUSType_ShaderSourceSPIRV = 0x00000001,
460
+ WGPUSType_ShaderSourceWGSL = 0x00000002,
461
+ WGPUSType_RenderPassMaxDrawCount = 0x00000003,
462
+ WGPUSType_SurfaceSourceMetalLayer = 0x00000004,
463
+ WGPUSType_SurfaceSourceWindowsHWND = 0x00000005,
464
+ WGPUSType_SurfaceSourceXlibWindow = 0x00000006,
465
+ WGPUSType_SurfaceSourceWaylandSurface = 0x00000007,
466
+ WGPUSType_SurfaceSourceAndroidNativeWindow = 0x00000008,
467
+ WGPUSType_SurfaceSourceXCBWindow = 0x00000009,
468
+ WGPUSType_Force32 = 0x7FFFFFFF
469
+ } WGPUSType WGPU_ENUM_ATTRIBUTE;
470
+
471
+ typedef enum WGPUSamplerBindingType {
472
+ /**
473
+ * `0x00000000`.
474
+ * Indicates that this @ref WGPUSamplerBindingLayout member of
475
+ * its parent @ref WGPUBindGroupLayoutEntry is not used.
476
+ * (See also @ref SentinelValues.)
477
+ */
478
+ WGPUSamplerBindingType_BindingNotUsed = 0x00000000,
479
+ /**
480
+ * `0x00000001`.
481
+ * Indicates no value is passed for this argument. See @ref SentinelValues.
482
+ */
483
+ WGPUSamplerBindingType_Undefined = 0x00000001,
484
+ WGPUSamplerBindingType_Filtering = 0x00000002,
485
+ WGPUSamplerBindingType_NonFiltering = 0x00000003,
486
+ WGPUSamplerBindingType_Comparison = 0x00000004,
487
+ WGPUSamplerBindingType_Force32 = 0x7FFFFFFF
488
+ } WGPUSamplerBindingType WGPU_ENUM_ATTRIBUTE;
489
+
490
+ typedef enum WGPUStatus {
491
+ WGPUStatus_Success = 0x00000001,
492
+ WGPUStatus_Error = 0x00000002,
493
+ WGPUStatus_Force32 = 0x7FFFFFFF
494
+ } WGPUStatus WGPU_ENUM_ATTRIBUTE;
495
+
496
+ typedef enum WGPUStencilOperation {
497
+ /**
498
+ * `0x00000000`.
499
+ * Indicates no value is passed for this argument. See @ref SentinelValues.
500
+ */
501
+ WGPUStencilOperation_Undefined = 0x00000000,
502
+ WGPUStencilOperation_Keep = 0x00000001,
503
+ WGPUStencilOperation_Zero = 0x00000002,
504
+ WGPUStencilOperation_Replace = 0x00000003,
505
+ WGPUStencilOperation_Invert = 0x00000004,
506
+ WGPUStencilOperation_IncrementClamp = 0x00000005,
507
+ WGPUStencilOperation_DecrementClamp = 0x00000006,
508
+ WGPUStencilOperation_IncrementWrap = 0x00000007,
509
+ WGPUStencilOperation_DecrementWrap = 0x00000008,
510
+ WGPUStencilOperation_Force32 = 0x7FFFFFFF
511
+ } WGPUStencilOperation WGPU_ENUM_ATTRIBUTE;
512
+
513
+ typedef enum WGPUStorageTextureAccess {
514
+ /**
515
+ * `0x00000000`.
516
+ * Indicates that this @ref WGPUStorageTextureBindingLayout member of
517
+ * its parent @ref WGPUBindGroupLayoutEntry is not used.
518
+ * (See also @ref SentinelValues.)
519
+ */
520
+ WGPUStorageTextureAccess_BindingNotUsed = 0x00000000,
521
+ /**
522
+ * `0x00000001`.
523
+ * Indicates no value is passed for this argument. See @ref SentinelValues.
524
+ */
525
+ WGPUStorageTextureAccess_Undefined = 0x00000001,
526
+ WGPUStorageTextureAccess_WriteOnly = 0x00000002,
527
+ WGPUStorageTextureAccess_ReadOnly = 0x00000003,
528
+ WGPUStorageTextureAccess_ReadWrite = 0x00000004,
529
+ WGPUStorageTextureAccess_Force32 = 0x7FFFFFFF
530
+ } WGPUStorageTextureAccess WGPU_ENUM_ATTRIBUTE;
531
+
532
+ typedef enum WGPUStoreOp {
533
+ /**
534
+ * `0x00000000`.
535
+ * Indicates no value is passed for this argument. See @ref SentinelValues.
536
+ */
537
+ WGPUStoreOp_Undefined = 0x00000000,
538
+ WGPUStoreOp_Store = 0x00000001,
539
+ WGPUStoreOp_Discard = 0x00000002,
540
+ WGPUStoreOp_Force32 = 0x7FFFFFFF
541
+ } WGPUStoreOp WGPU_ENUM_ATTRIBUTE;
542
+
543
+ typedef enum WGPUSurfaceGetCurrentTextureStatus {
544
+ /**
545
+ * `0x00000001`.
546
+ * Yay! Everything is good and we can render this frame.
547
+ */
548
+ WGPUSurfaceGetCurrentTextureStatus_SuccessOptimal = 0x00000001,
549
+ /**
550
+ * `0x00000002`.
551
+ * Still OK - the surface can present the frame, but in a suboptimal way. The surface may need reconfiguration.
552
+ */
553
+ WGPUSurfaceGetCurrentTextureStatus_SuccessSuboptimal = 0x00000002,
554
+ /**
555
+ * `0x00000003`.
556
+ * Some operation timed out while trying to acquire the frame.
557
+ */
558
+ WGPUSurfaceGetCurrentTextureStatus_Timeout = 0x00000003,
559
+ /**
560
+ * `0x00000004`.
561
+ * The surface is too different to be used, compared to when it was originally created.
562
+ */
563
+ WGPUSurfaceGetCurrentTextureStatus_Outdated = 0x00000004,
564
+ /**
565
+ * `0x00000005`.
566
+ * The connection to whatever owns the surface was lost.
567
+ */
568
+ WGPUSurfaceGetCurrentTextureStatus_Lost = 0x00000005,
569
+ /**
570
+ * `0x00000006`.
571
+ * The system ran out of memory.
572
+ */
573
+ WGPUSurfaceGetCurrentTextureStatus_OutOfMemory = 0x00000006,
574
+ /**
575
+ * `0x00000007`.
576
+ * The @ref WGPUDevice configured on the @ref WGPUSurface was lost.
577
+ */
578
+ WGPUSurfaceGetCurrentTextureStatus_DeviceLost = 0x00000007,
579
+ /**
580
+ * `0x00000008`.
581
+ * The surface is not configured, or there was an @ref OutStructChainError.
582
+ */
583
+ WGPUSurfaceGetCurrentTextureStatus_Error = 0x00000008,
584
+ WGPUSurfaceGetCurrentTextureStatus_Force32 = 0x7FFFFFFF
585
+ } WGPUSurfaceGetCurrentTextureStatus WGPU_ENUM_ATTRIBUTE;
586
+
587
+ typedef enum WGPUTextureAspect {
588
+ /**
589
+ * `0x00000000`.
590
+ * Indicates no value is passed for this argument. See @ref SentinelValues.
591
+ */
592
+ WGPUTextureAspect_Undefined = 0x00000000,
593
+ WGPUTextureAspect_All = 0x00000001,
594
+ WGPUTextureAspect_StencilOnly = 0x00000002,
595
+ WGPUTextureAspect_DepthOnly = 0x00000003,
596
+ WGPUTextureAspect_Force32 = 0x7FFFFFFF
597
+ } WGPUTextureAspect WGPU_ENUM_ATTRIBUTE;
598
+
599
+ typedef enum WGPUTextureDimension {
600
+ /**
601
+ * `0x00000000`.
602
+ * Indicates no value is passed for this argument. See @ref SentinelValues.
603
+ */
604
+ WGPUTextureDimension_Undefined = 0x00000000,
605
+ WGPUTextureDimension_1D = 0x00000001,
606
+ WGPUTextureDimension_2D = 0x00000002,
607
+ WGPUTextureDimension_3D = 0x00000003,
608
+ WGPUTextureDimension_Force32 = 0x7FFFFFFF
609
+ } WGPUTextureDimension WGPU_ENUM_ATTRIBUTE;
610
+
611
+ typedef enum WGPUTextureFormat {
612
+ /**
613
+ * `0x00000000`.
614
+ * Indicates no value is passed for this argument. See @ref SentinelValues.
615
+ */
616
+ WGPUTextureFormat_Undefined = 0x00000000,
617
+ WGPUTextureFormat_R8Unorm = 0x00000001,
618
+ WGPUTextureFormat_R8Snorm = 0x00000002,
619
+ WGPUTextureFormat_R8Uint = 0x00000003,
620
+ WGPUTextureFormat_R8Sint = 0x00000004,
621
+ WGPUTextureFormat_R16Uint = 0x00000005,
622
+ WGPUTextureFormat_R16Sint = 0x00000006,
623
+ WGPUTextureFormat_R16Float = 0x00000007,
624
+ WGPUTextureFormat_RG8Unorm = 0x00000008,
625
+ WGPUTextureFormat_RG8Snorm = 0x00000009,
626
+ WGPUTextureFormat_RG8Uint = 0x0000000A,
627
+ WGPUTextureFormat_RG8Sint = 0x0000000B,
628
+ WGPUTextureFormat_R32Float = 0x0000000C,
629
+ WGPUTextureFormat_R32Uint = 0x0000000D,
630
+ WGPUTextureFormat_R32Sint = 0x0000000E,
631
+ WGPUTextureFormat_RG16Uint = 0x0000000F,
632
+ WGPUTextureFormat_RG16Sint = 0x00000010,
633
+ WGPUTextureFormat_RG16Float = 0x00000011,
634
+ WGPUTextureFormat_RGBA8Unorm = 0x00000012,
635
+ WGPUTextureFormat_RGBA8UnormSrgb = 0x00000013,
636
+ WGPUTextureFormat_RGBA8Snorm = 0x00000014,
637
+ WGPUTextureFormat_RGBA8Uint = 0x00000015,
638
+ WGPUTextureFormat_RGBA8Sint = 0x00000016,
639
+ WGPUTextureFormat_BGRA8Unorm = 0x00000017,
640
+ WGPUTextureFormat_BGRA8UnormSrgb = 0x00000018,
641
+ WGPUTextureFormat_RGB10A2Uint = 0x00000019,
642
+ WGPUTextureFormat_RGB10A2Unorm = 0x0000001A,
643
+ WGPUTextureFormat_RG11B10Ufloat = 0x0000001B,
644
+ WGPUTextureFormat_RGB9E5Ufloat = 0x0000001C,
645
+ WGPUTextureFormat_RG32Float = 0x0000001D,
646
+ WGPUTextureFormat_RG32Uint = 0x0000001E,
647
+ WGPUTextureFormat_RG32Sint = 0x0000001F,
648
+ WGPUTextureFormat_RGBA16Uint = 0x00000020,
649
+ WGPUTextureFormat_RGBA16Sint = 0x00000021,
650
+ WGPUTextureFormat_RGBA16Float = 0x00000022,
651
+ WGPUTextureFormat_RGBA32Float = 0x00000023,
652
+ WGPUTextureFormat_RGBA32Uint = 0x00000024,
653
+ WGPUTextureFormat_RGBA32Sint = 0x00000025,
654
+ WGPUTextureFormat_Stencil8 = 0x00000026,
655
+ WGPUTextureFormat_Depth16Unorm = 0x00000027,
656
+ WGPUTextureFormat_Depth24Plus = 0x00000028,
657
+ WGPUTextureFormat_Depth24PlusStencil8 = 0x00000029,
658
+ WGPUTextureFormat_Depth32Float = 0x0000002A,
659
+ WGPUTextureFormat_Depth32FloatStencil8 = 0x0000002B,
660
+ WGPUTextureFormat_BC1RGBAUnorm = 0x0000002C,
661
+ WGPUTextureFormat_BC1RGBAUnormSrgb = 0x0000002D,
662
+ WGPUTextureFormat_BC2RGBAUnorm = 0x0000002E,
663
+ WGPUTextureFormat_BC2RGBAUnormSrgb = 0x0000002F,
664
+ WGPUTextureFormat_BC3RGBAUnorm = 0x00000030,
665
+ WGPUTextureFormat_BC3RGBAUnormSrgb = 0x00000031,
666
+ WGPUTextureFormat_BC4RUnorm = 0x00000032,
667
+ WGPUTextureFormat_BC4RSnorm = 0x00000033,
668
+ WGPUTextureFormat_BC5RGUnorm = 0x00000034,
669
+ WGPUTextureFormat_BC5RGSnorm = 0x00000035,
670
+ WGPUTextureFormat_BC6HRGBUfloat = 0x00000036,
671
+ WGPUTextureFormat_BC6HRGBFloat = 0x00000037,
672
+ WGPUTextureFormat_BC7RGBAUnorm = 0x00000038,
673
+ WGPUTextureFormat_BC7RGBAUnormSrgb = 0x00000039,
674
+ WGPUTextureFormat_ETC2RGB8Unorm = 0x0000003A,
675
+ WGPUTextureFormat_ETC2RGB8UnormSrgb = 0x0000003B,
676
+ WGPUTextureFormat_ETC2RGB8A1Unorm = 0x0000003C,
677
+ WGPUTextureFormat_ETC2RGB8A1UnormSrgb = 0x0000003D,
678
+ WGPUTextureFormat_ETC2RGBA8Unorm = 0x0000003E,
679
+ WGPUTextureFormat_ETC2RGBA8UnormSrgb = 0x0000003F,
680
+ WGPUTextureFormat_EACR11Unorm = 0x00000040,
681
+ WGPUTextureFormat_EACR11Snorm = 0x00000041,
682
+ WGPUTextureFormat_EACRG11Unorm = 0x00000042,
683
+ WGPUTextureFormat_EACRG11Snorm = 0x00000043,
684
+ WGPUTextureFormat_ASTC4x4Unorm = 0x00000044,
685
+ WGPUTextureFormat_ASTC4x4UnormSrgb = 0x00000045,
686
+ WGPUTextureFormat_ASTC5x4Unorm = 0x00000046,
687
+ WGPUTextureFormat_ASTC5x4UnormSrgb = 0x00000047,
688
+ WGPUTextureFormat_ASTC5x5Unorm = 0x00000048,
689
+ WGPUTextureFormat_ASTC5x5UnormSrgb = 0x00000049,
690
+ WGPUTextureFormat_ASTC6x5Unorm = 0x0000004A,
691
+ WGPUTextureFormat_ASTC6x5UnormSrgb = 0x0000004B,
692
+ WGPUTextureFormat_ASTC6x6Unorm = 0x0000004C,
693
+ WGPUTextureFormat_ASTC6x6UnormSrgb = 0x0000004D,
694
+ WGPUTextureFormat_ASTC8x5Unorm = 0x0000004E,
695
+ WGPUTextureFormat_ASTC8x5UnormSrgb = 0x0000004F,
696
+ WGPUTextureFormat_ASTC8x6Unorm = 0x00000050,
697
+ WGPUTextureFormat_ASTC8x6UnormSrgb = 0x00000051,
698
+ WGPUTextureFormat_ASTC8x8Unorm = 0x00000052,
699
+ WGPUTextureFormat_ASTC8x8UnormSrgb = 0x00000053,
700
+ WGPUTextureFormat_ASTC10x5Unorm = 0x00000054,
701
+ WGPUTextureFormat_ASTC10x5UnormSrgb = 0x00000055,
702
+ WGPUTextureFormat_ASTC10x6Unorm = 0x00000056,
703
+ WGPUTextureFormat_ASTC10x6UnormSrgb = 0x00000057,
704
+ WGPUTextureFormat_ASTC10x8Unorm = 0x00000058,
705
+ WGPUTextureFormat_ASTC10x8UnormSrgb = 0x00000059,
706
+ WGPUTextureFormat_ASTC10x10Unorm = 0x0000005A,
707
+ WGPUTextureFormat_ASTC10x10UnormSrgb = 0x0000005B,
708
+ WGPUTextureFormat_ASTC12x10Unorm = 0x0000005C,
709
+ WGPUTextureFormat_ASTC12x10UnormSrgb = 0x0000005D,
710
+ WGPUTextureFormat_ASTC12x12Unorm = 0x0000005E,
711
+ WGPUTextureFormat_ASTC12x12UnormSrgb = 0x0000005F,
712
+ WGPUTextureFormat_Force32 = 0x7FFFFFFF
713
+ } WGPUTextureFormat WGPU_ENUM_ATTRIBUTE;
714
+
715
+ typedef enum WGPUTextureSampleType {
716
+ /**
717
+ * `0x00000000`.
718
+ * Indicates that this @ref WGPUTextureBindingLayout member of
719
+ * its parent @ref WGPUBindGroupLayoutEntry is not used.
720
+ * (See also @ref SentinelValues.)
721
+ */
722
+ WGPUTextureSampleType_BindingNotUsed = 0x00000000,
723
+ /**
724
+ * `0x00000001`.
725
+ * Indicates no value is passed for this argument. See @ref SentinelValues.
726
+ */
727
+ WGPUTextureSampleType_Undefined = 0x00000001,
728
+ WGPUTextureSampleType_Float = 0x00000002,
729
+ WGPUTextureSampleType_UnfilterableFloat = 0x00000003,
730
+ WGPUTextureSampleType_Depth = 0x00000004,
731
+ WGPUTextureSampleType_Sint = 0x00000005,
732
+ WGPUTextureSampleType_Uint = 0x00000006,
733
+ WGPUTextureSampleType_Force32 = 0x7FFFFFFF
734
+ } WGPUTextureSampleType WGPU_ENUM_ATTRIBUTE;
735
+
736
+ typedef enum WGPUTextureViewDimension {
737
+ /**
738
+ * `0x00000000`.
739
+ * Indicates no value is passed for this argument. See @ref SentinelValues.
740
+ */
741
+ WGPUTextureViewDimension_Undefined = 0x00000000,
742
+ WGPUTextureViewDimension_1D = 0x00000001,
743
+ WGPUTextureViewDimension_2D = 0x00000002,
744
+ WGPUTextureViewDimension_2DArray = 0x00000003,
745
+ WGPUTextureViewDimension_Cube = 0x00000004,
746
+ WGPUTextureViewDimension_CubeArray = 0x00000005,
747
+ WGPUTextureViewDimension_3D = 0x00000006,
748
+ WGPUTextureViewDimension_Force32 = 0x7FFFFFFF
749
+ } WGPUTextureViewDimension WGPU_ENUM_ATTRIBUTE;
750
+
751
+ typedef enum WGPUVertexFormat {
752
+ WGPUVertexFormat_Uint8 = 0x00000001,
753
+ WGPUVertexFormat_Uint8x2 = 0x00000002,
754
+ WGPUVertexFormat_Uint8x4 = 0x00000003,
755
+ WGPUVertexFormat_Sint8 = 0x00000004,
756
+ WGPUVertexFormat_Sint8x2 = 0x00000005,
757
+ WGPUVertexFormat_Sint8x4 = 0x00000006,
758
+ WGPUVertexFormat_Unorm8 = 0x00000007,
759
+ WGPUVertexFormat_Unorm8x2 = 0x00000008,
760
+ WGPUVertexFormat_Unorm8x4 = 0x00000009,
761
+ WGPUVertexFormat_Snorm8 = 0x0000000A,
762
+ WGPUVertexFormat_Snorm8x2 = 0x0000000B,
763
+ WGPUVertexFormat_Snorm8x4 = 0x0000000C,
764
+ WGPUVertexFormat_Uint16 = 0x0000000D,
765
+ WGPUVertexFormat_Uint16x2 = 0x0000000E,
766
+ WGPUVertexFormat_Uint16x4 = 0x0000000F,
767
+ WGPUVertexFormat_Sint16 = 0x00000010,
768
+ WGPUVertexFormat_Sint16x2 = 0x00000011,
769
+ WGPUVertexFormat_Sint16x4 = 0x00000012,
770
+ WGPUVertexFormat_Unorm16 = 0x00000013,
771
+ WGPUVertexFormat_Unorm16x2 = 0x00000014,
772
+ WGPUVertexFormat_Unorm16x4 = 0x00000015,
773
+ WGPUVertexFormat_Snorm16 = 0x00000016,
774
+ WGPUVertexFormat_Snorm16x2 = 0x00000017,
775
+ WGPUVertexFormat_Snorm16x4 = 0x00000018,
776
+ WGPUVertexFormat_Float16 = 0x00000019,
777
+ WGPUVertexFormat_Float16x2 = 0x0000001A,
778
+ WGPUVertexFormat_Float16x4 = 0x0000001B,
779
+ WGPUVertexFormat_Float32 = 0x0000001C,
780
+ WGPUVertexFormat_Float32x2 = 0x0000001D,
781
+ WGPUVertexFormat_Float32x3 = 0x0000001E,
782
+ WGPUVertexFormat_Float32x4 = 0x0000001F,
783
+ WGPUVertexFormat_Uint32 = 0x00000020,
784
+ WGPUVertexFormat_Uint32x2 = 0x00000021,
785
+ WGPUVertexFormat_Uint32x3 = 0x00000022,
786
+ WGPUVertexFormat_Uint32x4 = 0x00000023,
787
+ WGPUVertexFormat_Sint32 = 0x00000024,
788
+ WGPUVertexFormat_Sint32x2 = 0x00000025,
789
+ WGPUVertexFormat_Sint32x3 = 0x00000026,
790
+ WGPUVertexFormat_Sint32x4 = 0x00000027,
791
+ WGPUVertexFormat_Unorm10_10_10_2 = 0x00000028,
792
+ WGPUVertexFormat_Unorm8x4BGRA = 0x00000029,
793
+ WGPUVertexFormat_Force32 = 0x7FFFFFFF
794
+ } WGPUVertexFormat WGPU_ENUM_ATTRIBUTE;
795
+
796
+ typedef enum WGPUVertexStepMode {
797
+ /**
798
+ * `0x00000000`.
799
+ * This @ref WGPUVertexBufferLayout is a "hole" in the @ref WGPUVertexState `buffers` array.
800
+ * (See also @ref SentinelValues.)
801
+ */
802
+ WGPUVertexStepMode_VertexBufferNotUsed = 0x00000000,
803
+ /**
804
+ * `0x00000001`.
805
+ * Indicates no value is passed for this argument. See @ref SentinelValues.
806
+ */
807
+ WGPUVertexStepMode_Undefined = 0x00000001,
808
+ WGPUVertexStepMode_Vertex = 0x00000002,
809
+ WGPUVertexStepMode_Instance = 0x00000003,
810
+ WGPUVertexStepMode_Force32 = 0x7FFFFFFF
811
+ } WGPUVertexStepMode WGPU_ENUM_ATTRIBUTE;
812
+
813
+ typedef enum WGPUWGSLLanguageFeatureName {
814
+ WGPUWGSLLanguageFeatureName_ReadonlyAndReadwriteStorageTextures = 0x00000001,
815
+ WGPUWGSLLanguageFeatureName_Packed4x8IntegerDotProduct = 0x00000002,
816
+ WGPUWGSLLanguageFeatureName_UnrestrictedPointerParameters = 0x00000003,
817
+ WGPUWGSLLanguageFeatureName_PointerCompositeAccess = 0x00000004,
818
+ WGPUWGSLLanguageFeatureName_Force32 = 0x7FFFFFFF
819
+ } WGPUWGSLLanguageFeatureName WGPU_ENUM_ATTRIBUTE;
820
+
821
+ typedef enum WGPUWaitStatus {
822
+ /**
823
+ * `0x00000001`.
824
+ * At least one WGPUFuture completed successfully.
825
+ */
826
+ WGPUWaitStatus_Success = 0x00000001,
827
+ /**
828
+ * `0x00000002`.
829
+ * No WGPUFutures completed within the timeout.
830
+ */
831
+ WGPUWaitStatus_TimedOut = 0x00000002,
832
+ /**
833
+ * `0x00000003`.
834
+ * A @ref Timed-Wait was performed when WGPUInstanceFeatures::timedWaitAnyEnable is false.
835
+ */
836
+ WGPUWaitStatus_UnsupportedTimeout = 0x00000003,
837
+ /**
838
+ * `0x00000004`.
839
+ * The number of futures waited on in a @ref Timed-Wait is greater than the supported WGPUInstanceFeatures::timedWaitAnyMaxCount.
840
+ */
841
+ WGPUWaitStatus_UnsupportedCount = 0x00000004,
842
+ /**
843
+ * `0x00000005`.
844
+ * An invalid wait was performed with @ref Mixed-Sources.
845
+ */
846
+ WGPUWaitStatus_UnsupportedMixedSources = 0x00000005,
847
+ WGPUWaitStatus_Force32 = 0x7FFFFFFF
848
+ } WGPUWaitStatus WGPU_ENUM_ATTRIBUTE;