WebGPU Headers
The WebGPU C API
 
Loading...
Searching...
No Matches
webgpu.h
1
18#ifndef WEBGPU_H_
19#define WEBGPU_H_
20
21#if defined(WGPU_SHARED_LIBRARY)
22# if defined(_WIN32)
23# if defined(WGPU_IMPLEMENTATION)
24# define WGPU_EXPORT __declspec(dllexport)
25# else
26# define WGPU_EXPORT __declspec(dllimport)
27# endif
28# else // defined(_WIN32)
29# if defined(WGPU_IMPLEMENTATION)
30# define WGPU_EXPORT __attribute__((visibility("default")))
31# else
32# define WGPU_EXPORT
33# endif
34# endif // defined(_WIN32)
35#else // defined(WGPU_SHARED_LIBRARY)
36# define WGPU_EXPORT
37#endif // defined(WGPU_SHARED_LIBRARY)
38
39#if !defined(WGPU_OBJECT_ATTRIBUTE)
40#define WGPU_OBJECT_ATTRIBUTE
41#endif
42#if !defined(WGPU_ENUM_ATTRIBUTE)
43#define WGPU_ENUM_ATTRIBUTE
44#endif
45#if !defined(WGPU_STRUCTURE_ATTRIBUTE)
46#define WGPU_STRUCTURE_ATTRIBUTE
47#endif
48#if !defined(WGPU_FUNCTION_ATTRIBUTE)
49#define WGPU_FUNCTION_ATTRIBUTE
50#endif
51#if !defined(WGPU_NULLABLE)
52#define WGPU_NULLABLE
53#endif
54
55#include <stdint.h>
56#include <stddef.h>
57
58
65#define WGPU_ARRAY_LAYER_COUNT_UNDEFINED (0xffffffffUL)
66#define WGPU_COPY_STRIDE_UNDEFINED (0xffffffffUL)
67#define WGPU_DEPTH_SLICE_UNDEFINED (0xffffffffUL)
68#define WGPU_LIMIT_U32_UNDEFINED (0xffffffffUL)
69#define WGPU_LIMIT_U64_UNDEFINED (0xffffffffffffffffULL)
70#define WGPU_MIP_LEVEL_COUNT_UNDEFINED (0xffffffffUL)
71#define WGPU_QUERY_SET_INDEX_UNDEFINED (0xffffffffUL)
72#define WGPU_WHOLE_MAP_SIZE (SIZE_MAX)
73#define WGPU_WHOLE_SIZE (0xffffffffffffffffULL)
74
75
84typedef uint32_t WGPUFlags;
85typedef uint32_t WGPUBool;
86
87
96typedef struct WGPUAdapterImpl* WGPUAdapter WGPU_OBJECT_ATTRIBUTE;
97typedef struct WGPUBindGroupImpl* WGPUBindGroup WGPU_OBJECT_ATTRIBUTE;
98typedef struct WGPUBindGroupLayoutImpl* WGPUBindGroupLayout WGPU_OBJECT_ATTRIBUTE;
99typedef struct WGPUBufferImpl* WGPUBuffer WGPU_OBJECT_ATTRIBUTE;
100typedef struct WGPUCommandBufferImpl* WGPUCommandBuffer WGPU_OBJECT_ATTRIBUTE;
101typedef struct WGPUCommandEncoderImpl* WGPUCommandEncoder WGPU_OBJECT_ATTRIBUTE;
102typedef struct WGPUComputePassEncoderImpl* WGPUComputePassEncoder WGPU_OBJECT_ATTRIBUTE;
103typedef struct WGPUComputePipelineImpl* WGPUComputePipeline WGPU_OBJECT_ATTRIBUTE;
104typedef struct WGPUDeviceImpl* WGPUDevice WGPU_OBJECT_ATTRIBUTE;
105typedef struct WGPUInstanceImpl* WGPUInstance WGPU_OBJECT_ATTRIBUTE;
106typedef struct WGPUPipelineLayoutImpl* WGPUPipelineLayout WGPU_OBJECT_ATTRIBUTE;
107typedef struct WGPUQuerySetImpl* WGPUQuerySet WGPU_OBJECT_ATTRIBUTE;
108typedef struct WGPUQueueImpl* WGPUQueue WGPU_OBJECT_ATTRIBUTE;
109typedef struct WGPURenderBundleImpl* WGPURenderBundle WGPU_OBJECT_ATTRIBUTE;
110typedef struct WGPURenderBundleEncoderImpl* WGPURenderBundleEncoder WGPU_OBJECT_ATTRIBUTE;
111typedef struct WGPURenderPassEncoderImpl* WGPURenderPassEncoder WGPU_OBJECT_ATTRIBUTE;
112typedef struct WGPURenderPipelineImpl* WGPURenderPipeline WGPU_OBJECT_ATTRIBUTE;
113typedef struct WGPUSamplerImpl* WGPUSampler WGPU_OBJECT_ATTRIBUTE;
114typedef struct WGPUShaderModuleImpl* WGPUShaderModule WGPU_OBJECT_ATTRIBUTE;
115typedef struct WGPUSurfaceImpl* WGPUSurface WGPU_OBJECT_ATTRIBUTE;
116typedef struct WGPUTextureImpl* WGPUTexture WGPU_OBJECT_ATTRIBUTE;
117typedef struct WGPUTextureViewImpl* WGPUTextureView WGPU_OBJECT_ATTRIBUTE;
118
119
121// Structure forward declarations
122struct WGPUAdapterInfo;
123struct WGPUBindGroupEntry;
124struct WGPUBlendComponent;
127struct WGPUColor;
132struct WGPUConstantEntry;
133struct WGPUExtent3D;
135struct WGPULimits;
137struct WGPUOrigin3D;
140struct WGPUPrimitiveState;
166struct WGPUSurfaceTexture;
174struct WGPUBlendState;
182struct WGPURequiredLimits;
192struct WGPUVertexState;
193struct WGPUFragmentState;
195
196
203typedef enum WGPUAdapterType {
204 WGPUAdapterType_DiscreteGPU = 0x00000000,
205 WGPUAdapterType_IntegratedGPU = 0x00000001,
206 WGPUAdapterType_CPU = 0x00000002,
207 WGPUAdapterType_Unknown = 0x00000003,
208 WGPUAdapterType_Force32 = 0x7FFFFFFF
209} WGPUAdapterType WGPU_ENUM_ATTRIBUTE;
210
211typedef enum WGPUAddressMode {
212 WGPUAddressMode_Repeat = 0x00000000,
213 WGPUAddressMode_MirrorRepeat = 0x00000001,
214 WGPUAddressMode_ClampToEdge = 0x00000002,
215 WGPUAddressMode_Force32 = 0x7FFFFFFF
216} WGPUAddressMode WGPU_ENUM_ATTRIBUTE;
217
218typedef enum WGPUBackendType {
219 WGPUBackendType_Undefined = 0x00000000,
220 WGPUBackendType_Null = 0x00000001,
221 WGPUBackendType_WebGPU = 0x00000002,
222 WGPUBackendType_D3D11 = 0x00000003,
223 WGPUBackendType_D3D12 = 0x00000004,
224 WGPUBackendType_Metal = 0x00000005,
225 WGPUBackendType_Vulkan = 0x00000006,
226 WGPUBackendType_OpenGL = 0x00000007,
227 WGPUBackendType_OpenGLES = 0x00000008,
228 WGPUBackendType_Force32 = 0x7FFFFFFF
229} WGPUBackendType WGPU_ENUM_ATTRIBUTE;
230
231typedef enum WGPUBlendFactor {
232 WGPUBlendFactor_Zero = 0x00000000,
233 WGPUBlendFactor_One = 0x00000001,
234 WGPUBlendFactor_Src = 0x00000002,
235 WGPUBlendFactor_OneMinusSrc = 0x00000003,
236 WGPUBlendFactor_SrcAlpha = 0x00000004,
237 WGPUBlendFactor_OneMinusSrcAlpha = 0x00000005,
238 WGPUBlendFactor_Dst = 0x00000006,
239 WGPUBlendFactor_OneMinusDst = 0x00000007,
240 WGPUBlendFactor_DstAlpha = 0x00000008,
241 WGPUBlendFactor_OneMinusDstAlpha = 0x00000009,
242 WGPUBlendFactor_SrcAlphaSaturated = 0x0000000A,
243 WGPUBlendFactor_Constant = 0x0000000B,
244 WGPUBlendFactor_OneMinusConstant = 0x0000000C,
245 WGPUBlendFactor_Force32 = 0x7FFFFFFF
246} WGPUBlendFactor WGPU_ENUM_ATTRIBUTE;
247
248typedef enum WGPUBlendOperation {
249 WGPUBlendOperation_Add = 0x00000000,
250 WGPUBlendOperation_Subtract = 0x00000001,
251 WGPUBlendOperation_ReverseSubtract = 0x00000002,
252 WGPUBlendOperation_Min = 0x00000003,
253 WGPUBlendOperation_Max = 0x00000004,
254 WGPUBlendOperation_Force32 = 0x7FFFFFFF
255} WGPUBlendOperation WGPU_ENUM_ATTRIBUTE;
256
257typedef enum WGPUBufferBindingType {
258 WGPUBufferBindingType_Undefined = 0x00000000,
259 WGPUBufferBindingType_Uniform = 0x00000001,
260 WGPUBufferBindingType_Storage = 0x00000002,
261 WGPUBufferBindingType_ReadOnlyStorage = 0x00000003,
262 WGPUBufferBindingType_Force32 = 0x7FFFFFFF
263} WGPUBufferBindingType WGPU_ENUM_ATTRIBUTE;
264
265typedef enum WGPUBufferMapAsyncStatus {
266 WGPUBufferMapAsyncStatus_Success = 0x00000000,
267 WGPUBufferMapAsyncStatus_ValidationError = 0x00000001,
268 WGPUBufferMapAsyncStatus_Unknown = 0x00000002,
269 WGPUBufferMapAsyncStatus_DeviceLost = 0x00000003,
270 WGPUBufferMapAsyncStatus_DestroyedBeforeCallback = 0x00000004,
271 WGPUBufferMapAsyncStatus_UnmappedBeforeCallback = 0x00000005,
272 WGPUBufferMapAsyncStatus_MappingAlreadyPending = 0x00000006,
273 WGPUBufferMapAsyncStatus_OffsetOutOfRange = 0x00000007,
274 WGPUBufferMapAsyncStatus_SizeOutOfRange = 0x00000008,
275 WGPUBufferMapAsyncStatus_Force32 = 0x7FFFFFFF
276} WGPUBufferMapAsyncStatus WGPU_ENUM_ATTRIBUTE;
277
278typedef enum WGPUBufferMapState {
279 WGPUBufferMapState_Unmapped = 0x00000000,
280 WGPUBufferMapState_Pending = 0x00000001,
281 WGPUBufferMapState_Mapped = 0x00000002,
282 WGPUBufferMapState_Force32 = 0x7FFFFFFF
283} WGPUBufferMapState WGPU_ENUM_ATTRIBUTE;
284
285typedef enum WGPUCompareFunction {
286 WGPUCompareFunction_Undefined = 0x00000000,
287 WGPUCompareFunction_Never = 0x00000001,
288 WGPUCompareFunction_Less = 0x00000002,
289 WGPUCompareFunction_LessEqual = 0x00000003,
290 WGPUCompareFunction_Greater = 0x00000004,
291 WGPUCompareFunction_GreaterEqual = 0x00000005,
292 WGPUCompareFunction_Equal = 0x00000006,
293 WGPUCompareFunction_NotEqual = 0x00000007,
294 WGPUCompareFunction_Always = 0x00000008,
295 WGPUCompareFunction_Force32 = 0x7FFFFFFF
296} WGPUCompareFunction WGPU_ENUM_ATTRIBUTE;
297
298typedef enum WGPUCompilationInfoRequestStatus {
299 WGPUCompilationInfoRequestStatus_Success = 0x00000000,
300 WGPUCompilationInfoRequestStatus_Error = 0x00000001,
301 WGPUCompilationInfoRequestStatus_DeviceLost = 0x00000002,
302 WGPUCompilationInfoRequestStatus_Unknown = 0x00000003,
303 WGPUCompilationInfoRequestStatus_Force32 = 0x7FFFFFFF
304} WGPUCompilationInfoRequestStatus WGPU_ENUM_ATTRIBUTE;
305
306typedef enum WGPUCompilationMessageType {
307 WGPUCompilationMessageType_Error = 0x00000000,
308 WGPUCompilationMessageType_Warning = 0x00000001,
309 WGPUCompilationMessageType_Info = 0x00000002,
310 WGPUCompilationMessageType_Force32 = 0x7FFFFFFF
311} WGPUCompilationMessageType WGPU_ENUM_ATTRIBUTE;
312
313typedef enum WGPUCompositeAlphaMode {
314 WGPUCompositeAlphaMode_Auto = 0x00000000,
315 WGPUCompositeAlphaMode_Opaque = 0x00000001,
316 WGPUCompositeAlphaMode_Premultiplied = 0x00000002,
317 WGPUCompositeAlphaMode_Unpremultiplied = 0x00000003,
318 WGPUCompositeAlphaMode_Inherit = 0x00000004,
319 WGPUCompositeAlphaMode_Force32 = 0x7FFFFFFF
320} WGPUCompositeAlphaMode WGPU_ENUM_ATTRIBUTE;
321
322typedef enum WGPUCreatePipelineAsyncStatus {
323 WGPUCreatePipelineAsyncStatus_Success = 0x00000000,
324 WGPUCreatePipelineAsyncStatus_ValidationError = 0x00000001,
325 WGPUCreatePipelineAsyncStatus_InternalError = 0x00000002,
326 WGPUCreatePipelineAsyncStatus_DeviceLost = 0x00000003,
327 WGPUCreatePipelineAsyncStatus_DeviceDestroyed = 0x00000004,
328 WGPUCreatePipelineAsyncStatus_Unknown = 0x00000005,
329 WGPUCreatePipelineAsyncStatus_Force32 = 0x7FFFFFFF
330} WGPUCreatePipelineAsyncStatus WGPU_ENUM_ATTRIBUTE;
331
332typedef enum WGPUCullMode {
333 WGPUCullMode_None = 0x00000000,
334 WGPUCullMode_Front = 0x00000001,
335 WGPUCullMode_Back = 0x00000002,
336 WGPUCullMode_Force32 = 0x7FFFFFFF
337} WGPUCullMode WGPU_ENUM_ATTRIBUTE;
338
339typedef enum WGPUDeviceLostReason {
340 WGPUDeviceLostReason_Unknown = 0x00000001,
341 WGPUDeviceLostReason_Destroyed = 0x00000002,
342 WGPUDeviceLostReason_Force32 = 0x7FFFFFFF
343} WGPUDeviceLostReason WGPU_ENUM_ATTRIBUTE;
344
345typedef enum WGPUErrorFilter {
346 WGPUErrorFilter_Validation = 0x00000000,
347 WGPUErrorFilter_OutOfMemory = 0x00000001,
348 WGPUErrorFilter_Internal = 0x00000002,
349 WGPUErrorFilter_Force32 = 0x7FFFFFFF
350} WGPUErrorFilter WGPU_ENUM_ATTRIBUTE;
351
352typedef enum WGPUErrorType {
353 WGPUErrorType_NoError = 0x00000000,
354 WGPUErrorType_Validation = 0x00000001,
355 WGPUErrorType_OutOfMemory = 0x00000002,
356 WGPUErrorType_Internal = 0x00000003,
357 WGPUErrorType_Unknown = 0x00000004,
358 WGPUErrorType_DeviceLost = 0x00000005,
359 WGPUErrorType_Force32 = 0x7FFFFFFF
360} WGPUErrorType WGPU_ENUM_ATTRIBUTE;
361
362typedef enum WGPUFeatureName {
363 WGPUFeatureName_Undefined = 0x00000000,
364 WGPUFeatureName_DepthClipControl = 0x00000001,
365 WGPUFeatureName_Depth32FloatStencil8 = 0x00000002,
366 WGPUFeatureName_TimestampQuery = 0x00000003,
367 WGPUFeatureName_TextureCompressionBC = 0x00000004,
368 WGPUFeatureName_TextureCompressionETC2 = 0x00000005,
369 WGPUFeatureName_TextureCompressionASTC = 0x00000006,
370 WGPUFeatureName_IndirectFirstInstance = 0x00000007,
371 WGPUFeatureName_ShaderF16 = 0x00000008,
372 WGPUFeatureName_RG11B10UfloatRenderable = 0x00000009,
373 WGPUFeatureName_BGRA8UnormStorage = 0x0000000A,
374 WGPUFeatureName_Float32Filterable = 0x0000000B,
375 WGPUFeatureName_Force32 = 0x7FFFFFFF
376} WGPUFeatureName WGPU_ENUM_ATTRIBUTE;
377
378typedef enum WGPUFilterMode {
379 WGPUFilterMode_Nearest = 0x00000000,
380 WGPUFilterMode_Linear = 0x00000001,
381 WGPUFilterMode_Force32 = 0x7FFFFFFF
382} WGPUFilterMode WGPU_ENUM_ATTRIBUTE;
383
384typedef enum WGPUFrontFace {
385 WGPUFrontFace_CCW = 0x00000000,
386 WGPUFrontFace_CW = 0x00000001,
387 WGPUFrontFace_Force32 = 0x7FFFFFFF
388} WGPUFrontFace WGPU_ENUM_ATTRIBUTE;
389
390typedef enum WGPUIndexFormat {
391 WGPUIndexFormat_Undefined = 0x00000000,
392 WGPUIndexFormat_Uint16 = 0x00000001,
393 WGPUIndexFormat_Uint32 = 0x00000002,
394 WGPUIndexFormat_Force32 = 0x7FFFFFFF
395} WGPUIndexFormat WGPU_ENUM_ATTRIBUTE;
396
397typedef enum WGPULoadOp {
398 WGPULoadOp_Undefined = 0x00000000,
399 WGPULoadOp_Clear = 0x00000001,
400 WGPULoadOp_Load = 0x00000002,
401 WGPULoadOp_Force32 = 0x7FFFFFFF
402} WGPULoadOp WGPU_ENUM_ATTRIBUTE;
403
404typedef enum WGPUMipmapFilterMode {
405 WGPUMipmapFilterMode_Nearest = 0x00000000,
406 WGPUMipmapFilterMode_Linear = 0x00000001,
407 WGPUMipmapFilterMode_Force32 = 0x7FFFFFFF
408} WGPUMipmapFilterMode WGPU_ENUM_ATTRIBUTE;
409
410typedef enum WGPUPowerPreference {
411 WGPUPowerPreference_Undefined = 0x00000000,
412 WGPUPowerPreference_LowPower = 0x00000001,
413 WGPUPowerPreference_HighPerformance = 0x00000002,
414 WGPUPowerPreference_Force32 = 0x7FFFFFFF
415} WGPUPowerPreference WGPU_ENUM_ATTRIBUTE;
416
417typedef enum WGPUPresentMode {
418 WGPUPresentMode_Fifo = 0x00000000,
419 WGPUPresentMode_FifoRelaxed = 0x00000001,
420 WGPUPresentMode_Immediate = 0x00000002,
421 WGPUPresentMode_Mailbox = 0x00000003,
422 WGPUPresentMode_Force32 = 0x7FFFFFFF
423} WGPUPresentMode WGPU_ENUM_ATTRIBUTE;
424
425typedef enum WGPUPrimitiveTopology {
426 WGPUPrimitiveTopology_PointList = 0x00000000,
427 WGPUPrimitiveTopology_LineList = 0x00000001,
428 WGPUPrimitiveTopology_LineStrip = 0x00000002,
429 WGPUPrimitiveTopology_TriangleList = 0x00000003,
430 WGPUPrimitiveTopology_TriangleStrip = 0x00000004,
431 WGPUPrimitiveTopology_Force32 = 0x7FFFFFFF
432} WGPUPrimitiveTopology WGPU_ENUM_ATTRIBUTE;
433
434typedef enum WGPUQueryType {
435 WGPUQueryType_Occlusion = 0x00000000,
436 WGPUQueryType_Timestamp = 0x00000001,
437 WGPUQueryType_Force32 = 0x7FFFFFFF
438} WGPUQueryType WGPU_ENUM_ATTRIBUTE;
439
440typedef enum WGPUQueueWorkDoneStatus {
441 WGPUQueueWorkDoneStatus_Success = 0x00000000,
442 WGPUQueueWorkDoneStatus_Error = 0x00000001,
443 WGPUQueueWorkDoneStatus_Unknown = 0x00000002,
444 WGPUQueueWorkDoneStatus_DeviceLost = 0x00000003,
445 WGPUQueueWorkDoneStatus_Force32 = 0x7FFFFFFF
446} WGPUQueueWorkDoneStatus WGPU_ENUM_ATTRIBUTE;
447
448typedef enum WGPURequestAdapterStatus {
449 WGPURequestAdapterStatus_Success = 0x00000000,
450 WGPURequestAdapterStatus_Unavailable = 0x00000001,
451 WGPURequestAdapterStatus_Error = 0x00000002,
452 WGPURequestAdapterStatus_Unknown = 0x00000003,
453 WGPURequestAdapterStatus_Force32 = 0x7FFFFFFF
454} WGPURequestAdapterStatus WGPU_ENUM_ATTRIBUTE;
455
456typedef enum WGPURequestDeviceStatus {
457 WGPURequestDeviceStatus_Success = 0x00000000,
458 WGPURequestDeviceStatus_Error = 0x00000001,
459 WGPURequestDeviceStatus_Unknown = 0x00000002,
460 WGPURequestDeviceStatus_Force32 = 0x7FFFFFFF
461} WGPURequestDeviceStatus WGPU_ENUM_ATTRIBUTE;
462
463typedef enum WGPUSType {
464 WGPUSType_Invalid = 0x00000000,
465 WGPUSType_SurfaceDescriptorFromMetalLayer = 0x00000001,
466 WGPUSType_SurfaceDescriptorFromWindowsHWND = 0x00000002,
467 WGPUSType_SurfaceDescriptorFromXlibWindow = 0x00000003,
468 WGPUSType_SurfaceDescriptorFromCanvasHTMLSelector = 0x00000004,
469 WGPUSType_ShaderModuleSPIRVDescriptor = 0x00000005,
470 WGPUSType_ShaderModuleWGSLDescriptor = 0x00000006,
471 WGPUSType_PrimitiveDepthClipControl = 0x00000007,
472 WGPUSType_SurfaceDescriptorFromWaylandSurface = 0x00000008,
473 WGPUSType_SurfaceDescriptorFromAndroidNativeWindow = 0x00000009,
474 WGPUSType_SurfaceDescriptorFromXcbWindow = 0x0000000A,
475 WGPUSType_RenderPassDescriptorMaxDrawCount = 0x0000000F,
476 WGPUSType_Force32 = 0x7FFFFFFF
477} WGPUSType WGPU_ENUM_ATTRIBUTE;
478
479typedef enum WGPUSamplerBindingType {
480 WGPUSamplerBindingType_Undefined = 0x00000000,
481 WGPUSamplerBindingType_Filtering = 0x00000001,
482 WGPUSamplerBindingType_NonFiltering = 0x00000002,
483 WGPUSamplerBindingType_Comparison = 0x00000003,
484 WGPUSamplerBindingType_Force32 = 0x7FFFFFFF
485} WGPUSamplerBindingType WGPU_ENUM_ATTRIBUTE;
486
487typedef enum WGPUStencilOperation {
488 WGPUStencilOperation_Keep = 0x00000000,
489 WGPUStencilOperation_Zero = 0x00000001,
490 WGPUStencilOperation_Replace = 0x00000002,
491 WGPUStencilOperation_Invert = 0x00000003,
492 WGPUStencilOperation_IncrementClamp = 0x00000004,
493 WGPUStencilOperation_DecrementClamp = 0x00000005,
494 WGPUStencilOperation_IncrementWrap = 0x00000006,
495 WGPUStencilOperation_DecrementWrap = 0x00000007,
496 WGPUStencilOperation_Force32 = 0x7FFFFFFF
497} WGPUStencilOperation WGPU_ENUM_ATTRIBUTE;
498
499typedef enum WGPUStorageTextureAccess {
500 WGPUStorageTextureAccess_Undefined = 0x00000000,
501 WGPUStorageTextureAccess_WriteOnly = 0x00000001,
502 WGPUStorageTextureAccess_ReadOnly = 0x00000002,
503 WGPUStorageTextureAccess_ReadWrite = 0x00000003,
504 WGPUStorageTextureAccess_Force32 = 0x7FFFFFFF
505} WGPUStorageTextureAccess WGPU_ENUM_ATTRIBUTE;
506
507typedef enum WGPUStoreOp {
508 WGPUStoreOp_Undefined = 0x00000000,
509 WGPUStoreOp_Store = 0x00000001,
510 WGPUStoreOp_Discard = 0x00000002,
511 WGPUStoreOp_Force32 = 0x7FFFFFFF
512} WGPUStoreOp WGPU_ENUM_ATTRIBUTE;
513
514typedef enum WGPUSurfaceGetCurrentTextureStatus {
515 WGPUSurfaceGetCurrentTextureStatus_Success = 0x00000000,
516 WGPUSurfaceGetCurrentTextureStatus_Timeout = 0x00000001,
517 WGPUSurfaceGetCurrentTextureStatus_Outdated = 0x00000002,
518 WGPUSurfaceGetCurrentTextureStatus_Lost = 0x00000003,
519 WGPUSurfaceGetCurrentTextureStatus_OutOfMemory = 0x00000004,
520 WGPUSurfaceGetCurrentTextureStatus_DeviceLost = 0x00000005,
521 WGPUSurfaceGetCurrentTextureStatus_Force32 = 0x7FFFFFFF
522} WGPUSurfaceGetCurrentTextureStatus WGPU_ENUM_ATTRIBUTE;
523
524typedef enum WGPUTextureAspect {
525 WGPUTextureAspect_All = 0x00000000,
526 WGPUTextureAspect_StencilOnly = 0x00000001,
527 WGPUTextureAspect_DepthOnly = 0x00000002,
528 WGPUTextureAspect_Force32 = 0x7FFFFFFF
529} WGPUTextureAspect WGPU_ENUM_ATTRIBUTE;
530
531typedef enum WGPUTextureDimension {
532 WGPUTextureDimension_1D = 0x00000000,
533 WGPUTextureDimension_2D = 0x00000001,
534 WGPUTextureDimension_3D = 0x00000002,
535 WGPUTextureDimension_Force32 = 0x7FFFFFFF
536} WGPUTextureDimension WGPU_ENUM_ATTRIBUTE;
537
538typedef enum WGPUTextureFormat {
539 WGPUTextureFormat_Undefined = 0x00000000,
540 WGPUTextureFormat_R8Unorm = 0x00000001,
541 WGPUTextureFormat_R8Snorm = 0x00000002,
542 WGPUTextureFormat_R8Uint = 0x00000003,
543 WGPUTextureFormat_R8Sint = 0x00000004,
544 WGPUTextureFormat_R16Uint = 0x00000005,
545 WGPUTextureFormat_R16Sint = 0x00000006,
546 WGPUTextureFormat_R16Float = 0x00000007,
547 WGPUTextureFormat_RG8Unorm = 0x00000008,
548 WGPUTextureFormat_RG8Snorm = 0x00000009,
549 WGPUTextureFormat_RG8Uint = 0x0000000A,
550 WGPUTextureFormat_RG8Sint = 0x0000000B,
551 WGPUTextureFormat_R32Float = 0x0000000C,
552 WGPUTextureFormat_R32Uint = 0x0000000D,
553 WGPUTextureFormat_R32Sint = 0x0000000E,
554 WGPUTextureFormat_RG16Uint = 0x0000000F,
555 WGPUTextureFormat_RG16Sint = 0x00000010,
556 WGPUTextureFormat_RG16Float = 0x00000011,
557 WGPUTextureFormat_RGBA8Unorm = 0x00000012,
558 WGPUTextureFormat_RGBA8UnormSrgb = 0x00000013,
559 WGPUTextureFormat_RGBA8Snorm = 0x00000014,
560 WGPUTextureFormat_RGBA8Uint = 0x00000015,
561 WGPUTextureFormat_RGBA8Sint = 0x00000016,
562 WGPUTextureFormat_BGRA8Unorm = 0x00000017,
563 WGPUTextureFormat_BGRA8UnormSrgb = 0x00000018,
564 WGPUTextureFormat_RGB10A2Uint = 0x00000019,
565 WGPUTextureFormat_RGB10A2Unorm = 0x0000001A,
566 WGPUTextureFormat_RG11B10Ufloat = 0x0000001B,
567 WGPUTextureFormat_RGB9E5Ufloat = 0x0000001C,
568 WGPUTextureFormat_RG32Float = 0x0000001D,
569 WGPUTextureFormat_RG32Uint = 0x0000001E,
570 WGPUTextureFormat_RG32Sint = 0x0000001F,
571 WGPUTextureFormat_RGBA16Uint = 0x00000020,
572 WGPUTextureFormat_RGBA16Sint = 0x00000021,
573 WGPUTextureFormat_RGBA16Float = 0x00000022,
574 WGPUTextureFormat_RGBA32Float = 0x00000023,
575 WGPUTextureFormat_RGBA32Uint = 0x00000024,
576 WGPUTextureFormat_RGBA32Sint = 0x00000025,
577 WGPUTextureFormat_Stencil8 = 0x00000026,
578 WGPUTextureFormat_Depth16Unorm = 0x00000027,
579 WGPUTextureFormat_Depth24Plus = 0x00000028,
580 WGPUTextureFormat_Depth24PlusStencil8 = 0x00000029,
581 WGPUTextureFormat_Depth32Float = 0x0000002A,
582 WGPUTextureFormat_Depth32FloatStencil8 = 0x0000002B,
583 WGPUTextureFormat_BC1RGBAUnorm = 0x0000002C,
584 WGPUTextureFormat_BC1RGBAUnormSrgb = 0x0000002D,
585 WGPUTextureFormat_BC2RGBAUnorm = 0x0000002E,
586 WGPUTextureFormat_BC2RGBAUnormSrgb = 0x0000002F,
587 WGPUTextureFormat_BC3RGBAUnorm = 0x00000030,
588 WGPUTextureFormat_BC3RGBAUnormSrgb = 0x00000031,
589 WGPUTextureFormat_BC4RUnorm = 0x00000032,
590 WGPUTextureFormat_BC4RSnorm = 0x00000033,
591 WGPUTextureFormat_BC5RGUnorm = 0x00000034,
592 WGPUTextureFormat_BC5RGSnorm = 0x00000035,
593 WGPUTextureFormat_BC6HRGBUfloat = 0x00000036,
594 WGPUTextureFormat_BC6HRGBFloat = 0x00000037,
595 WGPUTextureFormat_BC7RGBAUnorm = 0x00000038,
596 WGPUTextureFormat_BC7RGBAUnormSrgb = 0x00000039,
597 WGPUTextureFormat_ETC2RGB8Unorm = 0x0000003A,
598 WGPUTextureFormat_ETC2RGB8UnormSrgb = 0x0000003B,
599 WGPUTextureFormat_ETC2RGB8A1Unorm = 0x0000003C,
600 WGPUTextureFormat_ETC2RGB8A1UnormSrgb = 0x0000003D,
601 WGPUTextureFormat_ETC2RGBA8Unorm = 0x0000003E,
602 WGPUTextureFormat_ETC2RGBA8UnormSrgb = 0x0000003F,
603 WGPUTextureFormat_EACR11Unorm = 0x00000040,
604 WGPUTextureFormat_EACR11Snorm = 0x00000041,
605 WGPUTextureFormat_EACRG11Unorm = 0x00000042,
606 WGPUTextureFormat_EACRG11Snorm = 0x00000043,
607 WGPUTextureFormat_ASTC4x4Unorm = 0x00000044,
608 WGPUTextureFormat_ASTC4x4UnormSrgb = 0x00000045,
609 WGPUTextureFormat_ASTC5x4Unorm = 0x00000046,
610 WGPUTextureFormat_ASTC5x4UnormSrgb = 0x00000047,
611 WGPUTextureFormat_ASTC5x5Unorm = 0x00000048,
612 WGPUTextureFormat_ASTC5x5UnormSrgb = 0x00000049,
613 WGPUTextureFormat_ASTC6x5Unorm = 0x0000004A,
614 WGPUTextureFormat_ASTC6x5UnormSrgb = 0x0000004B,
615 WGPUTextureFormat_ASTC6x6Unorm = 0x0000004C,
616 WGPUTextureFormat_ASTC6x6UnormSrgb = 0x0000004D,
617 WGPUTextureFormat_ASTC8x5Unorm = 0x0000004E,
618 WGPUTextureFormat_ASTC8x5UnormSrgb = 0x0000004F,
619 WGPUTextureFormat_ASTC8x6Unorm = 0x00000050,
620 WGPUTextureFormat_ASTC8x6UnormSrgb = 0x00000051,
621 WGPUTextureFormat_ASTC8x8Unorm = 0x00000052,
622 WGPUTextureFormat_ASTC8x8UnormSrgb = 0x00000053,
623 WGPUTextureFormat_ASTC10x5Unorm = 0x00000054,
624 WGPUTextureFormat_ASTC10x5UnormSrgb = 0x00000055,
625 WGPUTextureFormat_ASTC10x6Unorm = 0x00000056,
626 WGPUTextureFormat_ASTC10x6UnormSrgb = 0x00000057,
627 WGPUTextureFormat_ASTC10x8Unorm = 0x00000058,
628 WGPUTextureFormat_ASTC10x8UnormSrgb = 0x00000059,
629 WGPUTextureFormat_ASTC10x10Unorm = 0x0000005A,
630 WGPUTextureFormat_ASTC10x10UnormSrgb = 0x0000005B,
631 WGPUTextureFormat_ASTC12x10Unorm = 0x0000005C,
632 WGPUTextureFormat_ASTC12x10UnormSrgb = 0x0000005D,
633 WGPUTextureFormat_ASTC12x12Unorm = 0x0000005E,
634 WGPUTextureFormat_ASTC12x12UnormSrgb = 0x0000005F,
635 WGPUTextureFormat_Force32 = 0x7FFFFFFF
636} WGPUTextureFormat WGPU_ENUM_ATTRIBUTE;
637
638typedef enum WGPUTextureSampleType {
639 WGPUTextureSampleType_Undefined = 0x00000000,
640 WGPUTextureSampleType_Float = 0x00000001,
641 WGPUTextureSampleType_UnfilterableFloat = 0x00000002,
642 WGPUTextureSampleType_Depth = 0x00000003,
643 WGPUTextureSampleType_Sint = 0x00000004,
644 WGPUTextureSampleType_Uint = 0x00000005,
645 WGPUTextureSampleType_Force32 = 0x7FFFFFFF
646} WGPUTextureSampleType WGPU_ENUM_ATTRIBUTE;
647
648typedef enum WGPUTextureViewDimension {
649 WGPUTextureViewDimension_Undefined = 0x00000000,
650 WGPUTextureViewDimension_1D = 0x00000001,
651 WGPUTextureViewDimension_2D = 0x00000002,
652 WGPUTextureViewDimension_2DArray = 0x00000003,
653 WGPUTextureViewDimension_Cube = 0x00000004,
654 WGPUTextureViewDimension_CubeArray = 0x00000005,
655 WGPUTextureViewDimension_3D = 0x00000006,
656 WGPUTextureViewDimension_Force32 = 0x7FFFFFFF
657} WGPUTextureViewDimension WGPU_ENUM_ATTRIBUTE;
658
659typedef enum WGPUVertexFormat {
660 WGPUVertexFormat_Undefined = 0x00000000,
661 WGPUVertexFormat_Uint8x2 = 0x00000001,
662 WGPUVertexFormat_Uint8x4 = 0x00000002,
663 WGPUVertexFormat_Sint8x2 = 0x00000003,
664 WGPUVertexFormat_Sint8x4 = 0x00000004,
665 WGPUVertexFormat_Unorm8x2 = 0x00000005,
666 WGPUVertexFormat_Unorm8x4 = 0x00000006,
667 WGPUVertexFormat_Snorm8x2 = 0x00000007,
668 WGPUVertexFormat_Snorm8x4 = 0x00000008,
669 WGPUVertexFormat_Uint16x2 = 0x00000009,
670 WGPUVertexFormat_Uint16x4 = 0x0000000A,
671 WGPUVertexFormat_Sint16x2 = 0x0000000B,
672 WGPUVertexFormat_Sint16x4 = 0x0000000C,
673 WGPUVertexFormat_Unorm16x2 = 0x0000000D,
674 WGPUVertexFormat_Unorm16x4 = 0x0000000E,
675 WGPUVertexFormat_Snorm16x2 = 0x0000000F,
676 WGPUVertexFormat_Snorm16x4 = 0x00000010,
677 WGPUVertexFormat_Float16x2 = 0x00000011,
678 WGPUVertexFormat_Float16x4 = 0x00000012,
679 WGPUVertexFormat_Float32 = 0x00000013,
680 WGPUVertexFormat_Float32x2 = 0x00000014,
681 WGPUVertexFormat_Float32x3 = 0x00000015,
682 WGPUVertexFormat_Float32x4 = 0x00000016,
683 WGPUVertexFormat_Uint32 = 0x00000017,
684 WGPUVertexFormat_Uint32x2 = 0x00000018,
685 WGPUVertexFormat_Uint32x3 = 0x00000019,
686 WGPUVertexFormat_Uint32x4 = 0x0000001A,
687 WGPUVertexFormat_Sint32 = 0x0000001B,
688 WGPUVertexFormat_Sint32x2 = 0x0000001C,
689 WGPUVertexFormat_Sint32x3 = 0x0000001D,
690 WGPUVertexFormat_Sint32x4 = 0x0000001E,
691 WGPUVertexFormat_Force32 = 0x7FFFFFFF
692} WGPUVertexFormat WGPU_ENUM_ATTRIBUTE;
693
694typedef enum WGPUVertexStepMode {
695 WGPUVertexStepMode_Vertex = 0x00000000,
696 WGPUVertexStepMode_Instance = 0x00000001,
697 WGPUVertexStepMode_VertexBufferNotUsed = 0x00000002,
698 WGPUVertexStepMode_Force32 = 0x7FFFFFFF
699} WGPUVertexStepMode WGPU_ENUM_ATTRIBUTE;
700
701typedef enum WGPUWGSLFeatureName {
702 WGPUWGSLFeatureName_Undefined = 0x00000000,
703 WGPUWGSLFeatureName_ReadonlyAndReadwriteStorageTextures = 0x00000001,
704 WGPUWGSLFeatureName_Packed4x8IntegerDotProduct = 0x00000002,
705 WGPUWGSLFeatureName_UnrestrictedPointerParameters = 0x00000003,
706 WGPUWGSLFeatureName_PointerCompositeAccess = 0x00000004,
707 WGPUWGSLFeatureName_Force32 = 0x7FFFFFFF
708} WGPUWGSLFeatureName WGPU_ENUM_ATTRIBUTE;
709
710
719typedef enum WGPUBufferUsage {
720 WGPUBufferUsage_None = 0x00000000,
721 WGPUBufferUsage_MapRead = 0x00000001,
722 WGPUBufferUsage_MapWrite = 0x00000002,
723 WGPUBufferUsage_CopySrc = 0x00000004,
724 WGPUBufferUsage_CopyDst = 0x00000008,
725 WGPUBufferUsage_Index = 0x00000010,
726 WGPUBufferUsage_Vertex = 0x00000020,
727 WGPUBufferUsage_Uniform = 0x00000040,
728 WGPUBufferUsage_Storage = 0x00000080,
729 WGPUBufferUsage_Indirect = 0x00000100,
730 WGPUBufferUsage_QueryResolve = 0x00000200,
731 WGPUBufferUsage_Force32 = 0x7FFFFFFF
732} WGPUBufferUsage WGPU_ENUM_ATTRIBUTE;
733typedef WGPUFlags WGPUBufferUsageFlags WGPU_ENUM_ATTRIBUTE;
734
735typedef enum WGPUColorWriteMask {
736 WGPUColorWriteMask_None = 0x00000000,
737 WGPUColorWriteMask_Red = 0x00000001,
738 WGPUColorWriteMask_Green = 0x00000002,
739 WGPUColorWriteMask_Blue = 0x00000004,
740 WGPUColorWriteMask_Alpha = 0x00000008,
741 WGPUColorWriteMask_All = WGPUColorWriteMask_None | WGPUColorWriteMask_Red | WGPUColorWriteMask_Green | WGPUColorWriteMask_Blue | WGPUColorWriteMask_Alpha,
742 WGPUColorWriteMask_Force32 = 0x7FFFFFFF
743} WGPUColorWriteMask WGPU_ENUM_ATTRIBUTE;
744typedef WGPUFlags WGPUColorWriteMaskFlags WGPU_ENUM_ATTRIBUTE;
745
746typedef enum WGPUMapMode {
747 WGPUMapMode_None = 0x00000000,
748 WGPUMapMode_Read = 0x00000001,
749 WGPUMapMode_Write = 0x00000002,
750 WGPUMapMode_Force32 = 0x7FFFFFFF
751} WGPUMapMode WGPU_ENUM_ATTRIBUTE;
752typedef WGPUFlags WGPUMapModeFlags WGPU_ENUM_ATTRIBUTE;
753
754typedef enum WGPUShaderStage {
755 WGPUShaderStage_None = 0x00000000,
756 WGPUShaderStage_Vertex = 0x00000001,
757 WGPUShaderStage_Fragment = 0x00000002,
758 WGPUShaderStage_Compute = 0x00000004,
759 WGPUShaderStage_Force32 = 0x7FFFFFFF
760} WGPUShaderStage WGPU_ENUM_ATTRIBUTE;
761typedef WGPUFlags WGPUShaderStageFlags WGPU_ENUM_ATTRIBUTE;
762
763typedef enum WGPUTextureUsage {
764 WGPUTextureUsage_None = 0x00000000,
765 WGPUTextureUsage_CopySrc = 0x00000001,
766 WGPUTextureUsage_CopyDst = 0x00000002,
767 WGPUTextureUsage_TextureBinding = 0x00000004,
768 WGPUTextureUsage_StorageBinding = 0x00000008,
769 WGPUTextureUsage_RenderAttachment = 0x00000010,
770 WGPUTextureUsage_Force32 = 0x7FFFFFFF
771} WGPUTextureUsage WGPU_ENUM_ATTRIBUTE;
772typedef WGPUFlags WGPUTextureUsageFlags WGPU_ENUM_ATTRIBUTE;
773
774
776typedef void (*WGPUProc)(void) WGPU_FUNCTION_ATTRIBUTE;
777
778typedef void (*WGPUDeviceLostCallback)(WGPUDeviceLostReason reason, char const * message, void * userdata) WGPU_FUNCTION_ATTRIBUTE;
779typedef void (*WGPUErrorCallback)(WGPUErrorType type, char const * message, void * userdata) WGPU_FUNCTION_ATTRIBUTE;
780
788typedef void (*WGPUAdapterRequestDeviceCallback)(WGPURequestDeviceStatus status, WGPUDevice device, char const * message, WGPU_NULLABLE void * userdata) WGPU_FUNCTION_ATTRIBUTE;
789typedef void (*WGPUBufferMapAsyncCallback)(WGPUBufferMapAsyncStatus status, WGPU_NULLABLE void * userdata) WGPU_FUNCTION_ATTRIBUTE;
790typedef void (*WGPUDeviceCreateComputePipelineAsyncCallback)(WGPUCreatePipelineAsyncStatus status, WGPUComputePipeline pipeline, char const * message, WGPU_NULLABLE void * userdata) WGPU_FUNCTION_ATTRIBUTE;
791typedef void (*WGPUDeviceCreateRenderPipelineAsyncCallback)(WGPUCreatePipelineAsyncStatus status, WGPURenderPipeline pipeline, char const * message, WGPU_NULLABLE void * userdata) WGPU_FUNCTION_ATTRIBUTE;
792typedef void (*WGPUInstanceRequestAdapterCallback)(WGPURequestAdapterStatus status, WGPUAdapter adapter, char const * message, WGPU_NULLABLE void * userdata) WGPU_FUNCTION_ATTRIBUTE;
793typedef void (*WGPUQueueOnSubmittedWorkDoneCallback)(WGPUQueueWorkDoneStatus status, WGPU_NULLABLE void * userdata) WGPU_FUNCTION_ATTRIBUTE;
794typedef void (*WGPUShaderModuleGetCompilationInfoCallback)(WGPUCompilationInfoRequestStatus status, struct WGPUCompilationInfo const * compilationInfo, WGPU_NULLABLE void * userdata) WGPU_FUNCTION_ATTRIBUTE;
795
796
805typedef struct WGPUChainedStruct {
806 struct WGPUChainedStruct const * next;
807 WGPUSType sType;
808} WGPUChainedStruct WGPU_STRUCTURE_ATTRIBUTE;
809
810typedef struct WGPUChainedStructOut {
811 struct WGPUChainedStructOut * next;
812 WGPUSType sType;
813} WGPUChainedStructOut WGPU_STRUCTURE_ATTRIBUTE;
814
824typedef struct WGPUAdapterInfo {
825 WGPUChainedStructOut * nextInChain;
826 char const * vendor;
827 char const * architecture;
828 char const * device;
829 char const * description;
830 WGPUBackendType backendType;
831 WGPUAdapterType adapterType;
832 uint32_t vendorID;
833 uint32_t deviceID;
834} WGPUAdapterInfo WGPU_STRUCTURE_ATTRIBUTE;
835
836typedef struct WGPUBindGroupEntry {
837 WGPUChainedStruct const * nextInChain;
838 uint32_t binding;
839 WGPU_NULLABLE WGPUBuffer buffer;
840 uint64_t offset;
841 uint64_t size;
842 WGPU_NULLABLE WGPUSampler sampler;
843 WGPU_NULLABLE WGPUTextureView textureView;
844} WGPUBindGroupEntry WGPU_STRUCTURE_ATTRIBUTE;
845
846typedef struct WGPUBlendComponent {
847 WGPUBlendOperation operation;
848 WGPUBlendFactor srcFactor;
849 WGPUBlendFactor dstFactor;
850} WGPUBlendComponent WGPU_STRUCTURE_ATTRIBUTE;
851
853 WGPUChainedStruct const * nextInChain;
854 WGPUBufferBindingType type;
855 WGPUBool hasDynamicOffset;
856 uint64_t minBindingSize;
857} WGPUBufferBindingLayout WGPU_STRUCTURE_ATTRIBUTE;
858
859typedef struct WGPUBufferDescriptor {
860 WGPUChainedStruct const * nextInChain;
861 WGPU_NULLABLE char const * label;
862 WGPUBufferUsageFlags usage;
863 uint64_t size;
864 WGPUBool mappedAtCreation;
865} WGPUBufferDescriptor WGPU_STRUCTURE_ATTRIBUTE;
866
867typedef struct WGPUColor {
868 double r;
869 double g;
870 double b;
871 double a;
872} WGPUColor WGPU_STRUCTURE_ATTRIBUTE;
873
875 WGPUChainedStruct const * nextInChain;
876 WGPU_NULLABLE char const * label;
877} WGPUCommandBufferDescriptor WGPU_STRUCTURE_ATTRIBUTE;
878
880 WGPUChainedStruct const * nextInChain;
881 WGPU_NULLABLE char const * label;
882} WGPUCommandEncoderDescriptor WGPU_STRUCTURE_ATTRIBUTE;
883
885 WGPUChainedStruct const * nextInChain;
886 WGPU_NULLABLE char const * message;
887 WGPUCompilationMessageType type;
888 uint64_t lineNum;
889 uint64_t linePos;
890 uint64_t offset;
891 uint64_t length;
892 uint64_t utf16LinePos;
893 uint64_t utf16Offset;
894 uint64_t utf16Length;
895} WGPUCompilationMessage WGPU_STRUCTURE_ATTRIBUTE;
896
898 WGPUQuerySet querySet;
899 uint32_t beginningOfPassWriteIndex;
900 uint32_t endOfPassWriteIndex;
901} WGPUComputePassTimestampWrites WGPU_STRUCTURE_ATTRIBUTE;
902
903typedef struct WGPUConstantEntry {
904 WGPUChainedStruct const * nextInChain;
905 char const * key;
906 double value;
907} WGPUConstantEntry WGPU_STRUCTURE_ATTRIBUTE;
908
909typedef struct WGPUExtent3D {
910 uint32_t width;
911 uint32_t height;
912 uint32_t depthOrArrayLayers;
913} WGPUExtent3D WGPU_STRUCTURE_ATTRIBUTE;
914
916 WGPUChainedStruct const * nextInChain;
917} WGPUInstanceDescriptor WGPU_STRUCTURE_ATTRIBUTE;
918
919typedef struct WGPULimits {
920 uint32_t maxTextureDimension1D;
921 uint32_t maxTextureDimension2D;
922 uint32_t maxTextureDimension3D;
923 uint32_t maxTextureArrayLayers;
924 uint32_t maxBindGroups;
925 uint32_t maxBindGroupsPlusVertexBuffers;
926 uint32_t maxBindingsPerBindGroup;
927 uint32_t maxDynamicUniformBuffersPerPipelineLayout;
928 uint32_t maxDynamicStorageBuffersPerPipelineLayout;
929 uint32_t maxSampledTexturesPerShaderStage;
930 uint32_t maxSamplersPerShaderStage;
931 uint32_t maxStorageBuffersPerShaderStage;
932 uint32_t maxStorageTexturesPerShaderStage;
933 uint32_t maxUniformBuffersPerShaderStage;
934 uint64_t maxUniformBufferBindingSize;
935 uint64_t maxStorageBufferBindingSize;
936 uint32_t minUniformBufferOffsetAlignment;
937 uint32_t minStorageBufferOffsetAlignment;
938 uint32_t maxVertexBuffers;
939 uint64_t maxBufferSize;
940 uint32_t maxVertexAttributes;
941 uint32_t maxVertexBufferArrayStride;
942 uint32_t maxInterStageShaderComponents;
943 uint32_t maxInterStageShaderVariables;
944 uint32_t maxColorAttachments;
945 uint32_t maxColorAttachmentBytesPerSample;
946 uint32_t maxComputeWorkgroupStorageSize;
947 uint32_t maxComputeInvocationsPerWorkgroup;
948 uint32_t maxComputeWorkgroupSizeX;
949 uint32_t maxComputeWorkgroupSizeY;
950 uint32_t maxComputeWorkgroupSizeZ;
951 uint32_t maxComputeWorkgroupsPerDimension;
952} WGPULimits WGPU_STRUCTURE_ATTRIBUTE;
953
954typedef struct WGPUMultisampleState {
955 WGPUChainedStruct const * nextInChain;
956 uint32_t count;
957 uint32_t mask;
958 WGPUBool alphaToCoverageEnabled;
959} WGPUMultisampleState WGPU_STRUCTURE_ATTRIBUTE;
960
961typedef struct WGPUOrigin3D {
962 uint32_t x;
963 uint32_t y;
964 uint32_t z;
965} WGPUOrigin3D WGPU_STRUCTURE_ATTRIBUTE;
966
968 WGPUChainedStruct const * nextInChain;
969 WGPU_NULLABLE char const * label;
970 size_t bindGroupLayoutCount;
971 WGPUBindGroupLayout const * bindGroupLayouts;
972} WGPUPipelineLayoutDescriptor WGPU_STRUCTURE_ATTRIBUTE;
973
975 WGPUChainedStruct chain;
976 WGPUBool unclippedDepth;
977} WGPUPrimitiveDepthClipControl WGPU_STRUCTURE_ATTRIBUTE;
978
979typedef struct WGPUPrimitiveState {
980 WGPUChainedStruct const * nextInChain;
981 WGPUPrimitiveTopology topology;
982 WGPUIndexFormat stripIndexFormat;
983 WGPUFrontFace frontFace;
984 WGPUCullMode cullMode;
985} WGPUPrimitiveState WGPU_STRUCTURE_ATTRIBUTE;
986
988 WGPUChainedStruct const * nextInChain;
989 WGPU_NULLABLE char const * label;
990 WGPUQueryType type;
991 uint32_t count;
992} WGPUQuerySetDescriptor WGPU_STRUCTURE_ATTRIBUTE;
993
994typedef struct WGPUQueueDescriptor {
995 WGPUChainedStruct const * nextInChain;
996 WGPU_NULLABLE char const * label;
997} WGPUQueueDescriptor WGPU_STRUCTURE_ATTRIBUTE;
998
1000 WGPUChainedStruct const * nextInChain;
1001 WGPU_NULLABLE char const * label;
1002} WGPURenderBundleDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1003
1005 WGPUChainedStruct const * nextInChain;
1006 WGPU_NULLABLE char const * label;
1007 size_t colorFormatCount;
1008 WGPUTextureFormat const * colorFormats;
1009 WGPUTextureFormat depthStencilFormat;
1010 uint32_t sampleCount;
1011 WGPUBool depthReadOnly;
1012 WGPUBool stencilReadOnly;
1013} WGPURenderBundleEncoderDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1014
1016 WGPUTextureView view;
1017 WGPULoadOp depthLoadOp;
1018 WGPUStoreOp depthStoreOp;
1019 float depthClearValue;
1020 WGPUBool depthReadOnly;
1021 WGPULoadOp stencilLoadOp;
1022 WGPUStoreOp stencilStoreOp;
1023 uint32_t stencilClearValue;
1024 WGPUBool stencilReadOnly;
1025} WGPURenderPassDepthStencilAttachment WGPU_STRUCTURE_ATTRIBUTE;
1026
1028 WGPUChainedStruct chain;
1029 uint64_t maxDrawCount;
1030} WGPURenderPassDescriptorMaxDrawCount WGPU_STRUCTURE_ATTRIBUTE;
1031
1033 WGPUQuerySet querySet;
1034 uint32_t beginningOfPassWriteIndex;
1035 uint32_t endOfPassWriteIndex;
1036} WGPURenderPassTimestampWrites WGPU_STRUCTURE_ATTRIBUTE;
1037
1039 WGPUChainedStruct const * nextInChain;
1040 WGPU_NULLABLE WGPUSurface compatibleSurface;
1041 WGPUPowerPreference powerPreference;
1042 WGPUBackendType backendType;
1043 WGPUBool forceFallbackAdapter;
1044} WGPURequestAdapterOptions WGPU_STRUCTURE_ATTRIBUTE;
1045
1047 WGPUChainedStruct const * nextInChain;
1048 WGPUSamplerBindingType type;
1049} WGPUSamplerBindingLayout WGPU_STRUCTURE_ATTRIBUTE;
1050
1052 WGPUChainedStruct const * nextInChain;
1053 WGPU_NULLABLE char const * label;
1054 WGPUAddressMode addressModeU;
1055 WGPUAddressMode addressModeV;
1056 WGPUAddressMode addressModeW;
1057 WGPUFilterMode magFilter;
1058 WGPUFilterMode minFilter;
1059 WGPUMipmapFilterMode mipmapFilter;
1060 float lodMinClamp;
1061 float lodMaxClamp;
1062 WGPUCompareFunction compare;
1063 uint16_t maxAnisotropy;
1064} WGPUSamplerDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1065
1067 WGPUChainedStruct const * nextInChain;
1068 char const * entryPoint;
1069 WGPUPipelineLayout layout;
1070} WGPUShaderModuleCompilationHint WGPU_STRUCTURE_ATTRIBUTE;
1071
1073 WGPUChainedStruct chain;
1074 uint32_t codeSize;
1075 uint32_t const * code;
1076} WGPUShaderModuleSPIRVDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1077
1079 WGPUChainedStruct chain;
1080 char const * code;
1081} WGPUShaderModuleWGSLDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1082
1083typedef struct WGPUStencilFaceState {
1084 WGPUCompareFunction compare;
1085 WGPUStencilOperation failOp;
1086 WGPUStencilOperation depthFailOp;
1087 WGPUStencilOperation passOp;
1088} WGPUStencilFaceState WGPU_STRUCTURE_ATTRIBUTE;
1089
1091 WGPUChainedStruct const * nextInChain;
1092 WGPUStorageTextureAccess access;
1093 WGPUTextureFormat format;
1094 WGPUTextureViewDimension viewDimension;
1095} WGPUStorageTextureBindingLayout WGPU_STRUCTURE_ATTRIBUTE;
1096
1098 WGPUChainedStructOut * nextInChain;
1099 WGPUTextureUsageFlags usages;
1100 size_t formatCount;
1101 WGPUTextureFormat const * formats;
1102 size_t presentModeCount;
1103 WGPUPresentMode const * presentModes;
1104 size_t alphaModeCount;
1105 WGPUCompositeAlphaMode const * alphaModes;
1106} WGPUSurfaceCapabilities WGPU_STRUCTURE_ATTRIBUTE;
1107
1109 WGPUChainedStruct const * nextInChain;
1110 WGPUDevice device;
1111 WGPUTextureFormat format;
1112 WGPUTextureUsageFlags usage;
1113 size_t viewFormatCount;
1114 WGPUTextureFormat const * viewFormats;
1115 WGPUCompositeAlphaMode alphaMode;
1116 uint32_t width;
1117 uint32_t height;
1118 WGPUPresentMode presentMode;
1119} WGPUSurfaceConfiguration WGPU_STRUCTURE_ATTRIBUTE;
1120
1122 WGPUChainedStruct const * nextInChain;
1123 WGPU_NULLABLE char const * label;
1124} WGPUSurfaceDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1125
1127 WGPUChainedStruct chain;
1128 void * window;
1129} WGPUSurfaceDescriptorFromAndroidNativeWindow WGPU_STRUCTURE_ATTRIBUTE;
1130
1132 WGPUChainedStruct chain;
1133 char const * selector;
1134} WGPUSurfaceDescriptorFromCanvasHTMLSelector WGPU_STRUCTURE_ATTRIBUTE;
1135
1137 WGPUChainedStruct chain;
1138 void * layer;
1139} WGPUSurfaceDescriptorFromMetalLayer WGPU_STRUCTURE_ATTRIBUTE;
1140
1142 WGPUChainedStruct chain;
1143 void * display;
1144 void * surface;
1145} WGPUSurfaceDescriptorFromWaylandSurface WGPU_STRUCTURE_ATTRIBUTE;
1146
1148 WGPUChainedStruct chain;
1149 void * hinstance;
1150 void * hwnd;
1151} WGPUSurfaceDescriptorFromWindowsHWND WGPU_STRUCTURE_ATTRIBUTE;
1152
1154 WGPUChainedStruct chain;
1155 void * connection;
1156 uint32_t window;
1157} WGPUSurfaceDescriptorFromXcbWindow WGPU_STRUCTURE_ATTRIBUTE;
1158
1160 WGPUChainedStruct chain;
1161 void * display;
1162 uint64_t window;
1163} WGPUSurfaceDescriptorFromXlibWindow WGPU_STRUCTURE_ATTRIBUTE;
1164
1165typedef struct WGPUSurfaceTexture {
1166 WGPUTexture texture;
1167 WGPUBool suboptimal;
1168 WGPUSurfaceGetCurrentTextureStatus status;
1169} WGPUSurfaceTexture WGPU_STRUCTURE_ATTRIBUTE;
1170
1172 WGPUChainedStruct const * nextInChain;
1173 WGPUTextureSampleType sampleType;
1174 WGPUTextureViewDimension viewDimension;
1175 WGPUBool multisampled;
1176} WGPUTextureBindingLayout WGPU_STRUCTURE_ATTRIBUTE;
1177
1179 WGPUChainedStruct const * nextInChain;
1180 uint64_t offset;
1181 uint32_t bytesPerRow;
1182 uint32_t rowsPerImage;
1183} WGPUTextureDataLayout WGPU_STRUCTURE_ATTRIBUTE;
1184
1186 WGPUChainedStruct const * nextInChain;
1187 WGPU_NULLABLE char const * label;
1188 WGPUTextureFormat format;
1189 WGPUTextureViewDimension dimension;
1190 uint32_t baseMipLevel;
1191 uint32_t mipLevelCount;
1192 uint32_t baseArrayLayer;
1193 uint32_t arrayLayerCount;
1194 WGPUTextureAspect aspect;
1195} WGPUTextureViewDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1196
1198 WGPUChainedStruct const * nextInChain;
1199 WGPUErrorCallback callback;
1200 void * userdata;
1201} WGPUUncapturedErrorCallbackInfo WGPU_STRUCTURE_ATTRIBUTE;
1202
1203typedef struct WGPUVertexAttribute {
1204 WGPUVertexFormat format;
1205 uint64_t offset;
1206 uint32_t shaderLocation;
1207} WGPUVertexAttribute WGPU_STRUCTURE_ATTRIBUTE;
1208
1210 WGPUChainedStruct const * nextInChain;
1211 WGPU_NULLABLE char const * label;
1212 WGPUBindGroupLayout layout;
1213 size_t entryCount;
1214 WGPUBindGroupEntry const * entries;
1215} WGPUBindGroupDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1216
1218 WGPUChainedStruct const * nextInChain;
1219 uint32_t binding;
1220 WGPUShaderStageFlags visibility;
1224 WGPUStorageTextureBindingLayout storageTexture;
1225} WGPUBindGroupLayoutEntry WGPU_STRUCTURE_ATTRIBUTE;
1226
1227typedef struct WGPUBlendState {
1228 WGPUBlendComponent color;
1229 WGPUBlendComponent alpha;
1230} WGPUBlendState WGPU_STRUCTURE_ATTRIBUTE;
1231
1232typedef struct WGPUCompilationInfo {
1233 WGPUChainedStruct const * nextInChain;
1234 size_t messageCount;
1235 WGPUCompilationMessage const * messages;
1236} WGPUCompilationInfo WGPU_STRUCTURE_ATTRIBUTE;
1237
1239 WGPUChainedStruct const * nextInChain;
1240 WGPU_NULLABLE char const * label;
1241 WGPU_NULLABLE WGPUComputePassTimestampWrites const * timestampWrites;
1242} WGPUComputePassDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1243
1245 WGPUChainedStruct const * nextInChain;
1246 WGPUTextureFormat format;
1247 WGPUBool depthWriteEnabled;
1248 WGPUCompareFunction depthCompare;
1249 WGPUStencilFaceState stencilFront;
1250 WGPUStencilFaceState stencilBack;
1251 uint32_t stencilReadMask;
1252 uint32_t stencilWriteMask;
1253 int32_t depthBias;
1254 float depthBiasSlopeScale;
1255 float depthBiasClamp;
1256} WGPUDepthStencilState WGPU_STRUCTURE_ATTRIBUTE;
1257
1258typedef struct WGPUImageCopyBuffer {
1259 WGPUChainedStruct const * nextInChain;
1260 WGPUTextureDataLayout layout;
1261 WGPUBuffer buffer;
1262} WGPUImageCopyBuffer WGPU_STRUCTURE_ATTRIBUTE;
1263
1264typedef struct WGPUImageCopyTexture {
1265 WGPUChainedStruct const * nextInChain;
1266 WGPUTexture texture;
1267 uint32_t mipLevel;
1268 WGPUOrigin3D origin;
1269 WGPUTextureAspect aspect;
1270} WGPUImageCopyTexture WGPU_STRUCTURE_ATTRIBUTE;
1271
1273 WGPUChainedStruct const * nextInChain;
1274 WGPUShaderModule module;
1275 WGPU_NULLABLE char const * entryPoint;
1276 size_t constantCount;
1277 WGPUConstantEntry const * constants;
1278} WGPUProgrammableStageDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1279
1281 WGPUChainedStruct const * nextInChain;
1282 WGPU_NULLABLE WGPUTextureView view;
1283 uint32_t depthSlice;
1284 WGPU_NULLABLE WGPUTextureView resolveTarget;
1285 WGPULoadOp loadOp;
1286 WGPUStoreOp storeOp;
1287 WGPUColor clearValue;
1288} WGPURenderPassColorAttachment WGPU_STRUCTURE_ATTRIBUTE;
1289
1290typedef struct WGPURequiredLimits {
1291 WGPUChainedStruct const * nextInChain;
1292 WGPULimits limits;
1293} WGPURequiredLimits WGPU_STRUCTURE_ATTRIBUTE;
1294
1296 WGPUChainedStruct const * nextInChain;
1297 WGPU_NULLABLE char const * label;
1298 size_t hintCount;
1299 WGPUShaderModuleCompilationHint const * hints;
1300} WGPUShaderModuleDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1301
1302typedef struct WGPUSupportedLimits {
1303 WGPUChainedStructOut * nextInChain;
1304 WGPULimits limits;
1305} WGPUSupportedLimits WGPU_STRUCTURE_ATTRIBUTE;
1306
1308 WGPUChainedStruct const * nextInChain;
1309 WGPU_NULLABLE char const * label;
1310 WGPUTextureUsageFlags usage;
1311 WGPUTextureDimension dimension;
1312 WGPUExtent3D size;
1313 WGPUTextureFormat format;
1314 uint32_t mipLevelCount;
1315 uint32_t sampleCount;
1316 size_t viewFormatCount;
1317 WGPUTextureFormat const * viewFormats;
1318} WGPUTextureDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1319
1321 uint64_t arrayStride;
1322 WGPUVertexStepMode stepMode;
1323 size_t attributeCount;
1324 WGPUVertexAttribute const * attributes;
1325} WGPUVertexBufferLayout WGPU_STRUCTURE_ATTRIBUTE;
1326
1328 WGPUChainedStruct const * nextInChain;
1329 WGPU_NULLABLE char const * label;
1330 size_t entryCount;
1331 WGPUBindGroupLayoutEntry const * entries;
1332} WGPUBindGroupLayoutDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1333
1334typedef struct WGPUColorTargetState {
1335 WGPUChainedStruct const * nextInChain;
1336 WGPUTextureFormat format;
1337 WGPU_NULLABLE WGPUBlendState const * blend;
1338 WGPUColorWriteMaskFlags writeMask;
1339} WGPUColorTargetState WGPU_STRUCTURE_ATTRIBUTE;
1340
1342 WGPUChainedStruct const * nextInChain;
1343 WGPU_NULLABLE char const * label;
1344 WGPU_NULLABLE WGPUPipelineLayout layout;
1346} WGPUComputePipelineDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1347
1348typedef struct WGPUDeviceDescriptor {
1349 WGPUChainedStruct const * nextInChain;
1350 WGPU_NULLABLE char const * label;
1351 size_t requiredFeatureCount;
1352 WGPUFeatureName const * requiredFeatures;
1353 WGPU_NULLABLE WGPURequiredLimits const * requiredLimits;
1354 WGPUQueueDescriptor defaultQueue;
1355 WGPUDeviceLostCallback deviceLostCallback;
1356 void * deviceLostUserdata;
1357 WGPUUncapturedErrorCallbackInfo uncapturedErrorCallbackInfo;
1358} WGPUDeviceDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1359
1361 WGPUChainedStruct const * nextInChain;
1362 WGPU_NULLABLE char const * label;
1363 size_t colorAttachmentCount;
1364 WGPURenderPassColorAttachment const * colorAttachments;
1365 WGPU_NULLABLE WGPURenderPassDepthStencilAttachment const * depthStencilAttachment;
1366 WGPU_NULLABLE WGPUQuerySet occlusionQuerySet;
1367 WGPU_NULLABLE WGPURenderPassTimestampWrites const * timestampWrites;
1368} WGPURenderPassDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1369
1370typedef struct WGPUVertexState {
1371 WGPUChainedStruct const * nextInChain;
1372 WGPUShaderModule module;
1373 WGPU_NULLABLE char const * entryPoint;
1374 size_t constantCount;
1375 WGPUConstantEntry const * constants;
1376 size_t bufferCount;
1377 WGPUVertexBufferLayout const * buffers;
1378} WGPUVertexState WGPU_STRUCTURE_ATTRIBUTE;
1379
1380typedef struct WGPUFragmentState {
1381 WGPUChainedStruct const * nextInChain;
1382 WGPUShaderModule module;
1383 WGPU_NULLABLE char const * entryPoint;
1384 size_t constantCount;
1385 WGPUConstantEntry const * constants;
1386 size_t targetCount;
1387 WGPUColorTargetState const * targets;
1388} WGPUFragmentState WGPU_STRUCTURE_ATTRIBUTE;
1389
1391 WGPUChainedStruct const * nextInChain;
1392 WGPU_NULLABLE char const * label;
1393 WGPU_NULLABLE WGPUPipelineLayout layout;
1394 WGPUVertexState vertex;
1395 WGPUPrimitiveState primitive;
1396 WGPU_NULLABLE WGPUDepthStencilState const * depthStencil;
1397 WGPUMultisampleState multisample;
1398 WGPU_NULLABLE WGPUFragmentState const * fragment;
1399} WGPURenderPipelineDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1400
1403#ifdef __cplusplus
1404extern "C" {
1405#endif
1406
1407#if !defined(WGPU_SKIP_PROCS)
1408
1409typedef WGPUInstance (*WGPUProcCreateInstance)(WGPU_NULLABLE WGPUInstanceDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1410typedef WGPUProc (*WGPUProcGetProcAddress)(WGPUDevice device, char const * procName) WGPU_FUNCTION_ATTRIBUTE;
1411
1412// Procs of Adapter
1413typedef size_t (*WGPUProcAdapterEnumerateFeatures)(WGPUAdapter adapter, WGPUFeatureName * features) WGPU_FUNCTION_ATTRIBUTE;
1414typedef void (*WGPUProcAdapterGetInfo)(WGPUAdapter adapter, WGPUAdapterInfo * info) WGPU_FUNCTION_ATTRIBUTE;
1415typedef WGPUBool (*WGPUProcAdapterGetLimits)(WGPUAdapter adapter, WGPUSupportedLimits * limits) WGPU_FUNCTION_ATTRIBUTE;
1416typedef WGPUBool (*WGPUProcAdapterHasFeature)(WGPUAdapter adapter, WGPUFeatureName feature) WGPU_FUNCTION_ATTRIBUTE;
1417typedef void (*WGPUProcAdapterRequestDevice)(WGPUAdapter adapter, WGPU_NULLABLE WGPUDeviceDescriptor const * descriptor, WGPUAdapterRequestDeviceCallback callback, WGPU_NULLABLE void * userdata) WGPU_FUNCTION_ATTRIBUTE;
1418typedef void (*WGPUProcAdapterReference)(WGPUAdapter adapter) WGPU_FUNCTION_ATTRIBUTE;
1419typedef void (*WGPUProcAdapterRelease)(WGPUAdapter adapter) WGPU_FUNCTION_ATTRIBUTE;
1420
1421// Procs of AdapterInfo
1422typedef void (*WGPUProcAdapterInfoFreeMembers)(WGPUAdapterInfo adapterInfo) WGPU_FUNCTION_ATTRIBUTE;
1423
1424// Procs of BindGroup
1425typedef void (*WGPUProcBindGroupSetLabel)(WGPUBindGroup bindGroup, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1426typedef void (*WGPUProcBindGroupReference)(WGPUBindGroup bindGroup) WGPU_FUNCTION_ATTRIBUTE;
1427typedef void (*WGPUProcBindGroupRelease)(WGPUBindGroup bindGroup) WGPU_FUNCTION_ATTRIBUTE;
1428
1429// Procs of BindGroupLayout
1430typedef void (*WGPUProcBindGroupLayoutSetLabel)(WGPUBindGroupLayout bindGroupLayout, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1431typedef void (*WGPUProcBindGroupLayoutReference)(WGPUBindGroupLayout bindGroupLayout) WGPU_FUNCTION_ATTRIBUTE;
1432typedef void (*WGPUProcBindGroupLayoutRelease)(WGPUBindGroupLayout bindGroupLayout) WGPU_FUNCTION_ATTRIBUTE;
1433
1434// Procs of Buffer
1435typedef void (*WGPUProcBufferDestroy)(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE;
1436typedef void const * (*WGPUProcBufferGetConstMappedRange)(WGPUBuffer buffer, size_t offset, size_t size) WGPU_FUNCTION_ATTRIBUTE;
1437typedef WGPUBufferMapState (*WGPUProcBufferGetMapState)(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE;
1438typedef void * (*WGPUProcBufferGetMappedRange)(WGPUBuffer buffer, size_t offset, size_t size) WGPU_FUNCTION_ATTRIBUTE;
1439typedef uint64_t (*WGPUProcBufferGetSize)(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE;
1440typedef WGPUBufferUsageFlags (*WGPUProcBufferGetUsage)(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE;
1441typedef void (*WGPUProcBufferMapAsync)(WGPUBuffer buffer, WGPUMapModeFlags mode, size_t offset, size_t size, WGPUBufferMapAsyncCallback callback, WGPU_NULLABLE void * userdata) WGPU_FUNCTION_ATTRIBUTE;
1442typedef void (*WGPUProcBufferSetLabel)(WGPUBuffer buffer, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1443typedef void (*WGPUProcBufferUnmap)(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE;
1444typedef void (*WGPUProcBufferReference)(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE;
1445typedef void (*WGPUProcBufferRelease)(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE;
1446
1447// Procs of CommandBuffer
1448typedef void (*WGPUProcCommandBufferSetLabel)(WGPUCommandBuffer commandBuffer, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1449typedef void (*WGPUProcCommandBufferReference)(WGPUCommandBuffer commandBuffer) WGPU_FUNCTION_ATTRIBUTE;
1450typedef void (*WGPUProcCommandBufferRelease)(WGPUCommandBuffer commandBuffer) WGPU_FUNCTION_ATTRIBUTE;
1451
1452// Procs of CommandEncoder
1453typedef WGPUComputePassEncoder (*WGPUProcCommandEncoderBeginComputePass)(WGPUCommandEncoder commandEncoder, WGPU_NULLABLE WGPUComputePassDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1454typedef WGPURenderPassEncoder (*WGPUProcCommandEncoderBeginRenderPass)(WGPUCommandEncoder commandEncoder, WGPURenderPassDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1455typedef void (*WGPUProcCommandEncoderClearBuffer)(WGPUCommandEncoder commandEncoder, WGPUBuffer buffer, uint64_t offset, uint64_t size) WGPU_FUNCTION_ATTRIBUTE;
1456typedef void (*WGPUProcCommandEncoderCopyBufferToBuffer)(WGPUCommandEncoder commandEncoder, WGPUBuffer source, uint64_t sourceOffset, WGPUBuffer destination, uint64_t destinationOffset, uint64_t size) WGPU_FUNCTION_ATTRIBUTE;
1457typedef void (*WGPUProcCommandEncoderCopyBufferToTexture)(WGPUCommandEncoder commandEncoder, WGPUImageCopyBuffer const * source, WGPUImageCopyTexture const * destination, WGPUExtent3D const * copySize) WGPU_FUNCTION_ATTRIBUTE;
1458typedef void (*WGPUProcCommandEncoderCopyTextureToBuffer)(WGPUCommandEncoder commandEncoder, WGPUImageCopyTexture const * source, WGPUImageCopyBuffer const * destination, WGPUExtent3D const * copySize) WGPU_FUNCTION_ATTRIBUTE;
1459typedef void (*WGPUProcCommandEncoderCopyTextureToTexture)(WGPUCommandEncoder commandEncoder, WGPUImageCopyTexture const * source, WGPUImageCopyTexture const * destination, WGPUExtent3D const * copySize) WGPU_FUNCTION_ATTRIBUTE;
1460typedef WGPUCommandBuffer (*WGPUProcCommandEncoderFinish)(WGPUCommandEncoder commandEncoder, WGPU_NULLABLE WGPUCommandBufferDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1461typedef void (*WGPUProcCommandEncoderInsertDebugMarker)(WGPUCommandEncoder commandEncoder, char const * markerLabel) WGPU_FUNCTION_ATTRIBUTE;
1462typedef void (*WGPUProcCommandEncoderPopDebugGroup)(WGPUCommandEncoder commandEncoder) WGPU_FUNCTION_ATTRIBUTE;
1463typedef void (*WGPUProcCommandEncoderPushDebugGroup)(WGPUCommandEncoder commandEncoder, char const * groupLabel) WGPU_FUNCTION_ATTRIBUTE;
1464typedef void (*WGPUProcCommandEncoderResolveQuerySet)(WGPUCommandEncoder commandEncoder, WGPUQuerySet querySet, uint32_t firstQuery, uint32_t queryCount, WGPUBuffer destination, uint64_t destinationOffset) WGPU_FUNCTION_ATTRIBUTE;
1465typedef void (*WGPUProcCommandEncoderSetLabel)(WGPUCommandEncoder commandEncoder, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1466typedef void (*WGPUProcCommandEncoderWriteTimestamp)(WGPUCommandEncoder commandEncoder, WGPUQuerySet querySet, uint32_t queryIndex) WGPU_FUNCTION_ATTRIBUTE;
1467typedef void (*WGPUProcCommandEncoderReference)(WGPUCommandEncoder commandEncoder) WGPU_FUNCTION_ATTRIBUTE;
1468typedef void (*WGPUProcCommandEncoderRelease)(WGPUCommandEncoder commandEncoder) WGPU_FUNCTION_ATTRIBUTE;
1469
1470// Procs of ComputePassEncoder
1471typedef void (*WGPUProcComputePassEncoderDispatchWorkgroups)(WGPUComputePassEncoder computePassEncoder, uint32_t workgroupCountX, uint32_t workgroupCountY, uint32_t workgroupCountZ) WGPU_FUNCTION_ATTRIBUTE;
1472typedef void (*WGPUProcComputePassEncoderDispatchWorkgroupsIndirect)(WGPUComputePassEncoder computePassEncoder, WGPUBuffer indirectBuffer, uint64_t indirectOffset) WGPU_FUNCTION_ATTRIBUTE;
1473typedef void (*WGPUProcComputePassEncoderEnd)(WGPUComputePassEncoder computePassEncoder) WGPU_FUNCTION_ATTRIBUTE;
1474typedef void (*WGPUProcComputePassEncoderInsertDebugMarker)(WGPUComputePassEncoder computePassEncoder, char const * markerLabel) WGPU_FUNCTION_ATTRIBUTE;
1475typedef void (*WGPUProcComputePassEncoderPopDebugGroup)(WGPUComputePassEncoder computePassEncoder) WGPU_FUNCTION_ATTRIBUTE;
1476typedef void (*WGPUProcComputePassEncoderPushDebugGroup)(WGPUComputePassEncoder computePassEncoder, char const * groupLabel) WGPU_FUNCTION_ATTRIBUTE;
1477typedef void (*WGPUProcComputePassEncoderSetBindGroup)(WGPUComputePassEncoder computePassEncoder, uint32_t groupIndex, WGPU_NULLABLE WGPUBindGroup group, size_t dynamicOffsetCount, uint32_t const * dynamicOffsets) WGPU_FUNCTION_ATTRIBUTE;
1478typedef void (*WGPUProcComputePassEncoderSetLabel)(WGPUComputePassEncoder computePassEncoder, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1479typedef void (*WGPUProcComputePassEncoderSetPipeline)(WGPUComputePassEncoder computePassEncoder, WGPUComputePipeline pipeline) WGPU_FUNCTION_ATTRIBUTE;
1480typedef void (*WGPUProcComputePassEncoderReference)(WGPUComputePassEncoder computePassEncoder) WGPU_FUNCTION_ATTRIBUTE;
1481typedef void (*WGPUProcComputePassEncoderRelease)(WGPUComputePassEncoder computePassEncoder) WGPU_FUNCTION_ATTRIBUTE;
1482
1483// Procs of ComputePipeline
1484typedef WGPUBindGroupLayout (*WGPUProcComputePipelineGetBindGroupLayout)(WGPUComputePipeline computePipeline, uint32_t groupIndex) WGPU_FUNCTION_ATTRIBUTE;
1485typedef void (*WGPUProcComputePipelineSetLabel)(WGPUComputePipeline computePipeline, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1486typedef void (*WGPUProcComputePipelineReference)(WGPUComputePipeline computePipeline) WGPU_FUNCTION_ATTRIBUTE;
1487typedef void (*WGPUProcComputePipelineRelease)(WGPUComputePipeline computePipeline) WGPU_FUNCTION_ATTRIBUTE;
1488
1489// Procs of Device
1490typedef WGPUBindGroup (*WGPUProcDeviceCreateBindGroup)(WGPUDevice device, WGPUBindGroupDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1491typedef WGPUBindGroupLayout (*WGPUProcDeviceCreateBindGroupLayout)(WGPUDevice device, WGPUBindGroupLayoutDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1492typedef WGPUBuffer (*WGPUProcDeviceCreateBuffer)(WGPUDevice device, WGPUBufferDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1493typedef WGPUCommandEncoder (*WGPUProcDeviceCreateCommandEncoder)(WGPUDevice device, WGPU_NULLABLE WGPUCommandEncoderDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1494typedef WGPUComputePipeline (*WGPUProcDeviceCreateComputePipeline)(WGPUDevice device, WGPUComputePipelineDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1495typedef void (*WGPUProcDeviceCreateComputePipelineAsync)(WGPUDevice device, WGPUComputePipelineDescriptor const * descriptor, WGPUDeviceCreateComputePipelineAsyncCallback callback, WGPU_NULLABLE void * userdata) WGPU_FUNCTION_ATTRIBUTE;
1496typedef WGPUPipelineLayout (*WGPUProcDeviceCreatePipelineLayout)(WGPUDevice device, WGPUPipelineLayoutDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1497typedef WGPUQuerySet (*WGPUProcDeviceCreateQuerySet)(WGPUDevice device, WGPUQuerySetDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1498typedef WGPURenderBundleEncoder (*WGPUProcDeviceCreateRenderBundleEncoder)(WGPUDevice device, WGPURenderBundleEncoderDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1499typedef WGPURenderPipeline (*WGPUProcDeviceCreateRenderPipeline)(WGPUDevice device, WGPURenderPipelineDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1500typedef void (*WGPUProcDeviceCreateRenderPipelineAsync)(WGPUDevice device, WGPURenderPipelineDescriptor const * descriptor, WGPUDeviceCreateRenderPipelineAsyncCallback callback, WGPU_NULLABLE void * userdata) WGPU_FUNCTION_ATTRIBUTE;
1501typedef WGPUSampler (*WGPUProcDeviceCreateSampler)(WGPUDevice device, WGPU_NULLABLE WGPUSamplerDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1502typedef WGPUShaderModule (*WGPUProcDeviceCreateShaderModule)(WGPUDevice device, WGPUShaderModuleDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1503typedef WGPUTexture (*WGPUProcDeviceCreateTexture)(WGPUDevice device, WGPUTextureDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1504typedef void (*WGPUProcDeviceDestroy)(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE;
1505typedef size_t (*WGPUProcDeviceEnumerateFeatures)(WGPUDevice device, WGPUFeatureName * features) WGPU_FUNCTION_ATTRIBUTE;
1506typedef WGPUBool (*WGPUProcDeviceGetLimits)(WGPUDevice device, WGPUSupportedLimits * limits) WGPU_FUNCTION_ATTRIBUTE;
1507typedef WGPUQueue (*WGPUProcDeviceGetQueue)(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE;
1508typedef WGPUBool (*WGPUProcDeviceHasFeature)(WGPUDevice device, WGPUFeatureName feature) WGPU_FUNCTION_ATTRIBUTE;
1509typedef void (*WGPUProcDevicePopErrorScope)(WGPUDevice device, WGPUErrorCallback callback, void * userdata) WGPU_FUNCTION_ATTRIBUTE;
1510typedef void (*WGPUProcDevicePushErrorScope)(WGPUDevice device, WGPUErrorFilter filter) WGPU_FUNCTION_ATTRIBUTE;
1511typedef void (*WGPUProcDeviceSetLabel)(WGPUDevice device, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1512typedef void (*WGPUProcDeviceReference)(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE;
1513typedef void (*WGPUProcDeviceRelease)(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE;
1514
1515// Procs of Instance
1516typedef WGPUSurface (*WGPUProcInstanceCreateSurface)(WGPUInstance instance, WGPUSurfaceDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1517typedef WGPUBool (*WGPUProcInstanceHasWGSLLanguageFeature)(WGPUInstance instance, WGPUWGSLFeatureName feature) WGPU_FUNCTION_ATTRIBUTE;
1518typedef void (*WGPUProcInstanceProcessEvents)(WGPUInstance instance) WGPU_FUNCTION_ATTRIBUTE;
1519typedef void (*WGPUProcInstanceRequestAdapter)(WGPUInstance instance, WGPU_NULLABLE WGPURequestAdapterOptions const * options, WGPUInstanceRequestAdapterCallback callback, WGPU_NULLABLE void * userdata) WGPU_FUNCTION_ATTRIBUTE;
1520typedef void (*WGPUProcInstanceReference)(WGPUInstance instance) WGPU_FUNCTION_ATTRIBUTE;
1521typedef void (*WGPUProcInstanceRelease)(WGPUInstance instance) WGPU_FUNCTION_ATTRIBUTE;
1522
1523// Procs of PipelineLayout
1524typedef void (*WGPUProcPipelineLayoutSetLabel)(WGPUPipelineLayout pipelineLayout, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1525typedef void (*WGPUProcPipelineLayoutReference)(WGPUPipelineLayout pipelineLayout) WGPU_FUNCTION_ATTRIBUTE;
1526typedef void (*WGPUProcPipelineLayoutRelease)(WGPUPipelineLayout pipelineLayout) WGPU_FUNCTION_ATTRIBUTE;
1527
1528// Procs of QuerySet
1529typedef void (*WGPUProcQuerySetDestroy)(WGPUQuerySet querySet) WGPU_FUNCTION_ATTRIBUTE;
1530typedef uint32_t (*WGPUProcQuerySetGetCount)(WGPUQuerySet querySet) WGPU_FUNCTION_ATTRIBUTE;
1531typedef WGPUQueryType (*WGPUProcQuerySetGetType)(WGPUQuerySet querySet) WGPU_FUNCTION_ATTRIBUTE;
1532typedef void (*WGPUProcQuerySetSetLabel)(WGPUQuerySet querySet, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1533typedef void (*WGPUProcQuerySetReference)(WGPUQuerySet querySet) WGPU_FUNCTION_ATTRIBUTE;
1534typedef void (*WGPUProcQuerySetRelease)(WGPUQuerySet querySet) WGPU_FUNCTION_ATTRIBUTE;
1535
1536// Procs of Queue
1537typedef void (*WGPUProcQueueOnSubmittedWorkDone)(WGPUQueue queue, WGPUQueueOnSubmittedWorkDoneCallback callback, WGPU_NULLABLE void * userdata) WGPU_FUNCTION_ATTRIBUTE;
1538typedef void (*WGPUProcQueueSetLabel)(WGPUQueue queue, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1539typedef void (*WGPUProcQueueSubmit)(WGPUQueue queue, size_t commandCount, WGPUCommandBuffer const * commands) WGPU_FUNCTION_ATTRIBUTE;
1540typedef void (*WGPUProcQueueWriteBuffer)(WGPUQueue queue, WGPUBuffer buffer, uint64_t bufferOffset, void const * data, size_t size) WGPU_FUNCTION_ATTRIBUTE;
1541typedef void (*WGPUProcQueueWriteTexture)(WGPUQueue queue, WGPUImageCopyTexture const * destination, void const * data, size_t dataSize, WGPUTextureDataLayout const * dataLayout, WGPUExtent3D const * writeSize) WGPU_FUNCTION_ATTRIBUTE;
1542typedef void (*WGPUProcQueueReference)(WGPUQueue queue) WGPU_FUNCTION_ATTRIBUTE;
1543typedef void (*WGPUProcQueueRelease)(WGPUQueue queue) WGPU_FUNCTION_ATTRIBUTE;
1544
1545// Procs of RenderBundle
1546typedef void (*WGPUProcRenderBundleSetLabel)(WGPURenderBundle renderBundle, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1547typedef void (*WGPUProcRenderBundleReference)(WGPURenderBundle renderBundle) WGPU_FUNCTION_ATTRIBUTE;
1548typedef void (*WGPUProcRenderBundleRelease)(WGPURenderBundle renderBundle) WGPU_FUNCTION_ATTRIBUTE;
1549
1550// Procs of RenderBundleEncoder
1551typedef void (*WGPUProcRenderBundleEncoderDraw)(WGPURenderBundleEncoder renderBundleEncoder, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) WGPU_FUNCTION_ATTRIBUTE;
1552typedef void (*WGPUProcRenderBundleEncoderDrawIndexed)(WGPURenderBundleEncoder renderBundleEncoder, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t baseVertex, uint32_t firstInstance) WGPU_FUNCTION_ATTRIBUTE;
1553typedef void (*WGPUProcRenderBundleEncoderDrawIndexedIndirect)(WGPURenderBundleEncoder renderBundleEncoder, WGPUBuffer indirectBuffer, uint64_t indirectOffset) WGPU_FUNCTION_ATTRIBUTE;
1554typedef void (*WGPUProcRenderBundleEncoderDrawIndirect)(WGPURenderBundleEncoder renderBundleEncoder, WGPUBuffer indirectBuffer, uint64_t indirectOffset) WGPU_FUNCTION_ATTRIBUTE;
1555typedef WGPURenderBundle (*WGPUProcRenderBundleEncoderFinish)(WGPURenderBundleEncoder renderBundleEncoder, WGPU_NULLABLE WGPURenderBundleDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1556typedef void (*WGPUProcRenderBundleEncoderInsertDebugMarker)(WGPURenderBundleEncoder renderBundleEncoder, char const * markerLabel) WGPU_FUNCTION_ATTRIBUTE;
1557typedef void (*WGPUProcRenderBundleEncoderPopDebugGroup)(WGPURenderBundleEncoder renderBundleEncoder) WGPU_FUNCTION_ATTRIBUTE;
1558typedef void (*WGPUProcRenderBundleEncoderPushDebugGroup)(WGPURenderBundleEncoder renderBundleEncoder, char const * groupLabel) WGPU_FUNCTION_ATTRIBUTE;
1559typedef void (*WGPUProcRenderBundleEncoderSetBindGroup)(WGPURenderBundleEncoder renderBundleEncoder, uint32_t groupIndex, WGPU_NULLABLE WGPUBindGroup group, size_t dynamicOffsetCount, uint32_t const * dynamicOffsets) WGPU_FUNCTION_ATTRIBUTE;
1560typedef void (*WGPUProcRenderBundleEncoderSetIndexBuffer)(WGPURenderBundleEncoder renderBundleEncoder, WGPUBuffer buffer, WGPUIndexFormat format, uint64_t offset, uint64_t size) WGPU_FUNCTION_ATTRIBUTE;
1561typedef void (*WGPUProcRenderBundleEncoderSetLabel)(WGPURenderBundleEncoder renderBundleEncoder, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1562typedef void (*WGPUProcRenderBundleEncoderSetPipeline)(WGPURenderBundleEncoder renderBundleEncoder, WGPURenderPipeline pipeline) WGPU_FUNCTION_ATTRIBUTE;
1563typedef void (*WGPUProcRenderBundleEncoderSetVertexBuffer)(WGPURenderBundleEncoder renderBundleEncoder, uint32_t slot, WGPU_NULLABLE WGPUBuffer buffer, uint64_t offset, uint64_t size) WGPU_FUNCTION_ATTRIBUTE;
1564typedef void (*WGPUProcRenderBundleEncoderReference)(WGPURenderBundleEncoder renderBundleEncoder) WGPU_FUNCTION_ATTRIBUTE;
1565typedef void (*WGPUProcRenderBundleEncoderRelease)(WGPURenderBundleEncoder renderBundleEncoder) WGPU_FUNCTION_ATTRIBUTE;
1566
1567// Procs of RenderPassEncoder
1568typedef void (*WGPUProcRenderPassEncoderBeginOcclusionQuery)(WGPURenderPassEncoder renderPassEncoder, uint32_t queryIndex) WGPU_FUNCTION_ATTRIBUTE;
1569typedef void (*WGPUProcRenderPassEncoderDraw)(WGPURenderPassEncoder renderPassEncoder, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) WGPU_FUNCTION_ATTRIBUTE;
1570typedef void (*WGPUProcRenderPassEncoderDrawIndexed)(WGPURenderPassEncoder renderPassEncoder, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t baseVertex, uint32_t firstInstance) WGPU_FUNCTION_ATTRIBUTE;
1571typedef void (*WGPUProcRenderPassEncoderDrawIndexedIndirect)(WGPURenderPassEncoder renderPassEncoder, WGPUBuffer indirectBuffer, uint64_t indirectOffset) WGPU_FUNCTION_ATTRIBUTE;
1572typedef void (*WGPUProcRenderPassEncoderDrawIndirect)(WGPURenderPassEncoder renderPassEncoder, WGPUBuffer indirectBuffer, uint64_t indirectOffset) WGPU_FUNCTION_ATTRIBUTE;
1573typedef void (*WGPUProcRenderPassEncoderEnd)(WGPURenderPassEncoder renderPassEncoder) WGPU_FUNCTION_ATTRIBUTE;
1574typedef void (*WGPUProcRenderPassEncoderEndOcclusionQuery)(WGPURenderPassEncoder renderPassEncoder) WGPU_FUNCTION_ATTRIBUTE;
1575typedef void (*WGPUProcRenderPassEncoderExecuteBundles)(WGPURenderPassEncoder renderPassEncoder, size_t bundleCount, WGPURenderBundle const * bundles) WGPU_FUNCTION_ATTRIBUTE;
1576typedef void (*WGPUProcRenderPassEncoderInsertDebugMarker)(WGPURenderPassEncoder renderPassEncoder, char const * markerLabel) WGPU_FUNCTION_ATTRIBUTE;
1577typedef void (*WGPUProcRenderPassEncoderPopDebugGroup)(WGPURenderPassEncoder renderPassEncoder) WGPU_FUNCTION_ATTRIBUTE;
1578typedef void (*WGPUProcRenderPassEncoderPushDebugGroup)(WGPURenderPassEncoder renderPassEncoder, char const * groupLabel) WGPU_FUNCTION_ATTRIBUTE;
1579typedef void (*WGPUProcRenderPassEncoderSetBindGroup)(WGPURenderPassEncoder renderPassEncoder, uint32_t groupIndex, WGPU_NULLABLE WGPUBindGroup group, size_t dynamicOffsetCount, uint32_t const * dynamicOffsets) WGPU_FUNCTION_ATTRIBUTE;
1580typedef void (*WGPUProcRenderPassEncoderSetBlendConstant)(WGPURenderPassEncoder renderPassEncoder, WGPUColor const * color) WGPU_FUNCTION_ATTRIBUTE;
1581typedef void (*WGPUProcRenderPassEncoderSetIndexBuffer)(WGPURenderPassEncoder renderPassEncoder, WGPUBuffer buffer, WGPUIndexFormat format, uint64_t offset, uint64_t size) WGPU_FUNCTION_ATTRIBUTE;
1582typedef void (*WGPUProcRenderPassEncoderSetLabel)(WGPURenderPassEncoder renderPassEncoder, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1583typedef void (*WGPUProcRenderPassEncoderSetPipeline)(WGPURenderPassEncoder renderPassEncoder, WGPURenderPipeline pipeline) WGPU_FUNCTION_ATTRIBUTE;
1584typedef void (*WGPUProcRenderPassEncoderSetScissorRect)(WGPURenderPassEncoder renderPassEncoder, uint32_t x, uint32_t y, uint32_t width, uint32_t height) WGPU_FUNCTION_ATTRIBUTE;
1585typedef void (*WGPUProcRenderPassEncoderSetStencilReference)(WGPURenderPassEncoder renderPassEncoder, uint32_t reference) WGPU_FUNCTION_ATTRIBUTE;
1586typedef void (*WGPUProcRenderPassEncoderSetVertexBuffer)(WGPURenderPassEncoder renderPassEncoder, uint32_t slot, WGPU_NULLABLE WGPUBuffer buffer, uint64_t offset, uint64_t size) WGPU_FUNCTION_ATTRIBUTE;
1587typedef void (*WGPUProcRenderPassEncoderSetViewport)(WGPURenderPassEncoder renderPassEncoder, float x, float y, float width, float height, float minDepth, float maxDepth) WGPU_FUNCTION_ATTRIBUTE;
1588typedef void (*WGPUProcRenderPassEncoderReference)(WGPURenderPassEncoder renderPassEncoder) WGPU_FUNCTION_ATTRIBUTE;
1589typedef void (*WGPUProcRenderPassEncoderRelease)(WGPURenderPassEncoder renderPassEncoder) WGPU_FUNCTION_ATTRIBUTE;
1590
1591// Procs of RenderPipeline
1592typedef WGPUBindGroupLayout (*WGPUProcRenderPipelineGetBindGroupLayout)(WGPURenderPipeline renderPipeline, uint32_t groupIndex) WGPU_FUNCTION_ATTRIBUTE;
1593typedef void (*WGPUProcRenderPipelineSetLabel)(WGPURenderPipeline renderPipeline, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1594typedef void (*WGPUProcRenderPipelineReference)(WGPURenderPipeline renderPipeline) WGPU_FUNCTION_ATTRIBUTE;
1595typedef void (*WGPUProcRenderPipelineRelease)(WGPURenderPipeline renderPipeline) WGPU_FUNCTION_ATTRIBUTE;
1596
1597// Procs of Sampler
1598typedef void (*WGPUProcSamplerSetLabel)(WGPUSampler sampler, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1599typedef void (*WGPUProcSamplerReference)(WGPUSampler sampler) WGPU_FUNCTION_ATTRIBUTE;
1600typedef void (*WGPUProcSamplerRelease)(WGPUSampler sampler) WGPU_FUNCTION_ATTRIBUTE;
1601
1602// Procs of ShaderModule
1603typedef void (*WGPUProcShaderModuleGetCompilationInfo)(WGPUShaderModule shaderModule, WGPUShaderModuleGetCompilationInfoCallback callback, WGPU_NULLABLE void * userdata) WGPU_FUNCTION_ATTRIBUTE;
1604typedef void (*WGPUProcShaderModuleSetLabel)(WGPUShaderModule shaderModule, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1605typedef void (*WGPUProcShaderModuleReference)(WGPUShaderModule shaderModule) WGPU_FUNCTION_ATTRIBUTE;
1606typedef void (*WGPUProcShaderModuleRelease)(WGPUShaderModule shaderModule) WGPU_FUNCTION_ATTRIBUTE;
1607
1608// Procs of Surface
1609typedef void (*WGPUProcSurfaceConfigure)(WGPUSurface surface, WGPUSurfaceConfiguration const * config) WGPU_FUNCTION_ATTRIBUTE;
1610typedef void (*WGPUProcSurfaceGetCapabilities)(WGPUSurface surface, WGPUAdapter adapter, WGPUSurfaceCapabilities * capabilities) WGPU_FUNCTION_ATTRIBUTE;
1611typedef void (*WGPUProcSurfaceGetCurrentTexture)(WGPUSurface surface, WGPUSurfaceTexture * surfaceTexture) WGPU_FUNCTION_ATTRIBUTE;
1612typedef void (*WGPUProcSurfacePresent)(WGPUSurface surface) WGPU_FUNCTION_ATTRIBUTE;
1613typedef void (*WGPUProcSurfaceSetLabel)(WGPUSurface surface, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1614typedef void (*WGPUProcSurfaceUnconfigure)(WGPUSurface surface) WGPU_FUNCTION_ATTRIBUTE;
1615typedef void (*WGPUProcSurfaceReference)(WGPUSurface surface) WGPU_FUNCTION_ATTRIBUTE;
1616typedef void (*WGPUProcSurfaceRelease)(WGPUSurface surface) WGPU_FUNCTION_ATTRIBUTE;
1617
1618// Procs of SurfaceCapabilities
1619typedef void (*WGPUProcSurfaceCapabilitiesFreeMembers)(WGPUSurfaceCapabilities surfaceCapabilities) WGPU_FUNCTION_ATTRIBUTE;
1620
1621// Procs of Texture
1622typedef WGPUTextureView (*WGPUProcTextureCreateView)(WGPUTexture texture, WGPU_NULLABLE WGPUTextureViewDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1623typedef void (*WGPUProcTextureDestroy)(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
1624typedef uint32_t (*WGPUProcTextureGetDepthOrArrayLayers)(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
1625typedef WGPUTextureDimension (*WGPUProcTextureGetDimension)(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
1626typedef WGPUTextureFormat (*WGPUProcTextureGetFormat)(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
1627typedef uint32_t (*WGPUProcTextureGetHeight)(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
1628typedef uint32_t (*WGPUProcTextureGetMipLevelCount)(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
1629typedef uint32_t (*WGPUProcTextureGetSampleCount)(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
1630typedef WGPUTextureUsageFlags (*WGPUProcTextureGetUsage)(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
1631typedef uint32_t (*WGPUProcTextureGetWidth)(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
1632typedef void (*WGPUProcTextureSetLabel)(WGPUTexture texture, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1633typedef void (*WGPUProcTextureReference)(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
1634typedef void (*WGPUProcTextureRelease)(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
1635
1636// Procs of TextureView
1637typedef void (*WGPUProcTextureViewSetLabel)(WGPUTextureView textureView, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1638typedef void (*WGPUProcTextureViewReference)(WGPUTextureView textureView) WGPU_FUNCTION_ATTRIBUTE;
1639typedef void (*WGPUProcTextureViewRelease)(WGPUTextureView textureView) WGPU_FUNCTION_ATTRIBUTE;
1640
1641#endif // !defined(WGPU_SKIP_PROCS)
1642
1643#if !defined(WGPU_SKIP_DECLARATIONS)
1650WGPU_EXPORT WGPUInstance wgpuCreateInstance(WGPU_NULLABLE WGPUInstanceDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1651WGPU_EXPORT WGPUProc wgpuGetProcAddress(WGPUDevice device, char const * procName) WGPU_FUNCTION_ATTRIBUTE;
1652
1653
1669WGPU_EXPORT size_t wgpuAdapterEnumerateFeatures(WGPUAdapter adapter, WGPUFeatureName * features) WGPU_FUNCTION_ATTRIBUTE;
1670WGPU_EXPORT void wgpuAdapterGetInfo(WGPUAdapter adapter, WGPUAdapterInfo * info) WGPU_FUNCTION_ATTRIBUTE;
1671WGPU_EXPORT WGPUBool wgpuAdapterGetLimits(WGPUAdapter adapter, WGPUSupportedLimits * limits) WGPU_FUNCTION_ATTRIBUTE;
1672WGPU_EXPORT WGPUBool wgpuAdapterHasFeature(WGPUAdapter adapter, WGPUFeatureName feature) WGPU_FUNCTION_ATTRIBUTE;
1673WGPU_EXPORT void wgpuAdapterRequestDevice(WGPUAdapter adapter, WGPU_NULLABLE WGPUDeviceDescriptor const * descriptor, WGPUAdapterRequestDeviceCallback callback, WGPU_NULLABLE void * userdata) WGPU_FUNCTION_ATTRIBUTE;
1674WGPU_EXPORT void wgpuAdapterReference(WGPUAdapter adapter) WGPU_FUNCTION_ATTRIBUTE;
1675WGPU_EXPORT void wgpuAdapterRelease(WGPUAdapter adapter) WGPU_FUNCTION_ATTRIBUTE;
1686WGPU_EXPORT void wgpuAdapterInfoFreeMembers(WGPUAdapterInfo adapterInfo) WGPU_FUNCTION_ATTRIBUTE;
1697WGPU_EXPORT void wgpuBindGroupSetLabel(WGPUBindGroup bindGroup, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1698WGPU_EXPORT void wgpuBindGroupReference(WGPUBindGroup bindGroup) WGPU_FUNCTION_ATTRIBUTE;
1699WGPU_EXPORT void wgpuBindGroupRelease(WGPUBindGroup bindGroup) WGPU_FUNCTION_ATTRIBUTE;
1710WGPU_EXPORT void wgpuBindGroupLayoutSetLabel(WGPUBindGroupLayout bindGroupLayout, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1711WGPU_EXPORT void wgpuBindGroupLayoutReference(WGPUBindGroupLayout bindGroupLayout) WGPU_FUNCTION_ATTRIBUTE;
1712WGPU_EXPORT void wgpuBindGroupLayoutRelease(WGPUBindGroupLayout bindGroupLayout) WGPU_FUNCTION_ATTRIBUTE;
1723WGPU_EXPORT void wgpuBufferDestroy(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE;
1724WGPU_EXPORT void const * wgpuBufferGetConstMappedRange(WGPUBuffer buffer, size_t offset, size_t size) WGPU_FUNCTION_ATTRIBUTE;
1725WGPU_EXPORT WGPUBufferMapState wgpuBufferGetMapState(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE;
1726WGPU_EXPORT void * wgpuBufferGetMappedRange(WGPUBuffer buffer, size_t offset, size_t size) WGPU_FUNCTION_ATTRIBUTE;
1727WGPU_EXPORT uint64_t wgpuBufferGetSize(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE;
1728WGPU_EXPORT WGPUBufferUsageFlags wgpuBufferGetUsage(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE;
1729WGPU_EXPORT void wgpuBufferMapAsync(WGPUBuffer buffer, WGPUMapModeFlags mode, size_t offset, size_t size, WGPUBufferMapAsyncCallback callback, WGPU_NULLABLE void * userdata) WGPU_FUNCTION_ATTRIBUTE;
1730WGPU_EXPORT void wgpuBufferSetLabel(WGPUBuffer buffer, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1731WGPU_EXPORT void wgpuBufferUnmap(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE;
1732WGPU_EXPORT void wgpuBufferReference(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE;
1733WGPU_EXPORT void wgpuBufferRelease(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE;
1744WGPU_EXPORT void wgpuCommandBufferSetLabel(WGPUCommandBuffer commandBuffer, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1745WGPU_EXPORT void wgpuCommandBufferReference(WGPUCommandBuffer commandBuffer) WGPU_FUNCTION_ATTRIBUTE;
1746WGPU_EXPORT void wgpuCommandBufferRelease(WGPUCommandBuffer commandBuffer) WGPU_FUNCTION_ATTRIBUTE;
1757WGPU_EXPORT WGPUComputePassEncoder wgpuCommandEncoderBeginComputePass(WGPUCommandEncoder commandEncoder, WGPU_NULLABLE WGPUComputePassDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1758WGPU_EXPORT WGPURenderPassEncoder wgpuCommandEncoderBeginRenderPass(WGPUCommandEncoder commandEncoder, WGPURenderPassDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1759WGPU_EXPORT void wgpuCommandEncoderClearBuffer(WGPUCommandEncoder commandEncoder, WGPUBuffer buffer, uint64_t offset, uint64_t size) WGPU_FUNCTION_ATTRIBUTE;
1760WGPU_EXPORT void wgpuCommandEncoderCopyBufferToBuffer(WGPUCommandEncoder commandEncoder, WGPUBuffer source, uint64_t sourceOffset, WGPUBuffer destination, uint64_t destinationOffset, uint64_t size) WGPU_FUNCTION_ATTRIBUTE;
1761WGPU_EXPORT void wgpuCommandEncoderCopyBufferToTexture(WGPUCommandEncoder commandEncoder, WGPUImageCopyBuffer const * source, WGPUImageCopyTexture const * destination, WGPUExtent3D const * copySize) WGPU_FUNCTION_ATTRIBUTE;
1762WGPU_EXPORT void wgpuCommandEncoderCopyTextureToBuffer(WGPUCommandEncoder commandEncoder, WGPUImageCopyTexture const * source, WGPUImageCopyBuffer const * destination, WGPUExtent3D const * copySize) WGPU_FUNCTION_ATTRIBUTE;
1763WGPU_EXPORT void wgpuCommandEncoderCopyTextureToTexture(WGPUCommandEncoder commandEncoder, WGPUImageCopyTexture const * source, WGPUImageCopyTexture const * destination, WGPUExtent3D const * copySize) WGPU_FUNCTION_ATTRIBUTE;
1764WGPU_EXPORT WGPUCommandBuffer wgpuCommandEncoderFinish(WGPUCommandEncoder commandEncoder, WGPU_NULLABLE WGPUCommandBufferDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1765WGPU_EXPORT void wgpuCommandEncoderInsertDebugMarker(WGPUCommandEncoder commandEncoder, char const * markerLabel) WGPU_FUNCTION_ATTRIBUTE;
1766WGPU_EXPORT void wgpuCommandEncoderPopDebugGroup(WGPUCommandEncoder commandEncoder) WGPU_FUNCTION_ATTRIBUTE;
1767WGPU_EXPORT void wgpuCommandEncoderPushDebugGroup(WGPUCommandEncoder commandEncoder, char const * groupLabel) WGPU_FUNCTION_ATTRIBUTE;
1768WGPU_EXPORT void wgpuCommandEncoderResolveQuerySet(WGPUCommandEncoder commandEncoder, WGPUQuerySet querySet, uint32_t firstQuery, uint32_t queryCount, WGPUBuffer destination, uint64_t destinationOffset) WGPU_FUNCTION_ATTRIBUTE;
1769WGPU_EXPORT void wgpuCommandEncoderSetLabel(WGPUCommandEncoder commandEncoder, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1770WGPU_EXPORT void wgpuCommandEncoderWriteTimestamp(WGPUCommandEncoder commandEncoder, WGPUQuerySet querySet, uint32_t queryIndex) WGPU_FUNCTION_ATTRIBUTE;
1771WGPU_EXPORT void wgpuCommandEncoderReference(WGPUCommandEncoder commandEncoder) WGPU_FUNCTION_ATTRIBUTE;
1772WGPU_EXPORT void wgpuCommandEncoderRelease(WGPUCommandEncoder commandEncoder) WGPU_FUNCTION_ATTRIBUTE;
1783WGPU_EXPORT void wgpuComputePassEncoderDispatchWorkgroups(WGPUComputePassEncoder computePassEncoder, uint32_t workgroupCountX, uint32_t workgroupCountY, uint32_t workgroupCountZ) WGPU_FUNCTION_ATTRIBUTE;
1784WGPU_EXPORT void wgpuComputePassEncoderDispatchWorkgroupsIndirect(WGPUComputePassEncoder computePassEncoder, WGPUBuffer indirectBuffer, uint64_t indirectOffset) WGPU_FUNCTION_ATTRIBUTE;
1785WGPU_EXPORT void wgpuComputePassEncoderEnd(WGPUComputePassEncoder computePassEncoder) WGPU_FUNCTION_ATTRIBUTE;
1786WGPU_EXPORT void wgpuComputePassEncoderInsertDebugMarker(WGPUComputePassEncoder computePassEncoder, char const * markerLabel) WGPU_FUNCTION_ATTRIBUTE;
1787WGPU_EXPORT void wgpuComputePassEncoderPopDebugGroup(WGPUComputePassEncoder computePassEncoder) WGPU_FUNCTION_ATTRIBUTE;
1788WGPU_EXPORT void wgpuComputePassEncoderPushDebugGroup(WGPUComputePassEncoder computePassEncoder, char const * groupLabel) WGPU_FUNCTION_ATTRIBUTE;
1789WGPU_EXPORT void wgpuComputePassEncoderSetBindGroup(WGPUComputePassEncoder computePassEncoder, uint32_t groupIndex, WGPU_NULLABLE WGPUBindGroup group, size_t dynamicOffsetCount, uint32_t const * dynamicOffsets) WGPU_FUNCTION_ATTRIBUTE;
1790WGPU_EXPORT void wgpuComputePassEncoderSetLabel(WGPUComputePassEncoder computePassEncoder, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1791WGPU_EXPORT void wgpuComputePassEncoderSetPipeline(WGPUComputePassEncoder computePassEncoder, WGPUComputePipeline pipeline) WGPU_FUNCTION_ATTRIBUTE;
1792WGPU_EXPORT void wgpuComputePassEncoderReference(WGPUComputePassEncoder computePassEncoder) WGPU_FUNCTION_ATTRIBUTE;
1793WGPU_EXPORT void wgpuComputePassEncoderRelease(WGPUComputePassEncoder computePassEncoder) WGPU_FUNCTION_ATTRIBUTE;
1804WGPU_EXPORT WGPUBindGroupLayout wgpuComputePipelineGetBindGroupLayout(WGPUComputePipeline computePipeline, uint32_t groupIndex) WGPU_FUNCTION_ATTRIBUTE;
1805WGPU_EXPORT void wgpuComputePipelineSetLabel(WGPUComputePipeline computePipeline, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1806WGPU_EXPORT void wgpuComputePipelineReference(WGPUComputePipeline computePipeline) WGPU_FUNCTION_ATTRIBUTE;
1807WGPU_EXPORT void wgpuComputePipelineRelease(WGPUComputePipeline computePipeline) WGPU_FUNCTION_ATTRIBUTE;
1818WGPU_EXPORT WGPUBindGroup wgpuDeviceCreateBindGroup(WGPUDevice device, WGPUBindGroupDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1819WGPU_EXPORT WGPUBindGroupLayout wgpuDeviceCreateBindGroupLayout(WGPUDevice device, WGPUBindGroupLayoutDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1820WGPU_EXPORT WGPUBuffer wgpuDeviceCreateBuffer(WGPUDevice device, WGPUBufferDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1821WGPU_EXPORT WGPUCommandEncoder wgpuDeviceCreateCommandEncoder(WGPUDevice device, WGPU_NULLABLE WGPUCommandEncoderDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1822WGPU_EXPORT WGPUComputePipeline wgpuDeviceCreateComputePipeline(WGPUDevice device, WGPUComputePipelineDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1823WGPU_EXPORT void wgpuDeviceCreateComputePipelineAsync(WGPUDevice device, WGPUComputePipelineDescriptor const * descriptor, WGPUDeviceCreateComputePipelineAsyncCallback callback, WGPU_NULLABLE void * userdata) WGPU_FUNCTION_ATTRIBUTE;
1824WGPU_EXPORT WGPUPipelineLayout wgpuDeviceCreatePipelineLayout(WGPUDevice device, WGPUPipelineLayoutDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1825WGPU_EXPORT WGPUQuerySet wgpuDeviceCreateQuerySet(WGPUDevice device, WGPUQuerySetDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1826WGPU_EXPORT WGPURenderBundleEncoder wgpuDeviceCreateRenderBundleEncoder(WGPUDevice device, WGPURenderBundleEncoderDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1827WGPU_EXPORT WGPURenderPipeline wgpuDeviceCreateRenderPipeline(WGPUDevice device, WGPURenderPipelineDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1828WGPU_EXPORT void wgpuDeviceCreateRenderPipelineAsync(WGPUDevice device, WGPURenderPipelineDescriptor const * descriptor, WGPUDeviceCreateRenderPipelineAsyncCallback callback, WGPU_NULLABLE void * userdata) WGPU_FUNCTION_ATTRIBUTE;
1829WGPU_EXPORT WGPUSampler wgpuDeviceCreateSampler(WGPUDevice device, WGPU_NULLABLE WGPUSamplerDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1830WGPU_EXPORT WGPUShaderModule wgpuDeviceCreateShaderModule(WGPUDevice device, WGPUShaderModuleDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1831WGPU_EXPORT WGPUTexture wgpuDeviceCreateTexture(WGPUDevice device, WGPUTextureDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1832WGPU_EXPORT void wgpuDeviceDestroy(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE;
1833WGPU_EXPORT size_t wgpuDeviceEnumerateFeatures(WGPUDevice device, WGPUFeatureName * features) WGPU_FUNCTION_ATTRIBUTE;
1834WGPU_EXPORT WGPUBool wgpuDeviceGetLimits(WGPUDevice device, WGPUSupportedLimits * limits) WGPU_FUNCTION_ATTRIBUTE;
1835WGPU_EXPORT WGPUQueue wgpuDeviceGetQueue(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE;
1836WGPU_EXPORT WGPUBool wgpuDeviceHasFeature(WGPUDevice device, WGPUFeatureName feature) WGPU_FUNCTION_ATTRIBUTE;
1837WGPU_EXPORT void wgpuDevicePopErrorScope(WGPUDevice device, WGPUErrorCallback callback, void * userdata) WGPU_FUNCTION_ATTRIBUTE;
1838WGPU_EXPORT void wgpuDevicePushErrorScope(WGPUDevice device, WGPUErrorFilter filter) WGPU_FUNCTION_ATTRIBUTE;
1839WGPU_EXPORT void wgpuDeviceSetLabel(WGPUDevice device, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1840WGPU_EXPORT void wgpuDeviceReference(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE;
1841WGPU_EXPORT void wgpuDeviceRelease(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE;
1852WGPU_EXPORT WGPUSurface wgpuInstanceCreateSurface(WGPUInstance instance, WGPUSurfaceDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1853WGPU_EXPORT WGPUBool wgpuInstanceHasWGSLLanguageFeature(WGPUInstance instance, WGPUWGSLFeatureName feature) WGPU_FUNCTION_ATTRIBUTE;
1854WGPU_EXPORT void wgpuInstanceProcessEvents(WGPUInstance instance) WGPU_FUNCTION_ATTRIBUTE;
1855WGPU_EXPORT void wgpuInstanceRequestAdapter(WGPUInstance instance, WGPU_NULLABLE WGPURequestAdapterOptions const * options, WGPUInstanceRequestAdapterCallback callback, WGPU_NULLABLE void * userdata) WGPU_FUNCTION_ATTRIBUTE;
1856WGPU_EXPORT void wgpuInstanceReference(WGPUInstance instance) WGPU_FUNCTION_ATTRIBUTE;
1857WGPU_EXPORT void wgpuInstanceRelease(WGPUInstance instance) WGPU_FUNCTION_ATTRIBUTE;
1868WGPU_EXPORT void wgpuPipelineLayoutSetLabel(WGPUPipelineLayout pipelineLayout, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1869WGPU_EXPORT void wgpuPipelineLayoutReference(WGPUPipelineLayout pipelineLayout) WGPU_FUNCTION_ATTRIBUTE;
1870WGPU_EXPORT void wgpuPipelineLayoutRelease(WGPUPipelineLayout pipelineLayout) WGPU_FUNCTION_ATTRIBUTE;
1881WGPU_EXPORT void wgpuQuerySetDestroy(WGPUQuerySet querySet) WGPU_FUNCTION_ATTRIBUTE;
1882WGPU_EXPORT uint32_t wgpuQuerySetGetCount(WGPUQuerySet querySet) WGPU_FUNCTION_ATTRIBUTE;
1883WGPU_EXPORT WGPUQueryType wgpuQuerySetGetType(WGPUQuerySet querySet) WGPU_FUNCTION_ATTRIBUTE;
1884WGPU_EXPORT void wgpuQuerySetSetLabel(WGPUQuerySet querySet, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1885WGPU_EXPORT void wgpuQuerySetReference(WGPUQuerySet querySet) WGPU_FUNCTION_ATTRIBUTE;
1886WGPU_EXPORT void wgpuQuerySetRelease(WGPUQuerySet querySet) WGPU_FUNCTION_ATTRIBUTE;
1897WGPU_EXPORT void wgpuQueueOnSubmittedWorkDone(WGPUQueue queue, WGPUQueueOnSubmittedWorkDoneCallback callback, WGPU_NULLABLE void * userdata) WGPU_FUNCTION_ATTRIBUTE;
1898WGPU_EXPORT void wgpuQueueSetLabel(WGPUQueue queue, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1899WGPU_EXPORT void wgpuQueueSubmit(WGPUQueue queue, size_t commandCount, WGPUCommandBuffer const * commands) WGPU_FUNCTION_ATTRIBUTE;
1900WGPU_EXPORT void wgpuQueueWriteBuffer(WGPUQueue queue, WGPUBuffer buffer, uint64_t bufferOffset, void const * data, size_t size) WGPU_FUNCTION_ATTRIBUTE;
1901WGPU_EXPORT void wgpuQueueWriteTexture(WGPUQueue queue, WGPUImageCopyTexture const * destination, void const * data, size_t dataSize, WGPUTextureDataLayout const * dataLayout, WGPUExtent3D const * writeSize) WGPU_FUNCTION_ATTRIBUTE;
1902WGPU_EXPORT void wgpuQueueReference(WGPUQueue queue) WGPU_FUNCTION_ATTRIBUTE;
1903WGPU_EXPORT void wgpuQueueRelease(WGPUQueue queue) WGPU_FUNCTION_ATTRIBUTE;
1914WGPU_EXPORT void wgpuRenderBundleSetLabel(WGPURenderBundle renderBundle, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1915WGPU_EXPORT void wgpuRenderBundleReference(WGPURenderBundle renderBundle) WGPU_FUNCTION_ATTRIBUTE;
1916WGPU_EXPORT void wgpuRenderBundleRelease(WGPURenderBundle renderBundle) WGPU_FUNCTION_ATTRIBUTE;
1927WGPU_EXPORT void wgpuRenderBundleEncoderDraw(WGPURenderBundleEncoder renderBundleEncoder, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) WGPU_FUNCTION_ATTRIBUTE;
1928WGPU_EXPORT void wgpuRenderBundleEncoderDrawIndexed(WGPURenderBundleEncoder renderBundleEncoder, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t baseVertex, uint32_t firstInstance) WGPU_FUNCTION_ATTRIBUTE;
1929WGPU_EXPORT void wgpuRenderBundleEncoderDrawIndexedIndirect(WGPURenderBundleEncoder renderBundleEncoder, WGPUBuffer indirectBuffer, uint64_t indirectOffset) WGPU_FUNCTION_ATTRIBUTE;
1930WGPU_EXPORT void wgpuRenderBundleEncoderDrawIndirect(WGPURenderBundleEncoder renderBundleEncoder, WGPUBuffer indirectBuffer, uint64_t indirectOffset) WGPU_FUNCTION_ATTRIBUTE;
1931WGPU_EXPORT WGPURenderBundle wgpuRenderBundleEncoderFinish(WGPURenderBundleEncoder renderBundleEncoder, WGPU_NULLABLE WGPURenderBundleDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1932WGPU_EXPORT void wgpuRenderBundleEncoderInsertDebugMarker(WGPURenderBundleEncoder renderBundleEncoder, char const * markerLabel) WGPU_FUNCTION_ATTRIBUTE;
1933WGPU_EXPORT void wgpuRenderBundleEncoderPopDebugGroup(WGPURenderBundleEncoder renderBundleEncoder) WGPU_FUNCTION_ATTRIBUTE;
1934WGPU_EXPORT void wgpuRenderBundleEncoderPushDebugGroup(WGPURenderBundleEncoder renderBundleEncoder, char const * groupLabel) WGPU_FUNCTION_ATTRIBUTE;
1935WGPU_EXPORT void wgpuRenderBundleEncoderSetBindGroup(WGPURenderBundleEncoder renderBundleEncoder, uint32_t groupIndex, WGPU_NULLABLE WGPUBindGroup group, size_t dynamicOffsetCount, uint32_t const * dynamicOffsets) WGPU_FUNCTION_ATTRIBUTE;
1936WGPU_EXPORT void wgpuRenderBundleEncoderSetIndexBuffer(WGPURenderBundleEncoder renderBundleEncoder, WGPUBuffer buffer, WGPUIndexFormat format, uint64_t offset, uint64_t size) WGPU_FUNCTION_ATTRIBUTE;
1937WGPU_EXPORT void wgpuRenderBundleEncoderSetLabel(WGPURenderBundleEncoder renderBundleEncoder, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1938WGPU_EXPORT void wgpuRenderBundleEncoderSetPipeline(WGPURenderBundleEncoder renderBundleEncoder, WGPURenderPipeline pipeline) WGPU_FUNCTION_ATTRIBUTE;
1939WGPU_EXPORT void wgpuRenderBundleEncoderSetVertexBuffer(WGPURenderBundleEncoder renderBundleEncoder, uint32_t slot, WGPU_NULLABLE WGPUBuffer buffer, uint64_t offset, uint64_t size) WGPU_FUNCTION_ATTRIBUTE;
1940WGPU_EXPORT void wgpuRenderBundleEncoderReference(WGPURenderBundleEncoder renderBundleEncoder) WGPU_FUNCTION_ATTRIBUTE;
1941WGPU_EXPORT void wgpuRenderBundleEncoderRelease(WGPURenderBundleEncoder renderBundleEncoder) WGPU_FUNCTION_ATTRIBUTE;
1952WGPU_EXPORT void wgpuRenderPassEncoderBeginOcclusionQuery(WGPURenderPassEncoder renderPassEncoder, uint32_t queryIndex) WGPU_FUNCTION_ATTRIBUTE;
1953WGPU_EXPORT void wgpuRenderPassEncoderDraw(WGPURenderPassEncoder renderPassEncoder, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) WGPU_FUNCTION_ATTRIBUTE;
1954WGPU_EXPORT void wgpuRenderPassEncoderDrawIndexed(WGPURenderPassEncoder renderPassEncoder, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t baseVertex, uint32_t firstInstance) WGPU_FUNCTION_ATTRIBUTE;
1955WGPU_EXPORT void wgpuRenderPassEncoderDrawIndexedIndirect(WGPURenderPassEncoder renderPassEncoder, WGPUBuffer indirectBuffer, uint64_t indirectOffset) WGPU_FUNCTION_ATTRIBUTE;
1956WGPU_EXPORT void wgpuRenderPassEncoderDrawIndirect(WGPURenderPassEncoder renderPassEncoder, WGPUBuffer indirectBuffer, uint64_t indirectOffset) WGPU_FUNCTION_ATTRIBUTE;
1957WGPU_EXPORT void wgpuRenderPassEncoderEnd(WGPURenderPassEncoder renderPassEncoder) WGPU_FUNCTION_ATTRIBUTE;
1958WGPU_EXPORT void wgpuRenderPassEncoderEndOcclusionQuery(WGPURenderPassEncoder renderPassEncoder) WGPU_FUNCTION_ATTRIBUTE;
1959WGPU_EXPORT void wgpuRenderPassEncoderExecuteBundles(WGPURenderPassEncoder renderPassEncoder, size_t bundleCount, WGPURenderBundle const * bundles) WGPU_FUNCTION_ATTRIBUTE;
1960WGPU_EXPORT void wgpuRenderPassEncoderInsertDebugMarker(WGPURenderPassEncoder renderPassEncoder, char const * markerLabel) WGPU_FUNCTION_ATTRIBUTE;
1961WGPU_EXPORT void wgpuRenderPassEncoderPopDebugGroup(WGPURenderPassEncoder renderPassEncoder) WGPU_FUNCTION_ATTRIBUTE;
1962WGPU_EXPORT void wgpuRenderPassEncoderPushDebugGroup(WGPURenderPassEncoder renderPassEncoder, char const * groupLabel) WGPU_FUNCTION_ATTRIBUTE;
1963WGPU_EXPORT void wgpuRenderPassEncoderSetBindGroup(WGPURenderPassEncoder renderPassEncoder, uint32_t groupIndex, WGPU_NULLABLE WGPUBindGroup group, size_t dynamicOffsetCount, uint32_t const * dynamicOffsets) WGPU_FUNCTION_ATTRIBUTE;
1964WGPU_EXPORT void wgpuRenderPassEncoderSetBlendConstant(WGPURenderPassEncoder renderPassEncoder, WGPUColor const * color) WGPU_FUNCTION_ATTRIBUTE;
1965WGPU_EXPORT void wgpuRenderPassEncoderSetIndexBuffer(WGPURenderPassEncoder renderPassEncoder, WGPUBuffer buffer, WGPUIndexFormat format, uint64_t offset, uint64_t size) WGPU_FUNCTION_ATTRIBUTE;
1966WGPU_EXPORT void wgpuRenderPassEncoderSetLabel(WGPURenderPassEncoder renderPassEncoder, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1967WGPU_EXPORT void wgpuRenderPassEncoderSetPipeline(WGPURenderPassEncoder renderPassEncoder, WGPURenderPipeline pipeline) WGPU_FUNCTION_ATTRIBUTE;
1968WGPU_EXPORT void wgpuRenderPassEncoderSetScissorRect(WGPURenderPassEncoder renderPassEncoder, uint32_t x, uint32_t y, uint32_t width, uint32_t height) WGPU_FUNCTION_ATTRIBUTE;
1969WGPU_EXPORT void wgpuRenderPassEncoderSetStencilReference(WGPURenderPassEncoder renderPassEncoder, uint32_t reference) WGPU_FUNCTION_ATTRIBUTE;
1970WGPU_EXPORT void wgpuRenderPassEncoderSetVertexBuffer(WGPURenderPassEncoder renderPassEncoder, uint32_t slot, WGPU_NULLABLE WGPUBuffer buffer, uint64_t offset, uint64_t size) WGPU_FUNCTION_ATTRIBUTE;
1971WGPU_EXPORT void wgpuRenderPassEncoderSetViewport(WGPURenderPassEncoder renderPassEncoder, float x, float y, float width, float height, float minDepth, float maxDepth) WGPU_FUNCTION_ATTRIBUTE;
1972WGPU_EXPORT void wgpuRenderPassEncoderReference(WGPURenderPassEncoder renderPassEncoder) WGPU_FUNCTION_ATTRIBUTE;
1973WGPU_EXPORT void wgpuRenderPassEncoderRelease(WGPURenderPassEncoder renderPassEncoder) WGPU_FUNCTION_ATTRIBUTE;
1984WGPU_EXPORT WGPUBindGroupLayout wgpuRenderPipelineGetBindGroupLayout(WGPURenderPipeline renderPipeline, uint32_t groupIndex) WGPU_FUNCTION_ATTRIBUTE;
1985WGPU_EXPORT void wgpuRenderPipelineSetLabel(WGPURenderPipeline renderPipeline, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1986WGPU_EXPORT void wgpuRenderPipelineReference(WGPURenderPipeline renderPipeline) WGPU_FUNCTION_ATTRIBUTE;
1987WGPU_EXPORT void wgpuRenderPipelineRelease(WGPURenderPipeline renderPipeline) WGPU_FUNCTION_ATTRIBUTE;
1998WGPU_EXPORT void wgpuSamplerSetLabel(WGPUSampler sampler, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1999WGPU_EXPORT void wgpuSamplerReference(WGPUSampler sampler) WGPU_FUNCTION_ATTRIBUTE;
2000WGPU_EXPORT void wgpuSamplerRelease(WGPUSampler sampler) WGPU_FUNCTION_ATTRIBUTE;
2011WGPU_EXPORT void wgpuShaderModuleGetCompilationInfo(WGPUShaderModule shaderModule, WGPUShaderModuleGetCompilationInfoCallback callback, WGPU_NULLABLE void * userdata) WGPU_FUNCTION_ATTRIBUTE;
2012WGPU_EXPORT void wgpuShaderModuleSetLabel(WGPUShaderModule shaderModule, char const * label) WGPU_FUNCTION_ATTRIBUTE;
2013WGPU_EXPORT void wgpuShaderModuleReference(WGPUShaderModule shaderModule) WGPU_FUNCTION_ATTRIBUTE;
2014WGPU_EXPORT void wgpuShaderModuleRelease(WGPUShaderModule shaderModule) WGPU_FUNCTION_ATTRIBUTE;
2025WGPU_EXPORT void wgpuSurfaceConfigure(WGPUSurface surface, WGPUSurfaceConfiguration const * config) WGPU_FUNCTION_ATTRIBUTE;
2026WGPU_EXPORT void wgpuSurfaceGetCapabilities(WGPUSurface surface, WGPUAdapter adapter, WGPUSurfaceCapabilities * capabilities) WGPU_FUNCTION_ATTRIBUTE;
2027WGPU_EXPORT void wgpuSurfaceGetCurrentTexture(WGPUSurface surface, WGPUSurfaceTexture * surfaceTexture) WGPU_FUNCTION_ATTRIBUTE;
2028WGPU_EXPORT void wgpuSurfacePresent(WGPUSurface surface) WGPU_FUNCTION_ATTRIBUTE;
2029WGPU_EXPORT void wgpuSurfaceSetLabel(WGPUSurface surface, char const * label) WGPU_FUNCTION_ATTRIBUTE;
2030WGPU_EXPORT void wgpuSurfaceUnconfigure(WGPUSurface surface) WGPU_FUNCTION_ATTRIBUTE;
2031WGPU_EXPORT void wgpuSurfaceReference(WGPUSurface surface) WGPU_FUNCTION_ATTRIBUTE;
2032WGPU_EXPORT void wgpuSurfaceRelease(WGPUSurface surface) WGPU_FUNCTION_ATTRIBUTE;
2043WGPU_EXPORT void wgpuSurfaceCapabilitiesFreeMembers(WGPUSurfaceCapabilities surfaceCapabilities) WGPU_FUNCTION_ATTRIBUTE;
2054WGPU_EXPORT WGPUTextureView wgpuTextureCreateView(WGPUTexture texture, WGPU_NULLABLE WGPUTextureViewDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
2055WGPU_EXPORT void wgpuTextureDestroy(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
2056WGPU_EXPORT uint32_t wgpuTextureGetDepthOrArrayLayers(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
2057WGPU_EXPORT WGPUTextureDimension wgpuTextureGetDimension(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
2058WGPU_EXPORT WGPUTextureFormat wgpuTextureGetFormat(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
2059WGPU_EXPORT uint32_t wgpuTextureGetHeight(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
2060WGPU_EXPORT uint32_t wgpuTextureGetMipLevelCount(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
2061WGPU_EXPORT uint32_t wgpuTextureGetSampleCount(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
2062WGPU_EXPORT WGPUTextureUsageFlags wgpuTextureGetUsage(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
2063WGPU_EXPORT uint32_t wgpuTextureGetWidth(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
2064WGPU_EXPORT void wgpuTextureSetLabel(WGPUTexture texture, char const * label) WGPU_FUNCTION_ATTRIBUTE;
2065WGPU_EXPORT void wgpuTextureReference(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
2066WGPU_EXPORT void wgpuTextureRelease(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
2077WGPU_EXPORT void wgpuTextureViewSetLabel(WGPUTextureView textureView, char const * label) WGPU_FUNCTION_ATTRIBUTE;
2078WGPU_EXPORT void wgpuTextureViewReference(WGPUTextureView textureView) WGPU_FUNCTION_ATTRIBUTE;
2079WGPU_EXPORT void wgpuTextureViewRelease(WGPUTextureView textureView) WGPU_FUNCTION_ATTRIBUTE;
2085#endif // !defined(WGPU_SKIP_DECLARATIONS)
2086
2087#ifdef __cplusplus
2088} // extern "C"
2089#endif
2090
2091#endif // WEBGPU_H_