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