webgpu/dawn/include/dawn/webgpu.h
   1// BSD 3-Clause License
   2//
   3// Copyright (c) 2019, "WebGPU native" developers
   4// All rights reserved.
   5//
   6// Redistribution and use in source and binary forms, with or without
   7// modification, are permitted provided that the following conditions are met:
   8//
   9// 1. Redistributions of source code must retain the above copyright notice, this
  10//    list of conditions and the following disclaimer.
  11//
  12// 2. Redistributions in binary form must reproduce the above copyright notice,
  13//    this list of conditions and the following disclaimer in the documentation
  14//    and/or other materials provided with the distribution.
  15//
  16// 3. Neither the name of the copyright holder nor the names of its
  17//    contributors may be used to endorse or promote products derived from
  18//    this software without specific prior written permission.
  19//
  20// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  21// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  22// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  23// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
  24// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  25// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  26// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  27// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  28// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  29// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  30#ifdef __EMSCRIPTEN__
  31#error "Do not include this header. Emscripten already provides headers needed for WebGPU."
  32#endif
  33#ifndef WEBGPU_H_
  34#define WEBGPU_H_
  35
  36#if defined(WGPU_SHARED_LIBRARY)
  37#    if defined(_WIN32)
  38#        if defined(WGPU_IMPLEMENTATION)
  39#            define WGPU_EXPORT __declspec(dllexport)
  40#        else
  41#            define WGPU_EXPORT __declspec(dllimport)
  42#        endif
  43#    else  // defined(_WIN32)
  44#        if defined(WGPU_IMPLEMENTATION)
  45#            define WGPU_EXPORT __attribute__((visibility("default")))
  46#        else
  47#            define WGPU_EXPORT
  48#        endif
  49#    endif  // defined(_WIN32)
  50#else       // defined(WGPU_SHARED_LIBRARY)
  51#    define WGPU_EXPORT
  52#endif  // defined(WGPU_SHARED_LIBRARY)
  53
  54#if !defined(WGPU_OBJECT_ATTRIBUTE)
  55#define WGPU_OBJECT_ATTRIBUTE
  56#endif
  57#if !defined(WGPU_ENUM_ATTRIBUTE)
  58#define WGPU_ENUM_ATTRIBUTE
  59#endif
  60#if !defined(WGPU_STRUCTURE_ATTRIBUTE)
  61#define WGPU_STRUCTURE_ATTRIBUTE
  62#endif
  63#if !defined(WGPU_FUNCTION_ATTRIBUTE)
  64#define WGPU_FUNCTION_ATTRIBUTE
  65#endif
  66#if !defined(WGPU_NULLABLE)
  67#define WGPU_NULLABLE
  68#endif
  69
  70#include <stdint.h>
  71#include <stddef.h>
  72
  73#define WGPU_ARRAY_LAYER_COUNT_UNDEFINED (0xffffffffUL)
  74#define WGPU_COPY_STRIDE_UNDEFINED (0xffffffffUL)
  75#define WGPU_LIMIT_U32_UNDEFINED (0xffffffffUL)
  76#define WGPU_LIMIT_U64_UNDEFINED (0xffffffffffffffffULL)
  77#define WGPU_MIP_LEVEL_COUNT_UNDEFINED (0xffffffffUL)
  78#define WGPU_WHOLE_MAP_SIZE SIZE_MAX
  79#define WGPU_WHOLE_SIZE (0xffffffffffffffffULL)
  80
  81typedef uint32_t WGPUFlags;
  82typedef uint32_t WGPUBool;
  83
  84typedef struct WGPUAdapterImpl* WGPUAdapter WGPU_OBJECT_ATTRIBUTE;
  85typedef struct WGPUBindGroupImpl* WGPUBindGroup WGPU_OBJECT_ATTRIBUTE;
  86typedef struct WGPUBindGroupLayoutImpl* WGPUBindGroupLayout WGPU_OBJECT_ATTRIBUTE;
  87typedef struct WGPUBufferImpl* WGPUBuffer WGPU_OBJECT_ATTRIBUTE;
  88typedef struct WGPUCommandBufferImpl* WGPUCommandBuffer WGPU_OBJECT_ATTRIBUTE;
  89typedef struct WGPUCommandEncoderImpl* WGPUCommandEncoder WGPU_OBJECT_ATTRIBUTE;
  90typedef struct WGPUComputePassEncoderImpl* WGPUComputePassEncoder WGPU_OBJECT_ATTRIBUTE;
  91typedef struct WGPUComputePipelineImpl* WGPUComputePipeline WGPU_OBJECT_ATTRIBUTE;
  92typedef struct WGPUDeviceImpl* WGPUDevice WGPU_OBJECT_ATTRIBUTE;
  93typedef struct WGPUExternalTextureImpl* WGPUExternalTexture WGPU_OBJECT_ATTRIBUTE;
  94typedef struct WGPUInstanceImpl* WGPUInstance WGPU_OBJECT_ATTRIBUTE;
  95typedef struct WGPUPipelineLayoutImpl* WGPUPipelineLayout WGPU_OBJECT_ATTRIBUTE;
  96typedef struct WGPUQuerySetImpl* WGPUQuerySet WGPU_OBJECT_ATTRIBUTE;
  97typedef struct WGPUQueueImpl* WGPUQueue WGPU_OBJECT_ATTRIBUTE;
  98typedef struct WGPURenderBundleImpl* WGPURenderBundle WGPU_OBJECT_ATTRIBUTE;
  99typedef struct WGPURenderBundleEncoderImpl* WGPURenderBundleEncoder WGPU_OBJECT_ATTRIBUTE;
 100typedef struct WGPURenderPassEncoderImpl* WGPURenderPassEncoder WGPU_OBJECT_ATTRIBUTE;
 101typedef struct WGPURenderPipelineImpl* WGPURenderPipeline WGPU_OBJECT_ATTRIBUTE;
 102typedef struct WGPUSamplerImpl* WGPUSampler WGPU_OBJECT_ATTRIBUTE;
 103typedef struct WGPUShaderModuleImpl* WGPUShaderModule WGPU_OBJECT_ATTRIBUTE;
 104typedef struct WGPUSharedFenceImpl* WGPUSharedFence WGPU_OBJECT_ATTRIBUTE;
 105typedef struct WGPUSharedTextureMemoryImpl* WGPUSharedTextureMemory WGPU_OBJECT_ATTRIBUTE;
 106typedef struct WGPUSurfaceImpl* WGPUSurface WGPU_OBJECT_ATTRIBUTE;
 107typedef struct WGPUSwapChainImpl* WGPUSwapChain WGPU_OBJECT_ATTRIBUTE;
 108typedef struct WGPUTextureImpl* WGPUTexture WGPU_OBJECT_ATTRIBUTE;
 109typedef struct WGPUTextureViewImpl* WGPUTextureView WGPU_OBJECT_ATTRIBUTE;
 110
 111// Structure forward declarations
 112struct WGPUAdapterProperties;
 113struct WGPUBindGroupEntry;
 114struct WGPUBlendComponent;
 115struct WGPUBufferBindingLayout;
 116struct WGPUBufferDescriptor;
 117struct WGPUColor;
 118struct WGPUCommandBufferDescriptor;
 119struct WGPUCommandEncoderDescriptor;
 120struct WGPUCompilationMessage;
 121struct WGPUComputePassTimestampWrite;
 122struct WGPUConstantEntry;
 123struct WGPUCopyTextureForBrowserOptions;
 124struct WGPUDawnAdapterPropertiesPowerPreference;
 125struct WGPUDawnBufferDescriptorErrorInfoFromWireClient;
 126struct WGPUDawnCacheDeviceDescriptor;
 127struct WGPUDawnEncoderInternalUsageDescriptor;
 128struct WGPUDawnMultisampleStateRenderToSingleSampled;
 129struct WGPUDawnRenderPassColorAttachmentRenderToSingleSampled;
 130struct WGPUDawnShaderModuleSPIRVOptionsDescriptor;
 131struct WGPUDawnTextureInternalUsageDescriptor;
 132struct WGPUDawnTogglesDescriptor;
 133struct WGPUExtent2D;
 134struct WGPUExtent3D;
 135struct WGPUExternalTextureBindingEntry;
 136struct WGPUExternalTextureBindingLayout;
 137struct WGPUInstanceDescriptor;
 138struct WGPULimits;
 139struct WGPUMultisampleState;
 140struct WGPUOrigin2D;
 141struct WGPUOrigin3D;
 142struct WGPUPipelineLayoutDescriptor;
 143struct WGPUPrimitiveDepthClipControl;
 144struct WGPUPrimitiveState;
 145struct WGPUQuerySetDescriptor;
 146struct WGPUQueueDescriptor;
 147struct WGPURenderBundleDescriptor;
 148struct WGPURenderBundleEncoderDescriptor;
 149struct WGPURenderPassDepthStencilAttachment;
 150struct WGPURenderPassDescriptorMaxDrawCount;
 151struct WGPURenderPassTimestampWrite;
 152struct WGPURequestAdapterOptions;
 153struct WGPUSamplerBindingLayout;
 154struct WGPUSamplerDescriptor;
 155struct WGPUShaderModuleDescriptor;
 156struct WGPUShaderModuleSPIRVDescriptor;
 157struct WGPUShaderModuleWGSLDescriptor;
 158struct WGPUSharedFenceDescriptor;
 159struct WGPUSharedFenceDXGISharedHandleDescriptor;
 160struct WGPUSharedFenceDXGISharedHandleExportInfo;
 161struct WGPUSharedFenceExportInfo;
 162struct WGPUSharedFenceMTLSharedEventDescriptor;
 163struct WGPUSharedFenceMTLSharedEventExportInfo;
 164struct WGPUSharedFenceVkSemaphoreOpaqueFDDescriptor;
 165struct WGPUSharedFenceVkSemaphoreOpaqueFDExportInfo;
 166struct WGPUSharedFenceVkSemaphoreSyncFDDescriptor;
 167struct WGPUSharedFenceVkSemaphoreSyncFDExportInfo;
 168struct WGPUSharedFenceVkSemaphoreZirconHandleDescriptor;
 169struct WGPUSharedFenceVkSemaphoreZirconHandleExportInfo;
 170struct WGPUSharedTextureMemoryAHardwareBufferDescriptor;
 171struct WGPUSharedTextureMemoryBeginAccessDescriptor;
 172struct WGPUSharedTextureMemoryDescriptor;
 173struct WGPUSharedTextureMemoryDmaBufDescriptor;
 174struct WGPUSharedTextureMemoryDXGISharedHandleDescriptor;
 175struct WGPUSharedTextureMemoryEGLImageDescriptor;
 176struct WGPUSharedTextureMemoryEndAccessState;
 177struct WGPUSharedTextureMemoryIOSurfaceDescriptor;
 178struct WGPUSharedTextureMemoryOpaqueFDDescriptor;
 179struct WGPUSharedTextureMemoryVkDedicatedAllocationDescriptor;
 180struct WGPUSharedTextureMemoryVkImageLayoutBeginState;
 181struct WGPUSharedTextureMemoryVkImageLayoutEndState;
 182struct WGPUSharedTextureMemoryZirconHandleDescriptor;
 183struct WGPUStencilFaceState;
 184struct WGPUStorageTextureBindingLayout;
 185struct WGPUSurfaceDescriptor;
 186struct WGPUSurfaceDescriptorFromAndroidNativeWindow;
 187struct WGPUSurfaceDescriptorFromCanvasHTMLSelector;
 188struct WGPUSurfaceDescriptorFromMetalLayer;
 189struct WGPUSurfaceDescriptorFromWaylandSurface;
 190struct WGPUSurfaceDescriptorFromWindowsCoreWindow;
 191struct WGPUSurfaceDescriptorFromWindowsHWND;
 192struct WGPUSurfaceDescriptorFromWindowsSwapChainPanel;
 193struct WGPUSurfaceDescriptorFromXlibWindow;
 194struct WGPUSwapChainDescriptor;
 195struct WGPUTextureBindingLayout;
 196struct WGPUTextureDataLayout;
 197struct WGPUTextureViewDescriptor;
 198struct WGPUVertexAttribute;
 199struct WGPUBindGroupDescriptor;
 200struct WGPUBindGroupLayoutEntry;
 201struct WGPUBlendState;
 202struct WGPUCompilationInfo;
 203struct WGPUComputePassDescriptor;
 204struct WGPUDepthStencilState;
 205struct WGPUExternalTextureDescriptor;
 206struct WGPUImageCopyBuffer;
 207struct WGPUImageCopyExternalTexture;
 208struct WGPUImageCopyTexture;
 209struct WGPUProgrammableStageDescriptor;
 210struct WGPURenderPassColorAttachment;
 211struct WGPURequiredLimits;
 212struct WGPUSharedTextureMemoryProperties;
 213struct WGPUSharedTextureMemoryVkImageDescriptor;
 214struct WGPUSupportedLimits;
 215struct WGPUTextureDescriptor;
 216struct WGPUVertexBufferLayout;
 217struct WGPUBindGroupLayoutDescriptor;
 218struct WGPUColorTargetState;
 219struct WGPUComputePipelineDescriptor;
 220struct WGPUDeviceDescriptor;
 221struct WGPURenderPassDescriptor;
 222struct WGPUVertexState;
 223struct WGPUFragmentState;
 224struct WGPURenderPipelineDescriptor;
 225
 226typedef enum WGPUAdapterType {
 227    WGPUAdapterType_DiscreteGPU = 0x00000000,
 228    WGPUAdapterType_IntegratedGPU = 0x00000001,
 229    WGPUAdapterType_CPU = 0x00000002,
 230    WGPUAdapterType_Unknown = 0x00000003,
 231    WGPUAdapterType_Force32 = 0x7FFFFFFF
 232} WGPUAdapterType WGPU_ENUM_ATTRIBUTE;
 233
 234typedef enum WGPUAddressMode {
 235    WGPUAddressMode_Repeat = 0x00000000,
 236    WGPUAddressMode_MirrorRepeat = 0x00000001,
 237    WGPUAddressMode_ClampToEdge = 0x00000002,
 238    WGPUAddressMode_Force32 = 0x7FFFFFFF
 239} WGPUAddressMode WGPU_ENUM_ATTRIBUTE;
 240
 241typedef enum WGPUAlphaMode {
 242    WGPUAlphaMode_Premultiplied = 0x00000000,
 243    WGPUAlphaMode_Unpremultiplied = 0x00000001,
 244    WGPUAlphaMode_Opaque = 0x00000002,
 245    WGPUAlphaMode_Force32 = 0x7FFFFFFF
 246} WGPUAlphaMode WGPU_ENUM_ATTRIBUTE;
 247
 248typedef enum WGPUBackendType {
 249    WGPUBackendType_Undefined = 0x00000000,
 250    WGPUBackendType_Null = 0x00000001,
 251    WGPUBackendType_WebGPU = 0x00000002,
 252    WGPUBackendType_D3D11 = 0x00000003,
 253    WGPUBackendType_D3D12 = 0x00000004,
 254    WGPUBackendType_Metal = 0x00000005,
 255    WGPUBackendType_Vulkan = 0x00000006,
 256    WGPUBackendType_OpenGL = 0x00000007,
 257    WGPUBackendType_OpenGLES = 0x00000008,
 258    WGPUBackendType_Force32 = 0x7FFFFFFF
 259} WGPUBackendType WGPU_ENUM_ATTRIBUTE;
 260
 261typedef enum WGPUBlendFactor {
 262    WGPUBlendFactor_Zero = 0x00000000,
 263    WGPUBlendFactor_One = 0x00000001,
 264    WGPUBlendFactor_Src = 0x00000002,
 265    WGPUBlendFactor_OneMinusSrc = 0x00000003,
 266    WGPUBlendFactor_SrcAlpha = 0x00000004,
 267    WGPUBlendFactor_OneMinusSrcAlpha = 0x00000005,
 268    WGPUBlendFactor_Dst = 0x00000006,
 269    WGPUBlendFactor_OneMinusDst = 0x00000007,
 270    WGPUBlendFactor_DstAlpha = 0x00000008,
 271    WGPUBlendFactor_OneMinusDstAlpha = 0x00000009,
 272    WGPUBlendFactor_SrcAlphaSaturated = 0x0000000A,
 273    WGPUBlendFactor_Constant = 0x0000000B,
 274    WGPUBlendFactor_OneMinusConstant = 0x0000000C,
 275    WGPUBlendFactor_Src1 = 0x0000000D,
 276    WGPUBlendFactor_OneMinusSrc1 = 0x0000000E,
 277    WGPUBlendFactor_Src1Alpha = 0x0000000F,
 278    WGPUBlendFactor_OneMinusSrc1Alpha = 0x00000010,
 279    WGPUBlendFactor_Force32 = 0x7FFFFFFF
 280} WGPUBlendFactor WGPU_ENUM_ATTRIBUTE;
 281
 282typedef enum WGPUBlendOperation {
 283    WGPUBlendOperation_Add = 0x00000000,
 284    WGPUBlendOperation_Subtract = 0x00000001,
 285    WGPUBlendOperation_ReverseSubtract = 0x00000002,
 286    WGPUBlendOperation_Min = 0x00000003,
 287    WGPUBlendOperation_Max = 0x00000004,
 288    WGPUBlendOperation_Force32 = 0x7FFFFFFF
 289} WGPUBlendOperation WGPU_ENUM_ATTRIBUTE;
 290
 291typedef enum WGPUBufferBindingType {
 292    WGPUBufferBindingType_Undefined = 0x00000000,
 293    WGPUBufferBindingType_Uniform = 0x00000001,
 294    WGPUBufferBindingType_Storage = 0x00000002,
 295    WGPUBufferBindingType_ReadOnlyStorage = 0x00000003,
 296    WGPUBufferBindingType_Force32 = 0x7FFFFFFF
 297} WGPUBufferBindingType WGPU_ENUM_ATTRIBUTE;
 298
 299typedef enum WGPUBufferMapAsyncStatus {
 300    WGPUBufferMapAsyncStatus_Success = 0x00000000,
 301    WGPUBufferMapAsyncStatus_ValidationError = 0x00000001,
 302    WGPUBufferMapAsyncStatus_Unknown = 0x00000002,
 303    WGPUBufferMapAsyncStatus_DeviceLost = 0x00000003,
 304    WGPUBufferMapAsyncStatus_DestroyedBeforeCallback = 0x00000004,
 305    WGPUBufferMapAsyncStatus_UnmappedBeforeCallback = 0x00000005,
 306    WGPUBufferMapAsyncStatus_MappingAlreadyPending = 0x00000006,
 307    WGPUBufferMapAsyncStatus_OffsetOutOfRange = 0x00000007,
 308    WGPUBufferMapAsyncStatus_SizeOutOfRange = 0x00000008,
 309    WGPUBufferMapAsyncStatus_Force32 = 0x7FFFFFFF
 310} WGPUBufferMapAsyncStatus WGPU_ENUM_ATTRIBUTE;
 311
 312typedef enum WGPUBufferMapState {
 313    WGPUBufferMapState_Unmapped = 0x00000000,
 314    WGPUBufferMapState_Pending = 0x00000001,
 315    WGPUBufferMapState_Mapped = 0x00000002,
 316    WGPUBufferMapState_Force32 = 0x7FFFFFFF
 317} WGPUBufferMapState WGPU_ENUM_ATTRIBUTE;
 318
 319typedef enum WGPUCompareFunction {
 320    WGPUCompareFunction_Undefined = 0x00000000,
 321    WGPUCompareFunction_Never = 0x00000001,
 322    WGPUCompareFunction_Less = 0x00000002,
 323    WGPUCompareFunction_LessEqual = 0x00000003,
 324    WGPUCompareFunction_Greater = 0x00000004,
 325    WGPUCompareFunction_GreaterEqual = 0x00000005,
 326    WGPUCompareFunction_Equal = 0x00000006,
 327    WGPUCompareFunction_NotEqual = 0x00000007,
 328    WGPUCompareFunction_Always = 0x00000008,
 329    WGPUCompareFunction_Force32 = 0x7FFFFFFF
 330} WGPUCompareFunction WGPU_ENUM_ATTRIBUTE;
 331
 332typedef enum WGPUCompilationInfoRequestStatus {
 333    WGPUCompilationInfoRequestStatus_Success = 0x00000000,
 334    WGPUCompilationInfoRequestStatus_Error = 0x00000001,
 335    WGPUCompilationInfoRequestStatus_DeviceLost = 0x00000002,
 336    WGPUCompilationInfoRequestStatus_Unknown = 0x00000003,
 337    WGPUCompilationInfoRequestStatus_Force32 = 0x7FFFFFFF
 338} WGPUCompilationInfoRequestStatus WGPU_ENUM_ATTRIBUTE;
 339
 340typedef enum WGPUCompilationMessageType {
 341    WGPUCompilationMessageType_Error = 0x00000000,
 342    WGPUCompilationMessageType_Warning = 0x00000001,
 343    WGPUCompilationMessageType_Info = 0x00000002,
 344    WGPUCompilationMessageType_Force32 = 0x7FFFFFFF
 345} WGPUCompilationMessageType WGPU_ENUM_ATTRIBUTE;
 346
 347typedef enum WGPUComputePassTimestampLocation {
 348    WGPUComputePassTimestampLocation_Beginning = 0x00000000,
 349    WGPUComputePassTimestampLocation_End = 0x00000001,
 350    WGPUComputePassTimestampLocation_Force32 = 0x7FFFFFFF
 351} WGPUComputePassTimestampLocation WGPU_ENUM_ATTRIBUTE;
 352
 353typedef enum WGPUCreatePipelineAsyncStatus {
 354    WGPUCreatePipelineAsyncStatus_Success = 0x00000000,
 355    WGPUCreatePipelineAsyncStatus_ValidationError = 0x00000001,
 356    WGPUCreatePipelineAsyncStatus_InternalError = 0x00000002,
 357    WGPUCreatePipelineAsyncStatus_DeviceLost = 0x00000003,
 358    WGPUCreatePipelineAsyncStatus_DeviceDestroyed = 0x00000004,
 359    WGPUCreatePipelineAsyncStatus_Unknown = 0x00000005,
 360    WGPUCreatePipelineAsyncStatus_Force32 = 0x7FFFFFFF
 361} WGPUCreatePipelineAsyncStatus WGPU_ENUM_ATTRIBUTE;
 362
 363typedef enum WGPUCullMode {
 364    WGPUCullMode_None = 0x00000000,
 365    WGPUCullMode_Front = 0x00000001,
 366    WGPUCullMode_Back = 0x00000002,
 367    WGPUCullMode_Force32 = 0x7FFFFFFF
 368} WGPUCullMode WGPU_ENUM_ATTRIBUTE;
 369
 370typedef enum WGPUDeviceLostReason {
 371    WGPUDeviceLostReason_Undefined = 0x00000000,
 372    WGPUDeviceLostReason_Destroyed = 0x00000001,
 373    WGPUDeviceLostReason_Force32 = 0x7FFFFFFF
 374} WGPUDeviceLostReason WGPU_ENUM_ATTRIBUTE;
 375
 376typedef enum WGPUErrorFilter {
 377    WGPUErrorFilter_Validation = 0x00000000,
 378    WGPUErrorFilter_OutOfMemory = 0x00000001,
 379    WGPUErrorFilter_Internal = 0x00000002,
 380    WGPUErrorFilter_Force32 = 0x7FFFFFFF
 381} WGPUErrorFilter WGPU_ENUM_ATTRIBUTE;
 382
 383typedef enum WGPUErrorType {
 384    WGPUErrorType_NoError = 0x00000000,
 385    WGPUErrorType_Validation = 0x00000001,
 386    WGPUErrorType_OutOfMemory = 0x00000002,
 387    WGPUErrorType_Internal = 0x00000003,
 388    WGPUErrorType_Unknown = 0x00000004,
 389    WGPUErrorType_DeviceLost = 0x00000005,
 390    WGPUErrorType_Force32 = 0x7FFFFFFF
 391} WGPUErrorType WGPU_ENUM_ATTRIBUTE;
 392
 393typedef enum WGPUExternalTextureRotation {
 394    WGPUExternalTextureRotation_Rotate0Degrees = 0x00000000,
 395    WGPUExternalTextureRotation_Rotate90Degrees = 0x00000001,
 396    WGPUExternalTextureRotation_Rotate180Degrees = 0x00000002,
 397    WGPUExternalTextureRotation_Rotate270Degrees = 0x00000003,
 398    WGPUExternalTextureRotation_Force32 = 0x7FFFFFFF
 399} WGPUExternalTextureRotation WGPU_ENUM_ATTRIBUTE;
 400
 401typedef enum WGPUFeatureName {
 402    WGPUFeatureName_Undefined = 0x00000000,
 403    WGPUFeatureName_DepthClipControl = 0x00000001,
 404    WGPUFeatureName_Depth32FloatStencil8 = 0x00000002,
 405    WGPUFeatureName_TimestampQuery = 0x00000003,
 406    WGPUFeatureName_PipelineStatisticsQuery = 0x00000004,
 407    WGPUFeatureName_TextureCompressionBC = 0x00000005,
 408    WGPUFeatureName_TextureCompressionETC2 = 0x00000006,
 409    WGPUFeatureName_TextureCompressionASTC = 0x00000007,
 410    WGPUFeatureName_IndirectFirstInstance = 0x00000008,
 411    WGPUFeatureName_ShaderF16 = 0x00000009,
 412    WGPUFeatureName_RG11B10UfloatRenderable = 0x0000000A,
 413    WGPUFeatureName_BGRA8UnormStorage = 0x0000000B,
 414    WGPUFeatureName_Float32Filterable = 0x0000000C,
 415    WGPUFeatureName_DawnInternalUsages = 0x000003EA,
 416    WGPUFeatureName_DawnMultiPlanarFormats = 0x000003EB,
 417    WGPUFeatureName_DawnNative = 0x000003EC,
 418    WGPUFeatureName_ChromiumExperimentalDp4a = 0x000003ED,
 419    WGPUFeatureName_TimestampQueryInsidePasses = 0x000003EE,
 420    WGPUFeatureName_ImplicitDeviceSynchronization = 0x000003EF,
 421    WGPUFeatureName_SurfaceCapabilities = 0x000003F0,
 422    WGPUFeatureName_TransientAttachments = 0x000003F1,
 423    WGPUFeatureName_MSAARenderToSingleSampled = 0x000003F2,
 424    WGPUFeatureName_DualSourceBlending = 0x000003F3,
 425    WGPUFeatureName_D3D11MultithreadProtected = 0x000003F4,
 426    WGPUFeatureName_ANGLETextureSharing = 0x000003F5,
 427    WGPUFeatureName_SharedTextureMemoryVkDedicatedAllocation = 0x0000044C,
 428    WGPUFeatureName_SharedTextureMemoryAHardwareBuffer = 0x0000044D,
 429    WGPUFeatureName_SharedTextureMemoryDmaBuf = 0x0000044E,
 430    WGPUFeatureName_SharedTextureMemoryOpaqueFD = 0x0000044F,
 431    WGPUFeatureName_SharedTextureMemoryZirconHandle = 0x00000450,
 432    WGPUFeatureName_SharedTextureMemoryDXGISharedHandle = 0x00000451,
 433    WGPUFeatureName_SharedTextureMemoryD3D11Texture2D = 0x00000452,
 434    WGPUFeatureName_SharedTextureMemoryIOSurface = 0x00000453,
 435    WGPUFeatureName_SharedTextureMemoryEGLImage = 0x00000454,
 436    WGPUFeatureName_SharedFenceVkSemaphoreOpaqueFD = 0x000004B0,
 437    WGPUFeatureName_SharedFenceVkSemaphoreSyncFD = 0x000004B1,
 438    WGPUFeatureName_SharedFenceVkSemaphoreZirconHandle = 0x000004B2,
 439    WGPUFeatureName_SharedFenceDXGISharedHandle = 0x000004B3,
 440    WGPUFeatureName_SharedFenceMTLSharedEvent = 0x000004B4,
 441    WGPUFeatureName_Force32 = 0x7FFFFFFF
 442} WGPUFeatureName WGPU_ENUM_ATTRIBUTE;
 443
 444typedef enum WGPUFilterMode {
 445    WGPUFilterMode_Nearest = 0x00000000,
 446    WGPUFilterMode_Linear = 0x00000001,
 447    WGPUFilterMode_Force32 = 0x7FFFFFFF
 448} WGPUFilterMode WGPU_ENUM_ATTRIBUTE;
 449
 450typedef enum WGPUFrontFace {
 451    WGPUFrontFace_CCW = 0x00000000,
 452    WGPUFrontFace_CW = 0x00000001,
 453    WGPUFrontFace_Force32 = 0x7FFFFFFF
 454} WGPUFrontFace WGPU_ENUM_ATTRIBUTE;
 455
 456typedef enum WGPUIndexFormat {
 457    WGPUIndexFormat_Undefined = 0x00000000,
 458    WGPUIndexFormat_Uint16 = 0x00000001,
 459    WGPUIndexFormat_Uint32 = 0x00000002,
 460    WGPUIndexFormat_Force32 = 0x7FFFFFFF
 461} WGPUIndexFormat WGPU_ENUM_ATTRIBUTE;
 462
 463typedef enum WGPULoadOp {
 464    WGPULoadOp_Undefined = 0x00000000,
 465    WGPULoadOp_Clear = 0x00000001,
 466    WGPULoadOp_Load = 0x00000002,
 467    WGPULoadOp_Force32 = 0x7FFFFFFF
 468} WGPULoadOp WGPU_ENUM_ATTRIBUTE;
 469
 470typedef enum WGPULoggingType {
 471    WGPULoggingType_Verbose = 0x00000000,
 472    WGPULoggingType_Info = 0x00000001,
 473    WGPULoggingType_Warning = 0x00000002,
 474    WGPULoggingType_Error = 0x00000003,
 475    WGPULoggingType_Force32 = 0x7FFFFFFF
 476} WGPULoggingType WGPU_ENUM_ATTRIBUTE;
 477
 478typedef enum WGPUMipmapFilterMode {
 479    WGPUMipmapFilterMode_Nearest = 0x00000000,
 480    WGPUMipmapFilterMode_Linear = 0x00000001,
 481    WGPUMipmapFilterMode_Force32 = 0x7FFFFFFF
 482} WGPUMipmapFilterMode WGPU_ENUM_ATTRIBUTE;
 483
 484typedef enum WGPUPipelineStatisticName {
 485    WGPUPipelineStatisticName_VertexShaderInvocations = 0x00000000,
 486    WGPUPipelineStatisticName_ClipperInvocations = 0x00000001,
 487    WGPUPipelineStatisticName_ClipperPrimitivesOut = 0x00000002,
 488    WGPUPipelineStatisticName_FragmentShaderInvocations = 0x00000003,
 489    WGPUPipelineStatisticName_ComputeShaderInvocations = 0x00000004,
 490    WGPUPipelineStatisticName_Force32 = 0x7FFFFFFF
 491} WGPUPipelineStatisticName WGPU_ENUM_ATTRIBUTE;
 492
 493typedef enum WGPUPowerPreference {
 494    WGPUPowerPreference_Undefined = 0x00000000,
 495    WGPUPowerPreference_LowPower = 0x00000001,
 496    WGPUPowerPreference_HighPerformance = 0x00000002,
 497    WGPUPowerPreference_Force32 = 0x7FFFFFFF
 498} WGPUPowerPreference WGPU_ENUM_ATTRIBUTE;
 499
 500typedef enum WGPUPresentMode {
 501    WGPUPresentMode_Immediate = 0x00000000,
 502    WGPUPresentMode_Mailbox = 0x00000001,
 503    WGPUPresentMode_Fifo = 0x00000002,
 504    WGPUPresentMode_Force32 = 0x7FFFFFFF
 505} WGPUPresentMode WGPU_ENUM_ATTRIBUTE;
 506
 507typedef enum WGPUPrimitiveTopology {
 508    WGPUPrimitiveTopology_PointList = 0x00000000,
 509    WGPUPrimitiveTopology_LineList = 0x00000001,
 510    WGPUPrimitiveTopology_LineStrip = 0x00000002,
 511    WGPUPrimitiveTopology_TriangleList = 0x00000003,
 512    WGPUPrimitiveTopology_TriangleStrip = 0x00000004,
 513    WGPUPrimitiveTopology_Force32 = 0x7FFFFFFF
 514} WGPUPrimitiveTopology WGPU_ENUM_ATTRIBUTE;
 515
 516typedef enum WGPUQueryType {
 517    WGPUQueryType_Occlusion = 0x00000000,
 518    WGPUQueryType_PipelineStatistics = 0x00000001,
 519    WGPUQueryType_Timestamp = 0x00000002,
 520    WGPUQueryType_Force32 = 0x7FFFFFFF
 521} WGPUQueryType WGPU_ENUM_ATTRIBUTE;
 522
 523typedef enum WGPUQueueWorkDoneStatus {
 524    WGPUQueueWorkDoneStatus_Success = 0x00000000,
 525    WGPUQueueWorkDoneStatus_Error = 0x00000001,
 526    WGPUQueueWorkDoneStatus_Unknown = 0x00000002,
 527    WGPUQueueWorkDoneStatus_DeviceLost = 0x00000003,
 528    WGPUQueueWorkDoneStatus_Force32 = 0x7FFFFFFF
 529} WGPUQueueWorkDoneStatus WGPU_ENUM_ATTRIBUTE;
 530
 531typedef enum WGPURenderPassTimestampLocation {
 532    WGPURenderPassTimestampLocation_Beginning = 0x00000000,
 533    WGPURenderPassTimestampLocation_End = 0x00000001,
 534    WGPURenderPassTimestampLocation_Force32 = 0x7FFFFFFF
 535} WGPURenderPassTimestampLocation WGPU_ENUM_ATTRIBUTE;
 536
 537typedef enum WGPURequestAdapterStatus {
 538    WGPURequestAdapterStatus_Success = 0x00000000,
 539    WGPURequestAdapterStatus_Unavailable = 0x00000001,
 540    WGPURequestAdapterStatus_Error = 0x00000002,
 541    WGPURequestAdapterStatus_Unknown = 0x00000003,
 542    WGPURequestAdapterStatus_Force32 = 0x7FFFFFFF
 543} WGPURequestAdapterStatus WGPU_ENUM_ATTRIBUTE;
 544
 545typedef enum WGPURequestDeviceStatus {
 546    WGPURequestDeviceStatus_Success = 0x00000000,
 547    WGPURequestDeviceStatus_Error = 0x00000001,
 548    WGPURequestDeviceStatus_Unknown = 0x00000002,
 549    WGPURequestDeviceStatus_Force32 = 0x7FFFFFFF
 550} WGPURequestDeviceStatus WGPU_ENUM_ATTRIBUTE;
 551
 552typedef enum WGPUSType {
 553    WGPUSType_Invalid = 0x00000000,
 554    WGPUSType_SurfaceDescriptorFromMetalLayer = 0x00000001,
 555    WGPUSType_SurfaceDescriptorFromWindowsHWND = 0x00000002,
 556    WGPUSType_SurfaceDescriptorFromXlibWindow = 0x00000003,
 557    WGPUSType_SurfaceDescriptorFromCanvasHTMLSelector = 0x00000004,
 558    WGPUSType_ShaderModuleSPIRVDescriptor = 0x00000005,
 559    WGPUSType_ShaderModuleWGSLDescriptor = 0x00000006,
 560    WGPUSType_PrimitiveDepthClipControl = 0x00000007,
 561    WGPUSType_SurfaceDescriptorFromWaylandSurface = 0x00000008,
 562    WGPUSType_SurfaceDescriptorFromAndroidNativeWindow = 0x00000009,
 563    WGPUSType_SurfaceDescriptorFromWindowsCoreWindow = 0x0000000B,
 564    WGPUSType_ExternalTextureBindingEntry = 0x0000000C,
 565    WGPUSType_ExternalTextureBindingLayout = 0x0000000D,
 566    WGPUSType_SurfaceDescriptorFromWindowsSwapChainPanel = 0x0000000E,
 567    WGPUSType_RenderPassDescriptorMaxDrawCount = 0x0000000F,
 568    WGPUSType_DawnTextureInternalUsageDescriptor = 0x000003E8,
 569    WGPUSType_DawnEncoderInternalUsageDescriptor = 0x000003EB,
 570    WGPUSType_DawnInstanceDescriptor = 0x000003EC,
 571    WGPUSType_DawnCacheDeviceDescriptor = 0x000003ED,
 572    WGPUSType_DawnAdapterPropertiesPowerPreference = 0x000003EE,
 573    WGPUSType_DawnBufferDescriptorErrorInfoFromWireClient = 0x000003EF,
 574    WGPUSType_DawnTogglesDescriptor = 0x000003F0,
 575    WGPUSType_DawnShaderModuleSPIRVOptionsDescriptor = 0x000003F1,
 576    WGPUSType_RequestAdapterOptionsLUID = 0x000003F2,
 577    WGPUSType_RequestAdapterOptionsGetGLProc = 0x000003F3,
 578    WGPUSType_DawnMultisampleStateRenderToSingleSampled = 0x000003F4,
 579    WGPUSType_DawnRenderPassColorAttachmentRenderToSingleSampled = 0x000003F5,
 580    WGPUSType_SharedTextureMemoryVkImageDescriptor = 0x0000044C,
 581    WGPUSType_SharedTextureMemoryVkDedicatedAllocationDescriptor = 0x0000044D,
 582    WGPUSType_SharedTextureMemoryAHardwareBufferDescriptor = 0x0000044E,
 583    WGPUSType_SharedTextureMemoryDmaBufDescriptor = 0x0000044F,
 584    WGPUSType_SharedTextureMemoryOpaqueFDDescriptor = 0x00000450,
 585    WGPUSType_SharedTextureMemoryZirconHandleDescriptor = 0x00000451,
 586    WGPUSType_SharedTextureMemoryDXGISharedHandleDescriptor = 0x00000452,
 587    WGPUSType_SharedTextureMemoryD3D11Texture2DDescriptor = 0x00000453,
 588    WGPUSType_SharedTextureMemoryIOSurfaceDescriptor = 0x00000454,
 589    WGPUSType_SharedTextureMemoryEGLImageDescriptor = 0x00000455,
 590    WGPUSType_SharedTextureMemoryInitializedBeginState = 0x000004B0,
 591    WGPUSType_SharedTextureMemoryInitializedEndState = 0x000004B1,
 592    WGPUSType_SharedTextureMemoryVkImageLayoutBeginState = 0x000004B2,
 593    WGPUSType_SharedTextureMemoryVkImageLayoutEndState = 0x000004B3,
 594    WGPUSType_SharedFenceVkSemaphoreOpaqueFDDescriptor = 0x000004B4,
 595    WGPUSType_SharedFenceVkSemaphoreOpaqueFDExportInfo = 0x000004B5,
 596    WGPUSType_SharedFenceVkSemaphoreSyncFDDescriptor = 0x000004B6,
 597    WGPUSType_SharedFenceVkSemaphoreSyncFDExportInfo = 0x000004B7,
 598    WGPUSType_SharedFenceVkSemaphoreZirconHandleDescriptor = 0x000004B8,
 599    WGPUSType_SharedFenceVkSemaphoreZirconHandleExportInfo = 0x000004B9,
 600    WGPUSType_SharedFenceDXGISharedHandleDescriptor = 0x000004BA,
 601    WGPUSType_SharedFenceDXGISharedHandleExportInfo = 0x000004BB,
 602    WGPUSType_SharedFenceMTLSharedEventDescriptor = 0x000004BC,
 603    WGPUSType_SharedFenceMTLSharedEventExportInfo = 0x000004BD,
 604    WGPUSType_Force32 = 0x7FFFFFFF
 605} WGPUSType WGPU_ENUM_ATTRIBUTE;
 606
 607typedef enum WGPUSamplerBindingType {
 608    WGPUSamplerBindingType_Undefined = 0x00000000,
 609    WGPUSamplerBindingType_Filtering = 0x00000001,
 610    WGPUSamplerBindingType_NonFiltering = 0x00000002,
 611    WGPUSamplerBindingType_Comparison = 0x00000003,
 612    WGPUSamplerBindingType_Force32 = 0x7FFFFFFF
 613} WGPUSamplerBindingType WGPU_ENUM_ATTRIBUTE;
 614
 615typedef enum WGPUSharedFenceType {
 616    WGPUSharedFenceType_Undefined = 0x00000000,
 617    WGPUSharedFenceType_VkSemaphoreOpaqueFD = 0x00000001,
 618    WGPUSharedFenceType_VkSemaphoreSyncFD = 0x00000002,
 619    WGPUSharedFenceType_VkSemaphoreZirconHandle = 0x00000003,
 620    WGPUSharedFenceType_DXGISharedHandle = 0x00000004,
 621    WGPUSharedFenceType_MTLSharedEvent = 0x00000005,
 622    WGPUSharedFenceType_Force32 = 0x7FFFFFFF
 623} WGPUSharedFenceType WGPU_ENUM_ATTRIBUTE;
 624
 625typedef enum WGPUStencilOperation {
 626    WGPUStencilOperation_Keep = 0x00000000,
 627    WGPUStencilOperation_Zero = 0x00000001,
 628    WGPUStencilOperation_Replace = 0x00000002,
 629    WGPUStencilOperation_Invert = 0x00000003,
 630    WGPUStencilOperation_IncrementClamp = 0x00000004,
 631    WGPUStencilOperation_DecrementClamp = 0x00000005,
 632    WGPUStencilOperation_IncrementWrap = 0x00000006,
 633    WGPUStencilOperation_DecrementWrap = 0x00000007,
 634    WGPUStencilOperation_Force32 = 0x7FFFFFFF
 635} WGPUStencilOperation WGPU_ENUM_ATTRIBUTE;
 636
 637typedef enum WGPUStorageTextureAccess {
 638    WGPUStorageTextureAccess_Undefined = 0x00000000,
 639    WGPUStorageTextureAccess_WriteOnly = 0x00000001,
 640    WGPUStorageTextureAccess_Force32 = 0x7FFFFFFF
 641} WGPUStorageTextureAccess WGPU_ENUM_ATTRIBUTE;
 642
 643typedef enum WGPUStoreOp {
 644    WGPUStoreOp_Undefined = 0x00000000,
 645    WGPUStoreOp_Store = 0x00000001,
 646    WGPUStoreOp_Discard = 0x00000002,
 647    WGPUStoreOp_Force32 = 0x7FFFFFFF
 648} WGPUStoreOp WGPU_ENUM_ATTRIBUTE;
 649
 650typedef enum WGPUTextureAspect {
 651    WGPUTextureAspect_All = 0x00000000,
 652    WGPUTextureAspect_StencilOnly = 0x00000001,
 653    WGPUTextureAspect_DepthOnly = 0x00000002,
 654    WGPUTextureAspect_Plane0Only = 0x00000003,
 655    WGPUTextureAspect_Plane1Only = 0x00000004,
 656    WGPUTextureAspect_Force32 = 0x7FFFFFFF
 657} WGPUTextureAspect WGPU_ENUM_ATTRIBUTE;
 658
 659typedef enum WGPUTextureDimension {
 660    WGPUTextureDimension_1D = 0x00000000,
 661    WGPUTextureDimension_2D = 0x00000001,
 662    WGPUTextureDimension_3D = 0x00000002,
 663    WGPUTextureDimension_Force32 = 0x7FFFFFFF
 664} WGPUTextureDimension WGPU_ENUM_ATTRIBUTE;
 665
 666typedef enum WGPUTextureFormat {
 667    WGPUTextureFormat_Undefined = 0x00000000,
 668    WGPUTextureFormat_R8Unorm = 0x00000001,
 669    WGPUTextureFormat_R8Snorm = 0x00000002,
 670    WGPUTextureFormat_R8Uint = 0x00000003,
 671    WGPUTextureFormat_R8Sint = 0x00000004,
 672    WGPUTextureFormat_R16Uint = 0x00000005,
 673    WGPUTextureFormat_R16Sint = 0x00000006,
 674    WGPUTextureFormat_R16Float = 0x00000007,
 675    WGPUTextureFormat_RG8Unorm = 0x00000008,
 676    WGPUTextureFormat_RG8Snorm = 0x00000009,
 677    WGPUTextureFormat_RG8Uint = 0x0000000A,
 678    WGPUTextureFormat_RG8Sint = 0x0000000B,
 679    WGPUTextureFormat_R32Float = 0x0000000C,
 680    WGPUTextureFormat_R32Uint = 0x0000000D,
 681    WGPUTextureFormat_R32Sint = 0x0000000E,
 682    WGPUTextureFormat_RG16Uint = 0x0000000F,
 683    WGPUTextureFormat_RG16Sint = 0x00000010,
 684    WGPUTextureFormat_RG16Float = 0x00000011,
 685    WGPUTextureFormat_RGBA8Unorm = 0x00000012,
 686    WGPUTextureFormat_RGBA8UnormSrgb = 0x00000013,
 687    WGPUTextureFormat_RGBA8Snorm = 0x00000014,
 688    WGPUTextureFormat_RGBA8Uint = 0x00000015,
 689    WGPUTextureFormat_RGBA8Sint = 0x00000016,
 690    WGPUTextureFormat_BGRA8Unorm = 0x00000017,
 691    WGPUTextureFormat_BGRA8UnormSrgb = 0x00000018,
 692    WGPUTextureFormat_RGB10A2Unorm = 0x00000019,
 693    WGPUTextureFormat_RG11B10Ufloat = 0x0000001A,
 694    WGPUTextureFormat_RGB9E5Ufloat = 0x0000001B,
 695    WGPUTextureFormat_RG32Float = 0x0000001C,
 696    WGPUTextureFormat_RG32Uint = 0x0000001D,
 697    WGPUTextureFormat_RG32Sint = 0x0000001E,
 698    WGPUTextureFormat_RGBA16Uint = 0x0000001F,
 699    WGPUTextureFormat_RGBA16Sint = 0x00000020,
 700    WGPUTextureFormat_RGBA16Float = 0x00000021,
 701    WGPUTextureFormat_RGBA32Float = 0x00000022,
 702    WGPUTextureFormat_RGBA32Uint = 0x00000023,
 703    WGPUTextureFormat_RGBA32Sint = 0x00000024,
 704    WGPUTextureFormat_Stencil8 = 0x00000025,
 705    WGPUTextureFormat_Depth16Unorm = 0x00000026,
 706    WGPUTextureFormat_Depth24Plus = 0x00000027,
 707    WGPUTextureFormat_Depth24PlusStencil8 = 0x00000028,
 708    WGPUTextureFormat_Depth32Float = 0x00000029,
 709    WGPUTextureFormat_Depth32FloatStencil8 = 0x0000002A,
 710    WGPUTextureFormat_BC1RGBAUnorm = 0x0000002B,
 711    WGPUTextureFormat_BC1RGBAUnormSrgb = 0x0000002C,
 712    WGPUTextureFormat_BC2RGBAUnorm = 0x0000002D,
 713    WGPUTextureFormat_BC2RGBAUnormSrgb = 0x0000002E,
 714    WGPUTextureFormat_BC3RGBAUnorm = 0x0000002F,
 715    WGPUTextureFormat_BC3RGBAUnormSrgb = 0x00000030,
 716    WGPUTextureFormat_BC4RUnorm = 0x00000031,
 717    WGPUTextureFormat_BC4RSnorm = 0x00000032,
 718    WGPUTextureFormat_BC5RGUnorm = 0x00000033,
 719    WGPUTextureFormat_BC5RGSnorm = 0x00000034,
 720    WGPUTextureFormat_BC6HRGBUfloat = 0x00000035,
 721    WGPUTextureFormat_BC6HRGBFloat = 0x00000036,
 722    WGPUTextureFormat_BC7RGBAUnorm = 0x00000037,
 723    WGPUTextureFormat_BC7RGBAUnormSrgb = 0x00000038,
 724    WGPUTextureFormat_ETC2RGB8Unorm = 0x00000039,
 725    WGPUTextureFormat_ETC2RGB8UnormSrgb = 0x0000003A,
 726    WGPUTextureFormat_ETC2RGB8A1Unorm = 0x0000003B,
 727    WGPUTextureFormat_ETC2RGB8A1UnormSrgb = 0x0000003C,
 728    WGPUTextureFormat_ETC2RGBA8Unorm = 0x0000003D,
 729    WGPUTextureFormat_ETC2RGBA8UnormSrgb = 0x0000003E,
 730    WGPUTextureFormat_EACR11Unorm = 0x0000003F,
 731    WGPUTextureFormat_EACR11Snorm = 0x00000040,
 732    WGPUTextureFormat_EACRG11Unorm = 0x00000041,
 733    WGPUTextureFormat_EACRG11Snorm = 0x00000042,
 734    WGPUTextureFormat_ASTC4x4Unorm = 0x00000043,
 735    WGPUTextureFormat_ASTC4x4UnormSrgb = 0x00000044,
 736    WGPUTextureFormat_ASTC5x4Unorm = 0x00000045,
 737    WGPUTextureFormat_ASTC5x4UnormSrgb = 0x00000046,
 738    WGPUTextureFormat_ASTC5x5Unorm = 0x00000047,
 739    WGPUTextureFormat_ASTC5x5UnormSrgb = 0x00000048,
 740    WGPUTextureFormat_ASTC6x5Unorm = 0x00000049,
 741    WGPUTextureFormat_ASTC6x5UnormSrgb = 0x0000004A,
 742    WGPUTextureFormat_ASTC6x6Unorm = 0x0000004B,
 743    WGPUTextureFormat_ASTC6x6UnormSrgb = 0x0000004C,
 744    WGPUTextureFormat_ASTC8x5Unorm = 0x0000004D,
 745    WGPUTextureFormat_ASTC8x5UnormSrgb = 0x0000004E,
 746    WGPUTextureFormat_ASTC8x6Unorm = 0x0000004F,
 747    WGPUTextureFormat_ASTC8x6UnormSrgb = 0x00000050,
 748    WGPUTextureFormat_ASTC8x8Unorm = 0x00000051,
 749    WGPUTextureFormat_ASTC8x8UnormSrgb = 0x00000052,
 750    WGPUTextureFormat_ASTC10x5Unorm = 0x00000053,
 751    WGPUTextureFormat_ASTC10x5UnormSrgb = 0x00000054,
 752    WGPUTextureFormat_ASTC10x6Unorm = 0x00000055,
 753    WGPUTextureFormat_ASTC10x6UnormSrgb = 0x00000056,
 754    WGPUTextureFormat_ASTC10x8Unorm = 0x00000057,
 755    WGPUTextureFormat_ASTC10x8UnormSrgb = 0x00000058,
 756    WGPUTextureFormat_ASTC10x10Unorm = 0x00000059,
 757    WGPUTextureFormat_ASTC10x10UnormSrgb = 0x0000005A,
 758    WGPUTextureFormat_ASTC12x10Unorm = 0x0000005B,
 759    WGPUTextureFormat_ASTC12x10UnormSrgb = 0x0000005C,
 760    WGPUTextureFormat_ASTC12x12Unorm = 0x0000005D,
 761    WGPUTextureFormat_ASTC12x12UnormSrgb = 0x0000005E,
 762    WGPUTextureFormat_R8BG8Biplanar420Unorm = 0x0000005F,
 763    WGPUTextureFormat_Force32 = 0x7FFFFFFF
 764} WGPUTextureFormat WGPU_ENUM_ATTRIBUTE;
 765
 766typedef enum WGPUTextureSampleType {
 767    WGPUTextureSampleType_Undefined = 0x00000000,
 768    WGPUTextureSampleType_Float = 0x00000001,
 769    WGPUTextureSampleType_UnfilterableFloat = 0x00000002,
 770    WGPUTextureSampleType_Depth = 0x00000003,
 771    WGPUTextureSampleType_Sint = 0x00000004,
 772    WGPUTextureSampleType_Uint = 0x00000005,
 773    WGPUTextureSampleType_Force32 = 0x7FFFFFFF
 774} WGPUTextureSampleType WGPU_ENUM_ATTRIBUTE;
 775
 776typedef enum WGPUTextureViewDimension {
 777    WGPUTextureViewDimension_Undefined = 0x00000000,
 778    WGPUTextureViewDimension_1D = 0x00000001,
 779    WGPUTextureViewDimension_2D = 0x00000002,
 780    WGPUTextureViewDimension_2DArray = 0x00000003,
 781    WGPUTextureViewDimension_Cube = 0x00000004,
 782    WGPUTextureViewDimension_CubeArray = 0x00000005,
 783    WGPUTextureViewDimension_3D = 0x00000006,
 784    WGPUTextureViewDimension_Force32 = 0x7FFFFFFF
 785} WGPUTextureViewDimension WGPU_ENUM_ATTRIBUTE;
 786
 787typedef enum WGPUVertexFormat {
 788    WGPUVertexFormat_Undefined = 0x00000000,
 789    WGPUVertexFormat_Uint8x2 = 0x00000001,
 790    WGPUVertexFormat_Uint8x4 = 0x00000002,
 791    WGPUVertexFormat_Sint8x2 = 0x00000003,
 792    WGPUVertexFormat_Sint8x4 = 0x00000004,
 793    WGPUVertexFormat_Unorm8x2 = 0x00000005,
 794    WGPUVertexFormat_Unorm8x4 = 0x00000006,
 795    WGPUVertexFormat_Snorm8x2 = 0x00000007,
 796    WGPUVertexFormat_Snorm8x4 = 0x00000008,
 797    WGPUVertexFormat_Uint16x2 = 0x00000009,
 798    WGPUVertexFormat_Uint16x4 = 0x0000000A,
 799    WGPUVertexFormat_Sint16x2 = 0x0000000B,
 800    WGPUVertexFormat_Sint16x4 = 0x0000000C,
 801    WGPUVertexFormat_Unorm16x2 = 0x0000000D,
 802    WGPUVertexFormat_Unorm16x4 = 0x0000000E,
 803    WGPUVertexFormat_Snorm16x2 = 0x0000000F,
 804    WGPUVertexFormat_Snorm16x4 = 0x00000010,
 805    WGPUVertexFormat_Float16x2 = 0x00000011,
 806    WGPUVertexFormat_Float16x4 = 0x00000012,
 807    WGPUVertexFormat_Float32 = 0x00000013,
 808    WGPUVertexFormat_Float32x2 = 0x00000014,
 809    WGPUVertexFormat_Float32x3 = 0x00000015,
 810    WGPUVertexFormat_Float32x4 = 0x00000016,
 811    WGPUVertexFormat_Uint32 = 0x00000017,
 812    WGPUVertexFormat_Uint32x2 = 0x00000018,
 813    WGPUVertexFormat_Uint32x3 = 0x00000019,
 814    WGPUVertexFormat_Uint32x4 = 0x0000001A,
 815    WGPUVertexFormat_Sint32 = 0x0000001B,
 816    WGPUVertexFormat_Sint32x2 = 0x0000001C,
 817    WGPUVertexFormat_Sint32x3 = 0x0000001D,
 818    WGPUVertexFormat_Sint32x4 = 0x0000001E,
 819    WGPUVertexFormat_Force32 = 0x7FFFFFFF
 820} WGPUVertexFormat WGPU_ENUM_ATTRIBUTE;
 821
 822typedef enum WGPUVertexStepMode {
 823    WGPUVertexStepMode_Vertex = 0x00000000,
 824    WGPUVertexStepMode_Instance = 0x00000001,
 825    WGPUVertexStepMode_VertexBufferNotUsed = 0x00000002,
 826    WGPUVertexStepMode_Force32 = 0x7FFFFFFF
 827} WGPUVertexStepMode WGPU_ENUM_ATTRIBUTE;
 828
 829typedef enum WGPUBufferUsage {
 830    WGPUBufferUsage_None = 0x00000000,
 831    WGPUBufferUsage_MapRead = 0x00000001,
 832    WGPUBufferUsage_MapWrite = 0x00000002,
 833    WGPUBufferUsage_CopySrc = 0x00000004,
 834    WGPUBufferUsage_CopyDst = 0x00000008,
 835    WGPUBufferUsage_Index = 0x00000010,
 836    WGPUBufferUsage_Vertex = 0x00000020,
 837    WGPUBufferUsage_Uniform = 0x00000040,
 838    WGPUBufferUsage_Storage = 0x00000080,
 839    WGPUBufferUsage_Indirect = 0x00000100,
 840    WGPUBufferUsage_QueryResolve = 0x00000200,
 841    WGPUBufferUsage_Force32 = 0x7FFFFFFF
 842} WGPUBufferUsage WGPU_ENUM_ATTRIBUTE;
 843typedef WGPUFlags WGPUBufferUsageFlags WGPU_ENUM_ATTRIBUTE;
 844
 845typedef enum WGPUColorWriteMask {
 846    WGPUColorWriteMask_None = 0x00000000,
 847    WGPUColorWriteMask_Red = 0x00000001,
 848    WGPUColorWriteMask_Green = 0x00000002,
 849    WGPUColorWriteMask_Blue = 0x00000004,
 850    WGPUColorWriteMask_Alpha = 0x00000008,
 851    WGPUColorWriteMask_All = 0x0000000F,
 852    WGPUColorWriteMask_Force32 = 0x7FFFFFFF
 853} WGPUColorWriteMask WGPU_ENUM_ATTRIBUTE;
 854typedef WGPUFlags WGPUColorWriteMaskFlags WGPU_ENUM_ATTRIBUTE;
 855
 856typedef enum WGPUMapMode {
 857    WGPUMapMode_None = 0x00000000,
 858    WGPUMapMode_Read = 0x00000001,
 859    WGPUMapMode_Write = 0x00000002,
 860    WGPUMapMode_Force32 = 0x7FFFFFFF
 861} WGPUMapMode WGPU_ENUM_ATTRIBUTE;
 862typedef WGPUFlags WGPUMapModeFlags WGPU_ENUM_ATTRIBUTE;
 863
 864typedef enum WGPUShaderStage {
 865    WGPUShaderStage_None = 0x00000000,
 866    WGPUShaderStage_Vertex = 0x00000001,
 867    WGPUShaderStage_Fragment = 0x00000002,
 868    WGPUShaderStage_Compute = 0x00000004,
 869    WGPUShaderStage_Force32 = 0x7FFFFFFF
 870} WGPUShaderStage WGPU_ENUM_ATTRIBUTE;
 871typedef WGPUFlags WGPUShaderStageFlags WGPU_ENUM_ATTRIBUTE;
 872
 873typedef enum WGPUTextureUsage {
 874    WGPUTextureUsage_None = 0x00000000,
 875    WGPUTextureUsage_CopySrc = 0x00000001,
 876    WGPUTextureUsage_CopyDst = 0x00000002,
 877    WGPUTextureUsage_TextureBinding = 0x00000004,
 878    WGPUTextureUsage_StorageBinding = 0x00000008,
 879    WGPUTextureUsage_RenderAttachment = 0x00000010,
 880    WGPUTextureUsage_TransientAttachment = 0x00000020,
 881    WGPUTextureUsage_Force32 = 0x7FFFFFFF
 882} WGPUTextureUsage WGPU_ENUM_ATTRIBUTE;
 883typedef WGPUFlags WGPUTextureUsageFlags WGPU_ENUM_ATTRIBUTE;
 884
 885typedef void (*WGPUBufferMapCallback)(WGPUBufferMapAsyncStatus status, void * userdata) WGPU_FUNCTION_ATTRIBUTE;
 886typedef void (*WGPUCompilationInfoCallback)(WGPUCompilationInfoRequestStatus status, struct WGPUCompilationInfo const * compilationInfo, void * userdata) WGPU_FUNCTION_ATTRIBUTE;
 887typedef void (*WGPUCreateComputePipelineAsyncCallback)(WGPUCreatePipelineAsyncStatus status, WGPUComputePipeline pipeline, char const * message, void * userdata) WGPU_FUNCTION_ATTRIBUTE;
 888typedef void (*WGPUCreateRenderPipelineAsyncCallback)(WGPUCreatePipelineAsyncStatus status, WGPURenderPipeline pipeline, char const * message, void * userdata) WGPU_FUNCTION_ATTRIBUTE;
 889typedef void (*WGPUDeviceLostCallback)(WGPUDeviceLostReason reason, char const * message, void * userdata) WGPU_FUNCTION_ATTRIBUTE;
 890typedef void (*WGPUErrorCallback)(WGPUErrorType type, char const * message, void * userdata) WGPU_FUNCTION_ATTRIBUTE;
 891typedef void (*WGPULoggingCallback)(WGPULoggingType type, char const * message, void * userdata) WGPU_FUNCTION_ATTRIBUTE;
 892typedef void (*WGPUProc)(void) WGPU_FUNCTION_ATTRIBUTE;
 893typedef void (*WGPUQueueWorkDoneCallback)(WGPUQueueWorkDoneStatus status, void * userdata) WGPU_FUNCTION_ATTRIBUTE;
 894typedef void (*WGPURequestAdapterCallback)(WGPURequestAdapterStatus status, WGPUAdapter adapter, char const * message, void * userdata) WGPU_FUNCTION_ATTRIBUTE;
 895typedef void (*WGPURequestDeviceCallback)(WGPURequestDeviceStatus status, WGPUDevice device, char const * message, void * userdata) WGPU_FUNCTION_ATTRIBUTE;
 896
 897typedef struct WGPUChainedStruct {
 898    struct WGPUChainedStruct const * next;
 899    WGPUSType sType;
 900} WGPUChainedStruct WGPU_STRUCTURE_ATTRIBUTE;
 901
 902typedef struct WGPUChainedStructOut {
 903    struct WGPUChainedStructOut * next;
 904    WGPUSType sType;
 905} WGPUChainedStructOut WGPU_STRUCTURE_ATTRIBUTE;
 906
 907typedef struct WGPUAdapterProperties {
 908    WGPUChainedStructOut * nextInChain;
 909    uint32_t vendorID;
 910    char const * vendorName;
 911    char const * architecture;
 912    uint32_t deviceID;
 913    char const * name;
 914    char const * driverDescription;
 915    WGPUAdapterType adapterType;
 916    WGPUBackendType backendType;
 917    WGPUBool compatibilityMode;
 918} WGPUAdapterProperties WGPU_STRUCTURE_ATTRIBUTE;
 919
 920typedef struct WGPUBindGroupEntry {
 921    WGPUChainedStruct const * nextInChain;
 922    uint32_t binding;
 923    WGPU_NULLABLE WGPUBuffer buffer;
 924    uint64_t offset;
 925    uint64_t size;
 926    WGPU_NULLABLE WGPUSampler sampler;
 927    WGPU_NULLABLE WGPUTextureView textureView;
 928} WGPUBindGroupEntry WGPU_STRUCTURE_ATTRIBUTE;
 929
 930typedef struct WGPUBlendComponent {
 931    WGPUBlendOperation operation;
 932    WGPUBlendFactor srcFactor;
 933    WGPUBlendFactor dstFactor;
 934} WGPUBlendComponent WGPU_STRUCTURE_ATTRIBUTE;
 935
 936typedef struct WGPUBufferBindingLayout {
 937    WGPUChainedStruct const * nextInChain;
 938    WGPUBufferBindingType type;
 939    WGPUBool hasDynamicOffset;
 940    uint64_t minBindingSize;
 941} WGPUBufferBindingLayout WGPU_STRUCTURE_ATTRIBUTE;
 942
 943typedef struct WGPUBufferDescriptor {
 944    WGPUChainedStruct const * nextInChain;
 945    WGPU_NULLABLE char const * label;
 946    WGPUBufferUsageFlags usage;
 947    uint64_t size;
 948    WGPUBool mappedAtCreation;
 949} WGPUBufferDescriptor WGPU_STRUCTURE_ATTRIBUTE;
 950
 951typedef struct WGPUColor {
 952    double r;
 953    double g;
 954    double b;
 955    double a;
 956} WGPUColor WGPU_STRUCTURE_ATTRIBUTE;
 957
 958typedef struct WGPUCommandBufferDescriptor {
 959    WGPUChainedStruct const * nextInChain;
 960    WGPU_NULLABLE char const * label;
 961} WGPUCommandBufferDescriptor WGPU_STRUCTURE_ATTRIBUTE;
 962
 963typedef struct WGPUCommandEncoderDescriptor {
 964    WGPUChainedStruct const * nextInChain;
 965    WGPU_NULLABLE char const * label;
 966} WGPUCommandEncoderDescriptor WGPU_STRUCTURE_ATTRIBUTE;
 967
 968typedef struct WGPUCompilationMessage {
 969    WGPUChainedStruct const * nextInChain;
 970    WGPU_NULLABLE char const * message;
 971    WGPUCompilationMessageType type;
 972    uint64_t lineNum;
 973    uint64_t linePos;
 974    uint64_t offset;
 975    uint64_t length;
 976    uint64_t utf16LinePos;
 977    uint64_t utf16Offset;
 978    uint64_t utf16Length;
 979} WGPUCompilationMessage WGPU_STRUCTURE_ATTRIBUTE;
 980
 981typedef struct WGPUComputePassTimestampWrite {
 982    WGPUQuerySet querySet;
 983    uint32_t queryIndex;
 984    WGPUComputePassTimestampLocation location;
 985} WGPUComputePassTimestampWrite WGPU_STRUCTURE_ATTRIBUTE;
 986
 987typedef struct WGPUConstantEntry {
 988    WGPUChainedStruct const * nextInChain;
 989    char const * key;
 990    double value;
 991} WGPUConstantEntry WGPU_STRUCTURE_ATTRIBUTE;
 992
 993typedef struct WGPUCopyTextureForBrowserOptions {
 994    WGPUChainedStruct const * nextInChain;
 995    WGPUBool flipY;
 996    WGPUBool needsColorSpaceConversion;
 997    WGPUAlphaMode srcAlphaMode;
 998    WGPU_NULLABLE float const * srcTransferFunctionParameters;
 999    WGPU_NULLABLE float const * conversionMatrix;
1000    WGPU_NULLABLE float const * dstTransferFunctionParameters;
1001    WGPUAlphaMode dstAlphaMode;
1002    WGPUBool internalUsage;
1003} WGPUCopyTextureForBrowserOptions WGPU_STRUCTURE_ATTRIBUTE;
1004
1005// Can be chained in WGPUAdapterProperties
1006typedef struct WGPUDawnAdapterPropertiesPowerPreference {
1007    WGPUChainedStructOut chain;
1008    WGPUPowerPreference powerPreference;
1009} WGPUDawnAdapterPropertiesPowerPreference WGPU_STRUCTURE_ATTRIBUTE;
1010
1011// Can be chained in WGPUBufferDescriptor
1012typedef struct WGPUDawnBufferDescriptorErrorInfoFromWireClient {
1013    WGPUChainedStruct chain;
1014    WGPUBool outOfMemory;
1015} WGPUDawnBufferDescriptorErrorInfoFromWireClient WGPU_STRUCTURE_ATTRIBUTE;
1016
1017// Can be chained in WGPUDeviceDescriptor
1018typedef struct WGPUDawnCacheDeviceDescriptor {
1019    WGPUChainedStruct chain;
1020    char const * isolationKey;
1021} WGPUDawnCacheDeviceDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1022
1023// Can be chained in WGPUCommandEncoderDescriptor
1024typedef struct WGPUDawnEncoderInternalUsageDescriptor {
1025    WGPUChainedStruct chain;
1026    WGPUBool useInternalUsages;
1027} WGPUDawnEncoderInternalUsageDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1028
1029// Can be chained in WGPUMultisampleState
1030typedef struct WGPUDawnMultisampleStateRenderToSingleSampled {
1031    WGPUChainedStruct chain;
1032    WGPUBool enabled;
1033} WGPUDawnMultisampleStateRenderToSingleSampled WGPU_STRUCTURE_ATTRIBUTE;
1034
1035// Can be chained in WGPURenderPassColorAttachment
1036typedef struct WGPUDawnRenderPassColorAttachmentRenderToSingleSampled {
1037    WGPUChainedStruct chain;
1038    uint32_t implicitSampleCount;
1039} WGPUDawnRenderPassColorAttachmentRenderToSingleSampled WGPU_STRUCTURE_ATTRIBUTE;
1040
1041// Can be chained in WGPUShaderModuleDescriptor
1042typedef struct WGPUDawnShaderModuleSPIRVOptionsDescriptor {
1043    WGPUChainedStruct chain;
1044    WGPUBool allowNonUniformDerivatives;
1045} WGPUDawnShaderModuleSPIRVOptionsDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1046
1047// Can be chained in WGPUTextureDescriptor
1048typedef struct WGPUDawnTextureInternalUsageDescriptor {
1049    WGPUChainedStruct chain;
1050    WGPUTextureUsageFlags internalUsage;
1051} WGPUDawnTextureInternalUsageDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1052
1053// Can be chained in WGPUInstanceDescriptor
1054// Can be chained in WGPURequestAdapterOptions
1055// Can be chained in WGPUDeviceDescriptor
1056typedef struct WGPUDawnTogglesDescriptor {
1057    WGPUChainedStruct chain;
1058    size_t enabledTogglesCount;
1059    const char* const * enabledToggles;
1060    size_t disabledTogglesCount;
1061    const char* const * disabledToggles;
1062} WGPUDawnTogglesDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1063
1064typedef struct WGPUExtent2D {
1065    uint32_t width;
1066    uint32_t height;
1067} WGPUExtent2D WGPU_STRUCTURE_ATTRIBUTE;
1068
1069typedef struct WGPUExtent3D {
1070    uint32_t width;
1071    uint32_t height;
1072    uint32_t depthOrArrayLayers;
1073} WGPUExtent3D WGPU_STRUCTURE_ATTRIBUTE;
1074
1075// Can be chained in WGPUBindGroupEntry
1076typedef struct WGPUExternalTextureBindingEntry {
1077    WGPUChainedStruct chain;
1078    WGPUExternalTexture externalTexture;
1079} WGPUExternalTextureBindingEntry WGPU_STRUCTURE_ATTRIBUTE;
1080
1081// Can be chained in WGPUBindGroupLayoutEntry
1082typedef struct WGPUExternalTextureBindingLayout {
1083    WGPUChainedStruct chain;
1084} WGPUExternalTextureBindingLayout WGPU_STRUCTURE_ATTRIBUTE;
1085
1086typedef struct WGPUInstanceDescriptor {
1087    WGPUChainedStruct const * nextInChain;
1088} WGPUInstanceDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1089
1090typedef struct WGPULimits {
1091    uint32_t maxTextureDimension1D;
1092    uint32_t maxTextureDimension2D;
1093    uint32_t maxTextureDimension3D;
1094    uint32_t maxTextureArrayLayers;
1095    uint32_t maxBindGroups;
1096    uint32_t maxBindGroupsPlusVertexBuffers;
1097    uint32_t maxBindingsPerBindGroup;
1098    uint32_t maxDynamicUniformBuffersPerPipelineLayout;
1099    uint32_t maxDynamicStorageBuffersPerPipelineLayout;
1100    uint32_t maxSampledTexturesPerShaderStage;
1101    uint32_t maxSamplersPerShaderStage;
1102    uint32_t maxStorageBuffersPerShaderStage;
1103    uint32_t maxStorageTexturesPerShaderStage;
1104    uint32_t maxUniformBuffersPerShaderStage;
1105    uint64_t maxUniformBufferBindingSize;
1106    uint64_t maxStorageBufferBindingSize;
1107    uint32_t minUniformBufferOffsetAlignment;
1108    uint32_t minStorageBufferOffsetAlignment;
1109    uint32_t maxVertexBuffers;
1110    uint64_t maxBufferSize;
1111    uint32_t maxVertexAttributes;
1112    uint32_t maxVertexBufferArrayStride;
1113    uint32_t maxInterStageShaderComponents;
1114    uint32_t maxInterStageShaderVariables;
1115    uint32_t maxColorAttachments;
1116    uint32_t maxColorAttachmentBytesPerSample;
1117    uint32_t maxComputeWorkgroupStorageSize;
1118    uint32_t maxComputeInvocationsPerWorkgroup;
1119    uint32_t maxComputeWorkgroupSizeX;
1120    uint32_t maxComputeWorkgroupSizeY;
1121    uint32_t maxComputeWorkgroupSizeZ;
1122    uint32_t maxComputeWorkgroupsPerDimension;
1123} WGPULimits WGPU_STRUCTURE_ATTRIBUTE;
1124
1125typedef struct WGPUMultisampleState {
1126    WGPUChainedStruct const * nextInChain;
1127    uint32_t count;
1128    uint32_t mask;
1129    WGPUBool alphaToCoverageEnabled;
1130} WGPUMultisampleState WGPU_STRUCTURE_ATTRIBUTE;
1131
1132typedef struct WGPUOrigin2D {
1133    uint32_t x;
1134    uint32_t y;
1135} WGPUOrigin2D WGPU_STRUCTURE_ATTRIBUTE;
1136
1137typedef struct WGPUOrigin3D {
1138    uint32_t x;
1139    uint32_t y;
1140    uint32_t z;
1141} WGPUOrigin3D WGPU_STRUCTURE_ATTRIBUTE;
1142
1143typedef struct WGPUPipelineLayoutDescriptor {
1144    WGPUChainedStruct const * nextInChain;
1145    WGPU_NULLABLE char const * label;
1146    size_t bindGroupLayoutCount;
1147    WGPUBindGroupLayout const * bindGroupLayouts;
1148} WGPUPipelineLayoutDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1149
1150// Can be chained in WGPUPrimitiveState
1151typedef struct WGPUPrimitiveDepthClipControl {
1152    WGPUChainedStruct chain;
1153    WGPUBool unclippedDepth;
1154} WGPUPrimitiveDepthClipControl WGPU_STRUCTURE_ATTRIBUTE;
1155
1156typedef struct WGPUPrimitiveState {
1157    WGPUChainedStruct const * nextInChain;
1158    WGPUPrimitiveTopology topology;
1159    WGPUIndexFormat stripIndexFormat;
1160    WGPUFrontFace frontFace;
1161    WGPUCullMode cullMode;
1162} WGPUPrimitiveState WGPU_STRUCTURE_ATTRIBUTE;
1163
1164typedef struct WGPUQuerySetDescriptor {
1165    WGPUChainedStruct const * nextInChain;
1166    WGPU_NULLABLE char const * label;
1167    WGPUQueryType type;
1168    uint32_t count;
1169    WGPUPipelineStatisticName const * pipelineStatistics;
1170    size_t pipelineStatisticsCount;
1171} WGPUQuerySetDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1172
1173typedef struct WGPUQueueDescriptor {
1174    WGPUChainedStruct const * nextInChain;
1175    WGPU_NULLABLE char const * label;
1176} WGPUQueueDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1177
1178typedef struct WGPURenderBundleDescriptor {
1179    WGPUChainedStruct const * nextInChain;
1180    WGPU_NULLABLE char const * label;
1181} WGPURenderBundleDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1182
1183typedef struct WGPURenderBundleEncoderDescriptor {
1184    WGPUChainedStruct const * nextInChain;
1185    WGPU_NULLABLE char const * label;
1186    size_t colorFormatsCount;
1187    WGPUTextureFormat const * colorFormats;
1188    WGPUTextureFormat depthStencilFormat;
1189    uint32_t sampleCount;
1190    WGPUBool depthReadOnly;
1191    WGPUBool stencilReadOnly;
1192} WGPURenderBundleEncoderDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1193
1194typedef struct WGPURenderPassDepthStencilAttachment {
1195    WGPUTextureView view;
1196    WGPULoadOp depthLoadOp;
1197    WGPUStoreOp depthStoreOp;
1198    float depthClearValue;
1199    WGPUBool depthReadOnly;
1200    WGPULoadOp stencilLoadOp;
1201    WGPUStoreOp stencilStoreOp;
1202    uint32_t stencilClearValue;
1203    WGPUBool stencilReadOnly;
1204} WGPURenderPassDepthStencilAttachment WGPU_STRUCTURE_ATTRIBUTE;
1205
1206// Can be chained in WGPURenderPassDescriptor
1207typedef struct WGPURenderPassDescriptorMaxDrawCount {
1208    WGPUChainedStruct chain;
1209    uint64_t maxDrawCount;
1210} WGPURenderPassDescriptorMaxDrawCount WGPU_STRUCTURE_ATTRIBUTE;
1211
1212typedef struct WGPURenderPassTimestampWrite {
1213    WGPUQuerySet querySet;
1214    uint32_t queryIndex;
1215    WGPURenderPassTimestampLocation location;
1216} WGPURenderPassTimestampWrite WGPU_STRUCTURE_ATTRIBUTE;
1217
1218typedef struct WGPURequestAdapterOptions {
1219    WGPUChainedStruct const * nextInChain;
1220    WGPU_NULLABLE WGPUSurface compatibleSurface;
1221    WGPUPowerPreference powerPreference;
1222    WGPUBackendType backendType;
1223    WGPUBool forceFallbackAdapter;
1224    WGPUBool compatibilityMode;
1225} WGPURequestAdapterOptions WGPU_STRUCTURE_ATTRIBUTE;
1226
1227typedef struct WGPUSamplerBindingLayout {
1228    WGPUChainedStruct const * nextInChain;
1229    WGPUSamplerBindingType type;
1230} WGPUSamplerBindingLayout WGPU_STRUCTURE_ATTRIBUTE;
1231
1232typedef struct WGPUSamplerDescriptor {
1233    WGPUChainedStruct const * nextInChain;
1234    WGPU_NULLABLE char const * label;
1235    WGPUAddressMode addressModeU;
1236    WGPUAddressMode addressModeV;
1237    WGPUAddressMode addressModeW;
1238    WGPUFilterMode magFilter;
1239    WGPUFilterMode minFilter;
1240    WGPUMipmapFilterMode mipmapFilter;
1241    float lodMinClamp;
1242    float lodMaxClamp;
1243    WGPUCompareFunction compare;
1244    uint16_t maxAnisotropy;
1245} WGPUSamplerDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1246
1247typedef struct WGPUShaderModuleDescriptor {
1248    WGPUChainedStruct const * nextInChain;
1249    WGPU_NULLABLE char const * label;
1250} WGPUShaderModuleDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1251
1252// Can be chained in WGPUShaderModuleDescriptor
1253typedef struct WGPUShaderModuleSPIRVDescriptor {
1254    WGPUChainedStruct chain;
1255    uint32_t codeSize;
1256    uint32_t const * code;
1257} WGPUShaderModuleSPIRVDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1258
1259// Can be chained in WGPUShaderModuleDescriptor
1260typedef struct WGPUShaderModuleWGSLDescriptor {
1261    WGPUChainedStruct chain;
1262    char const * code;
1263} WGPUShaderModuleWGSLDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1264
1265typedef struct WGPUSharedFenceDescriptor {
1266    WGPUChainedStruct const * nextInChain;
1267    WGPU_NULLABLE char const * label;
1268} WGPUSharedFenceDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1269
1270// Can be chained in WGPUSharedFenceDescriptor
1271typedef struct WGPUSharedFenceDXGISharedHandleDescriptor {
1272    WGPUChainedStruct chain;
1273    void * handle;
1274} WGPUSharedFenceDXGISharedHandleDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1275
1276// Can be chained in WGPUSharedFenceExportInfo
1277typedef struct WGPUSharedFenceDXGISharedHandleExportInfo {
1278    WGPUChainedStructOut chain;
1279    void * handle;
1280} WGPUSharedFenceDXGISharedHandleExportInfo WGPU_STRUCTURE_ATTRIBUTE;
1281
1282typedef struct WGPUSharedFenceExportInfo {
1283    WGPUChainedStructOut * nextInChain;
1284    WGPUSharedFenceType type;
1285} WGPUSharedFenceExportInfo WGPU_STRUCTURE_ATTRIBUTE;
1286
1287// Can be chained in WGPUSharedFenceDescriptor
1288typedef struct WGPUSharedFenceMTLSharedEventDescriptor {
1289    WGPUChainedStruct chain;
1290    void * sharedEvent;
1291} WGPUSharedFenceMTLSharedEventDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1292
1293// Can be chained in WGPUSharedFenceExportInfo
1294typedef struct WGPUSharedFenceMTLSharedEventExportInfo {
1295    WGPUChainedStructOut chain;
1296    void * sharedEvent;
1297} WGPUSharedFenceMTLSharedEventExportInfo WGPU_STRUCTURE_ATTRIBUTE;
1298
1299// Can be chained in WGPUSharedFenceDescriptor
1300typedef struct WGPUSharedFenceVkSemaphoreOpaqueFDDescriptor {
1301    WGPUChainedStruct chain;
1302    int handle;
1303} WGPUSharedFenceVkSemaphoreOpaqueFDDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1304
1305// Can be chained in WGPUSharedFenceExportInfo
1306typedef struct WGPUSharedFenceVkSemaphoreOpaqueFDExportInfo {
1307    WGPUChainedStructOut chain;
1308    int handle;
1309} WGPUSharedFenceVkSemaphoreOpaqueFDExportInfo WGPU_STRUCTURE_ATTRIBUTE;
1310
1311// Can be chained in WGPUSharedFenceDescriptor
1312typedef struct WGPUSharedFenceVkSemaphoreSyncFDDescriptor {
1313    WGPUChainedStruct chain;
1314    int handle;
1315} WGPUSharedFenceVkSemaphoreSyncFDDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1316
1317// Can be chained in WGPUSharedFenceExportInfo
1318typedef struct WGPUSharedFenceVkSemaphoreSyncFDExportInfo {
1319    WGPUChainedStructOut chain;
1320    int handle;
1321} WGPUSharedFenceVkSemaphoreSyncFDExportInfo WGPU_STRUCTURE_ATTRIBUTE;
1322
1323// Can be chained in WGPUSharedFenceDescriptor
1324typedef struct WGPUSharedFenceVkSemaphoreZirconHandleDescriptor {
1325    WGPUChainedStruct chain;
1326    uint32_t handle;
1327} WGPUSharedFenceVkSemaphoreZirconHandleDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1328
1329// Can be chained in WGPUSharedFenceExportInfo
1330typedef struct WGPUSharedFenceVkSemaphoreZirconHandleExportInfo {
1331    WGPUChainedStructOut chain;
1332    uint32_t handle;
1333} WGPUSharedFenceVkSemaphoreZirconHandleExportInfo WGPU_STRUCTURE_ATTRIBUTE;
1334
1335// Can be chained in WGPUSharedTextureMemoryDescriptor
1336typedef struct WGPUSharedTextureMemoryAHardwareBufferDescriptor {
1337    WGPUChainedStruct chain;
1338    void * handle;
1339} WGPUSharedTextureMemoryAHardwareBufferDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1340
1341typedef struct WGPUSharedTextureMemoryBeginAccessDescriptor {
1342    WGPUChainedStruct const * nextInChain;
1343    WGPUBool initialized;
1344    size_t fenceCount;
1345    WGPUSharedFence const * fences;
1346    uint64_t const * signaledValues;
1347} WGPUSharedTextureMemoryBeginAccessDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1348
1349typedef struct WGPUSharedTextureMemoryDescriptor {
1350    WGPUChainedStruct const * nextInChain;
1351    WGPU_NULLABLE char const * label;
1352} WGPUSharedTextureMemoryDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1353
1354// Can be chained in WGPUSharedTextureMemoryDescriptor
1355typedef struct WGPUSharedTextureMemoryDmaBufDescriptor {
1356    WGPUChainedStruct chain;
1357    int memoryFD;
1358    uint64_t allocationSize;
1359    uint64_t drmModifier;
1360    size_t planeCount;
1361    uint64_t const * planeOffsets;
1362    uint32_t const * planeStrides;
1363} WGPUSharedTextureMemoryDmaBufDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1364
1365// Can be chained in WGPUSharedTextureMemoryDescriptor
1366typedef struct WGPUSharedTextureMemoryDXGISharedHandleDescriptor {
1367    WGPUChainedStruct chain;
1368    void * handle;
1369} WGPUSharedTextureMemoryDXGISharedHandleDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1370
1371// Can be chained in WGPUSharedTextureMemoryDescriptor
1372typedef struct WGPUSharedTextureMemoryEGLImageDescriptor {
1373    WGPUChainedStruct chain;
1374    void * image;
1375} WGPUSharedTextureMemoryEGLImageDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1376
1377typedef struct WGPUSharedTextureMemoryEndAccessState {
1378    WGPUChainedStructOut * nextInChain;
1379    WGPUBool initialized;
1380    size_t fenceCount;
1381    WGPUSharedFence const * fences;
1382    uint64_t const * signaledValues;
1383} WGPUSharedTextureMemoryEndAccessState WGPU_STRUCTURE_ATTRIBUTE;
1384
1385// Can be chained in WGPUSharedTextureMemoryDescriptor
1386typedef struct WGPUSharedTextureMemoryIOSurfaceDescriptor {
1387    WGPUChainedStruct chain;
1388    void * ioSurface;
1389} WGPUSharedTextureMemoryIOSurfaceDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1390
1391// Can be chained in WGPUSharedTextureMemoryDescriptor
1392typedef struct WGPUSharedTextureMemoryOpaqueFDDescriptor {
1393    WGPUChainedStruct chain;
1394    int memoryFD;
1395    uint64_t allocationSize;
1396} WGPUSharedTextureMemoryOpaqueFDDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1397
1398// Can be chained in WGPUSharedTextureMemoryDescriptor
1399typedef struct WGPUSharedTextureMemoryVkDedicatedAllocationDescriptor {
1400    WGPUChainedStruct chain;
1401    WGPUBool dedicatedAllocation;
1402} WGPUSharedTextureMemoryVkDedicatedAllocationDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1403
1404// Can be chained in WGPUSharedTextureMemoryBeginAccessDescriptor
1405typedef struct WGPUSharedTextureMemoryVkImageLayoutBeginState {
1406    WGPUChainedStruct chain;
1407    int32_t oldLayout;
1408    int32_t newLayout;
1409} WGPUSharedTextureMemoryVkImageLayoutBeginState WGPU_STRUCTURE_ATTRIBUTE;
1410
1411// Can be chained in WGPUSharedTextureMemoryEndAccessState
1412typedef struct WGPUSharedTextureMemoryVkImageLayoutEndState {
1413    WGPUChainedStructOut chain;
1414    int32_t oldLayout;
1415    int32_t newLayout;
1416} WGPUSharedTextureMemoryVkImageLayoutEndState WGPU_STRUCTURE_ATTRIBUTE;
1417
1418// Can be chained in WGPUSharedTextureMemoryDescriptor
1419typedef struct WGPUSharedTextureMemoryZirconHandleDescriptor {
1420    WGPUChainedStruct chain;
1421    uint32_t memoryFD;
1422    uint64_t allocationSize;
1423} WGPUSharedTextureMemoryZirconHandleDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1424
1425typedef struct WGPUStencilFaceState {
1426    WGPUCompareFunction compare;
1427    WGPUStencilOperation failOp;
1428    WGPUStencilOperation depthFailOp;
1429    WGPUStencilOperation passOp;
1430} WGPUStencilFaceState WGPU_STRUCTURE_ATTRIBUTE;
1431
1432typedef struct WGPUStorageTextureBindingLayout {
1433    WGPUChainedStruct const * nextInChain;
1434    WGPUStorageTextureAccess access;
1435    WGPUTextureFormat format;
1436    WGPUTextureViewDimension viewDimension;
1437} WGPUStorageTextureBindingLayout WGPU_STRUCTURE_ATTRIBUTE;
1438
1439typedef struct WGPUSurfaceDescriptor {
1440    WGPUChainedStruct const * nextInChain;
1441    WGPU_NULLABLE char const * label;
1442} WGPUSurfaceDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1443
1444// Can be chained in WGPUSurfaceDescriptor
1445typedef struct WGPUSurfaceDescriptorFromAndroidNativeWindow {
1446    WGPUChainedStruct chain;
1447    void * window;
1448} WGPUSurfaceDescriptorFromAndroidNativeWindow WGPU_STRUCTURE_ATTRIBUTE;
1449
1450// Can be chained in WGPUSurfaceDescriptor
1451typedef struct WGPUSurfaceDescriptorFromCanvasHTMLSelector {
1452    WGPUChainedStruct chain;
1453    char const * selector;
1454} WGPUSurfaceDescriptorFromCanvasHTMLSelector WGPU_STRUCTURE_ATTRIBUTE;
1455
1456// Can be chained in WGPUSurfaceDescriptor
1457typedef struct WGPUSurfaceDescriptorFromMetalLayer {
1458    WGPUChainedStruct chain;
1459    void * layer;
1460} WGPUSurfaceDescriptorFromMetalLayer WGPU_STRUCTURE_ATTRIBUTE;
1461
1462// Can be chained in WGPUSurfaceDescriptor
1463typedef struct WGPUSurfaceDescriptorFromWaylandSurface {
1464    WGPUChainedStruct chain;
1465    void * display;
1466    void * surface;
1467} WGPUSurfaceDescriptorFromWaylandSurface WGPU_STRUCTURE_ATTRIBUTE;
1468
1469// Can be chained in WGPUSurfaceDescriptor
1470typedef struct WGPUSurfaceDescriptorFromWindowsCoreWindow {
1471    WGPUChainedStruct chain;
1472    void * coreWindow;
1473} WGPUSurfaceDescriptorFromWindowsCoreWindow WGPU_STRUCTURE_ATTRIBUTE;
1474
1475// Can be chained in WGPUSurfaceDescriptor
1476typedef struct WGPUSurfaceDescriptorFromWindowsHWND {
1477    WGPUChainedStruct chain;
1478    void * hinstance;
1479    void * hwnd;
1480} WGPUSurfaceDescriptorFromWindowsHWND WGPU_STRUCTURE_ATTRIBUTE;
1481
1482// Can be chained in WGPUSurfaceDescriptor
1483typedef struct WGPUSurfaceDescriptorFromWindowsSwapChainPanel {
1484    WGPUChainedStruct chain;
1485    void * swapChainPanel;
1486} WGPUSurfaceDescriptorFromWindowsSwapChainPanel WGPU_STRUCTURE_ATTRIBUTE;
1487
1488// Can be chained in WGPUSurfaceDescriptor
1489typedef struct WGPUSurfaceDescriptorFromXlibWindow {
1490    WGPUChainedStruct chain;
1491    void * display;
1492    uint32_t window;
1493} WGPUSurfaceDescriptorFromXlibWindow WGPU_STRUCTURE_ATTRIBUTE;
1494
1495typedef struct WGPUSwapChainDescriptor {
1496    WGPUChainedStruct const * nextInChain;
1497    WGPU_NULLABLE char const * label;
1498    WGPUTextureUsageFlags usage;
1499    WGPUTextureFormat format;
1500    uint32_t width;
1501    uint32_t height;
1502    WGPUPresentMode presentMode;
1503} WGPUSwapChainDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1504
1505typedef struct WGPUTextureBindingLayout {
1506    WGPUChainedStruct const * nextInChain;
1507    WGPUTextureSampleType sampleType;
1508    WGPUTextureViewDimension viewDimension;
1509    WGPUBool multisampled;
1510} WGPUTextureBindingLayout WGPU_STRUCTURE_ATTRIBUTE;
1511
1512typedef struct WGPUTextureDataLayout {
1513    WGPUChainedStruct const * nextInChain;
1514    uint64_t offset;
1515    uint32_t bytesPerRow;
1516    uint32_t rowsPerImage;
1517} WGPUTextureDataLayout WGPU_STRUCTURE_ATTRIBUTE;
1518
1519typedef struct WGPUTextureViewDescriptor {
1520    WGPUChainedStruct const * nextInChain;
1521    WGPU_NULLABLE char const * label;
1522    WGPUTextureFormat format;
1523    WGPUTextureViewDimension dimension;
1524    uint32_t baseMipLevel;
1525    uint32_t mipLevelCount;
1526    uint32_t baseArrayLayer;
1527    uint32_t arrayLayerCount;
1528    WGPUTextureAspect aspect;
1529} WGPUTextureViewDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1530
1531typedef struct WGPUVertexAttribute {
1532    WGPUVertexFormat format;
1533    uint64_t offset;
1534    uint32_t shaderLocation;
1535} WGPUVertexAttribute WGPU_STRUCTURE_ATTRIBUTE;
1536
1537typedef struct WGPUBindGroupDescriptor {
1538    WGPUChainedStruct const * nextInChain;
1539    WGPU_NULLABLE char const * label;
1540    WGPUBindGroupLayout layout;
1541    size_t entryCount;
1542    WGPUBindGroupEntry const * entries;
1543} WGPUBindGroupDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1544
1545typedef struct WGPUBindGroupLayoutEntry {
1546    WGPUChainedStruct const * nextInChain;
1547    uint32_t binding;
1548    WGPUShaderStageFlags visibility;
1549    WGPUBufferBindingLayout buffer;
1550    WGPUSamplerBindingLayout sampler;
1551    WGPUTextureBindingLayout texture;
1552    WGPUStorageTextureBindingLayout storageTexture;
1553} WGPUBindGroupLayoutEntry WGPU_STRUCTURE_ATTRIBUTE;
1554
1555typedef struct WGPUBlendState {
1556    WGPUBlendComponent color;
1557    WGPUBlendComponent alpha;
1558} WGPUBlendState WGPU_STRUCTURE_ATTRIBUTE;
1559
1560typedef struct WGPUCompilationInfo {
1561    WGPUChainedStruct const * nextInChain;
1562    size_t messageCount;
1563    WGPUCompilationMessage const * messages;
1564} WGPUCompilationInfo WGPU_STRUCTURE_ATTRIBUTE;
1565
1566typedef struct WGPUComputePassDescriptor {
1567    WGPUChainedStruct const * nextInChain;
1568    WGPU_NULLABLE char const * label;
1569    size_t timestampWriteCount;
1570    WGPUComputePassTimestampWrite const * timestampWrites;
1571} WGPUComputePassDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1572
1573typedef struct WGPUDepthStencilState {
1574    WGPUChainedStruct const * nextInChain;
1575    WGPUTextureFormat format;
1576    WGPUBool depthWriteEnabled;
1577    WGPUCompareFunction depthCompare;
1578    WGPUStencilFaceState stencilFront;
1579    WGPUStencilFaceState stencilBack;
1580    uint32_t stencilReadMask;
1581    uint32_t stencilWriteMask;
1582    int32_t depthBias;
1583    float depthBiasSlopeScale;
1584    float depthBiasClamp;
1585} WGPUDepthStencilState WGPU_STRUCTURE_ATTRIBUTE;
1586
1587typedef struct WGPUExternalTextureDescriptor {
1588    WGPUChainedStruct const * nextInChain;
1589    WGPU_NULLABLE char const * label;
1590    WGPUTextureView plane0;
1591    WGPU_NULLABLE WGPUTextureView plane1;
1592    WGPUOrigin2D visibleOrigin;
1593    WGPUExtent2D visibleSize;
1594    WGPUBool doYuvToRgbConversionOnly;
1595    WGPU_NULLABLE float const * yuvToRgbConversionMatrix;
1596    float const * srcTransferFunctionParameters;
1597    float const * dstTransferFunctionParameters;
1598    float const * gamutConversionMatrix;
1599    WGPUBool flipY;
1600    WGPUExternalTextureRotation rotation;
1601} WGPUExternalTextureDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1602
1603typedef struct WGPUImageCopyBuffer {
1604    WGPUChainedStruct const * nextInChain;
1605    WGPUTextureDataLayout layout;
1606    WGPUBuffer buffer;
1607} WGPUImageCopyBuffer WGPU_STRUCTURE_ATTRIBUTE;
1608
1609typedef struct WGPUImageCopyExternalTexture {
1610    WGPUChainedStruct const * nextInChain;
1611    WGPUExternalTexture externalTexture;
1612    WGPUOrigin3D origin;
1613    WGPUExtent2D naturalSize;
1614} WGPUImageCopyExternalTexture WGPU_STRUCTURE_ATTRIBUTE;
1615
1616typedef struct WGPUImageCopyTexture {
1617    WGPUChainedStruct const * nextInChain;
1618    WGPUTexture texture;
1619    uint32_t mipLevel;
1620    WGPUOrigin3D origin;
1621    WGPUTextureAspect aspect;
1622} WGPUImageCopyTexture WGPU_STRUCTURE_ATTRIBUTE;
1623
1624typedef struct WGPUProgrammableStageDescriptor {
1625    WGPUChainedStruct const * nextInChain;
1626    WGPUShaderModule module;
1627    char const * entryPoint;
1628    size_t constantCount;
1629    WGPUConstantEntry const * constants;
1630} WGPUProgrammableStageDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1631
1632typedef struct WGPURenderPassColorAttachment {
1633    WGPUChainedStruct const * nextInChain;
1634    WGPU_NULLABLE WGPUTextureView view;
1635    WGPU_NULLABLE WGPUTextureView resolveTarget;
1636    WGPULoadOp loadOp;
1637    WGPUStoreOp storeOp;
1638    WGPUColor clearValue;
1639} WGPURenderPassColorAttachment WGPU_STRUCTURE_ATTRIBUTE;
1640
1641typedef struct WGPURequiredLimits {
1642    WGPUChainedStruct const * nextInChain;
1643    WGPULimits limits;
1644} WGPURequiredLimits WGPU_STRUCTURE_ATTRIBUTE;
1645
1646typedef struct WGPUSharedTextureMemoryProperties {
1647    WGPUChainedStructOut * nextInChain;
1648    WGPUTextureUsageFlags usage;
1649    WGPUExtent3D size;
1650    WGPUTextureFormat format;
1651} WGPUSharedTextureMemoryProperties WGPU_STRUCTURE_ATTRIBUTE;
1652
1653// Can be chained in WGPUSharedTextureMemoryDescriptor
1654typedef struct WGPUSharedTextureMemoryVkImageDescriptor {
1655    WGPUChainedStruct chain;
1656    int32_t vkFormat;
1657    int32_t vkUsageFlags;
1658    WGPUExtent3D vkExtent3D;
1659} WGPUSharedTextureMemoryVkImageDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1660
1661typedef struct WGPUSupportedLimits {
1662    WGPUChainedStructOut * nextInChain;
1663    WGPULimits limits;
1664} WGPUSupportedLimits WGPU_STRUCTURE_ATTRIBUTE;
1665
1666typedef struct WGPUTextureDescriptor {
1667    WGPUChainedStruct const * nextInChain;
1668    WGPU_NULLABLE char const * label;
1669    WGPUTextureUsageFlags usage;
1670    WGPUTextureDimension dimension;
1671    WGPUExtent3D size;
1672    WGPUTextureFormat format;
1673    uint32_t mipLevelCount;
1674    uint32_t sampleCount;
1675    size_t viewFormatCount;
1676    WGPUTextureFormat const * viewFormats;
1677} WGPUTextureDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1678
1679typedef struct WGPUVertexBufferLayout {
1680    uint64_t arrayStride;
1681    WGPUVertexStepMode stepMode;
1682    size_t attributeCount;
1683    WGPUVertexAttribute const * attributes;
1684} WGPUVertexBufferLayout WGPU_STRUCTURE_ATTRIBUTE;
1685
1686typedef struct WGPUBindGroupLayoutDescriptor {
1687    WGPUChainedStruct const * nextInChain;
1688    WGPU_NULLABLE char const * label;
1689    size_t entryCount;
1690    WGPUBindGroupLayoutEntry const * entries;
1691} WGPUBindGroupLayoutDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1692
1693typedef struct WGPUColorTargetState {
1694    WGPUChainedStruct const * nextInChain;
1695    WGPUTextureFormat format;
1696    WGPU_NULLABLE WGPUBlendState const * blend;
1697    WGPUColorWriteMaskFlags writeMask;
1698} WGPUColorTargetState WGPU_STRUCTURE_ATTRIBUTE;
1699
1700typedef struct WGPUComputePipelineDescriptor {
1701    WGPUChainedStruct const * nextInChain;
1702    WGPU_NULLABLE char const * label;
1703    WGPU_NULLABLE WGPUPipelineLayout layout;
1704    WGPUProgrammableStageDescriptor compute;
1705} WGPUComputePipelineDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1706
1707typedef struct WGPUDeviceDescriptor {
1708    WGPUChainedStruct const * nextInChain;
1709    WGPU_NULLABLE char const * label;
1710    size_t requiredFeaturesCount;
1711    WGPUFeatureName const * requiredFeatures;
1712    WGPU_NULLABLE WGPURequiredLimits const * requiredLimits;
1713    WGPUQueueDescriptor defaultQueue;
1714    WGPUDeviceLostCallback deviceLostCallback;
1715    void * deviceLostUserdata;
1716} WGPUDeviceDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1717
1718typedef struct WGPURenderPassDescriptor {
1719    WGPUChainedStruct const * nextInChain;
1720    WGPU_NULLABLE char const * label;
1721    size_t colorAttachmentCount;
1722    WGPURenderPassColorAttachment const * colorAttachments;
1723    WGPU_NULLABLE WGPURenderPassDepthStencilAttachment const * depthStencilAttachment;
1724    WGPU_NULLABLE WGPUQuerySet occlusionQuerySet;
1725    size_t timestampWriteCount;
1726    WGPURenderPassTimestampWrite const * timestampWrites;
1727} WGPURenderPassDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1728
1729typedef struct WGPUVertexState {
1730    WGPUChainedStruct const * nextInChain;
1731    WGPUShaderModule module;
1732    char const * entryPoint;
1733    size_t constantCount;
1734    WGPUConstantEntry const * constants;
1735    size_t bufferCount;
1736    WGPUVertexBufferLayout const * buffers;
1737} WGPUVertexState WGPU_STRUCTURE_ATTRIBUTE;
1738
1739typedef struct WGPUFragmentState {
1740    WGPUChainedStruct const * nextInChain;
1741    WGPUShaderModule module;
1742    char const * entryPoint;
1743    size_t constantCount;
1744    WGPUConstantEntry const * constants;
1745    size_t targetCount;
1746    WGPUColorTargetState const * targets;
1747} WGPUFragmentState WGPU_STRUCTURE_ATTRIBUTE;
1748
1749typedef struct WGPURenderPipelineDescriptor {
1750    WGPUChainedStruct const * nextInChain;
1751    WGPU_NULLABLE char const * label;
1752    WGPU_NULLABLE WGPUPipelineLayout layout;
1753    WGPUVertexState vertex;
1754    WGPUPrimitiveState primitive;
1755    WGPU_NULLABLE WGPUDepthStencilState const * depthStencil;
1756    WGPUMultisampleState multisample;
1757    WGPU_NULLABLE WGPUFragmentState const * fragment;
1758} WGPURenderPipelineDescriptor WGPU_STRUCTURE_ATTRIBUTE;
1759
1760#ifdef __cplusplus
1761extern "C" {
1762#endif
1763
1764#if !defined(WGPU_SKIP_PROCS)
1765
1766typedef void (*WGPUProcAdapterPropertiesFreeMembers)(WGPUAdapterProperties value) WGPU_FUNCTION_ATTRIBUTE;
1767typedef WGPUInstance (*WGPUProcCreateInstance)(WGPUInstanceDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1768typedef WGPUProc (*WGPUProcGetProcAddress)(WGPUDevice device, char const * procName) WGPU_FUNCTION_ATTRIBUTE;
1769typedef void (*WGPUProcSharedTextureMemoryEndAccessStateFreeMembers)(WGPUSharedTextureMemoryEndAccessState value) WGPU_FUNCTION_ATTRIBUTE;
1770
1771// Procs of Adapter
1772typedef WGPUDevice (*WGPUProcAdapterCreateDevice)(WGPUAdapter adapter, WGPU_NULLABLE WGPUDeviceDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1773typedef size_t (*WGPUProcAdapterEnumerateFeatures)(WGPUAdapter adapter, WGPUFeatureName * features) WGPU_FUNCTION_ATTRIBUTE;
1774typedef WGPUInstance (*WGPUProcAdapterGetInstance)(WGPUAdapter adapter) WGPU_FUNCTION_ATTRIBUTE;
1775typedef WGPUBool (*WGPUProcAdapterGetLimits)(WGPUAdapter adapter, WGPUSupportedLimits * limits) WGPU_FUNCTION_ATTRIBUTE;
1776typedef void (*WGPUProcAdapterGetProperties)(WGPUAdapter adapter, WGPUAdapterProperties * properties) WGPU_FUNCTION_ATTRIBUTE;
1777typedef WGPUBool (*WGPUProcAdapterHasFeature)(WGPUAdapter adapter, WGPUFeatureName feature) WGPU_FUNCTION_ATTRIBUTE;
1778typedef void (*WGPUProcAdapterRequestDevice)(WGPUAdapter adapter, WGPU_NULLABLE WGPUDeviceDescriptor const * descriptor, WGPURequestDeviceCallback callback, void * userdata) WGPU_FUNCTION_ATTRIBUTE;
1779typedef void (*WGPUProcAdapterReference)(WGPUAdapter adapter) WGPU_FUNCTION_ATTRIBUTE;
1780typedef void (*WGPUProcAdapterRelease)(WGPUAdapter adapter) WGPU_FUNCTION_ATTRIBUTE;
1781
1782// Procs of BindGroup
1783typedef void (*WGPUProcBindGroupSetLabel)(WGPUBindGroup bindGroup, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1784typedef void (*WGPUProcBindGroupReference)(WGPUBindGroup bindGroup) WGPU_FUNCTION_ATTRIBUTE;
1785typedef void (*WGPUProcBindGroupRelease)(WGPUBindGroup bindGroup) WGPU_FUNCTION_ATTRIBUTE;
1786
1787// Procs of BindGroupLayout
1788typedef void (*WGPUProcBindGroupLayoutSetLabel)(WGPUBindGroupLayout bindGroupLayout, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1789typedef void (*WGPUProcBindGroupLayoutReference)(WGPUBindGroupLayout bindGroupLayout) WGPU_FUNCTION_ATTRIBUTE;
1790typedef void (*WGPUProcBindGroupLayoutRelease)(WGPUBindGroupLayout bindGroupLayout) WGPU_FUNCTION_ATTRIBUTE;
1791
1792// Procs of Buffer
1793typedef void (*WGPUProcBufferDestroy)(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE;
1794typedef void const * (*WGPUProcBufferGetConstMappedRange)(WGPUBuffer buffer, size_t offset, size_t size) WGPU_FUNCTION_ATTRIBUTE;
1795typedef WGPUBufferMapState (*WGPUProcBufferGetMapState)(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE;
1796typedef void * (*WGPUProcBufferGetMappedRange)(WGPUBuffer buffer, size_t offset, size_t size) WGPU_FUNCTION_ATTRIBUTE;
1797typedef uint64_t (*WGPUProcBufferGetSize)(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE;
1798typedef WGPUBufferUsageFlags (*WGPUProcBufferGetUsage)(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE;
1799typedef void (*WGPUProcBufferMapAsync)(WGPUBuffer buffer, WGPUMapModeFlags mode, size_t offset, size_t size, WGPUBufferMapCallback callback, void * userdata) WGPU_FUNCTION_ATTRIBUTE;
1800typedef void (*WGPUProcBufferSetLabel)(WGPUBuffer buffer, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1801typedef void (*WGPUProcBufferUnmap)(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE;
1802typedef void (*WGPUProcBufferReference)(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE;
1803typedef void (*WGPUProcBufferRelease)(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE;
1804
1805// Procs of CommandBuffer
1806typedef void (*WGPUProcCommandBufferSetLabel)(WGPUCommandBuffer commandBuffer, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1807typedef void (*WGPUProcCommandBufferReference)(WGPUCommandBuffer commandBuffer) WGPU_FUNCTION_ATTRIBUTE;
1808typedef void (*WGPUProcCommandBufferRelease)(WGPUCommandBuffer commandBuffer) WGPU_FUNCTION_ATTRIBUTE;
1809
1810// Procs of CommandEncoder
1811typedef WGPUComputePassEncoder (*WGPUProcCommandEncoderBeginComputePass)(WGPUCommandEncoder commandEncoder, WGPU_NULLABLE WGPUComputePassDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1812typedef WGPURenderPassEncoder (*WGPUProcCommandEncoderBeginRenderPass)(WGPUCommandEncoder commandEncoder, WGPURenderPassDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1813typedef void (*WGPUProcCommandEncoderClearBuffer)(WGPUCommandEncoder commandEncoder, WGPUBuffer buffer, uint64_t offset, uint64_t size) WGPU_FUNCTION_ATTRIBUTE;
1814typedef void (*WGPUProcCommandEncoderCopyBufferToBuffer)(WGPUCommandEncoder commandEncoder, WGPUBuffer source, uint64_t sourceOffset, WGPUBuffer destination, uint64_t destinationOffset, uint64_t size) WGPU_FUNCTION_ATTRIBUTE;
1815typedef void (*WGPUProcCommandEncoderCopyBufferToTexture)(WGPUCommandEncoder commandEncoder, WGPUImageCopyBuffer const * source, WGPUImageCopyTexture const * destination, WGPUExtent3D const * copySize) WGPU_FUNCTION_ATTRIBUTE;
1816typedef void (*WGPUProcCommandEncoderCopyTextureToBuffer)(WGPUCommandEncoder commandEncoder, WGPUImageCopyTexture const * source, WGPUImageCopyBuffer const * destination, WGPUExtent3D const * copySize) WGPU_FUNCTION_ATTRIBUTE;
1817typedef void (*WGPUProcCommandEncoderCopyTextureToTexture)(WGPUCommandEncoder commandEncoder, WGPUImageCopyTexture const * source, WGPUImageCopyTexture const * destination, WGPUExtent3D const * copySize) WGPU_FUNCTION_ATTRIBUTE;
1818typedef WGPUCommandBuffer (*WGPUProcCommandEncoderFinish)(WGPUCommandEncoder commandEncoder, WGPU_NULLABLE WGPUCommandBufferDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1819typedef void (*WGPUProcCommandEncoderInjectValidationError)(WGPUCommandEncoder commandEncoder, char const * message) WGPU_FUNCTION_ATTRIBUTE;
1820typedef void (*WGPUProcCommandEncoderInsertDebugMarker)(WGPUCommandEncoder commandEncoder, char const * markerLabel) WGPU_FUNCTION_ATTRIBUTE;
1821typedef void (*WGPUProcCommandEncoderPopDebugGroup)(WGPUCommandEncoder commandEncoder) WGPU_FUNCTION_ATTRIBUTE;
1822typedef void (*WGPUProcCommandEncoderPushDebugGroup)(WGPUCommandEncoder commandEncoder, char const * groupLabel) WGPU_FUNCTION_ATTRIBUTE;
1823typedef void (*WGPUProcCommandEncoderResolveQuerySet)(WGPUCommandEncoder commandEncoder, WGPUQuerySet querySet, uint32_t firstQuery, uint32_t queryCount, WGPUBuffer destination, uint64_t destinationOffset) WGPU_FUNCTION_ATTRIBUTE;
1824typedef void (*WGPUProcCommandEncoderSetLabel)(WGPUCommandEncoder commandEncoder, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1825typedef void (*WGPUProcCommandEncoderWriteBuffer)(WGPUCommandEncoder commandEncoder, WGPUBuffer buffer, uint64_t bufferOffset, uint8_t const * data, uint64_t size) WGPU_FUNCTION_ATTRIBUTE;
1826typedef void (*WGPUProcCommandEncoderWriteTimestamp)(WGPUCommandEncoder commandEncoder, WGPUQuerySet querySet, uint32_t queryIndex) WGPU_FUNCTION_ATTRIBUTE;
1827typedef void (*WGPUProcCommandEncoderReference)(WGPUCommandEncoder commandEncoder) WGPU_FUNCTION_ATTRIBUTE;
1828typedef void (*WGPUProcCommandEncoderRelease)(WGPUCommandEncoder commandEncoder) WGPU_FUNCTION_ATTRIBUTE;
1829
1830// Procs of ComputePassEncoder
1831typedef void (*WGPUProcComputePassEncoderDispatchWorkgroups)(WGPUComputePassEncoder computePassEncoder, uint32_t workgroupCountX, uint32_t workgroupCountY, uint32_t workgroupCountZ) WGPU_FUNCTION_ATTRIBUTE;
1832typedef void (*WGPUProcComputePassEncoderDispatchWorkgroupsIndirect)(WGPUComputePassEncoder computePassEncoder, WGPUBuffer indirectBuffer, uint64_t indirectOffset) WGPU_FUNCTION_ATTRIBUTE;
1833typedef void (*WGPUProcComputePassEncoderEnd)(WGPUComputePassEncoder computePassEncoder) WGPU_FUNCTION_ATTRIBUTE;
1834typedef void (*WGPUProcComputePassEncoderInsertDebugMarker)(WGPUComputePassEncoder computePassEncoder, char const * markerLabel) WGPU_FUNCTION_ATTRIBUTE;
1835typedef void (*WGPUProcComputePassEncoderPopDebugGroup)(WGPUComputePassEncoder computePassEncoder) WGPU_FUNCTION_ATTRIBUTE;
1836typedef void (*WGPUProcComputePassEncoderPushDebugGroup)(WGPUComputePassEncoder computePassEncoder, char const * groupLabel) WGPU_FUNCTION_ATTRIBUTE;
1837typedef void (*WGPUProcComputePassEncoderSetBindGroup)(WGPUComputePassEncoder computePassEncoder, uint32_t groupIndex, WGPU_NULLABLE WGPUBindGroup group, size_t dynamicOffsetCount, uint32_t const * dynamicOffsets) WGPU_FUNCTION_ATTRIBUTE;
1838typedef void (*WGPUProcComputePassEncoderSetLabel)(WGPUComputePassEncoder computePassEncoder, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1839typedef void (*WGPUProcComputePassEncoderSetPipeline)(WGPUComputePassEncoder computePassEncoder, WGPUComputePipeline pipeline) WGPU_FUNCTION_ATTRIBUTE;
1840typedef void (*WGPUProcComputePassEncoderWriteTimestamp)(WGPUComputePassEncoder computePassEncoder, WGPUQuerySet querySet, uint32_t queryIndex) WGPU_FUNCTION_ATTRIBUTE;
1841typedef void (*WGPUProcComputePassEncoderReference)(WGPUComputePassEncoder computePassEncoder) WGPU_FUNCTION_ATTRIBUTE;
1842typedef void (*WGPUProcComputePassEncoderRelease)(WGPUComputePassEncoder computePassEncoder) WGPU_FUNCTION_ATTRIBUTE;
1843
1844// Procs of ComputePipeline
1845typedef WGPUBindGroupLayout (*WGPUProcComputePipelineGetBindGroupLayout)(WGPUComputePipeline computePipeline, uint32_t groupIndex) WGPU_FUNCTION_ATTRIBUTE;
1846typedef void (*WGPUProcComputePipelineSetLabel)(WGPUComputePipeline computePipeline, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1847typedef void (*WGPUProcComputePipelineReference)(WGPUComputePipeline computePipeline) WGPU_FUNCTION_ATTRIBUTE;
1848typedef void (*WGPUProcComputePipelineRelease)(WGPUComputePipeline computePipeline) WGPU_FUNCTION_ATTRIBUTE;
1849
1850// Procs of Device
1851typedef WGPUBindGroup (*WGPUProcDeviceCreateBindGroup)(WGPUDevice device, WGPUBindGroupDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1852typedef WGPUBindGroupLayout (*WGPUProcDeviceCreateBindGroupLayout)(WGPUDevice device, WGPUBindGroupLayoutDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1853typedef WGPUBuffer (*WGPUProcDeviceCreateBuffer)(WGPUDevice device, WGPUBufferDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1854typedef WGPUCommandEncoder (*WGPUProcDeviceCreateCommandEncoder)(WGPUDevice device, WGPU_NULLABLE WGPUCommandEncoderDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1855typedef WGPUComputePipeline (*WGPUProcDeviceCreateComputePipeline)(WGPUDevice device, WGPUComputePipelineDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1856typedef void (*WGPUProcDeviceCreateComputePipelineAsync)(WGPUDevice device, WGPUComputePipelineDescriptor const * descriptor, WGPUCreateComputePipelineAsyncCallback callback, void * userdata) WGPU_FUNCTION_ATTRIBUTE;
1857typedef WGPUBuffer (*WGPUProcDeviceCreateErrorBuffer)(WGPUDevice device, WGPUBufferDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1858typedef WGPUExternalTexture (*WGPUProcDeviceCreateErrorExternalTexture)(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE;
1859typedef WGPUShaderModule (*WGPUProcDeviceCreateErrorShaderModule)(WGPUDevice device, WGPUShaderModuleDescriptor const * descriptor, char const * errorMessage) WGPU_FUNCTION_ATTRIBUTE;
1860typedef WGPUTexture (*WGPUProcDeviceCreateErrorTexture)(WGPUDevice device, WGPUTextureDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1861typedef WGPUExternalTexture (*WGPUProcDeviceCreateExternalTexture)(WGPUDevice device, WGPUExternalTextureDescriptor const * externalTextureDescriptor) WGPU_FUNCTION_ATTRIBUTE;
1862typedef WGPUPipelineLayout (*WGPUProcDeviceCreatePipelineLayout)(WGPUDevice device, WGPUPipelineLayoutDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1863typedef WGPUQuerySet (*WGPUProcDeviceCreateQuerySet)(WGPUDevice device, WGPUQuerySetDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1864typedef WGPURenderBundleEncoder (*WGPUProcDeviceCreateRenderBundleEncoder)(WGPUDevice device, WGPURenderBundleEncoderDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1865typedef WGPURenderPipeline (*WGPUProcDeviceCreateRenderPipeline)(WGPUDevice device, WGPURenderPipelineDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1866typedef void (*WGPUProcDeviceCreateRenderPipelineAsync)(WGPUDevice device, WGPURenderPipelineDescriptor const * descriptor, WGPUCreateRenderPipelineAsyncCallback callback, void * userdata) WGPU_FUNCTION_ATTRIBUTE;
1867typedef WGPUSampler (*WGPUProcDeviceCreateSampler)(WGPUDevice device, WGPU_NULLABLE WGPUSamplerDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1868typedef WGPUShaderModule (*WGPUProcDeviceCreateShaderModule)(WGPUDevice device, WGPUShaderModuleDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1869typedef WGPUSwapChain (*WGPUProcDeviceCreateSwapChain)(WGPUDevice device, WGPUSurface surface, WGPUSwapChainDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1870typedef WGPUTexture (*WGPUProcDeviceCreateTexture)(WGPUDevice device, WGPUTextureDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1871typedef void (*WGPUProcDeviceDestroy)(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE;
1872typedef size_t (*WGPUProcDeviceEnumerateFeatures)(WGPUDevice device, WGPUFeatureName * features) WGPU_FUNCTION_ATTRIBUTE;
1873typedef void (*WGPUProcDeviceForceLoss)(WGPUDevice device, WGPUDeviceLostReason type, char const * message) WGPU_FUNCTION_ATTRIBUTE;
1874typedef WGPUAdapter (*WGPUProcDeviceGetAdapter)(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE;
1875typedef WGPUBool (*WGPUProcDeviceGetLimits)(WGPUDevice device, WGPUSupportedLimits * limits) WGPU_FUNCTION_ATTRIBUTE;
1876typedef WGPUQueue (*WGPUProcDeviceGetQueue)(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE;
1877typedef WGPUTextureUsageFlags (*WGPUProcDeviceGetSupportedSurfaceUsage)(WGPUDevice device, WGPUSurface surface) WGPU_FUNCTION_ATTRIBUTE;
1878typedef WGPUBool (*WGPUProcDeviceHasFeature)(WGPUDevice device, WGPUFeatureName feature) WGPU_FUNCTION_ATTRIBUTE;
1879typedef WGPUSharedFence (*WGPUProcDeviceImportSharedFence)(WGPUDevice device, WGPUSharedFenceDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1880typedef WGPUSharedTextureMemory (*WGPUProcDeviceImportSharedTextureMemory)(WGPUDevice device, WGPUSharedTextureMemoryDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1881typedef void (*WGPUProcDeviceInjectError)(WGPUDevice device, WGPUErrorType type, char const * message) WGPU_FUNCTION_ATTRIBUTE;
1882typedef void (*WGPUProcDevicePopErrorScope)(WGPUDevice device, WGPUErrorCallback callback, void * userdata) WGPU_FUNCTION_ATTRIBUTE;
1883typedef void (*WGPUProcDevicePushErrorScope)(WGPUDevice device, WGPUErrorFilter filter) WGPU_FUNCTION_ATTRIBUTE;
1884typedef void (*WGPUProcDeviceSetDeviceLostCallback)(WGPUDevice device, WGPUDeviceLostCallback callback, void * userdata) WGPU_FUNCTION_ATTRIBUTE;
1885typedef void (*WGPUProcDeviceSetLabel)(WGPUDevice device, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1886typedef void (*WGPUProcDeviceSetLoggingCallback)(WGPUDevice device, WGPULoggingCallback callback, void * userdata) WGPU_FUNCTION_ATTRIBUTE;
1887typedef void (*WGPUProcDeviceSetUncapturedErrorCallback)(WGPUDevice device, WGPUErrorCallback callback, void * userdata) WGPU_FUNCTION_ATTRIBUTE;
1888typedef void (*WGPUProcDeviceTick)(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE;
1889typedef void (*WGPUProcDeviceValidateTextureDescriptor)(WGPUDevice device, WGPUTextureDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1890typedef void (*WGPUProcDeviceReference)(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE;
1891typedef void (*WGPUProcDeviceRelease)(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE;
1892
1893// Procs of ExternalTexture
1894typedef void (*WGPUProcExternalTextureDestroy)(WGPUExternalTexture externalTexture) WGPU_FUNCTION_ATTRIBUTE;
1895typedef void (*WGPUProcExternalTextureExpire)(WGPUExternalTexture externalTexture) WGPU_FUNCTION_ATTRIBUTE;
1896typedef void (*WGPUProcExternalTextureRefresh)(WGPUExternalTexture externalTexture) WGPU_FUNCTION_ATTRIBUTE;
1897typedef void (*WGPUProcExternalTextureSetLabel)(WGPUExternalTexture externalTexture, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1898typedef void (*WGPUProcExternalTextureReference)(WGPUExternalTexture externalTexture) WGPU_FUNCTION_ATTRIBUTE;
1899typedef void (*WGPUProcExternalTextureRelease)(WGPUExternalTexture externalTexture) WGPU_FUNCTION_ATTRIBUTE;
1900
1901// Procs of Instance
1902typedef WGPUSurface (*WGPUProcInstanceCreateSurface)(WGPUInstance instance, WGPUSurfaceDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1903typedef void (*WGPUProcInstanceProcessEvents)(WGPUInstance instance) WGPU_FUNCTION_ATTRIBUTE;
1904typedef void (*WGPUProcInstanceRequestAdapter)(WGPUInstance instance, WGPU_NULLABLE WGPURequestAdapterOptions const * options, WGPURequestAdapterCallback callback, void * userdata) WGPU_FUNCTION_ATTRIBUTE;
1905typedef void (*WGPUProcInstanceReference)(WGPUInstance instance) WGPU_FUNCTION_ATTRIBUTE;
1906typedef void (*WGPUProcInstanceRelease)(WGPUInstance instance) WGPU_FUNCTION_ATTRIBUTE;
1907
1908// Procs of PipelineLayout
1909typedef void (*WGPUProcPipelineLayoutSetLabel)(WGPUPipelineLayout pipelineLayout, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1910typedef void (*WGPUProcPipelineLayoutReference)(WGPUPipelineLayout pipelineLayout) WGPU_FUNCTION_ATTRIBUTE;
1911typedef void (*WGPUProcPipelineLayoutRelease)(WGPUPipelineLayout pipelineLayout) WGPU_FUNCTION_ATTRIBUTE;
1912
1913// Procs of QuerySet
1914typedef void (*WGPUProcQuerySetDestroy)(WGPUQuerySet querySet) WGPU_FUNCTION_ATTRIBUTE;
1915typedef uint32_t (*WGPUProcQuerySetGetCount)(WGPUQuerySet querySet) WGPU_FUNCTION_ATTRIBUTE;
1916typedef WGPUQueryType (*WGPUProcQuerySetGetType)(WGPUQuerySet querySet) WGPU_FUNCTION_ATTRIBUTE;
1917typedef void (*WGPUProcQuerySetSetLabel)(WGPUQuerySet querySet, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1918typedef void (*WGPUProcQuerySetReference)(WGPUQuerySet querySet) WGPU_FUNCTION_ATTRIBUTE;
1919typedef void (*WGPUProcQuerySetRelease)(WGPUQuerySet querySet) WGPU_FUNCTION_ATTRIBUTE;
1920
1921// Procs of Queue
1922typedef void (*WGPUProcQueueCopyExternalTextureForBrowser)(WGPUQueue queue, WGPUImageCopyExternalTexture const * source, WGPUImageCopyTexture const * destination, WGPUExtent3D const * copySize, WGPUCopyTextureForBrowserOptions const * options) WGPU_FUNCTION_ATTRIBUTE;
1923typedef void (*WGPUProcQueueCopyTextureForBrowser)(WGPUQueue queue, WGPUImageCopyTexture const * source, WGPUImageCopyTexture const * destination, WGPUExtent3D const * copySize, WGPUCopyTextureForBrowserOptions const * options) WGPU_FUNCTION_ATTRIBUTE;
1924typedef void (*WGPUProcQueueOnSubmittedWorkDone)(WGPUQueue queue, uint64_t signalValue, WGPUQueueWorkDoneCallback callback, void * userdata) WGPU_FUNCTION_ATTRIBUTE;
1925typedef void (*WGPUProcQueueSetLabel)(WGPUQueue queue, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1926typedef void (*WGPUProcQueueSubmit)(WGPUQueue queue, size_t commandCount, WGPUCommandBuffer const * commands) WGPU_FUNCTION_ATTRIBUTE;
1927typedef void (*WGPUProcQueueWriteBuffer)(WGPUQueue queue, WGPUBuffer buffer, uint64_t bufferOffset, void const * data, size_t size) WGPU_FUNCTION_ATTRIBUTE;
1928typedef void (*WGPUProcQueueWriteTexture)(WGPUQueue queue, WGPUImageCopyTexture const * destination, void const * data, size_t dataSize, WGPUTextureDataLayout const * dataLayout, WGPUExtent3D const * writeSize) WGPU_FUNCTION_ATTRIBUTE;
1929typedef void (*WGPUProcQueueReference)(WGPUQueue queue) WGPU_FUNCTION_ATTRIBUTE;
1930typedef void (*WGPUProcQueueRelease)(WGPUQueue queue) WGPU_FUNCTION_ATTRIBUTE;
1931
1932// Procs of RenderBundle
1933typedef void (*WGPUProcRenderBundleSetLabel)(WGPURenderBundle renderBundle, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1934typedef void (*WGPUProcRenderBundleReference)(WGPURenderBundle renderBundle) WGPU_FUNCTION_ATTRIBUTE;
1935typedef void (*WGPUProcRenderBundleRelease)(WGPURenderBundle renderBundle) WGPU_FUNCTION_ATTRIBUTE;
1936
1937// Procs of RenderBundleEncoder
1938typedef void (*WGPUProcRenderBundleEncoderDraw)(WGPURenderBundleEncoder renderBundleEncoder, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) WGPU_FUNCTION_ATTRIBUTE;
1939typedef void (*WGPUProcRenderBundleEncoderDrawIndexed)(WGPURenderBundleEncoder renderBundleEncoder, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t baseVertex, uint32_t firstInstance) WGPU_FUNCTION_ATTRIBUTE;
1940typedef void (*WGPUProcRenderBundleEncoderDrawIndexedIndirect)(WGPURenderBundleEncoder renderBundleEncoder, WGPUBuffer indirectBuffer, uint64_t indirectOffset) WGPU_FUNCTION_ATTRIBUTE;
1941typedef void (*WGPUProcRenderBundleEncoderDrawIndirect)(WGPURenderBundleEncoder renderBundleEncoder, WGPUBuffer indirectBuffer, uint64_t indirectOffset) WGPU_FUNCTION_ATTRIBUTE;
1942typedef WGPURenderBundle (*WGPUProcRenderBundleEncoderFinish)(WGPURenderBundleEncoder renderBundleEncoder, WGPU_NULLABLE WGPURenderBundleDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
1943typedef void (*WGPUProcRenderBundleEncoderInsertDebugMarker)(WGPURenderBundleEncoder renderBundleEncoder, char const * markerLabel) WGPU_FUNCTION_ATTRIBUTE;
1944typedef void (*WGPUProcRenderBundleEncoderPopDebugGroup)(WGPURenderBundleEncoder renderBundleEncoder) WGPU_FUNCTION_ATTRIBUTE;
1945typedef void (*WGPUProcRenderBundleEncoderPushDebugGroup)(WGPURenderBundleEncoder renderBundleEncoder, char const * groupLabel) WGPU_FUNCTION_ATTRIBUTE;
1946typedef void (*WGPUProcRenderBundleEncoderSetBindGroup)(WGPURenderBundleEncoder renderBundleEncoder, uint32_t groupIndex, WGPU_NULLABLE WGPUBindGroup group, size_t dynamicOffsetCount, uint32_t const * dynamicOffsets) WGPU_FUNCTION_ATTRIBUTE;
1947typedef void (*WGPUProcRenderBundleEncoderSetIndexBuffer)(WGPURenderBundleEncoder renderBundleEncoder, WGPUBuffer buffer, WGPUIndexFormat format, uint64_t offset, uint64_t size) WGPU_FUNCTION_ATTRIBUTE;
1948typedef void (*WGPUProcRenderBundleEncoderSetLabel)(WGPURenderBundleEncoder renderBundleEncoder, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1949typedef void (*WGPUProcRenderBundleEncoderSetPipeline)(WGPURenderBundleEncoder renderBundleEncoder, WGPURenderPipeline pipeline) WGPU_FUNCTION_ATTRIBUTE;
1950typedef void (*WGPUProcRenderBundleEncoderSetVertexBuffer)(WGPURenderBundleEncoder renderBundleEncoder, uint32_t slot, WGPU_NULLABLE WGPUBuffer buffer, uint64_t offset, uint64_t size) WGPU_FUNCTION_ATTRIBUTE;
1951typedef void (*WGPUProcRenderBundleEncoderReference)(WGPURenderBundleEncoder renderBundleEncoder) WGPU_FUNCTION_ATTRIBUTE;
1952typedef void (*WGPUProcRenderBundleEncoderRelease)(WGPURenderBundleEncoder renderBundleEncoder) WGPU_FUNCTION_ATTRIBUTE;
1953
1954// Procs of RenderPassEncoder
1955typedef void (*WGPUProcRenderPassEncoderBeginOcclusionQuery)(WGPURenderPassEncoder renderPassEncoder, uint32_t queryIndex) WGPU_FUNCTION_ATTRIBUTE;
1956typedef void (*WGPUProcRenderPassEncoderDraw)(WGPURenderPassEncoder renderPassEncoder, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) WGPU_FUNCTION_ATTRIBUTE;
1957typedef void (*WGPUProcRenderPassEncoderDrawIndexed)(WGPURenderPassEncoder renderPassEncoder, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t baseVertex, uint32_t firstInstance) WGPU_FUNCTION_ATTRIBUTE;
1958typedef void (*WGPUProcRenderPassEncoderDrawIndexedIndirect)(WGPURenderPassEncoder renderPassEncoder, WGPUBuffer indirectBuffer, uint64_t indirectOffset) WGPU_FUNCTION_ATTRIBUTE;
1959typedef void (*WGPUProcRenderPassEncoderDrawIndirect)(WGPURenderPassEncoder renderPassEncoder, WGPUBuffer indirectBuffer, uint64_t indirectOffset) WGPU_FUNCTION_ATTRIBUTE;
1960typedef void (*WGPUProcRenderPassEncoderEnd)(WGPURenderPassEncoder renderPassEncoder) WGPU_FUNCTION_ATTRIBUTE;
1961typedef void (*WGPUProcRenderPassEncoderEndOcclusionQuery)(WGPURenderPassEncoder renderPassEncoder) WGPU_FUNCTION_ATTRIBUTE;
1962typedef void (*WGPUProcRenderPassEncoderExecuteBundles)(WGPURenderPassEncoder renderPassEncoder, size_t bundleCount, WGPURenderBundle const * bundles) WGPU_FUNCTION_ATTRIBUTE;
1963typedef void (*WGPUProcRenderPassEncoderInsertDebugMarker)(WGPURenderPassEncoder renderPassEncoder, char const * markerLabel) WGPU_FUNCTION_ATTRIBUTE;
1964typedef void (*WGPUProcRenderPassEncoderPopDebugGroup)(WGPURenderPassEncoder renderPassEncoder) WGPU_FUNCTION_ATTRIBUTE;
1965typedef void (*WGPUProcRenderPassEncoderPushDebugGroup)(WGPURenderPassEncoder renderPassEncoder, char const * groupLabel) WGPU_FUNCTION_ATTRIBUTE;
1966typedef void (*WGPUProcRenderPassEncoderSetBindGroup)(WGPURenderPassEncoder renderPassEncoder, uint32_t groupIndex, WGPU_NULLABLE WGPUBindGroup group, size_t dynamicOffsetCount, uint32_t const * dynamicOffsets) WGPU_FUNCTION_ATTRIBUTE;
1967typedef void (*WGPUProcRenderPassEncoderSetBlendConstant)(WGPURenderPassEncoder renderPassEncoder, WGPUColor const * color) WGPU_FUNCTION_ATTRIBUTE;
1968typedef void (*WGPUProcRenderPassEncoderSetIndexBuffer)(WGPURenderPassEncoder renderPassEncoder, WGPUBuffer buffer, WGPUIndexFormat format, uint64_t offset, uint64_t size) WGPU_FUNCTION_ATTRIBUTE;
1969typedef void (*WGPUProcRenderPassEncoderSetLabel)(WGPURenderPassEncoder renderPassEncoder, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1970typedef void (*WGPUProcRenderPassEncoderSetPipeline)(WGPURenderPassEncoder renderPassEncoder, WGPURenderPipeline pipeline) WGPU_FUNCTION_ATTRIBUTE;
1971typedef void (*WGPUProcRenderPassEncoderSetScissorRect)(WGPURenderPassEncoder renderPassEncoder, uint32_t x, uint32_t y, uint32_t width, uint32_t height) WGPU_FUNCTION_ATTRIBUTE;
1972typedef void (*WGPUProcRenderPassEncoderSetStencilReference)(WGPURenderPassEncoder renderPassEncoder, uint32_t reference) WGPU_FUNCTION_ATTRIBUTE;
1973typedef void (*WGPUProcRenderPassEncoderSetVertexBuffer)(WGPURenderPassEncoder renderPassEncoder, uint32_t slot, WGPU_NULLABLE WGPUBuffer buffer, uint64_t offset, uint64_t size) WGPU_FUNCTION_ATTRIBUTE;
1974typedef void (*WGPUProcRenderPassEncoderSetViewport)(WGPURenderPassEncoder renderPassEncoder, float x, float y, float width, float height, float minDepth, float maxDepth) WGPU_FUNCTION_ATTRIBUTE;
1975typedef void (*WGPUProcRenderPassEncoderWriteTimestamp)(WGPURenderPassEncoder renderPassEncoder, WGPUQuerySet querySet, uint32_t queryIndex) WGPU_FUNCTION_ATTRIBUTE;
1976typedef void (*WGPUProcRenderPassEncoderReference)(WGPURenderPassEncoder renderPassEncoder) WGPU_FUNCTION_ATTRIBUTE;
1977typedef void (*WGPUProcRenderPassEncoderRelease)(WGPURenderPassEncoder renderPassEncoder) WGPU_FUNCTION_ATTRIBUTE;
1978
1979// Procs of RenderPipeline
1980typedef WGPUBindGroupLayout (*WGPUProcRenderPipelineGetBindGroupLayout)(WGPURenderPipeline renderPipeline, uint32_t groupIndex) WGPU_FUNCTION_ATTRIBUTE;
1981typedef void (*WGPUProcRenderPipelineSetLabel)(WGPURenderPipeline renderPipeline, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1982typedef void (*WGPUProcRenderPipelineReference)(WGPURenderPipeline renderPipeline) WGPU_FUNCTION_ATTRIBUTE;
1983typedef void (*WGPUProcRenderPipelineRelease)(WGPURenderPipeline renderPipeline) WGPU_FUNCTION_ATTRIBUTE;
1984
1985// Procs of Sampler
1986typedef void (*WGPUProcSamplerSetLabel)(WGPUSampler sampler, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1987typedef void (*WGPUProcSamplerReference)(WGPUSampler sampler) WGPU_FUNCTION_ATTRIBUTE;
1988typedef void (*WGPUProcSamplerRelease)(WGPUSampler sampler) WGPU_FUNCTION_ATTRIBUTE;
1989
1990// Procs of ShaderModule
1991typedef void (*WGPUProcShaderModuleGetCompilationInfo)(WGPUShaderModule shaderModule, WGPUCompilationInfoCallback callback, void * userdata) WGPU_FUNCTION_ATTRIBUTE;
1992typedef void (*WGPUProcShaderModuleSetLabel)(WGPUShaderModule shaderModule, char const * label) WGPU_FUNCTION_ATTRIBUTE;
1993typedef void (*WGPUProcShaderModuleReference)(WGPUShaderModule shaderModule) WGPU_FUNCTION_ATTRIBUTE;
1994typedef void (*WGPUProcShaderModuleRelease)(WGPUShaderModule shaderModule) WGPU_FUNCTION_ATTRIBUTE;
1995
1996// Procs of SharedFence
1997typedef void (*WGPUProcSharedFenceExportInfo)(WGPUSharedFence sharedFence, WGPUSharedFenceExportInfo * info) WGPU_FUNCTION_ATTRIBUTE;
1998typedef void (*WGPUProcSharedFenceReference)(WGPUSharedFence sharedFence) WGPU_FUNCTION_ATTRIBUTE;
1999typedef void (*WGPUProcSharedFenceRelease)(WGPUSharedFence sharedFence) WGPU_FUNCTION_ATTRIBUTE;
2000
2001// Procs of SharedTextureMemory
2002typedef void (*WGPUProcSharedTextureMemoryBeginAccess)(WGPUSharedTextureMemory sharedTextureMemory, WGPUTexture texture, WGPUSharedTextureMemoryBeginAccessDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
2003typedef WGPUTexture (*WGPUProcSharedTextureMemoryCreateTexture)(WGPUSharedTextureMemory sharedTextureMemory, WGPUTextureDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
2004typedef void (*WGPUProcSharedTextureMemoryEndAccess)(WGPUSharedTextureMemory sharedTextureMemory, WGPUTexture texture, WGPUSharedTextureMemoryEndAccessState * descriptor) WGPU_FUNCTION_ATTRIBUTE;
2005typedef void (*WGPUProcSharedTextureMemoryGetProperties)(WGPUSharedTextureMemory sharedTextureMemory, WGPUSharedTextureMemoryProperties * properties) WGPU_FUNCTION_ATTRIBUTE;
2006typedef void (*WGPUProcSharedTextureMemorySetLabel)(WGPUSharedTextureMemory sharedTextureMemory, char const * label) WGPU_FUNCTION_ATTRIBUTE;
2007typedef void (*WGPUProcSharedTextureMemoryReference)(WGPUSharedTextureMemory sharedTextureMemory) WGPU_FUNCTION_ATTRIBUTE;
2008typedef void (*WGPUProcSharedTextureMemoryRelease)(WGPUSharedTextureMemory sharedTextureMemory) WGPU_FUNCTION_ATTRIBUTE;
2009
2010// Procs of Surface
2011typedef void (*WGPUProcSurfaceReference)(WGPUSurface surface) WGPU_FUNCTION_ATTRIBUTE;
2012typedef void (*WGPUProcSurfaceRelease)(WGPUSurface surface) WGPU_FUNCTION_ATTRIBUTE;
2013
2014// Procs of SwapChain
2015typedef WGPUTexture (*WGPUProcSwapChainGetCurrentTexture)(WGPUSwapChain swapChain) WGPU_FUNCTION_ATTRIBUTE;
2016typedef WGPUTextureView (*WGPUProcSwapChainGetCurrentTextureView)(WGPUSwapChain swapChain) WGPU_FUNCTION_ATTRIBUTE;
2017typedef void (*WGPUProcSwapChainPresent)(WGPUSwapChain swapChain) WGPU_FUNCTION_ATTRIBUTE;
2018typedef void (*WGPUProcSwapChainReference)(WGPUSwapChain swapChain) WGPU_FUNCTION_ATTRIBUTE;
2019typedef void (*WGPUProcSwapChainRelease)(WGPUSwapChain swapChain) WGPU_FUNCTION_ATTRIBUTE;
2020
2021// Procs of Texture
2022typedef WGPUTextureView (*WGPUProcTextureCreateView)(WGPUTexture texture, WGPU_NULLABLE WGPUTextureViewDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
2023typedef void (*WGPUProcTextureDestroy)(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
2024typedef uint32_t (*WGPUProcTextureGetDepthOrArrayLayers)(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
2025typedef WGPUTextureDimension (*WGPUProcTextureGetDimension)(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
2026typedef WGPUTextureFormat (*WGPUProcTextureGetFormat)(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
2027typedef uint32_t (*WGPUProcTextureGetHeight)(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
2028typedef uint32_t (*WGPUProcTextureGetMipLevelCount)(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
2029typedef uint32_t (*WGPUProcTextureGetSampleCount)(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
2030typedef WGPUTextureUsageFlags (*WGPUProcTextureGetUsage)(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
2031typedef uint32_t (*WGPUProcTextureGetWidth)(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
2032typedef void (*WGPUProcTextureSetLabel)(WGPUTexture texture, char const * label) WGPU_FUNCTION_ATTRIBUTE;
2033typedef void (*WGPUProcTextureReference)(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
2034typedef void (*WGPUProcTextureRelease)(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
2035
2036// Procs of TextureView
2037typedef void (*WGPUProcTextureViewSetLabel)(WGPUTextureView textureView, char const * label) WGPU_FUNCTION_ATTRIBUTE;
2038typedef void (*WGPUProcTextureViewReference)(WGPUTextureView textureView) WGPU_FUNCTION_ATTRIBUTE;
2039typedef void (*WGPUProcTextureViewRelease)(WGPUTextureView textureView) WGPU_FUNCTION_ATTRIBUTE;
2040
2041
2042#endif  // !defined(WGPU_SKIP_PROCS)
2043
2044#if !defined(WGPU_SKIP_DECLARATIONS)
2045
2046WGPU_EXPORT void wgpuAdapterPropertiesFreeMembers(WGPUAdapterProperties value) WGPU_FUNCTION_ATTRIBUTE;
2047WGPU_EXPORT WGPUInstance wgpuCreateInstance(WGPUInstanceDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
2048WGPU_EXPORT WGPUProc wgpuGetProcAddress(WGPUDevice device, char const * procName) WGPU_FUNCTION_ATTRIBUTE;
2049WGPU_EXPORT void wgpuSharedTextureMemoryEndAccessStateFreeMembers(WGPUSharedTextureMemoryEndAccessState value) WGPU_FUNCTION_ATTRIBUTE;
2050
2051// Methods of Adapter
2052WGPU_EXPORT WGPUDevice wgpuAdapterCreateDevice(WGPUAdapter adapter, WGPU_NULLABLE WGPUDeviceDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
2053WGPU_EXPORT size_t wgpuAdapterEnumerateFeatures(WGPUAdapter adapter, WGPUFeatureName * features) WGPU_FUNCTION_ATTRIBUTE;
2054WGPU_EXPORT WGPUInstance wgpuAdapterGetInstance(WGPUAdapter adapter) WGPU_FUNCTION_ATTRIBUTE;
2055WGPU_EXPORT WGPUBool wgpuAdapterGetLimits(WGPUAdapter adapter, WGPUSupportedLimits * limits) WGPU_FUNCTION_ATTRIBUTE;
2056WGPU_EXPORT void wgpuAdapterGetProperties(WGPUAdapter adapter, WGPUAdapterProperties * properties) WGPU_FUNCTION_ATTRIBUTE;
2057WGPU_EXPORT WGPUBool wgpuAdapterHasFeature(WGPUAdapter adapter, WGPUFeatureName feature) WGPU_FUNCTION_ATTRIBUTE;
2058WGPU_EXPORT void wgpuAdapterRequestDevice(WGPUAdapter adapter, WGPU_NULLABLE WGPUDeviceDescriptor const * descriptor, WGPURequestDeviceCallback callback, void * userdata) WGPU_FUNCTION_ATTRIBUTE;
2059WGPU_EXPORT void wgpuAdapterReference(WGPUAdapter adapter) WGPU_FUNCTION_ATTRIBUTE;
2060WGPU_EXPORT void wgpuAdapterRelease(WGPUAdapter adapter) WGPU_FUNCTION_ATTRIBUTE;
2061
2062// Methods of BindGroup
2063WGPU_EXPORT void wgpuBindGroupSetLabel(WGPUBindGroup bindGroup, char const * label) WGPU_FUNCTION_ATTRIBUTE;
2064WGPU_EXPORT void wgpuBindGroupReference(WGPUBindGroup bindGroup) WGPU_FUNCTION_ATTRIBUTE;
2065WGPU_EXPORT void wgpuBindGroupRelease(WGPUBindGroup bindGroup) WGPU_FUNCTION_ATTRIBUTE;
2066
2067// Methods of BindGroupLayout
2068WGPU_EXPORT void wgpuBindGroupLayoutSetLabel(WGPUBindGroupLayout bindGroupLayout, char const * label) WGPU_FUNCTION_ATTRIBUTE;
2069WGPU_EXPORT void wgpuBindGroupLayoutReference(WGPUBindGroupLayout bindGroupLayout) WGPU_FUNCTION_ATTRIBUTE;
2070WGPU_EXPORT void wgpuBindGroupLayoutRelease(WGPUBindGroupLayout bindGroupLayout) WGPU_FUNCTION_ATTRIBUTE;
2071
2072// Methods of Buffer
2073WGPU_EXPORT void wgpuBufferDestroy(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE;
2074WGPU_EXPORT void const * wgpuBufferGetConstMappedRange(WGPUBuffer buffer, size_t offset, size_t size) WGPU_FUNCTION_ATTRIBUTE;
2075WGPU_EXPORT WGPUBufferMapState wgpuBufferGetMapState(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE;
2076WGPU_EXPORT void * wgpuBufferGetMappedRange(WGPUBuffer buffer, size_t offset, size_t size) WGPU_FUNCTION_ATTRIBUTE;
2077WGPU_EXPORT uint64_t wgpuBufferGetSize(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE;
2078WGPU_EXPORT WGPUBufferUsageFlags wgpuBufferGetUsage(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE;
2079WGPU_EXPORT void wgpuBufferMapAsync(WGPUBuffer buffer, WGPUMapModeFlags mode, size_t offset, size_t size, WGPUBufferMapCallback callback, void * userdata) WGPU_FUNCTION_ATTRIBUTE;
2080WGPU_EXPORT void wgpuBufferSetLabel(WGPUBuffer buffer, char const * label) WGPU_FUNCTION_ATTRIBUTE;
2081WGPU_EXPORT void wgpuBufferUnmap(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE;
2082WGPU_EXPORT void wgpuBufferReference(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE;
2083WGPU_EXPORT void wgpuBufferRelease(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE;
2084
2085// Methods of CommandBuffer
2086WGPU_EXPORT void wgpuCommandBufferSetLabel(WGPUCommandBuffer commandBuffer, char const * label) WGPU_FUNCTION_ATTRIBUTE;
2087WGPU_EXPORT void wgpuCommandBufferReference(WGPUCommandBuffer commandBuffer) WGPU_FUNCTION_ATTRIBUTE;
2088WGPU_EXPORT void wgpuCommandBufferRelease(WGPUCommandBuffer commandBuffer) WGPU_FUNCTION_ATTRIBUTE;
2089
2090// Methods of CommandEncoder
2091WGPU_EXPORT WGPUComputePassEncoder wgpuCommandEncoderBeginComputePass(WGPUCommandEncoder commandEncoder, WGPU_NULLABLE WGPUComputePassDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
2092WGPU_EXPORT WGPURenderPassEncoder wgpuCommandEncoderBeginRenderPass(WGPUCommandEncoder commandEncoder, WGPURenderPassDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
2093WGPU_EXPORT void wgpuCommandEncoderClearBuffer(WGPUCommandEncoder commandEncoder, WGPUBuffer buffer, uint64_t offset, uint64_t size) WGPU_FUNCTION_ATTRIBUTE;
2094WGPU_EXPORT void wgpuCommandEncoderCopyBufferToBuffer(WGPUCommandEncoder commandEncoder, WGPUBuffer source, uint64_t sourceOffset, WGPUBuffer destination, uint64_t destinationOffset, uint64_t size) WGPU_FUNCTION_ATTRIBUTE;
2095WGPU_EXPORT void wgpuCommandEncoderCopyBufferToTexture(WGPUCommandEncoder commandEncoder, WGPUImageCopyBuffer const * source, WGPUImageCopyTexture const * destination, WGPUExtent3D const * copySize) WGPU_FUNCTION_ATTRIBUTE;
2096WGPU_EXPORT void wgpuCommandEncoderCopyTextureToBuffer(WGPUCommandEncoder commandEncoder, WGPUImageCopyTexture const * source, WGPUImageCopyBuffer const * destination, WGPUExtent3D const * copySize) WGPU_FUNCTION_ATTRIBUTE;
2097WGPU_EXPORT void wgpuCommandEncoderCopyTextureToTexture(WGPUCommandEncoder commandEncoder, WGPUImageCopyTexture const * source, WGPUImageCopyTexture const * destination, WGPUExtent3D const * copySize) WGPU_FUNCTION_ATTRIBUTE;
2098WGPU_EXPORT WGPUCommandBuffer wgpuCommandEncoderFinish(WGPUCommandEncoder commandEncoder, WGPU_NULLABLE WGPUCommandBufferDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
2099WGPU_EXPORT void wgpuCommandEncoderInjectValidationError(WGPUCommandEncoder commandEncoder, char const * message) WGPU_FUNCTION_ATTRIBUTE;
2100WGPU_EXPORT void wgpuCommandEncoderInsertDebugMarker(WGPUCommandEncoder commandEncoder, char const * markerLabel) WGPU_FUNCTION_ATTRIBUTE;
2101WGPU_EXPORT void wgpuCommandEncoderPopDebugGroup(WGPUCommandEncoder commandEncoder) WGPU_FUNCTION_ATTRIBUTE;
2102WGPU_EXPORT void wgpuCommandEncoderPushDebugGroup(WGPUCommandEncoder commandEncoder, char const * groupLabel) WGPU_FUNCTION_ATTRIBUTE;
2103WGPU_EXPORT void wgpuCommandEncoderResolveQuerySet(WGPUCommandEncoder commandEncoder, WGPUQuerySet querySet, uint32_t firstQuery, uint32_t queryCount, WGPUBuffer destination, uint64_t destinationOffset) WGPU_FUNCTION_ATTRIBUTE;
2104WGPU_EXPORT void wgpuCommandEncoderSetLabel(WGPUCommandEncoder commandEncoder, char const * label) WGPU_FUNCTION_ATTRIBUTE;
2105WGPU_EXPORT void wgpuCommandEncoderWriteBuffer(WGPUCommandEncoder commandEncoder, WGPUBuffer buffer, uint64_t bufferOffset, uint8_t const * data, uint64_t size) WGPU_FUNCTION_ATTRIBUTE;
2106WGPU_EXPORT void wgpuCommandEncoderWriteTimestamp(WGPUCommandEncoder commandEncoder, WGPUQuerySet querySet, uint32_t queryIndex) WGPU_FUNCTION_ATTRIBUTE;
2107WGPU_EXPORT void wgpuCommandEncoderReference(WGPUCommandEncoder commandEncoder) WGPU_FUNCTION_ATTRIBUTE;
2108WGPU_EXPORT void wgpuCommandEncoderRelease(WGPUCommandEncoder commandEncoder) WGPU_FUNCTION_ATTRIBUTE;
2109
2110// Methods of ComputePassEncoder
2111WGPU_EXPORT void wgpuComputePassEncoderDispatchWorkgroups(WGPUComputePassEncoder computePassEncoder, uint32_t workgroupCountX, uint32_t workgroupCountY, uint32_t workgroupCountZ) WGPU_FUNCTION_ATTRIBUTE;
2112WGPU_EXPORT void wgpuComputePassEncoderDispatchWorkgroupsIndirect(WGPUComputePassEncoder computePassEncoder, WGPUBuffer indirectBuffer, uint64_t indirectOffset) WGPU_FUNCTION_ATTRIBUTE;
2113WGPU_EXPORT void wgpuComputePassEncoderEnd(WGPUComputePassEncoder computePassEncoder) WGPU_FUNCTION_ATTRIBUTE;
2114WGPU_EXPORT void wgpuComputePassEncoderInsertDebugMarker(WGPUComputePassEncoder computePassEncoder, char const * markerLabel) WGPU_FUNCTION_ATTRIBUTE;
2115WGPU_EXPORT void wgpuComputePassEncoderPopDebugGroup(WGPUComputePassEncoder computePassEncoder) WGPU_FUNCTION_ATTRIBUTE;
2116WGPU_EXPORT void wgpuComputePassEncoderPushDebugGroup(WGPUComputePassEncoder computePassEncoder, char const * groupLabel) WGPU_FUNCTION_ATTRIBUTE;
2117WGPU_EXPORT void wgpuComputePassEncoderSetBindGroup(WGPUComputePassEncoder computePassEncoder, uint32_t groupIndex, WGPU_NULLABLE WGPUBindGroup group, size_t dynamicOffsetCount, uint32_t const * dynamicOffsets) WGPU_FUNCTION_ATTRIBUTE;
2118WGPU_EXPORT void wgpuComputePassEncoderSetLabel(WGPUComputePassEncoder computePassEncoder, char const * label) WGPU_FUNCTION_ATTRIBUTE;
2119WGPU_EXPORT void wgpuComputePassEncoderSetPipeline(WGPUComputePassEncoder computePassEncoder, WGPUComputePipeline pipeline) WGPU_FUNCTION_ATTRIBUTE;
2120WGPU_EXPORT void wgpuComputePassEncoderWriteTimestamp(WGPUComputePassEncoder computePassEncoder, WGPUQuerySet querySet, uint32_t queryIndex) WGPU_FUNCTION_ATTRIBUTE;
2121WGPU_EXPORT void wgpuComputePassEncoderReference(WGPUComputePassEncoder computePassEncoder) WGPU_FUNCTION_ATTRIBUTE;
2122WGPU_EXPORT void wgpuComputePassEncoderRelease(WGPUComputePassEncoder computePassEncoder) WGPU_FUNCTION_ATTRIBUTE;
2123
2124// Methods of ComputePipeline
2125WGPU_EXPORT WGPUBindGroupLayout wgpuComputePipelineGetBindGroupLayout(WGPUComputePipeline computePipeline, uint32_t groupIndex) WGPU_FUNCTION_ATTRIBUTE;
2126WGPU_EXPORT void wgpuComputePipelineSetLabel(WGPUComputePipeline computePipeline, char const * label) WGPU_FUNCTION_ATTRIBUTE;
2127WGPU_EXPORT void wgpuComputePipelineReference(WGPUComputePipeline computePipeline) WGPU_FUNCTION_ATTRIBUTE;
2128WGPU_EXPORT void wgpuComputePipelineRelease(WGPUComputePipeline computePipeline) WGPU_FUNCTION_ATTRIBUTE;
2129
2130// Methods of Device
2131WGPU_EXPORT WGPUBindGroup wgpuDeviceCreateBindGroup(WGPUDevice device, WGPUBindGroupDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
2132WGPU_EXPORT WGPUBindGroupLayout wgpuDeviceCreateBindGroupLayout(WGPUDevice device, WGPUBindGroupLayoutDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
2133WGPU_EXPORT WGPUBuffer wgpuDeviceCreateBuffer(WGPUDevice device, WGPUBufferDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
2134WGPU_EXPORT WGPUCommandEncoder wgpuDeviceCreateCommandEncoder(WGPUDevice device, WGPU_NULLABLE WGPUCommandEncoderDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
2135WGPU_EXPORT WGPUComputePipeline wgpuDeviceCreateComputePipeline(WGPUDevice device, WGPUComputePipelineDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
2136WGPU_EXPORT void wgpuDeviceCreateComputePipelineAsync(WGPUDevice device, WGPUComputePipelineDescriptor const * descriptor, WGPUCreateComputePipelineAsyncCallback callback, void * userdata) WGPU_FUNCTION_ATTRIBUTE;
2137WGPU_EXPORT WGPUBuffer wgpuDeviceCreateErrorBuffer(WGPUDevice device, WGPUBufferDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
2138WGPU_EXPORT WGPUExternalTexture wgpuDeviceCreateErrorExternalTexture(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE;
2139WGPU_EXPORT WGPUShaderModule wgpuDeviceCreateErrorShaderModule(WGPUDevice device, WGPUShaderModuleDescriptor const * descriptor, char const * errorMessage) WGPU_FUNCTION_ATTRIBUTE;
2140WGPU_EXPORT WGPUTexture wgpuDeviceCreateErrorTexture(WGPUDevice device, WGPUTextureDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
2141WGPU_EXPORT WGPUExternalTexture wgpuDeviceCreateExternalTexture(WGPUDevice device, WGPUExternalTextureDescriptor const * externalTextureDescriptor) WGPU_FUNCTION_ATTRIBUTE;
2142WGPU_EXPORT WGPUPipelineLayout wgpuDeviceCreatePipelineLayout(WGPUDevice device, WGPUPipelineLayoutDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
2143WGPU_EXPORT WGPUQuerySet wgpuDeviceCreateQuerySet(WGPUDevice device, WGPUQuerySetDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
2144WGPU_EXPORT WGPURenderBundleEncoder wgpuDeviceCreateRenderBundleEncoder(WGPUDevice device, WGPURenderBundleEncoderDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
2145WGPU_EXPORT WGPURenderPipeline wgpuDeviceCreateRenderPipeline(WGPUDevice device, WGPURenderPipelineDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
2146WGPU_EXPORT void wgpuDeviceCreateRenderPipelineAsync(WGPUDevice device, WGPURenderPipelineDescriptor const * descriptor, WGPUCreateRenderPipelineAsyncCallback callback, void * userdata) WGPU_FUNCTION_ATTRIBUTE;
2147WGPU_EXPORT WGPUSampler wgpuDeviceCreateSampler(WGPUDevice device, WGPU_NULLABLE WGPUSamplerDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
2148WGPU_EXPORT WGPUShaderModule wgpuDeviceCreateShaderModule(WGPUDevice device, WGPUShaderModuleDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
2149WGPU_EXPORT WGPUSwapChain wgpuDeviceCreateSwapChain(WGPUDevice device, WGPUSurface surface, WGPUSwapChainDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
2150WGPU_EXPORT WGPUTexture wgpuDeviceCreateTexture(WGPUDevice device, WGPUTextureDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
2151WGPU_EXPORT void wgpuDeviceDestroy(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE;
2152WGPU_EXPORT size_t wgpuDeviceEnumerateFeatures(WGPUDevice device, WGPUFeatureName * features) WGPU_FUNCTION_ATTRIBUTE;
2153WGPU_EXPORT void wgpuDeviceForceLoss(WGPUDevice device, WGPUDeviceLostReason type, char const * message) WGPU_FUNCTION_ATTRIBUTE;
2154WGPU_EXPORT WGPUAdapter wgpuDeviceGetAdapter(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE;
2155WGPU_EXPORT WGPUBool wgpuDeviceGetLimits(WGPUDevice device, WGPUSupportedLimits * limits) WGPU_FUNCTION_ATTRIBUTE;
2156WGPU_EXPORT WGPUQueue wgpuDeviceGetQueue(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE;
2157WGPU_EXPORT WGPUTextureUsageFlags wgpuDeviceGetSupportedSurfaceUsage(WGPUDevice device, WGPUSurface surface) WGPU_FUNCTION_ATTRIBUTE;
2158WGPU_EXPORT WGPUBool wgpuDeviceHasFeature(WGPUDevice device, WGPUFeatureName feature) WGPU_FUNCTION_ATTRIBUTE;
2159WGPU_EXPORT WGPUSharedFence wgpuDeviceImportSharedFence(WGPUDevice device, WGPUSharedFenceDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
2160WGPU_EXPORT WGPUSharedTextureMemory wgpuDeviceImportSharedTextureMemory(WGPUDevice device, WGPUSharedTextureMemoryDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
2161WGPU_EXPORT void wgpuDeviceInjectError(WGPUDevice device, WGPUErrorType type, char const * message) WGPU_FUNCTION_ATTRIBUTE;
2162WGPU_EXPORT void wgpuDevicePopErrorScope(WGPUDevice device, WGPUErrorCallback callback, void * userdata) WGPU_FUNCTION_ATTRIBUTE;
2163WGPU_EXPORT void wgpuDevicePushErrorScope(WGPUDevice device, WGPUErrorFilter filter) WGPU_FUNCTION_ATTRIBUTE;
2164WGPU_EXPORT void wgpuDeviceSetDeviceLostCallback(WGPUDevice device, WGPUDeviceLostCallback callback, void * userdata) WGPU_FUNCTION_ATTRIBUTE;
2165WGPU_EXPORT void wgpuDeviceSetLabel(WGPUDevice device, char const * label) WGPU_FUNCTION_ATTRIBUTE;
2166WGPU_EXPORT void wgpuDeviceSetLoggingCallback(WGPUDevice device, WGPULoggingCallback callback, void * userdata) WGPU_FUNCTION_ATTRIBUTE;
2167WGPU_EXPORT void wgpuDeviceSetUncapturedErrorCallback(WGPUDevice device, WGPUErrorCallback callback, void * userdata) WGPU_FUNCTION_ATTRIBUTE;
2168WGPU_EXPORT void wgpuDeviceTick(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE;
2169WGPU_EXPORT void wgpuDeviceValidateTextureDescriptor(WGPUDevice device, WGPUTextureDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
2170WGPU_EXPORT void wgpuDeviceReference(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE;
2171WGPU_EXPORT void wgpuDeviceRelease(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE;
2172
2173// Methods of ExternalTexture
2174WGPU_EXPORT void wgpuExternalTextureDestroy(WGPUExternalTexture externalTexture) WGPU_FUNCTION_ATTRIBUTE;
2175WGPU_EXPORT void wgpuExternalTextureExpire(WGPUExternalTexture externalTexture) WGPU_FUNCTION_ATTRIBUTE;
2176WGPU_EXPORT void wgpuExternalTextureRefresh(WGPUExternalTexture externalTexture) WGPU_FUNCTION_ATTRIBUTE;
2177WGPU_EXPORT void wgpuExternalTextureSetLabel(WGPUExternalTexture externalTexture, char const * label) WGPU_FUNCTION_ATTRIBUTE;
2178WGPU_EXPORT void wgpuExternalTextureReference(WGPUExternalTexture externalTexture) WGPU_FUNCTION_ATTRIBUTE;
2179WGPU_EXPORT void wgpuExternalTextureRelease(WGPUExternalTexture externalTexture) WGPU_FUNCTION_ATTRIBUTE;
2180
2181// Methods of Instance
2182WGPU_EXPORT WGPUSurface wgpuInstanceCreateSurface(WGPUInstance instance, WGPUSurfaceDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
2183WGPU_EXPORT void wgpuInstanceProcessEvents(WGPUInstance instance) WGPU_FUNCTION_ATTRIBUTE;
2184WGPU_EXPORT void wgpuInstanceRequestAdapter(WGPUInstance instance, WGPU_NULLABLE WGPURequestAdapterOptions const * options, WGPURequestAdapterCallback callback, void * userdata) WGPU_FUNCTION_ATTRIBUTE;
2185WGPU_EXPORT void wgpuInstanceReference(WGPUInstance instance) WGPU_FUNCTION_ATTRIBUTE;
2186WGPU_EXPORT void wgpuInstanceRelease(WGPUInstance instance) WGPU_FUNCTION_ATTRIBUTE;
2187
2188// Methods of PipelineLayout
2189WGPU_EXPORT void wgpuPipelineLayoutSetLabel(WGPUPipelineLayout pipelineLayout, char const * label) WGPU_FUNCTION_ATTRIBUTE;
2190WGPU_EXPORT void wgpuPipelineLayoutReference(WGPUPipelineLayout pipelineLayout) WGPU_FUNCTION_ATTRIBUTE;
2191WGPU_EXPORT void wgpuPipelineLayoutRelease(WGPUPipelineLayout pipelineLayout) WGPU_FUNCTION_ATTRIBUTE;
2192
2193// Methods of QuerySet
2194WGPU_EXPORT void wgpuQuerySetDestroy(WGPUQuerySet querySet) WGPU_FUNCTION_ATTRIBUTE;
2195WGPU_EXPORT uint32_t wgpuQuerySetGetCount(WGPUQuerySet querySet) WGPU_FUNCTION_ATTRIBUTE;
2196WGPU_EXPORT WGPUQueryType wgpuQuerySetGetType(WGPUQuerySet querySet) WGPU_FUNCTION_ATTRIBUTE;
2197WGPU_EXPORT void wgpuQuerySetSetLabel(WGPUQuerySet querySet, char const * label) WGPU_FUNCTION_ATTRIBUTE;
2198WGPU_EXPORT void wgpuQuerySetReference(WGPUQuerySet querySet) WGPU_FUNCTION_ATTRIBUTE;
2199WGPU_EXPORT void wgpuQuerySetRelease(WGPUQuerySet querySet) WGPU_FUNCTION_ATTRIBUTE;
2200
2201// Methods of Queue
2202WGPU_EXPORT void wgpuQueueCopyExternalTextureForBrowser(WGPUQueue queue, WGPUImageCopyExternalTexture const * source, WGPUImageCopyTexture const * destination, WGPUExtent3D const * copySize, WGPUCopyTextureForBrowserOptions const * options) WGPU_FUNCTION_ATTRIBUTE;
2203WGPU_EXPORT void wgpuQueueCopyTextureForBrowser(WGPUQueue queue, WGPUImageCopyTexture const * source, WGPUImageCopyTexture const * destination, WGPUExtent3D const * copySize, WGPUCopyTextureForBrowserOptions const * options) WGPU_FUNCTION_ATTRIBUTE;
2204WGPU_EXPORT void wgpuQueueOnSubmittedWorkDone(WGPUQueue queue, uint64_t signalValue, WGPUQueueWorkDoneCallback callback, void * userdata) WGPU_FUNCTION_ATTRIBUTE;
2205WGPU_EXPORT void wgpuQueueSetLabel(WGPUQueue queue, char const * label) WGPU_FUNCTION_ATTRIBUTE;
2206WGPU_EXPORT void wgpuQueueSubmit(WGPUQueue queue, size_t commandCount, WGPUCommandBuffer const * commands) WGPU_FUNCTION_ATTRIBUTE;
2207WGPU_EXPORT void wgpuQueueWriteBuffer(WGPUQueue queue, WGPUBuffer buffer, uint64_t bufferOffset, void const * data, size_t size) WGPU_FUNCTION_ATTRIBUTE;
2208WGPU_EXPORT void wgpuQueueWriteTexture(WGPUQueue queue, WGPUImageCopyTexture const * destination, void const * data, size_t dataSize, WGPUTextureDataLayout const * dataLayout, WGPUExtent3D const * writeSize) WGPU_FUNCTION_ATTRIBUTE;
2209WGPU_EXPORT void wgpuQueueReference(WGPUQueue queue) WGPU_FUNCTION_ATTRIBUTE;
2210WGPU_EXPORT void wgpuQueueRelease(WGPUQueue queue) WGPU_FUNCTION_ATTRIBUTE;
2211
2212// Methods of RenderBundle
2213WGPU_EXPORT void wgpuRenderBundleSetLabel(WGPURenderBundle renderBundle, char const * label) WGPU_FUNCTION_ATTRIBUTE;
2214WGPU_EXPORT void wgpuRenderBundleReference(WGPURenderBundle renderBundle) WGPU_FUNCTION_ATTRIBUTE;
2215WGPU_EXPORT void wgpuRenderBundleRelease(WGPURenderBundle renderBundle) WGPU_FUNCTION_ATTRIBUTE;
2216
2217// Methods of RenderBundleEncoder
2218WGPU_EXPORT void wgpuRenderBundleEncoderDraw(WGPURenderBundleEncoder renderBundleEncoder, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) WGPU_FUNCTION_ATTRIBUTE;
2219WGPU_EXPORT void wgpuRenderBundleEncoderDrawIndexed(WGPURenderBundleEncoder renderBundleEncoder, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t baseVertex, uint32_t firstInstance) WGPU_FUNCTION_ATTRIBUTE;
2220WGPU_EXPORT void wgpuRenderBundleEncoderDrawIndexedIndirect(WGPURenderBundleEncoder renderBundleEncoder, WGPUBuffer indirectBuffer, uint64_t indirectOffset) WGPU_FUNCTION_ATTRIBUTE;
2221WGPU_EXPORT void wgpuRenderBundleEncoderDrawIndirect(WGPURenderBundleEncoder renderBundleEncoder, WGPUBuffer indirectBuffer, uint64_t indirectOffset) WGPU_FUNCTION_ATTRIBUTE;
2222WGPU_EXPORT WGPURenderBundle wgpuRenderBundleEncoderFinish(WGPURenderBundleEncoder renderBundleEncoder, WGPU_NULLABLE WGPURenderBundleDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
2223WGPU_EXPORT void wgpuRenderBundleEncoderInsertDebugMarker(WGPURenderBundleEncoder renderBundleEncoder, char const * markerLabel) WGPU_FUNCTION_ATTRIBUTE;
2224WGPU_EXPORT void wgpuRenderBundleEncoderPopDebugGroup(WGPURenderBundleEncoder renderBundleEncoder) WGPU_FUNCTION_ATTRIBUTE;
2225WGPU_EXPORT void wgpuRenderBundleEncoderPushDebugGroup(WGPURenderBundleEncoder renderBundleEncoder, char const * groupLabel) WGPU_FUNCTION_ATTRIBUTE;
2226WGPU_EXPORT void wgpuRenderBundleEncoderSetBindGroup(WGPURenderBundleEncoder renderBundleEncoder, uint32_t groupIndex, WGPU_NULLABLE WGPUBindGroup group, size_t dynamicOffsetCount, uint32_t const * dynamicOffsets) WGPU_FUNCTION_ATTRIBUTE;
2227WGPU_EXPORT void wgpuRenderBundleEncoderSetIndexBuffer(WGPURenderBundleEncoder renderBundleEncoder, WGPUBuffer buffer, WGPUIndexFormat format, uint64_t offset, uint64_t size) WGPU_FUNCTION_ATTRIBUTE;
2228WGPU_EXPORT void wgpuRenderBundleEncoderSetLabel(WGPURenderBundleEncoder renderBundleEncoder, char const * label) WGPU_FUNCTION_ATTRIBUTE;
2229WGPU_EXPORT void wgpuRenderBundleEncoderSetPipeline(WGPURenderBundleEncoder renderBundleEncoder, WGPURenderPipeline pipeline) WGPU_FUNCTION_ATTRIBUTE;
2230WGPU_EXPORT void wgpuRenderBundleEncoderSetVertexBuffer(WGPURenderBundleEncoder renderBundleEncoder, uint32_t slot, WGPU_NULLABLE WGPUBuffer buffer, uint64_t offset, uint64_t size) WGPU_FUNCTION_ATTRIBUTE;
2231WGPU_EXPORT void wgpuRenderBundleEncoderReference(WGPURenderBundleEncoder renderBundleEncoder) WGPU_FUNCTION_ATTRIBUTE;
2232WGPU_EXPORT void wgpuRenderBundleEncoderRelease(WGPURenderBundleEncoder renderBundleEncoder) WGPU_FUNCTION_ATTRIBUTE;
2233
2234// Methods of RenderPassEncoder
2235WGPU_EXPORT void wgpuRenderPassEncoderBeginOcclusionQuery(WGPURenderPassEncoder renderPassEncoder, uint32_t queryIndex) WGPU_FUNCTION_ATTRIBUTE;
2236WGPU_EXPORT void wgpuRenderPassEncoderDraw(WGPURenderPassEncoder renderPassEncoder, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) WGPU_FUNCTION_ATTRIBUTE;
2237WGPU_EXPORT void wgpuRenderPassEncoderDrawIndexed(WGPURenderPassEncoder renderPassEncoder, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t baseVertex, uint32_t firstInstance) WGPU_FUNCTION_ATTRIBUTE;
2238WGPU_EXPORT void wgpuRenderPassEncoderDrawIndexedIndirect(WGPURenderPassEncoder renderPassEncoder, WGPUBuffer indirectBuffer, uint64_t indirectOffset) WGPU_FUNCTION_ATTRIBUTE;
2239WGPU_EXPORT void wgpuRenderPassEncoderDrawIndirect(WGPURenderPassEncoder renderPassEncoder, WGPUBuffer indirectBuffer, uint64_t indirectOffset) WGPU_FUNCTION_ATTRIBUTE;
2240WGPU_EXPORT void wgpuRenderPassEncoderEnd(WGPURenderPassEncoder renderPassEncoder) WGPU_FUNCTION_ATTRIBUTE;
2241WGPU_EXPORT void wgpuRenderPassEncoderEndOcclusionQuery(WGPURenderPassEncoder renderPassEncoder) WGPU_FUNCTION_ATTRIBUTE;
2242WGPU_EXPORT void wgpuRenderPassEncoderExecuteBundles(WGPURenderPassEncoder renderPassEncoder, size_t bundleCount, WGPURenderBundle const * bundles) WGPU_FUNCTION_ATTRIBUTE;
2243WGPU_EXPORT void wgpuRenderPassEncoderInsertDebugMarker(WGPURenderPassEncoder renderPassEncoder, char const * markerLabel) WGPU_FUNCTION_ATTRIBUTE;
2244WGPU_EXPORT void wgpuRenderPassEncoderPopDebugGroup(WGPURenderPassEncoder renderPassEncoder) WGPU_FUNCTION_ATTRIBUTE;
2245WGPU_EXPORT void wgpuRenderPassEncoderPushDebugGroup(WGPURenderPassEncoder renderPassEncoder, char const * groupLabel) WGPU_FUNCTION_ATTRIBUTE;
2246WGPU_EXPORT void wgpuRenderPassEncoderSetBindGroup(WGPURenderPassEncoder renderPassEncoder, uint32_t groupIndex, WGPU_NULLABLE WGPUBindGroup group, size_t dynamicOffsetCount, uint32_t const * dynamicOffsets) WGPU_FUNCTION_ATTRIBUTE;
2247WGPU_EXPORT void wgpuRenderPassEncoderSetBlendConstant(WGPURenderPassEncoder renderPassEncoder, WGPUColor const * color) WGPU_FUNCTION_ATTRIBUTE;
2248WGPU_EXPORT void wgpuRenderPassEncoderSetIndexBuffer(WGPURenderPassEncoder renderPassEncoder, WGPUBuffer buffer, WGPUIndexFormat format, uint64_t offset, uint64_t size) WGPU_FUNCTION_ATTRIBUTE;
2249WGPU_EXPORT void wgpuRenderPassEncoderSetLabel(WGPURenderPassEncoder renderPassEncoder, char const * label) WGPU_FUNCTION_ATTRIBUTE;
2250WGPU_EXPORT void wgpuRenderPassEncoderSetPipeline(WGPURenderPassEncoder renderPassEncoder, WGPURenderPipeline pipeline) WGPU_FUNCTION_ATTRIBUTE;
2251WGPU_EXPORT void wgpuRenderPassEncoderSetScissorRect(WGPURenderPassEncoder renderPassEncoder, uint32_t x, uint32_t y, uint32_t width, uint32_t height) WGPU_FUNCTION_ATTRIBUTE;
2252WGPU_EXPORT void wgpuRenderPassEncoderSetStencilReference(WGPURenderPassEncoder renderPassEncoder, uint32_t reference) WGPU_FUNCTION_ATTRIBUTE;
2253WGPU_EXPORT void wgpuRenderPassEncoderSetVertexBuffer(WGPURenderPassEncoder renderPassEncoder, uint32_t slot, WGPU_NULLABLE WGPUBuffer buffer, uint64_t offset, uint64_t size) WGPU_FUNCTION_ATTRIBUTE;
2254WGPU_EXPORT void wgpuRenderPassEncoderSetViewport(WGPURenderPassEncoder renderPassEncoder, float x, float y, float width, float height, float minDepth, float maxDepth) WGPU_FUNCTION_ATTRIBUTE;
2255WGPU_EXPORT void wgpuRenderPassEncoderWriteTimestamp(WGPURenderPassEncoder renderPassEncoder, WGPUQuerySet querySet, uint32_t queryIndex) WGPU_FUNCTION_ATTRIBUTE;
2256WGPU_EXPORT void wgpuRenderPassEncoderReference(WGPURenderPassEncoder renderPassEncoder) WGPU_FUNCTION_ATTRIBUTE;
2257WGPU_EXPORT void wgpuRenderPassEncoderRelease(WGPURenderPassEncoder renderPassEncoder) WGPU_FUNCTION_ATTRIBUTE;
2258
2259// Methods of RenderPipeline
2260WGPU_EXPORT WGPUBindGroupLayout wgpuRenderPipelineGetBindGroupLayout(WGPURenderPipeline renderPipeline, uint32_t groupIndex) WGPU_FUNCTION_ATTRIBUTE;
2261WGPU_EXPORT void wgpuRenderPipelineSetLabel(WGPURenderPipeline renderPipeline, char const * label) WGPU_FUNCTION_ATTRIBUTE;
2262WGPU_EXPORT void wgpuRenderPipelineReference(WGPURenderPipeline renderPipeline) WGPU_FUNCTION_ATTRIBUTE;
2263WGPU_EXPORT void wgpuRenderPipelineRelease(WGPURenderPipeline renderPipeline) WGPU_FUNCTION_ATTRIBUTE;
2264
2265// Methods of Sampler
2266WGPU_EXPORT void wgpuSamplerSetLabel(WGPUSampler sampler, char const * label) WGPU_FUNCTION_ATTRIBUTE;
2267WGPU_EXPORT void wgpuSamplerReference(WGPUSampler sampler) WGPU_FUNCTION_ATTRIBUTE;
2268WGPU_EXPORT void wgpuSamplerRelease(WGPUSampler sampler) WGPU_FUNCTION_ATTRIBUTE;
2269
2270// Methods of ShaderModule
2271WGPU_EXPORT void wgpuShaderModuleGetCompilationInfo(WGPUShaderModule shaderModule, WGPUCompilationInfoCallback callback, void * userdata) WGPU_FUNCTION_ATTRIBUTE;
2272WGPU_EXPORT void wgpuShaderModuleSetLabel(WGPUShaderModule shaderModule, char const * label) WGPU_FUNCTION_ATTRIBUTE;
2273WGPU_EXPORT void wgpuShaderModuleReference(WGPUShaderModule shaderModule) WGPU_FUNCTION_ATTRIBUTE;
2274WGPU_EXPORT void wgpuShaderModuleRelease(WGPUShaderModule shaderModule) WGPU_FUNCTION_ATTRIBUTE;
2275
2276// Methods of SharedFence
2277WGPU_EXPORT void wgpuSharedFenceExportInfo(WGPUSharedFence sharedFence, WGPUSharedFenceExportInfo * info) WGPU_FUNCTION_ATTRIBUTE;
2278WGPU_EXPORT void wgpuSharedFenceReference(WGPUSharedFence sharedFence) WGPU_FUNCTION_ATTRIBUTE;
2279WGPU_EXPORT void wgpuSharedFenceRelease(WGPUSharedFence sharedFence) WGPU_FUNCTION_ATTRIBUTE;
2280
2281// Methods of SharedTextureMemory
2282WGPU_EXPORT void wgpuSharedTextureMemoryBeginAccess(WGPUSharedTextureMemory sharedTextureMemory, WGPUTexture texture, WGPUSharedTextureMemoryBeginAccessDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
2283WGPU_EXPORT WGPUTexture wgpuSharedTextureMemoryCreateTexture(WGPUSharedTextureMemory sharedTextureMemory, WGPUTextureDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
2284WGPU_EXPORT void wgpuSharedTextureMemoryEndAccess(WGPUSharedTextureMemory sharedTextureMemory, WGPUTexture texture, WGPUSharedTextureMemoryEndAccessState * descriptor) WGPU_FUNCTION_ATTRIBUTE;
2285WGPU_EXPORT void wgpuSharedTextureMemoryGetProperties(WGPUSharedTextureMemory sharedTextureMemory, WGPUSharedTextureMemoryProperties * properties) WGPU_FUNCTION_ATTRIBUTE;
2286WGPU_EXPORT void wgpuSharedTextureMemorySetLabel(WGPUSharedTextureMemory sharedTextureMemory, char const * label) WGPU_FUNCTION_ATTRIBUTE;
2287WGPU_EXPORT void wgpuSharedTextureMemoryReference(WGPUSharedTextureMemory sharedTextureMemory) WGPU_FUNCTION_ATTRIBUTE;
2288WGPU_EXPORT void wgpuSharedTextureMemoryRelease(WGPUSharedTextureMemory sharedTextureMemory) WGPU_FUNCTION_ATTRIBUTE;
2289
2290// Methods of Surface
2291WGPU_EXPORT void wgpuSurfaceReference(WGPUSurface surface) WGPU_FUNCTION_ATTRIBUTE;
2292WGPU_EXPORT void wgpuSurfaceRelease(WGPUSurface surface) WGPU_FUNCTION_ATTRIBUTE;
2293
2294// Methods of SwapChain
2295WGPU_EXPORT WGPUTexture wgpuSwapChainGetCurrentTexture(WGPUSwapChain swapChain) WGPU_FUNCTION_ATTRIBUTE;
2296WGPU_EXPORT WGPUTextureView wgpuSwapChainGetCurrentTextureView(WGPUSwapChain swapChain) WGPU_FUNCTION_ATTRIBUTE;
2297WGPU_EXPORT void wgpuSwapChainPresent(WGPUSwapChain swapChain) WGPU_FUNCTION_ATTRIBUTE;
2298WGPU_EXPORT void wgpuSwapChainReference(WGPUSwapChain swapChain) WGPU_FUNCTION_ATTRIBUTE;
2299WGPU_EXPORT void wgpuSwapChainRelease(WGPUSwapChain swapChain) WGPU_FUNCTION_ATTRIBUTE;
2300
2301// Methods of Texture
2302WGPU_EXPORT WGPUTextureView wgpuTextureCreateView(WGPUTexture texture, WGPU_NULLABLE WGPUTextureViewDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE;
2303WGPU_EXPORT void wgpuTextureDestroy(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
2304WGPU_EXPORT uint32_t wgpuTextureGetDepthOrArrayLayers(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
2305WGPU_EXPORT WGPUTextureDimension wgpuTextureGetDimension(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
2306WGPU_EXPORT WGPUTextureFormat wgpuTextureGetFormat(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
2307WGPU_EXPORT uint32_t wgpuTextureGetHeight(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
2308WGPU_EXPORT uint32_t wgpuTextureGetMipLevelCount(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
2309WGPU_EXPORT uint32_t wgpuTextureGetSampleCount(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
2310WGPU_EXPORT WGPUTextureUsageFlags wgpuTextureGetUsage(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
2311WGPU_EXPORT uint32_t wgpuTextureGetWidth(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
2312WGPU_EXPORT void wgpuTextureSetLabel(WGPUTexture texture, char const * label) WGPU_FUNCTION_ATTRIBUTE;
2313WGPU_EXPORT void wgpuTextureReference(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
2314WGPU_EXPORT void wgpuTextureRelease(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE;
2315
2316// Methods of TextureView
2317WGPU_EXPORT void wgpuTextureViewSetLabel(WGPUTextureView textureView, char const * label) WGPU_FUNCTION_ATTRIBUTE;
2318WGPU_EXPORT void wgpuTextureViewReference(WGPUTextureView textureView) WGPU_FUNCTION_ATTRIBUTE;
2319WGPU_EXPORT void wgpuTextureViewRelease(WGPUTextureView textureView) WGPU_FUNCTION_ATTRIBUTE;
2320
2321
2322#endif  // !defined(WGPU_SKIP_DECLARATIONS)
2323
2324#ifdef __cplusplus
2325} // extern "C"
2326#endif
2327
2328#endif // WEBGPU_H_