webgpu.h (162592B)
1 /** 2 * Copyright 2019-2023 WebGPU-Native developers 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 /** @file */ 8 9 /** 10 * \mainpage 11 * 12 * **Important:** *This documentation is a Work In Progress.* 13 * 14 * This is the home of WebGPU C API specification. We define here the standard 15 * `webgpu.h` header that all implementations should provide. 16 */ 17 18 #ifndef WEBGPU_H_ 19 #define WEBGPU_H_ 20 21 #if defined(WGPU_SHARED_LIBRARY) 22 # if defined(_WIN32) 23 # if defined(WGPU_IMPLEMENTATION) 24 # define WGPU_EXPORT __declspec(dllexport) 25 # else 26 # define WGPU_EXPORT __declspec(dllimport) 27 # endif 28 # else // defined(_WIN32) 29 # if defined(WGPU_IMPLEMENTATION) 30 # define WGPU_EXPORT __attribute__((visibility("default"))) 31 # else 32 # define WGPU_EXPORT 33 # endif 34 # endif // defined(_WIN32) 35 #else // defined(WGPU_SHARED_LIBRARY) 36 # define WGPU_EXPORT 37 #endif // defined(WGPU_SHARED_LIBRARY) 38 39 #if !defined(WGPU_OBJECT_ATTRIBUTE) 40 #define WGPU_OBJECT_ATTRIBUTE 41 #endif 42 #if !defined(WGPU_ENUM_ATTRIBUTE) 43 #define WGPU_ENUM_ATTRIBUTE 44 #endif 45 #if !defined(WGPU_STRUCTURE_ATTRIBUTE) 46 #define WGPU_STRUCTURE_ATTRIBUTE 47 #endif 48 #if !defined(WGPU_FUNCTION_ATTRIBUTE) 49 #define WGPU_FUNCTION_ATTRIBUTE 50 #endif 51 #if !defined(WGPU_NULLABLE) 52 #define WGPU_NULLABLE 53 #endif 54 55 #include <stdint.h> 56 #include <stddef.h> 57 58 #define _wgpu_COMMA , 59 #if defined(__cplusplus) 60 # if __cplusplus >= 201103L 61 # define _wgpu_MAKE_INIT_STRUCT(type, value) (type value) 62 # else 63 # define _wgpu_MAKE_INIT_STRUCT(type, value) value 64 # endif 65 #elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L 66 # define _wgpu_MAKE_INIT_STRUCT(type, value) ((type) value) 67 #else 68 # define _wgpu_MAKE_INIT_STRUCT(type, value) value 69 #endif 70 71 72 /** 73 * \defgroup Constants 74 * \brief Constants. 75 * 76 * @{ 77 */ 78 #define WGPU_ARRAY_LAYER_COUNT_UNDEFINED (UINT32_MAX) 79 #define WGPU_COPY_STRIDE_UNDEFINED (UINT32_MAX) 80 #define WGPU_DEPTH_SLICE_UNDEFINED (UINT32_MAX) 81 #define WGPU_LIMIT_U32_UNDEFINED (UINT32_MAX) 82 #define WGPU_LIMIT_U64_UNDEFINED (UINT64_MAX) 83 #define WGPU_MIP_LEVEL_COUNT_UNDEFINED (UINT32_MAX) 84 #define WGPU_QUERY_SET_INDEX_UNDEFINED (UINT32_MAX) 85 #define WGPU_WHOLE_MAP_SIZE (SIZE_MAX) 86 #define WGPU_WHOLE_SIZE (UINT64_MAX) 87 88 89 /** @} */ 90 91 /** 92 * \defgroup UtilityTypes Utility Types 93 * 94 * @{ 95 */ 96 typedef uint64_t WGPUFlags; 97 typedef uint32_t WGPUBool; 98 99 /** 100 * Nullable value defining a pointer+length view into a UTF-8 encoded string. 101 * 102 * Values passed into the API may use the special length value @ref WGPU_STRLEN 103 * to indicate a null-terminated string. 104 * Non-null values passed out of the API (for example as callback arguments) 105 * always provide an explicit length and **may or may not be null-terminated**. 106 * 107 * Some inputs to the API accept null values. Those which do not accept null 108 * values "default" to the empty string when null values are passed. 109 * 110 * Values are encoded as follows: 111 * - `{NULL, WGPU_STRLEN}`: the null value. 112 * - `{non_null_pointer, WGPU_STRLEN}`: a null-terminated string view. 113 * - `{any, 0}`: the empty string. 114 * - `{NULL, non_zero_length}`: not allowed (null dereference). 115 * - `{non_null_pointer, non_zero_length}`: an explictly-sized string view with 116 * size `non_zero_length` (in bytes). 117 * 118 * For info on how this is used in various places, see \ref Strings. 119 */ 120 typedef struct WGPUStringView { 121 char const * WGPU_NULLABLE data; 122 size_t length; 123 } WGPUStringView; 124 125 /** 126 * Sentinel value used in @ref WGPUStringView to indicate that the pointer 127 * is to a null-terminated string, rather than an explicitly-sized string. 128 */ 129 #define WGPU_STRLEN SIZE_MAX 130 131 #define WGPU_STRING_VIEW_INIT _wgpu_MAKE_INIT_STRUCT(WGPUStringView, { \ 132 /*.data=*/NULL _wgpu_COMMA \ 133 /*.length=*/WGPU_STRLEN _wgpu_COMMA \ 134 }) 135 136 137 /** @} */ 138 139 /** 140 * \defgroup Objects 141 * \brief Opaque, non-dispatchable handles to WebGPU objects. 142 * 143 * @{ 144 */ 145 typedef struct WGPUAdapterImpl* WGPUAdapter WGPU_OBJECT_ATTRIBUTE; 146 typedef struct WGPUBindGroupImpl* WGPUBindGroup WGPU_OBJECT_ATTRIBUTE; 147 typedef struct WGPUBindGroupLayoutImpl* WGPUBindGroupLayout WGPU_OBJECT_ATTRIBUTE; 148 typedef struct WGPUBufferImpl* WGPUBuffer WGPU_OBJECT_ATTRIBUTE; 149 typedef struct WGPUCommandBufferImpl* WGPUCommandBuffer WGPU_OBJECT_ATTRIBUTE; 150 typedef struct WGPUCommandEncoderImpl* WGPUCommandEncoder WGPU_OBJECT_ATTRIBUTE; 151 typedef struct WGPUComputePassEncoderImpl* WGPUComputePassEncoder WGPU_OBJECT_ATTRIBUTE; 152 typedef struct WGPUComputePipelineImpl* WGPUComputePipeline WGPU_OBJECT_ATTRIBUTE; 153 typedef struct WGPUDeviceImpl* WGPUDevice WGPU_OBJECT_ATTRIBUTE; 154 typedef struct WGPUInstanceImpl* WGPUInstance WGPU_OBJECT_ATTRIBUTE; 155 typedef struct WGPUPipelineLayoutImpl* WGPUPipelineLayout WGPU_OBJECT_ATTRIBUTE; 156 typedef struct WGPUQuerySetImpl* WGPUQuerySet WGPU_OBJECT_ATTRIBUTE; 157 typedef struct WGPUQueueImpl* WGPUQueue WGPU_OBJECT_ATTRIBUTE; 158 typedef struct WGPURenderBundleImpl* WGPURenderBundle WGPU_OBJECT_ATTRIBUTE; 159 typedef struct WGPURenderBundleEncoderImpl* WGPURenderBundleEncoder WGPU_OBJECT_ATTRIBUTE; 160 typedef struct WGPURenderPassEncoderImpl* WGPURenderPassEncoder WGPU_OBJECT_ATTRIBUTE; 161 typedef struct WGPURenderPipelineImpl* WGPURenderPipeline WGPU_OBJECT_ATTRIBUTE; 162 typedef struct WGPUSamplerImpl* WGPUSampler WGPU_OBJECT_ATTRIBUTE; 163 typedef struct WGPUShaderModuleImpl* WGPUShaderModule WGPU_OBJECT_ATTRIBUTE; 164 /** 165 * An object used to continuously present image data to the user, see @ref Surfaces for more details. 166 */ 167 typedef struct WGPUSurfaceImpl* WGPUSurface WGPU_OBJECT_ATTRIBUTE; 168 typedef struct WGPUTextureImpl* WGPUTexture WGPU_OBJECT_ATTRIBUTE; 169 typedef struct WGPUTextureViewImpl* WGPUTextureView WGPU_OBJECT_ATTRIBUTE; 170 171 172 /** @} */ 173 // Structure forward declarations 174 struct WGPUAdapterInfo; 175 struct WGPUBindGroupEntry; 176 struct WGPUBlendComponent; 177 struct WGPUBufferBindingLayout; 178 struct WGPUBufferDescriptor; 179 struct WGPUColor; 180 struct WGPUCommandBufferDescriptor; 181 struct WGPUCommandEncoderDescriptor; 182 struct WGPUCompilationMessage; 183 struct WGPUComputePassTimestampWrites; 184 struct WGPUConstantEntry; 185 struct WGPUExtent3D; 186 struct WGPUFuture; 187 struct WGPUInstanceCapabilities; 188 struct WGPULimits; 189 struct WGPUMultisampleState; 190 struct WGPUOrigin3D; 191 struct WGPUPipelineLayoutDescriptor; 192 struct WGPUPrimitiveState; 193 struct WGPUQuerySetDescriptor; 194 struct WGPUQueueDescriptor; 195 struct WGPURenderBundleDescriptor; 196 struct WGPURenderBundleEncoderDescriptor; 197 struct WGPURenderPassDepthStencilAttachment; 198 struct WGPURenderPassMaxDrawCount; 199 struct WGPURenderPassTimestampWrites; 200 struct WGPURequestAdapterOptions; 201 struct WGPUSamplerBindingLayout; 202 struct WGPUSamplerDescriptor; 203 struct WGPUShaderModuleDescriptor; 204 struct WGPUShaderSourceSPIRV; 205 struct WGPUShaderSourceWGSL; 206 struct WGPUStencilFaceState; 207 struct WGPUStorageTextureBindingLayout; 208 struct WGPUSupportedFeatures; 209 struct WGPUSupportedWGSLLanguageFeatures; 210 struct WGPUSurfaceCapabilities; 211 struct WGPUSurfaceConfiguration; 212 struct WGPUSurfaceDescriptor; 213 struct WGPUSurfaceSourceAndroidNativeWindow; 214 struct WGPUSurfaceSourceMetalLayer; 215 struct WGPUSurfaceSourceWaylandSurface; 216 struct WGPUSurfaceSourceWindowsHWND; 217 struct WGPUSurfaceSourceXCBWindow; 218 struct WGPUSurfaceSourceXlibWindow; 219 struct WGPUSurfaceTexture; 220 struct WGPUTexelCopyBufferLayout; 221 struct WGPUTextureBindingLayout; 222 struct WGPUTextureViewDescriptor; 223 struct WGPUVertexAttribute; 224 struct WGPUBindGroupDescriptor; 225 struct WGPUBindGroupLayoutEntry; 226 struct WGPUBlendState; 227 struct WGPUCompilationInfo; 228 struct WGPUComputePassDescriptor; 229 struct WGPUDepthStencilState; 230 struct WGPUDeviceDescriptor; 231 struct WGPUFutureWaitInfo; 232 struct WGPUInstanceDescriptor; 233 struct WGPUProgrammableStageDescriptor; 234 struct WGPURenderPassColorAttachment; 235 struct WGPUTexelCopyBufferInfo; 236 struct WGPUTexelCopyTextureInfo; 237 struct WGPUTextureDescriptor; 238 struct WGPUVertexBufferLayout; 239 struct WGPUBindGroupLayoutDescriptor; 240 struct WGPUColorTargetState; 241 struct WGPUComputePipelineDescriptor; 242 struct WGPURenderPassDescriptor; 243 struct WGPUVertexState; 244 struct WGPUFragmentState; 245 struct WGPURenderPipelineDescriptor; 246 247 // Callback info structure forward declarations 248 struct WGPUBufferMapCallbackInfo; 249 struct WGPUCompilationInfoCallbackInfo; 250 struct WGPUCreateComputePipelineAsyncCallbackInfo; 251 struct WGPUCreateRenderPipelineAsyncCallbackInfo; 252 struct WGPUDeviceLostCallbackInfo; 253 struct WGPUPopErrorScopeCallbackInfo; 254 struct WGPUQueueWorkDoneCallbackInfo; 255 struct WGPURequestAdapterCallbackInfo; 256 struct WGPURequestDeviceCallbackInfo; 257 struct WGPUUncapturedErrorCallbackInfo; 258 259 260 /** 261 * \defgroup Enumerations 262 * \brief Enums. 263 * 264 * @{ 265 */ 266 typedef enum WGPUAdapterType { 267 WGPUAdapterType_DiscreteGPU = 0x00000001, 268 WGPUAdapterType_IntegratedGPU = 0x00000002, 269 WGPUAdapterType_CPU = 0x00000003, 270 WGPUAdapterType_Unknown = 0x00000004, 271 WGPUAdapterType_Force32 = 0x7FFFFFFF 272 } WGPUAdapterType WGPU_ENUM_ATTRIBUTE; 273 274 typedef enum WGPUAddressMode { 275 /** 276 * `0x00000000`. 277 * Indicates no value is passed for this argument. See @ref SentinelValues. 278 */ 279 WGPUAddressMode_Undefined = 0x00000000, 280 WGPUAddressMode_ClampToEdge = 0x00000001, 281 WGPUAddressMode_Repeat = 0x00000002, 282 WGPUAddressMode_MirrorRepeat = 0x00000003, 283 WGPUAddressMode_Force32 = 0x7FFFFFFF 284 } WGPUAddressMode WGPU_ENUM_ATTRIBUTE; 285 286 typedef enum WGPUBackendType { 287 /** 288 * `0x00000000`. 289 * Indicates no value is passed for this argument. See @ref SentinelValues. 290 */ 291 WGPUBackendType_Undefined = 0x00000000, 292 WGPUBackendType_Null = 0x00000001, 293 WGPUBackendType_WebGPU = 0x00000002, 294 WGPUBackendType_D3D11 = 0x00000003, 295 WGPUBackendType_D3D12 = 0x00000004, 296 WGPUBackendType_Metal = 0x00000005, 297 WGPUBackendType_Vulkan = 0x00000006, 298 WGPUBackendType_OpenGL = 0x00000007, 299 WGPUBackendType_OpenGLES = 0x00000008, 300 WGPUBackendType_Force32 = 0x7FFFFFFF 301 } WGPUBackendType WGPU_ENUM_ATTRIBUTE; 302 303 typedef enum WGPUBlendFactor { 304 /** 305 * `0x00000000`. 306 * Indicates no value is passed for this argument. See @ref SentinelValues. 307 */ 308 WGPUBlendFactor_Undefined = 0x00000000, 309 WGPUBlendFactor_Zero = 0x00000001, 310 WGPUBlendFactor_One = 0x00000002, 311 WGPUBlendFactor_Src = 0x00000003, 312 WGPUBlendFactor_OneMinusSrc = 0x00000004, 313 WGPUBlendFactor_SrcAlpha = 0x00000005, 314 WGPUBlendFactor_OneMinusSrcAlpha = 0x00000006, 315 WGPUBlendFactor_Dst = 0x00000007, 316 WGPUBlendFactor_OneMinusDst = 0x00000008, 317 WGPUBlendFactor_DstAlpha = 0x00000009, 318 WGPUBlendFactor_OneMinusDstAlpha = 0x0000000A, 319 WGPUBlendFactor_SrcAlphaSaturated = 0x0000000B, 320 WGPUBlendFactor_Constant = 0x0000000C, 321 WGPUBlendFactor_OneMinusConstant = 0x0000000D, 322 WGPUBlendFactor_Src1 = 0x0000000E, 323 WGPUBlendFactor_OneMinusSrc1 = 0x0000000F, 324 WGPUBlendFactor_Src1Alpha = 0x00000010, 325 WGPUBlendFactor_OneMinusSrc1Alpha = 0x00000011, 326 WGPUBlendFactor_Force32 = 0x7FFFFFFF 327 } WGPUBlendFactor WGPU_ENUM_ATTRIBUTE; 328 329 typedef enum WGPUBlendOperation { 330 /** 331 * `0x00000000`. 332 * Indicates no value is passed for this argument. See @ref SentinelValues. 333 */ 334 WGPUBlendOperation_Undefined = 0x00000000, 335 WGPUBlendOperation_Add = 0x00000001, 336 WGPUBlendOperation_Subtract = 0x00000002, 337 WGPUBlendOperation_ReverseSubtract = 0x00000003, 338 WGPUBlendOperation_Min = 0x00000004, 339 WGPUBlendOperation_Max = 0x00000005, 340 WGPUBlendOperation_Force32 = 0x7FFFFFFF 341 } WGPUBlendOperation WGPU_ENUM_ATTRIBUTE; 342 343 typedef enum WGPUBufferBindingType { 344 /** 345 * `0x00000000`. 346 * Indicates that this @ref WGPUBufferBindingLayout member of 347 * its parent @ref WGPUBindGroupLayoutEntry is not used. 348 * (See also @ref SentinelValues.) 349 */ 350 WGPUBufferBindingType_BindingNotUsed = 0x00000000, 351 /** 352 * `0x00000001`. 353 * Indicates no value is passed for this argument. See @ref SentinelValues. 354 */ 355 WGPUBufferBindingType_Undefined = 0x00000001, 356 WGPUBufferBindingType_Uniform = 0x00000002, 357 WGPUBufferBindingType_Storage = 0x00000003, 358 WGPUBufferBindingType_ReadOnlyStorage = 0x00000004, 359 WGPUBufferBindingType_Force32 = 0x7FFFFFFF 360 } WGPUBufferBindingType WGPU_ENUM_ATTRIBUTE; 361 362 typedef enum WGPUBufferMapState { 363 WGPUBufferMapState_Unmapped = 0x00000001, 364 WGPUBufferMapState_Pending = 0x00000002, 365 WGPUBufferMapState_Mapped = 0x00000003, 366 WGPUBufferMapState_Force32 = 0x7FFFFFFF 367 } WGPUBufferMapState WGPU_ENUM_ATTRIBUTE; 368 369 /** 370 * The callback mode controls how a callback for an asynchronous operation may be fired. See @ref Asynchronous-Operations for how these are used. 371 */ 372 typedef enum WGPUCallbackMode { 373 /** 374 * `0x00000001`. 375 * Callbacks created with `WGPUCallbackMode_WaitAnyOnly`: 376 * - fire when the asynchronous operation's future is passed to a call to `::wgpuInstanceWaitAny` 377 * AND the operation has already completed or it completes inside the call to `::wgpuInstanceWaitAny`. 378 */ 379 WGPUCallbackMode_WaitAnyOnly = 0x00000001, 380 /** 381 * `0x00000002`. 382 * Callbacks created with `WGPUCallbackMode_AllowProcessEvents`: 383 * - fire for the same reasons as callbacks created with `WGPUCallbackMode_WaitAnyOnly` 384 * - fire inside a call to `::wgpuInstanceProcessEvents` if the asynchronous operation is complete. 385 */ 386 WGPUCallbackMode_AllowProcessEvents = 0x00000002, 387 /** 388 * `0x00000003`. 389 * Callbacks created with `WGPUCallbackMode_AllowSpontaneous`: 390 * - fire for the same reasons as callbacks created with `WGPUCallbackMode_AllowProcessEvents` 391 * - **may** fire spontaneously on an arbitrary or application thread, when the WebGPU implementations discovers that the asynchronous operation is complete. 392 * 393 * Implementations _should_ fire spontaneous callbacks as soon as possible. 394 * 395 * @note Because spontaneous callbacks may fire at an arbitrary time on an arbitrary thread, applications should take extra care when acquiring locks or mutating state inside the callback. It undefined behavior to re-entrantly call into the webgpu.h API if the callback fires while inside the callstack of another webgpu.h function that is not `wgpuInstanceWaitAny` or `wgpuInstanceProcessEvents`. 396 */ 397 WGPUCallbackMode_AllowSpontaneous = 0x00000003, 398 WGPUCallbackMode_Force32 = 0x7FFFFFFF 399 } WGPUCallbackMode WGPU_ENUM_ATTRIBUTE; 400 401 typedef enum WGPUCompareFunction { 402 /** 403 * `0x00000000`. 404 * Indicates no value is passed for this argument. See @ref SentinelValues. 405 */ 406 WGPUCompareFunction_Undefined = 0x00000000, 407 WGPUCompareFunction_Never = 0x00000001, 408 WGPUCompareFunction_Less = 0x00000002, 409 WGPUCompareFunction_Equal = 0x00000003, 410 WGPUCompareFunction_LessEqual = 0x00000004, 411 WGPUCompareFunction_Greater = 0x00000005, 412 WGPUCompareFunction_NotEqual = 0x00000006, 413 WGPUCompareFunction_GreaterEqual = 0x00000007, 414 WGPUCompareFunction_Always = 0x00000008, 415 WGPUCompareFunction_Force32 = 0x7FFFFFFF 416 } WGPUCompareFunction WGPU_ENUM_ATTRIBUTE; 417 418 typedef enum WGPUCompilationInfoRequestStatus { 419 WGPUCompilationInfoRequestStatus_Success = 0x00000001, 420 WGPUCompilationInfoRequestStatus_InstanceDropped = 0x00000002, 421 WGPUCompilationInfoRequestStatus_Error = 0x00000003, 422 WGPUCompilationInfoRequestStatus_Unknown = 0x00000004, 423 WGPUCompilationInfoRequestStatus_Force32 = 0x7FFFFFFF 424 } WGPUCompilationInfoRequestStatus WGPU_ENUM_ATTRIBUTE; 425 426 typedef enum WGPUCompilationMessageType { 427 WGPUCompilationMessageType_Error = 0x00000001, 428 WGPUCompilationMessageType_Warning = 0x00000002, 429 WGPUCompilationMessageType_Info = 0x00000003, 430 WGPUCompilationMessageType_Force32 = 0x7FFFFFFF 431 } WGPUCompilationMessageType WGPU_ENUM_ATTRIBUTE; 432 433 /** 434 * Describes how frames are composited with other contents on the screen when `::wgpuSurfacePresent` is called. 435 */ 436 typedef enum WGPUCompositeAlphaMode { 437 /** 438 * `0x00000000`. 439 * Lets the WebGPU implementation choose the best mode (supported, and with the best performance) between @ref WGPUCompositeAlphaMode_Opaque or @ref WGPUCompositeAlphaMode_Inherit. 440 */ 441 WGPUCompositeAlphaMode_Auto = 0x00000000, 442 /** 443 * `0x00000001`. 444 * The alpha component of the image is ignored and teated as if it is always 1.0. 445 */ 446 WGPUCompositeAlphaMode_Opaque = 0x00000001, 447 /** 448 * `0x00000002`. 449 * The alpha component is respected and non-alpha components are assumed to be already multiplied with the alpha component. For example, (0.5, 0, 0, 0.5) is semi-transparent bright red. 450 */ 451 WGPUCompositeAlphaMode_Premultiplied = 0x00000002, 452 /** 453 * `0x00000003`. 454 * The alpha component is respected and non-alpha components are assumed to NOT be already multiplied with the alpha component. For example, (1.0, 0, 0, 0.5) is semi-transparent bright red. 455 */ 456 WGPUCompositeAlphaMode_Unpremultiplied = 0x00000003, 457 /** 458 * `0x00000004`. 459 * The handling of the alpha component is unknown to WebGPU and should be handled by the application using system-specific APIs. This mode may be unavailable (for example on Wasm). 460 */ 461 WGPUCompositeAlphaMode_Inherit = 0x00000004, 462 WGPUCompositeAlphaMode_Force32 = 0x7FFFFFFF 463 } WGPUCompositeAlphaMode WGPU_ENUM_ATTRIBUTE; 464 465 typedef enum WGPUCreatePipelineAsyncStatus { 466 WGPUCreatePipelineAsyncStatus_Success = 0x00000001, 467 WGPUCreatePipelineAsyncStatus_InstanceDropped = 0x00000002, 468 WGPUCreatePipelineAsyncStatus_ValidationError = 0x00000003, 469 WGPUCreatePipelineAsyncStatus_InternalError = 0x00000004, 470 WGPUCreatePipelineAsyncStatus_Unknown = 0x00000005, 471 WGPUCreatePipelineAsyncStatus_Force32 = 0x7FFFFFFF 472 } WGPUCreatePipelineAsyncStatus WGPU_ENUM_ATTRIBUTE; 473 474 typedef enum WGPUCullMode { 475 /** 476 * `0x00000000`. 477 * Indicates no value is passed for this argument. See @ref SentinelValues. 478 */ 479 WGPUCullMode_Undefined = 0x00000000, 480 WGPUCullMode_None = 0x00000001, 481 WGPUCullMode_Front = 0x00000002, 482 WGPUCullMode_Back = 0x00000003, 483 WGPUCullMode_Force32 = 0x7FFFFFFF 484 } WGPUCullMode WGPU_ENUM_ATTRIBUTE; 485 486 typedef enum WGPUDeviceLostReason { 487 WGPUDeviceLostReason_Unknown = 0x00000001, 488 WGPUDeviceLostReason_Destroyed = 0x00000002, 489 WGPUDeviceLostReason_InstanceDropped = 0x00000003, 490 WGPUDeviceLostReason_FailedCreation = 0x00000004, 491 WGPUDeviceLostReason_Force32 = 0x7FFFFFFF 492 } WGPUDeviceLostReason WGPU_ENUM_ATTRIBUTE; 493 494 typedef enum WGPUErrorFilter { 495 WGPUErrorFilter_Validation = 0x00000001, 496 WGPUErrorFilter_OutOfMemory = 0x00000002, 497 WGPUErrorFilter_Internal = 0x00000003, 498 WGPUErrorFilter_Force32 = 0x7FFFFFFF 499 } WGPUErrorFilter WGPU_ENUM_ATTRIBUTE; 500 501 typedef enum WGPUErrorType { 502 WGPUErrorType_NoError = 0x00000001, 503 WGPUErrorType_Validation = 0x00000002, 504 WGPUErrorType_OutOfMemory = 0x00000003, 505 WGPUErrorType_Internal = 0x00000004, 506 WGPUErrorType_Unknown = 0x00000005, 507 WGPUErrorType_Force32 = 0x7FFFFFFF 508 } WGPUErrorType WGPU_ENUM_ATTRIBUTE; 509 510 /** 511 * See @ref WGPURequestAdapterOptions::featureLevel. 512 */ 513 typedef enum WGPUFeatureLevel { 514 /** 515 * `0x00000001`. 516 * "Compatibility" profile which can be supported on OpenGL ES 3.1. 517 */ 518 WGPUFeatureLevel_Compatibility = 0x00000001, 519 /** 520 * `0x00000002`. 521 * "Core" profile which can be supported on Vulkan/Metal/D3D12. 522 */ 523 WGPUFeatureLevel_Core = 0x00000002, 524 WGPUFeatureLevel_Force32 = 0x7FFFFFFF 525 } WGPUFeatureLevel WGPU_ENUM_ATTRIBUTE; 526 527 typedef enum WGPUFeatureName { 528 WGPUFeatureName_Undefined = 0x00000000, 529 WGPUFeatureName_DepthClipControl = 0x00000001, 530 WGPUFeatureName_Depth32FloatStencil8 = 0x00000002, 531 WGPUFeatureName_TimestampQuery = 0x00000003, 532 WGPUFeatureName_TextureCompressionBC = 0x00000004, 533 WGPUFeatureName_TextureCompressionBCSliced3D = 0x00000005, 534 WGPUFeatureName_TextureCompressionETC2 = 0x00000006, 535 WGPUFeatureName_TextureCompressionASTC = 0x00000007, 536 WGPUFeatureName_TextureCompressionASTCSliced3D = 0x00000008, 537 WGPUFeatureName_IndirectFirstInstance = 0x00000009, 538 WGPUFeatureName_ShaderF16 = 0x0000000A, 539 WGPUFeatureName_RG11B10UfloatRenderable = 0x0000000B, 540 WGPUFeatureName_BGRA8UnormStorage = 0x0000000C, 541 WGPUFeatureName_Float32Filterable = 0x0000000D, 542 WGPUFeatureName_Float32Blendable = 0x0000000E, 543 WGPUFeatureName_ClipDistances = 0x0000000F, 544 WGPUFeatureName_DualSourceBlending = 0x00000010, 545 WGPUFeatureName_Force32 = 0x7FFFFFFF 546 } WGPUFeatureName WGPU_ENUM_ATTRIBUTE; 547 548 typedef enum WGPUFilterMode { 549 /** 550 * `0x00000000`. 551 * Indicates no value is passed for this argument. See @ref SentinelValues. 552 */ 553 WGPUFilterMode_Undefined = 0x00000000, 554 WGPUFilterMode_Nearest = 0x00000001, 555 WGPUFilterMode_Linear = 0x00000002, 556 WGPUFilterMode_Force32 = 0x7FFFFFFF 557 } WGPUFilterMode WGPU_ENUM_ATTRIBUTE; 558 559 typedef enum WGPUFrontFace { 560 /** 561 * `0x00000000`. 562 * Indicates no value is passed for this argument. See @ref SentinelValues. 563 */ 564 WGPUFrontFace_Undefined = 0x00000000, 565 WGPUFrontFace_CCW = 0x00000001, 566 WGPUFrontFace_CW = 0x00000002, 567 WGPUFrontFace_Force32 = 0x7FFFFFFF 568 } WGPUFrontFace WGPU_ENUM_ATTRIBUTE; 569 570 typedef enum WGPUIndexFormat { 571 /** 572 * `0x00000000`. 573 * Indicates no value is passed for this argument. See @ref SentinelValues. 574 */ 575 WGPUIndexFormat_Undefined = 0x00000000, 576 WGPUIndexFormat_Uint16 = 0x00000001, 577 WGPUIndexFormat_Uint32 = 0x00000002, 578 WGPUIndexFormat_Force32 = 0x7FFFFFFF 579 } WGPUIndexFormat WGPU_ENUM_ATTRIBUTE; 580 581 typedef enum WGPULoadOp { 582 /** 583 * `0x00000000`. 584 * Indicates no value is passed for this argument. See @ref SentinelValues. 585 */ 586 WGPULoadOp_Undefined = 0x00000000, 587 WGPULoadOp_Load = 0x00000001, 588 WGPULoadOp_Clear = 0x00000002, 589 WGPULoadOp_Force32 = 0x7FFFFFFF 590 } WGPULoadOp WGPU_ENUM_ATTRIBUTE; 591 592 typedef enum WGPUMapAsyncStatus { 593 WGPUMapAsyncStatus_Success = 0x00000001, 594 WGPUMapAsyncStatus_InstanceDropped = 0x00000002, 595 WGPUMapAsyncStatus_Error = 0x00000003, 596 WGPUMapAsyncStatus_Aborted = 0x00000004, 597 WGPUMapAsyncStatus_Unknown = 0x00000005, 598 WGPUMapAsyncStatus_Force32 = 0x7FFFFFFF 599 } WGPUMapAsyncStatus WGPU_ENUM_ATTRIBUTE; 600 601 typedef enum WGPUMipmapFilterMode { 602 /** 603 * `0x00000000`. 604 * Indicates no value is passed for this argument. See @ref SentinelValues. 605 */ 606 WGPUMipmapFilterMode_Undefined = 0x00000000, 607 WGPUMipmapFilterMode_Nearest = 0x00000001, 608 WGPUMipmapFilterMode_Linear = 0x00000002, 609 WGPUMipmapFilterMode_Force32 = 0x7FFFFFFF 610 } WGPUMipmapFilterMode WGPU_ENUM_ATTRIBUTE; 611 612 typedef enum WGPUOptionalBool { 613 WGPUOptionalBool_False = 0x00000000, 614 WGPUOptionalBool_True = 0x00000001, 615 WGPUOptionalBool_Undefined = 0x00000002, 616 WGPUOptionalBool_Force32 = 0x7FFFFFFF 617 } WGPUOptionalBool WGPU_ENUM_ATTRIBUTE; 618 619 typedef enum WGPUPopErrorScopeStatus { 620 /** 621 * `0x00000001`. 622 * The error scope stack was successfully popped and a result was reported. 623 */ 624 WGPUPopErrorScopeStatus_Success = 0x00000001, 625 WGPUPopErrorScopeStatus_InstanceDropped = 0x00000002, 626 /** 627 * `0x00000003`. 628 * The error scope stack could not be popped, because it was empty. 629 */ 630 WGPUPopErrorScopeStatus_EmptyStack = 0x00000003, 631 WGPUPopErrorScopeStatus_Force32 = 0x7FFFFFFF 632 } WGPUPopErrorScopeStatus WGPU_ENUM_ATTRIBUTE; 633 634 typedef enum WGPUPowerPreference { 635 /** 636 * `0x00000000`. 637 * No preference. (See also @ref SentinelValues.) 638 */ 639 WGPUPowerPreference_Undefined = 0x00000000, 640 WGPUPowerPreference_LowPower = 0x00000001, 641 WGPUPowerPreference_HighPerformance = 0x00000002, 642 WGPUPowerPreference_Force32 = 0x7FFFFFFF 643 } WGPUPowerPreference WGPU_ENUM_ATTRIBUTE; 644 645 /** 646 * Describes when and in which order frames are presented on the screen when `::wgpuSurfacePresent` is called. 647 */ 648 typedef enum WGPUPresentMode { 649 /** 650 * `0x00000000`. 651 * Present mode is not specified. Use the default. 652 */ 653 WGPUPresentMode_Undefined = 0x00000000, 654 /** 655 * `0x00000001`. 656 * The presentation of the image to the user waits for the next vertical blanking period to update in a first-in, first-out manner. 657 * Tearing cannot be observed and frame-loop will be limited to the display's refresh rate. 658 * This is the only mode that's always available. 659 */ 660 WGPUPresentMode_Fifo = 0x00000001, 661 /** 662 * `0x00000002`. 663 * The presentation of the image to the user tries to wait for the next vertical blanking period but may decide to not wait if a frame is presented late. 664 * Tearing can sometimes be observed but late-frame don't produce a full-frame stutter in the presentation. 665 * This is still a first-in, first-out mechanism so a frame-loop will be limited to the display's refresh rate. 666 */ 667 WGPUPresentMode_FifoRelaxed = 0x00000002, 668 /** 669 * `0x00000003`. 670 * The presentation of the image to the user is updated immediately without waiting for a vertical blank. 671 * Tearing can be observed but latency is minimized. 672 */ 673 WGPUPresentMode_Immediate = 0x00000003, 674 /** 675 * `0x00000004`. 676 * The presentation of the image to the user waits for the next vertical blanking period to update to the latest provided image. 677 * Tearing cannot be observed and a frame-loop is not limited to the display's refresh rate. 678 */ 679 WGPUPresentMode_Mailbox = 0x00000004, 680 WGPUPresentMode_Force32 = 0x7FFFFFFF 681 } WGPUPresentMode WGPU_ENUM_ATTRIBUTE; 682 683 typedef enum WGPUPrimitiveTopology { 684 /** 685 * `0x00000000`. 686 * Indicates no value is passed for this argument. See @ref SentinelValues. 687 */ 688 WGPUPrimitiveTopology_Undefined = 0x00000000, 689 WGPUPrimitiveTopology_PointList = 0x00000001, 690 WGPUPrimitiveTopology_LineList = 0x00000002, 691 WGPUPrimitiveTopology_LineStrip = 0x00000003, 692 WGPUPrimitiveTopology_TriangleList = 0x00000004, 693 WGPUPrimitiveTopology_TriangleStrip = 0x00000005, 694 WGPUPrimitiveTopology_Force32 = 0x7FFFFFFF 695 } WGPUPrimitiveTopology WGPU_ENUM_ATTRIBUTE; 696 697 typedef enum WGPUQueryType { 698 WGPUQueryType_Occlusion = 0x00000001, 699 WGPUQueryType_Timestamp = 0x00000002, 700 WGPUQueryType_Force32 = 0x7FFFFFFF 701 } WGPUQueryType WGPU_ENUM_ATTRIBUTE; 702 703 typedef enum WGPUQueueWorkDoneStatus { 704 WGPUQueueWorkDoneStatus_Success = 0x00000001, 705 WGPUQueueWorkDoneStatus_InstanceDropped = 0x00000002, 706 WGPUQueueWorkDoneStatus_Error = 0x00000003, 707 WGPUQueueWorkDoneStatus_Unknown = 0x00000004, 708 WGPUQueueWorkDoneStatus_Force32 = 0x7FFFFFFF 709 } WGPUQueueWorkDoneStatus WGPU_ENUM_ATTRIBUTE; 710 711 typedef enum WGPURequestAdapterStatus { 712 WGPURequestAdapterStatus_Success = 0x00000001, 713 WGPURequestAdapterStatus_InstanceDropped = 0x00000002, 714 WGPURequestAdapterStatus_Unavailable = 0x00000003, 715 WGPURequestAdapterStatus_Error = 0x00000004, 716 WGPURequestAdapterStatus_Unknown = 0x00000005, 717 WGPURequestAdapterStatus_Force32 = 0x7FFFFFFF 718 } WGPURequestAdapterStatus WGPU_ENUM_ATTRIBUTE; 719 720 typedef enum WGPURequestDeviceStatus { 721 WGPURequestDeviceStatus_Success = 0x00000001, 722 WGPURequestDeviceStatus_InstanceDropped = 0x00000002, 723 WGPURequestDeviceStatus_Error = 0x00000003, 724 WGPURequestDeviceStatus_Unknown = 0x00000004, 725 WGPURequestDeviceStatus_Force32 = 0x7FFFFFFF 726 } WGPURequestDeviceStatus WGPU_ENUM_ATTRIBUTE; 727 728 typedef enum WGPUSType { 729 WGPUSType_ShaderSourceSPIRV = 0x00000001, 730 WGPUSType_ShaderSourceWGSL = 0x00000002, 731 WGPUSType_RenderPassMaxDrawCount = 0x00000003, 732 WGPUSType_SurfaceSourceMetalLayer = 0x00000004, 733 WGPUSType_SurfaceSourceWindowsHWND = 0x00000005, 734 WGPUSType_SurfaceSourceXlibWindow = 0x00000006, 735 WGPUSType_SurfaceSourceWaylandSurface = 0x00000007, 736 WGPUSType_SurfaceSourceAndroidNativeWindow = 0x00000008, 737 WGPUSType_SurfaceSourceXCBWindow = 0x00000009, 738 WGPUSType_Force32 = 0x7FFFFFFF 739 } WGPUSType WGPU_ENUM_ATTRIBUTE; 740 741 typedef enum WGPUSamplerBindingType { 742 /** 743 * `0x00000000`. 744 * Indicates that this @ref WGPUSamplerBindingLayout member of 745 * its parent @ref WGPUBindGroupLayoutEntry is not used. 746 * (See also @ref SentinelValues.) 747 */ 748 WGPUSamplerBindingType_BindingNotUsed = 0x00000000, 749 /** 750 * `0x00000001`. 751 * Indicates no value is passed for this argument. See @ref SentinelValues. 752 */ 753 WGPUSamplerBindingType_Undefined = 0x00000001, 754 WGPUSamplerBindingType_Filtering = 0x00000002, 755 WGPUSamplerBindingType_NonFiltering = 0x00000003, 756 WGPUSamplerBindingType_Comparison = 0x00000004, 757 WGPUSamplerBindingType_Force32 = 0x7FFFFFFF 758 } WGPUSamplerBindingType WGPU_ENUM_ATTRIBUTE; 759 760 /** 761 * Status code returned (synchronously) from many operations. Generally 762 * indicates an invalid input like an unknown enum value or @ref OutStructChainError. 763 * Read the function's documentation for specific error conditions. 764 */ 765 typedef enum WGPUStatus { 766 WGPUStatus_Success = 0x00000001, 767 WGPUStatus_Error = 0x00000002, 768 WGPUStatus_Force32 = 0x7FFFFFFF 769 } WGPUStatus WGPU_ENUM_ATTRIBUTE; 770 771 typedef enum WGPUStencilOperation { 772 /** 773 * `0x00000000`. 774 * Indicates no value is passed for this argument. See @ref SentinelValues. 775 */ 776 WGPUStencilOperation_Undefined = 0x00000000, 777 WGPUStencilOperation_Keep = 0x00000001, 778 WGPUStencilOperation_Zero = 0x00000002, 779 WGPUStencilOperation_Replace = 0x00000003, 780 WGPUStencilOperation_Invert = 0x00000004, 781 WGPUStencilOperation_IncrementClamp = 0x00000005, 782 WGPUStencilOperation_DecrementClamp = 0x00000006, 783 WGPUStencilOperation_IncrementWrap = 0x00000007, 784 WGPUStencilOperation_DecrementWrap = 0x00000008, 785 WGPUStencilOperation_Force32 = 0x7FFFFFFF 786 } WGPUStencilOperation WGPU_ENUM_ATTRIBUTE; 787 788 typedef enum WGPUStorageTextureAccess { 789 /** 790 * `0x00000000`. 791 * Indicates that this @ref WGPUStorageTextureBindingLayout member of 792 * its parent @ref WGPUBindGroupLayoutEntry is not used. 793 * (See also @ref SentinelValues.) 794 */ 795 WGPUStorageTextureAccess_BindingNotUsed = 0x00000000, 796 /** 797 * `0x00000001`. 798 * Indicates no value is passed for this argument. See @ref SentinelValues. 799 */ 800 WGPUStorageTextureAccess_Undefined = 0x00000001, 801 WGPUStorageTextureAccess_WriteOnly = 0x00000002, 802 WGPUStorageTextureAccess_ReadOnly = 0x00000003, 803 WGPUStorageTextureAccess_ReadWrite = 0x00000004, 804 WGPUStorageTextureAccess_Force32 = 0x7FFFFFFF 805 } WGPUStorageTextureAccess WGPU_ENUM_ATTRIBUTE; 806 807 typedef enum WGPUStoreOp { 808 /** 809 * `0x00000000`. 810 * Indicates no value is passed for this argument. See @ref SentinelValues. 811 */ 812 WGPUStoreOp_Undefined = 0x00000000, 813 WGPUStoreOp_Store = 0x00000001, 814 WGPUStoreOp_Discard = 0x00000002, 815 WGPUStoreOp_Force32 = 0x7FFFFFFF 816 } WGPUStoreOp WGPU_ENUM_ATTRIBUTE; 817 818 /** 819 * The status enum for `::wgpuSurfaceGetCurrentTexture`. 820 */ 821 typedef enum WGPUSurfaceGetCurrentTextureStatus { 822 /** 823 * `0x00000001`. 824 * Yay! Everything is good and we can render this frame. 825 */ 826 WGPUSurfaceGetCurrentTextureStatus_SuccessOptimal = 0x00000001, 827 /** 828 * `0x00000002`. 829 * Still OK - the surface can present the frame, but in a suboptimal way. The surface may need reconfiguration. 830 */ 831 WGPUSurfaceGetCurrentTextureStatus_SuccessSuboptimal = 0x00000002, 832 /** 833 * `0x00000003`. 834 * Some operation timed out while trying to acquire the frame. 835 */ 836 WGPUSurfaceGetCurrentTextureStatus_Timeout = 0x00000003, 837 /** 838 * `0x00000004`. 839 * The surface is too different to be used, compared to when it was originally created. 840 */ 841 WGPUSurfaceGetCurrentTextureStatus_Outdated = 0x00000004, 842 /** 843 * `0x00000005`. 844 * The connection to whatever owns the surface was lost. 845 */ 846 WGPUSurfaceGetCurrentTextureStatus_Lost = 0x00000005, 847 /** 848 * `0x00000006`. 849 * The system ran out of memory. 850 */ 851 WGPUSurfaceGetCurrentTextureStatus_OutOfMemory = 0x00000006, 852 /** 853 * `0x00000007`. 854 * The @ref WGPUDevice configured on the @ref WGPUSurface was lost. 855 */ 856 WGPUSurfaceGetCurrentTextureStatus_DeviceLost = 0x00000007, 857 /** 858 * `0x00000008`. 859 * The surface is not configured, or there was an @ref OutStructChainError. 860 */ 861 WGPUSurfaceGetCurrentTextureStatus_Error = 0x00000008, 862 WGPUSurfaceGetCurrentTextureStatus_Force32 = 0x7FFFFFFF 863 } WGPUSurfaceGetCurrentTextureStatus WGPU_ENUM_ATTRIBUTE; 864 865 typedef enum WGPUTextureAspect { 866 /** 867 * `0x00000000`. 868 * Indicates no value is passed for this argument. See @ref SentinelValues. 869 */ 870 WGPUTextureAspect_Undefined = 0x00000000, 871 WGPUTextureAspect_All = 0x00000001, 872 WGPUTextureAspect_StencilOnly = 0x00000002, 873 WGPUTextureAspect_DepthOnly = 0x00000003, 874 WGPUTextureAspect_Force32 = 0x7FFFFFFF 875 } WGPUTextureAspect WGPU_ENUM_ATTRIBUTE; 876 877 typedef enum WGPUTextureDimension { 878 /** 879 * `0x00000000`. 880 * Indicates no value is passed for this argument. See @ref SentinelValues. 881 */ 882 WGPUTextureDimension_Undefined = 0x00000000, 883 WGPUTextureDimension_1D = 0x00000001, 884 WGPUTextureDimension_2D = 0x00000002, 885 WGPUTextureDimension_3D = 0x00000003, 886 WGPUTextureDimension_Force32 = 0x7FFFFFFF 887 } WGPUTextureDimension WGPU_ENUM_ATTRIBUTE; 888 889 typedef enum WGPUTextureFormat { 890 /** 891 * `0x00000000`. 892 * Indicates no value is passed for this argument. See @ref SentinelValues. 893 */ 894 WGPUTextureFormat_Undefined = 0x00000000, 895 WGPUTextureFormat_R8Unorm = 0x00000001, 896 WGPUTextureFormat_R8Snorm = 0x00000002, 897 WGPUTextureFormat_R8Uint = 0x00000003, 898 WGPUTextureFormat_R8Sint = 0x00000004, 899 WGPUTextureFormat_R16Uint = 0x00000005, 900 WGPUTextureFormat_R16Sint = 0x00000006, 901 WGPUTextureFormat_R16Float = 0x00000007, 902 WGPUTextureFormat_RG8Unorm = 0x00000008, 903 WGPUTextureFormat_RG8Snorm = 0x00000009, 904 WGPUTextureFormat_RG8Uint = 0x0000000A, 905 WGPUTextureFormat_RG8Sint = 0x0000000B, 906 WGPUTextureFormat_R32Float = 0x0000000C, 907 WGPUTextureFormat_R32Uint = 0x0000000D, 908 WGPUTextureFormat_R32Sint = 0x0000000E, 909 WGPUTextureFormat_RG16Uint = 0x0000000F, 910 WGPUTextureFormat_RG16Sint = 0x00000010, 911 WGPUTextureFormat_RG16Float = 0x00000011, 912 WGPUTextureFormat_RGBA8Unorm = 0x00000012, 913 WGPUTextureFormat_RGBA8UnormSrgb = 0x00000013, 914 WGPUTextureFormat_RGBA8Snorm = 0x00000014, 915 WGPUTextureFormat_RGBA8Uint = 0x00000015, 916 WGPUTextureFormat_RGBA8Sint = 0x00000016, 917 WGPUTextureFormat_BGRA8Unorm = 0x00000017, 918 WGPUTextureFormat_BGRA8UnormSrgb = 0x00000018, 919 WGPUTextureFormat_RGB10A2Uint = 0x00000019, 920 WGPUTextureFormat_RGB10A2Unorm = 0x0000001A, 921 WGPUTextureFormat_RG11B10Ufloat = 0x0000001B, 922 WGPUTextureFormat_RGB9E5Ufloat = 0x0000001C, 923 WGPUTextureFormat_RG32Float = 0x0000001D, 924 WGPUTextureFormat_RG32Uint = 0x0000001E, 925 WGPUTextureFormat_RG32Sint = 0x0000001F, 926 WGPUTextureFormat_RGBA16Uint = 0x00000020, 927 WGPUTextureFormat_RGBA16Sint = 0x00000021, 928 WGPUTextureFormat_RGBA16Float = 0x00000022, 929 WGPUTextureFormat_RGBA32Float = 0x00000023, 930 WGPUTextureFormat_RGBA32Uint = 0x00000024, 931 WGPUTextureFormat_RGBA32Sint = 0x00000025, 932 WGPUTextureFormat_Stencil8 = 0x00000026, 933 WGPUTextureFormat_Depth16Unorm = 0x00000027, 934 WGPUTextureFormat_Depth24Plus = 0x00000028, 935 WGPUTextureFormat_Depth24PlusStencil8 = 0x00000029, 936 WGPUTextureFormat_Depth32Float = 0x0000002A, 937 WGPUTextureFormat_Depth32FloatStencil8 = 0x0000002B, 938 WGPUTextureFormat_BC1RGBAUnorm = 0x0000002C, 939 WGPUTextureFormat_BC1RGBAUnormSrgb = 0x0000002D, 940 WGPUTextureFormat_BC2RGBAUnorm = 0x0000002E, 941 WGPUTextureFormat_BC2RGBAUnormSrgb = 0x0000002F, 942 WGPUTextureFormat_BC3RGBAUnorm = 0x00000030, 943 WGPUTextureFormat_BC3RGBAUnormSrgb = 0x00000031, 944 WGPUTextureFormat_BC4RUnorm = 0x00000032, 945 WGPUTextureFormat_BC4RSnorm = 0x00000033, 946 WGPUTextureFormat_BC5RGUnorm = 0x00000034, 947 WGPUTextureFormat_BC5RGSnorm = 0x00000035, 948 WGPUTextureFormat_BC6HRGBUfloat = 0x00000036, 949 WGPUTextureFormat_BC6HRGBFloat = 0x00000037, 950 WGPUTextureFormat_BC7RGBAUnorm = 0x00000038, 951 WGPUTextureFormat_BC7RGBAUnormSrgb = 0x00000039, 952 WGPUTextureFormat_ETC2RGB8Unorm = 0x0000003A, 953 WGPUTextureFormat_ETC2RGB8UnormSrgb = 0x0000003B, 954 WGPUTextureFormat_ETC2RGB8A1Unorm = 0x0000003C, 955 WGPUTextureFormat_ETC2RGB8A1UnormSrgb = 0x0000003D, 956 WGPUTextureFormat_ETC2RGBA8Unorm = 0x0000003E, 957 WGPUTextureFormat_ETC2RGBA8UnormSrgb = 0x0000003F, 958 WGPUTextureFormat_EACR11Unorm = 0x00000040, 959 WGPUTextureFormat_EACR11Snorm = 0x00000041, 960 WGPUTextureFormat_EACRG11Unorm = 0x00000042, 961 WGPUTextureFormat_EACRG11Snorm = 0x00000043, 962 WGPUTextureFormat_ASTC4x4Unorm = 0x00000044, 963 WGPUTextureFormat_ASTC4x4UnormSrgb = 0x00000045, 964 WGPUTextureFormat_ASTC5x4Unorm = 0x00000046, 965 WGPUTextureFormat_ASTC5x4UnormSrgb = 0x00000047, 966 WGPUTextureFormat_ASTC5x5Unorm = 0x00000048, 967 WGPUTextureFormat_ASTC5x5UnormSrgb = 0x00000049, 968 WGPUTextureFormat_ASTC6x5Unorm = 0x0000004A, 969 WGPUTextureFormat_ASTC6x5UnormSrgb = 0x0000004B, 970 WGPUTextureFormat_ASTC6x6Unorm = 0x0000004C, 971 WGPUTextureFormat_ASTC6x6UnormSrgb = 0x0000004D, 972 WGPUTextureFormat_ASTC8x5Unorm = 0x0000004E, 973 WGPUTextureFormat_ASTC8x5UnormSrgb = 0x0000004F, 974 WGPUTextureFormat_ASTC8x6Unorm = 0x00000050, 975 WGPUTextureFormat_ASTC8x6UnormSrgb = 0x00000051, 976 WGPUTextureFormat_ASTC8x8Unorm = 0x00000052, 977 WGPUTextureFormat_ASTC8x8UnormSrgb = 0x00000053, 978 WGPUTextureFormat_ASTC10x5Unorm = 0x00000054, 979 WGPUTextureFormat_ASTC10x5UnormSrgb = 0x00000055, 980 WGPUTextureFormat_ASTC10x6Unorm = 0x00000056, 981 WGPUTextureFormat_ASTC10x6UnormSrgb = 0x00000057, 982 WGPUTextureFormat_ASTC10x8Unorm = 0x00000058, 983 WGPUTextureFormat_ASTC10x8UnormSrgb = 0x00000059, 984 WGPUTextureFormat_ASTC10x10Unorm = 0x0000005A, 985 WGPUTextureFormat_ASTC10x10UnormSrgb = 0x0000005B, 986 WGPUTextureFormat_ASTC12x10Unorm = 0x0000005C, 987 WGPUTextureFormat_ASTC12x10UnormSrgb = 0x0000005D, 988 WGPUTextureFormat_ASTC12x12Unorm = 0x0000005E, 989 WGPUTextureFormat_ASTC12x12UnormSrgb = 0x0000005F, 990 WGPUTextureFormat_Force32 = 0x7FFFFFFF 991 } WGPUTextureFormat WGPU_ENUM_ATTRIBUTE; 992 993 typedef enum WGPUTextureSampleType { 994 /** 995 * `0x00000000`. 996 * Indicates that this @ref WGPUTextureBindingLayout member of 997 * its parent @ref WGPUBindGroupLayoutEntry is not used. 998 * (See also @ref SentinelValues.) 999 */ 1000 WGPUTextureSampleType_BindingNotUsed = 0x00000000, 1001 /** 1002 * `0x00000001`. 1003 * Indicates no value is passed for this argument. See @ref SentinelValues. 1004 */ 1005 WGPUTextureSampleType_Undefined = 0x00000001, 1006 WGPUTextureSampleType_Float = 0x00000002, 1007 WGPUTextureSampleType_UnfilterableFloat = 0x00000003, 1008 WGPUTextureSampleType_Depth = 0x00000004, 1009 WGPUTextureSampleType_Sint = 0x00000005, 1010 WGPUTextureSampleType_Uint = 0x00000006, 1011 WGPUTextureSampleType_Force32 = 0x7FFFFFFF 1012 } WGPUTextureSampleType WGPU_ENUM_ATTRIBUTE; 1013 1014 typedef enum WGPUTextureViewDimension { 1015 /** 1016 * `0x00000000`. 1017 * Indicates no value is passed for this argument. See @ref SentinelValues. 1018 */ 1019 WGPUTextureViewDimension_Undefined = 0x00000000, 1020 WGPUTextureViewDimension_1D = 0x00000001, 1021 WGPUTextureViewDimension_2D = 0x00000002, 1022 WGPUTextureViewDimension_2DArray = 0x00000003, 1023 WGPUTextureViewDimension_Cube = 0x00000004, 1024 WGPUTextureViewDimension_CubeArray = 0x00000005, 1025 WGPUTextureViewDimension_3D = 0x00000006, 1026 WGPUTextureViewDimension_Force32 = 0x7FFFFFFF 1027 } WGPUTextureViewDimension WGPU_ENUM_ATTRIBUTE; 1028 1029 typedef enum WGPUVertexFormat { 1030 WGPUVertexFormat_Uint8 = 0x00000001, 1031 WGPUVertexFormat_Uint8x2 = 0x00000002, 1032 WGPUVertexFormat_Uint8x4 = 0x00000003, 1033 WGPUVertexFormat_Sint8 = 0x00000004, 1034 WGPUVertexFormat_Sint8x2 = 0x00000005, 1035 WGPUVertexFormat_Sint8x4 = 0x00000006, 1036 WGPUVertexFormat_Unorm8 = 0x00000007, 1037 WGPUVertexFormat_Unorm8x2 = 0x00000008, 1038 WGPUVertexFormat_Unorm8x4 = 0x00000009, 1039 WGPUVertexFormat_Snorm8 = 0x0000000A, 1040 WGPUVertexFormat_Snorm8x2 = 0x0000000B, 1041 WGPUVertexFormat_Snorm8x4 = 0x0000000C, 1042 WGPUVertexFormat_Uint16 = 0x0000000D, 1043 WGPUVertexFormat_Uint16x2 = 0x0000000E, 1044 WGPUVertexFormat_Uint16x4 = 0x0000000F, 1045 WGPUVertexFormat_Sint16 = 0x00000010, 1046 WGPUVertexFormat_Sint16x2 = 0x00000011, 1047 WGPUVertexFormat_Sint16x4 = 0x00000012, 1048 WGPUVertexFormat_Unorm16 = 0x00000013, 1049 WGPUVertexFormat_Unorm16x2 = 0x00000014, 1050 WGPUVertexFormat_Unorm16x4 = 0x00000015, 1051 WGPUVertexFormat_Snorm16 = 0x00000016, 1052 WGPUVertexFormat_Snorm16x2 = 0x00000017, 1053 WGPUVertexFormat_Snorm16x4 = 0x00000018, 1054 WGPUVertexFormat_Float16 = 0x00000019, 1055 WGPUVertexFormat_Float16x2 = 0x0000001A, 1056 WGPUVertexFormat_Float16x4 = 0x0000001B, 1057 WGPUVertexFormat_Float32 = 0x0000001C, 1058 WGPUVertexFormat_Float32x2 = 0x0000001D, 1059 WGPUVertexFormat_Float32x3 = 0x0000001E, 1060 WGPUVertexFormat_Float32x4 = 0x0000001F, 1061 WGPUVertexFormat_Uint32 = 0x00000020, 1062 WGPUVertexFormat_Uint32x2 = 0x00000021, 1063 WGPUVertexFormat_Uint32x3 = 0x00000022, 1064 WGPUVertexFormat_Uint32x4 = 0x00000023, 1065 WGPUVertexFormat_Sint32 = 0x00000024, 1066 WGPUVertexFormat_Sint32x2 = 0x00000025, 1067 WGPUVertexFormat_Sint32x3 = 0x00000026, 1068 WGPUVertexFormat_Sint32x4 = 0x00000027, 1069 WGPUVertexFormat_Unorm10_10_10_2 = 0x00000028, 1070 WGPUVertexFormat_Unorm8x4BGRA = 0x00000029, 1071 WGPUVertexFormat_Force32 = 0x7FFFFFFF 1072 } WGPUVertexFormat WGPU_ENUM_ATTRIBUTE; 1073 1074 typedef enum WGPUVertexStepMode { 1075 /** 1076 * `0x00000000`. 1077 * This @ref WGPUVertexBufferLayout is a "hole" in the @ref WGPUVertexState `buffers` array. 1078 * (See also @ref SentinelValues.) 1079 */ 1080 WGPUVertexStepMode_VertexBufferNotUsed = 0x00000000, 1081 /** 1082 * `0x00000001`. 1083 * Indicates no value is passed for this argument. See @ref SentinelValues. 1084 */ 1085 WGPUVertexStepMode_Undefined = 0x00000001, 1086 WGPUVertexStepMode_Vertex = 0x00000002, 1087 WGPUVertexStepMode_Instance = 0x00000003, 1088 WGPUVertexStepMode_Force32 = 0x7FFFFFFF 1089 } WGPUVertexStepMode WGPU_ENUM_ATTRIBUTE; 1090 1091 typedef enum WGPUWGSLLanguageFeatureName { 1092 WGPUWGSLLanguageFeatureName_ReadonlyAndReadwriteStorageTextures = 0x00000001, 1093 WGPUWGSLLanguageFeatureName_Packed4x8IntegerDotProduct = 0x00000002, 1094 WGPUWGSLLanguageFeatureName_UnrestrictedPointerParameters = 0x00000003, 1095 WGPUWGSLLanguageFeatureName_PointerCompositeAccess = 0x00000004, 1096 WGPUWGSLLanguageFeatureName_Force32 = 0x7FFFFFFF 1097 } WGPUWGSLLanguageFeatureName WGPU_ENUM_ATTRIBUTE; 1098 1099 /** 1100 * Status returned from a call to ::wgpuInstanceWaitAny. 1101 */ 1102 typedef enum WGPUWaitStatus { 1103 /** 1104 * `0x00000001`. 1105 * At least one WGPUFuture completed successfully. 1106 */ 1107 WGPUWaitStatus_Success = 0x00000001, 1108 /** 1109 * `0x00000002`. 1110 * No WGPUFutures completed within the timeout. 1111 */ 1112 WGPUWaitStatus_TimedOut = 0x00000002, 1113 /** 1114 * `0x00000003`. 1115 * A @ref Timed-Wait was performed when WGPUInstanceFeatures::timedWaitAnyEnable is false. 1116 */ 1117 WGPUWaitStatus_UnsupportedTimeout = 0x00000003, 1118 /** 1119 * `0x00000004`. 1120 * The number of futures waited on in a @ref Timed-Wait is greater than the supported WGPUInstanceFeatures::timedWaitAnyMaxCount. 1121 */ 1122 WGPUWaitStatus_UnsupportedCount = 0x00000004, 1123 /** 1124 * `0x00000005`. 1125 * An invalid wait was performed with @ref Mixed-Sources. 1126 */ 1127 WGPUWaitStatus_UnsupportedMixedSources = 0x00000005, 1128 WGPUWaitStatus_Force32 = 0x7FFFFFFF 1129 } WGPUWaitStatus WGPU_ENUM_ATTRIBUTE; 1130 1131 1132 /** @} */ 1133 1134 /** 1135 * \defgroup Bitflags 1136 * \brief Type and constant definitions for bitflag types. 1137 * 1138 * @{ 1139 */ 1140 typedef WGPUFlags WGPUBufferUsage; 1141 static const WGPUBufferUsage WGPUBufferUsage_None = 0x0000000000000000; 1142 static const WGPUBufferUsage WGPUBufferUsage_MapRead = 0x0000000000000001; 1143 static const WGPUBufferUsage WGPUBufferUsage_MapWrite = 0x0000000000000002; 1144 static const WGPUBufferUsage WGPUBufferUsage_CopySrc = 0x0000000000000004; 1145 static const WGPUBufferUsage WGPUBufferUsage_CopyDst = 0x0000000000000008; 1146 static const WGPUBufferUsage WGPUBufferUsage_Index = 0x0000000000000010; 1147 static const WGPUBufferUsage WGPUBufferUsage_Vertex = 0x0000000000000020; 1148 static const WGPUBufferUsage WGPUBufferUsage_Uniform = 0x0000000000000040; 1149 static const WGPUBufferUsage WGPUBufferUsage_Storage = 0x0000000000000080; 1150 static const WGPUBufferUsage WGPUBufferUsage_Indirect = 0x0000000000000100; 1151 static const WGPUBufferUsage WGPUBufferUsage_QueryResolve = 0x0000000000000200; 1152 1153 typedef WGPUFlags WGPUColorWriteMask; 1154 static const WGPUColorWriteMask WGPUColorWriteMask_None = 0x0000000000000000; 1155 static const WGPUColorWriteMask WGPUColorWriteMask_Red = 0x0000000000000001; 1156 static const WGPUColorWriteMask WGPUColorWriteMask_Green = 0x0000000000000002; 1157 static const WGPUColorWriteMask WGPUColorWriteMask_Blue = 0x0000000000000004; 1158 static const WGPUColorWriteMask WGPUColorWriteMask_Alpha = 0x0000000000000008; 1159 static const WGPUColorWriteMask WGPUColorWriteMask_All = 0x000000000000000F /* Red | Green | Blue | Alpha */; 1160 1161 typedef WGPUFlags WGPUMapMode; 1162 static const WGPUMapMode WGPUMapMode_None = 0x0000000000000000; 1163 static const WGPUMapMode WGPUMapMode_Read = 0x0000000000000001; 1164 static const WGPUMapMode WGPUMapMode_Write = 0x0000000000000002; 1165 1166 typedef WGPUFlags WGPUShaderStage; 1167 static const WGPUShaderStage WGPUShaderStage_None = 0x0000000000000000; 1168 static const WGPUShaderStage WGPUShaderStage_Vertex = 0x0000000000000001; 1169 static const WGPUShaderStage WGPUShaderStage_Fragment = 0x0000000000000002; 1170 static const WGPUShaderStage WGPUShaderStage_Compute = 0x0000000000000004; 1171 1172 typedef WGPUFlags WGPUTextureUsage; 1173 static const WGPUTextureUsage WGPUTextureUsage_None = 0x0000000000000000; 1174 static const WGPUTextureUsage WGPUTextureUsage_CopySrc = 0x0000000000000001; 1175 static const WGPUTextureUsage WGPUTextureUsage_CopyDst = 0x0000000000000002; 1176 static const WGPUTextureUsage WGPUTextureUsage_TextureBinding = 0x0000000000000004; 1177 static const WGPUTextureUsage WGPUTextureUsage_StorageBinding = 0x0000000000000008; 1178 static const WGPUTextureUsage WGPUTextureUsage_RenderAttachment = 0x0000000000000010; 1179 1180 1181 /** @} */ 1182 typedef void (*WGPUProc)(void) WGPU_FUNCTION_ATTRIBUTE; 1183 1184 1185 /** 1186 * \defgroup Callbacks 1187 * \brief Callbacks through which asynchronous functions return. 1188 * 1189 * @{ 1190 */ 1191 /** 1192 * @param message 1193 * This parameter is @ref PassedWithoutOwnership. 1194 */ 1195 typedef void (*WGPUBufferMapCallback)(WGPUMapAsyncStatus status, WGPUStringView message, WGPU_NULLABLE void* userdata1, WGPU_NULLABLE void* userdata2) WGPU_FUNCTION_ATTRIBUTE; 1196 /** 1197 * @param compilationInfo 1198 * This parameter is @ref PassedWithoutOwnership. 1199 */ 1200 typedef void (*WGPUCompilationInfoCallback)(WGPUCompilationInfoRequestStatus status, struct WGPUCompilationInfo const * compilationInfo, WGPU_NULLABLE void* userdata1, WGPU_NULLABLE void* userdata2) WGPU_FUNCTION_ATTRIBUTE; 1201 /** 1202 * @param pipeline 1203 * This parameter is @ref PassedWithOwnership. 1204 */ 1205 typedef void (*WGPUCreateComputePipelineAsyncCallback)(WGPUCreatePipelineAsyncStatus status, WGPUComputePipeline pipeline, WGPUStringView message, WGPU_NULLABLE void* userdata1, WGPU_NULLABLE void* userdata2) WGPU_FUNCTION_ATTRIBUTE; 1206 /** 1207 * @param pipeline 1208 * This parameter is @ref PassedWithOwnership. 1209 */ 1210 typedef void (*WGPUCreateRenderPipelineAsyncCallback)(WGPUCreatePipelineAsyncStatus status, WGPURenderPipeline pipeline, WGPUStringView message, WGPU_NULLABLE void* userdata1, WGPU_NULLABLE void* userdata2) WGPU_FUNCTION_ATTRIBUTE; 1211 /** 1212 * @param device 1213 * Reference to the device which was lost. If, and only if, the `reason` is @ref WGPUDeviceLostReason_FailedCreation, this is a non-null pointer to a null @ref WGPUDevice. 1214 * This parameter is @ref PassedWithoutOwnership. 1215 * 1216 * @param message 1217 * This parameter is @ref PassedWithoutOwnership. 1218 */ 1219 typedef void (*WGPUDeviceLostCallback)(WGPUDevice const * device, WGPUDeviceLostReason reason, WGPUStringView message, WGPU_NULLABLE void* userdata1, WGPU_NULLABLE void* userdata2) WGPU_FUNCTION_ATTRIBUTE; 1220 /** 1221 * @param status 1222 * See @ref WGPUPopErrorScopeStatus. 1223 * 1224 * @param type 1225 * The type of the error caught by the scope, or @ref WGPUErrorType_NoError if there was none. 1226 * If the `status` is not @ref WGPUPopErrorScopeStatus_Success, this is @ref WGPUErrorType_NoError. 1227 * 1228 * @param message 1229 * If the `type` is not @ref WGPUErrorType_NoError, this is a non-empty @ref LocalizableHumanReadableMessageString; 1230 * otherwise, this is an empty string. 1231 * This parameter is @ref PassedWithoutOwnership. 1232 */ 1233 typedef void (*WGPUPopErrorScopeCallback)(WGPUPopErrorScopeStatus status, WGPUErrorType type, WGPUStringView message, WGPU_NULLABLE void* userdata1, WGPU_NULLABLE void* userdata2) WGPU_FUNCTION_ATTRIBUTE; 1234 typedef void (*WGPUQueueWorkDoneCallback)(WGPUQueueWorkDoneStatus status, WGPU_NULLABLE void* userdata1, WGPU_NULLABLE void* userdata2) WGPU_FUNCTION_ATTRIBUTE; 1235 /** 1236 * @param adapter 1237 * This parameter is @ref PassedWithOwnership. 1238 * 1239 * @param message 1240 * This parameter is @ref PassedWithoutOwnership. 1241 */ 1242 typedef void (*WGPURequestAdapterCallback)(WGPURequestAdapterStatus status, WGPUAdapter adapter, WGPUStringView message, WGPU_NULLABLE void* userdata1, WGPU_NULLABLE void* userdata2) WGPU_FUNCTION_ATTRIBUTE; 1243 /** 1244 * @param device 1245 * This parameter is @ref PassedWithOwnership. 1246 * 1247 * @param message 1248 * This parameter is @ref PassedWithoutOwnership. 1249 */ 1250 typedef void (*WGPURequestDeviceCallback)(WGPURequestDeviceStatus status, WGPUDevice device, WGPUStringView message, WGPU_NULLABLE void* userdata1, WGPU_NULLABLE void* userdata2) WGPU_FUNCTION_ATTRIBUTE; 1251 /** 1252 * @param device 1253 * This parameter is @ref PassedWithoutOwnership. 1254 * 1255 * @param message 1256 * This parameter is @ref PassedWithoutOwnership. 1257 */ 1258 typedef void (*WGPUUncapturedErrorCallback)(WGPUDevice const * device, WGPUErrorType type, WGPUStringView message, WGPU_NULLABLE void* userdata1, WGPU_NULLABLE void* userdata2) WGPU_FUNCTION_ATTRIBUTE; 1259 1260 /** @} */ 1261 /** 1262 * \defgroup ChainedStructures Chained Structures 1263 * \brief Structures used to extend descriptors. 1264 * 1265 * @{ 1266 */ 1267 1268 typedef struct WGPUChainedStruct { 1269 struct WGPUChainedStruct const * next; 1270 WGPUSType sType; 1271 } WGPUChainedStruct WGPU_STRUCTURE_ATTRIBUTE; 1272 1273 typedef struct WGPUChainedStructOut { 1274 struct WGPUChainedStructOut * next; 1275 WGPUSType sType; 1276 } WGPUChainedStructOut WGPU_STRUCTURE_ATTRIBUTE; 1277 1278 /** @} */ 1279 1280 1281 /** 1282 * \defgroup Structures 1283 * \brief Descriptors and other transparent structures. 1284 * 1285 * @{ 1286 */ 1287 1288 /** 1289 * \defgroup WGPUCallbackInfo 1290 * \brief Callback info structures that are used in asynchronous functions. 1291 * 1292 * @{ 1293 */ 1294 typedef struct WGPUBufferMapCallbackInfo { 1295 WGPUChainedStruct const * nextInChain; 1296 WGPUCallbackMode mode; 1297 WGPUBufferMapCallback callback; 1298 WGPU_NULLABLE void* userdata1; 1299 WGPU_NULLABLE void* userdata2; 1300 } WGPUBufferMapCallbackInfo WGPU_STRUCTURE_ATTRIBUTE; 1301 1302 typedef struct WGPUCompilationInfoCallbackInfo { 1303 WGPUChainedStruct const * nextInChain; 1304 WGPUCallbackMode mode; 1305 WGPUCompilationInfoCallback callback; 1306 WGPU_NULLABLE void* userdata1; 1307 WGPU_NULLABLE void* userdata2; 1308 } WGPUCompilationInfoCallbackInfo WGPU_STRUCTURE_ATTRIBUTE; 1309 1310 typedef struct WGPUCreateComputePipelineAsyncCallbackInfo { 1311 WGPUChainedStruct const * nextInChain; 1312 WGPUCallbackMode mode; 1313 WGPUCreateComputePipelineAsyncCallback callback; 1314 WGPU_NULLABLE void* userdata1; 1315 WGPU_NULLABLE void* userdata2; 1316 } WGPUCreateComputePipelineAsyncCallbackInfo WGPU_STRUCTURE_ATTRIBUTE; 1317 1318 typedef struct WGPUCreateRenderPipelineAsyncCallbackInfo { 1319 WGPUChainedStruct const * nextInChain; 1320 WGPUCallbackMode mode; 1321 WGPUCreateRenderPipelineAsyncCallback callback; 1322 WGPU_NULLABLE void* userdata1; 1323 WGPU_NULLABLE void* userdata2; 1324 } WGPUCreateRenderPipelineAsyncCallbackInfo WGPU_STRUCTURE_ATTRIBUTE; 1325 1326 typedef struct WGPUDeviceLostCallbackInfo { 1327 WGPUChainedStruct const * nextInChain; 1328 WGPUCallbackMode mode; 1329 WGPUDeviceLostCallback callback; 1330 WGPU_NULLABLE void* userdata1; 1331 WGPU_NULLABLE void* userdata2; 1332 } WGPUDeviceLostCallbackInfo WGPU_STRUCTURE_ATTRIBUTE; 1333 1334 typedef struct WGPUPopErrorScopeCallbackInfo { 1335 WGPUChainedStruct const * nextInChain; 1336 WGPUCallbackMode mode; 1337 WGPUPopErrorScopeCallback callback; 1338 WGPU_NULLABLE void* userdata1; 1339 WGPU_NULLABLE void* userdata2; 1340 } WGPUPopErrorScopeCallbackInfo WGPU_STRUCTURE_ATTRIBUTE; 1341 1342 typedef struct WGPUQueueWorkDoneCallbackInfo { 1343 WGPUChainedStruct const * nextInChain; 1344 WGPUCallbackMode mode; 1345 WGPUQueueWorkDoneCallback callback; 1346 WGPU_NULLABLE void* userdata1; 1347 WGPU_NULLABLE void* userdata2; 1348 } WGPUQueueWorkDoneCallbackInfo WGPU_STRUCTURE_ATTRIBUTE; 1349 1350 typedef struct WGPURequestAdapterCallbackInfo { 1351 WGPUChainedStruct const * nextInChain; 1352 WGPUCallbackMode mode; 1353 WGPURequestAdapterCallback callback; 1354 WGPU_NULLABLE void* userdata1; 1355 WGPU_NULLABLE void* userdata2; 1356 } WGPURequestAdapterCallbackInfo WGPU_STRUCTURE_ATTRIBUTE; 1357 1358 typedef struct WGPURequestDeviceCallbackInfo { 1359 WGPUChainedStruct const * nextInChain; 1360 WGPUCallbackMode mode; 1361 WGPURequestDeviceCallback callback; 1362 WGPU_NULLABLE void* userdata1; 1363 WGPU_NULLABLE void* userdata2; 1364 } WGPURequestDeviceCallbackInfo WGPU_STRUCTURE_ATTRIBUTE; 1365 1366 typedef struct WGPUUncapturedErrorCallbackInfo { 1367 WGPUChainedStruct const * nextInChain; 1368 WGPUUncapturedErrorCallback callback; 1369 WGPU_NULLABLE void* userdata1; 1370 WGPU_NULLABLE void* userdata2; 1371 } WGPUUncapturedErrorCallbackInfo WGPU_STRUCTURE_ATTRIBUTE; 1372 1373 /** @} */ 1374 1375 typedef struct WGPUAdapterInfo { 1376 WGPUChainedStructOut * nextInChain; 1377 /** 1378 * This is an \ref OutputString. 1379 */ 1380 WGPUStringView vendor; 1381 /** 1382 * This is an \ref OutputString. 1383 */ 1384 WGPUStringView architecture; 1385 /** 1386 * This is an \ref OutputString. 1387 */ 1388 WGPUStringView device; 1389 /** 1390 * This is an \ref OutputString. 1391 */ 1392 WGPUStringView description; 1393 WGPUBackendType backendType; 1394 WGPUAdapterType adapterType; 1395 uint32_t vendorID; 1396 uint32_t deviceID; 1397 } WGPUAdapterInfo WGPU_STRUCTURE_ATTRIBUTE; 1398 1399 typedef struct WGPUBindGroupEntry { 1400 WGPUChainedStruct const * nextInChain; 1401 uint32_t binding; 1402 WGPU_NULLABLE WGPUBuffer buffer; 1403 uint64_t offset; 1404 uint64_t size; 1405 WGPU_NULLABLE WGPUSampler sampler; 1406 WGPU_NULLABLE WGPUTextureView textureView; 1407 } WGPUBindGroupEntry WGPU_STRUCTURE_ATTRIBUTE; 1408 1409 typedef struct WGPUBlendComponent { 1410 WGPUBlendOperation operation; 1411 WGPUBlendFactor srcFactor; 1412 WGPUBlendFactor dstFactor; 1413 } WGPUBlendComponent WGPU_STRUCTURE_ATTRIBUTE; 1414 1415 typedef struct WGPUBufferBindingLayout { 1416 WGPUChainedStruct const * nextInChain; 1417 WGPUBufferBindingType type; 1418 WGPUBool hasDynamicOffset; 1419 uint64_t minBindingSize; 1420 } WGPUBufferBindingLayout WGPU_STRUCTURE_ATTRIBUTE; 1421 1422 typedef struct WGPUBufferDescriptor { 1423 WGPUChainedStruct const * nextInChain; 1424 /** 1425 * This is a \ref NonNullInputString. 1426 */ 1427 WGPUStringView label; 1428 WGPUBufferUsage usage; 1429 uint64_t size; 1430 WGPUBool mappedAtCreation; 1431 } WGPUBufferDescriptor WGPU_STRUCTURE_ATTRIBUTE; 1432 1433 typedef struct WGPUColor { 1434 double r; 1435 double g; 1436 double b; 1437 double a; 1438 } WGPUColor WGPU_STRUCTURE_ATTRIBUTE; 1439 1440 typedef struct WGPUCommandBufferDescriptor { 1441 WGPUChainedStruct const * nextInChain; 1442 /** 1443 * This is a \ref NonNullInputString. 1444 */ 1445 WGPUStringView label; 1446 } WGPUCommandBufferDescriptor WGPU_STRUCTURE_ATTRIBUTE; 1447 1448 typedef struct WGPUCommandEncoderDescriptor { 1449 WGPUChainedStruct const * nextInChain; 1450 /** 1451 * This is a \ref NonNullInputString. 1452 */ 1453 WGPUStringView label; 1454 } WGPUCommandEncoderDescriptor WGPU_STRUCTURE_ATTRIBUTE; 1455 1456 typedef struct WGPUCompilationMessage { 1457 WGPUChainedStruct const * nextInChain; 1458 /** 1459 * A @ref LocalizableHumanReadableMessageString. 1460 * 1461 * This is an \ref OutputString. 1462 */ 1463 WGPUStringView message; 1464 /** 1465 * Severity level of the message. 1466 */ 1467 WGPUCompilationMessageType type; 1468 /** 1469 * Line number where the message is attached, starting at 1. 1470 */ 1471 uint64_t lineNum; 1472 /** 1473 * Offset in UTF-8 code units (bytes) from the beginning of the line, starting at 1. 1474 */ 1475 uint64_t linePos; 1476 /** 1477 * Offset in UTF-8 code units (bytes) from the beginning of the shader code, starting at 0. 1478 */ 1479 uint64_t offset; 1480 /** 1481 * Length in UTF-8 code units (bytes) of the span the message corresponds to. 1482 */ 1483 uint64_t length; 1484 } WGPUCompilationMessage WGPU_STRUCTURE_ATTRIBUTE; 1485 1486 typedef struct WGPUComputePassTimestampWrites { 1487 WGPUQuerySet querySet; 1488 uint32_t beginningOfPassWriteIndex; 1489 uint32_t endOfPassWriteIndex; 1490 } WGPUComputePassTimestampWrites WGPU_STRUCTURE_ATTRIBUTE; 1491 1492 typedef struct WGPUConstantEntry { 1493 WGPUChainedStruct const * nextInChain; 1494 /** 1495 * This is a \ref NonNullInputString. 1496 */ 1497 WGPUStringView key; 1498 double value; 1499 } WGPUConstantEntry WGPU_STRUCTURE_ATTRIBUTE; 1500 1501 typedef struct WGPUExtent3D { 1502 uint32_t width; 1503 uint32_t height; 1504 uint32_t depthOrArrayLayers; 1505 } WGPUExtent3D WGPU_STRUCTURE_ATTRIBUTE; 1506 1507 /** 1508 * Opaque handle to an asynchronous operation. See @ref Asynchronous-Operations for more information. 1509 */ 1510 typedef struct WGPUFuture { 1511 /** 1512 * Opaque id of the @ref WGPUFuture 1513 */ 1514 uint64_t id; 1515 } WGPUFuture WGPU_STRUCTURE_ATTRIBUTE; 1516 1517 /** 1518 * Features enabled on the WGPUInstance 1519 */ 1520 typedef struct WGPUInstanceCapabilities { 1521 /** This struct chain is used as mutable in some places and immutable in others. */ 1522 WGPUChainedStructOut * nextInChain; 1523 /** 1524 * Enable use of ::wgpuInstanceWaitAny with `timeoutNS > 0`. 1525 */ 1526 WGPUBool timedWaitAnyEnable; 1527 /** 1528 * The maximum number @ref WGPUFutureWaitInfo supported in a call to ::wgpuInstanceWaitAny with `timeoutNS > 0`. 1529 */ 1530 size_t timedWaitAnyMaxCount; 1531 } WGPUInstanceCapabilities WGPU_STRUCTURE_ATTRIBUTE; 1532 1533 typedef struct WGPULimits { 1534 /** This struct chain is used as mutable in some places and immutable in others. */ 1535 WGPUChainedStructOut * nextInChain; 1536 uint32_t maxTextureDimension1D; 1537 uint32_t maxTextureDimension2D; 1538 uint32_t maxTextureDimension3D; 1539 uint32_t maxTextureArrayLayers; 1540 uint32_t maxBindGroups; 1541 uint32_t maxBindGroupsPlusVertexBuffers; 1542 uint32_t maxBindingsPerBindGroup; 1543 uint32_t maxDynamicUniformBuffersPerPipelineLayout; 1544 uint32_t maxDynamicStorageBuffersPerPipelineLayout; 1545 uint32_t maxSampledTexturesPerShaderStage; 1546 uint32_t maxSamplersPerShaderStage; 1547 uint32_t maxStorageBuffersPerShaderStage; 1548 uint32_t maxStorageTexturesPerShaderStage; 1549 uint32_t maxUniformBuffersPerShaderStage; 1550 uint64_t maxUniformBufferBindingSize; 1551 uint64_t maxStorageBufferBindingSize; 1552 uint32_t minUniformBufferOffsetAlignment; 1553 uint32_t minStorageBufferOffsetAlignment; 1554 uint32_t maxVertexBuffers; 1555 uint64_t maxBufferSize; 1556 uint32_t maxVertexAttributes; 1557 uint32_t maxVertexBufferArrayStride; 1558 uint32_t maxInterStageShaderVariables; 1559 uint32_t maxColorAttachments; 1560 uint32_t maxColorAttachmentBytesPerSample; 1561 uint32_t maxComputeWorkgroupStorageSize; 1562 uint32_t maxComputeInvocationsPerWorkgroup; 1563 uint32_t maxComputeWorkgroupSizeX; 1564 uint32_t maxComputeWorkgroupSizeY; 1565 uint32_t maxComputeWorkgroupSizeZ; 1566 uint32_t maxComputeWorkgroupsPerDimension; 1567 } WGPULimits WGPU_STRUCTURE_ATTRIBUTE; 1568 1569 typedef struct WGPUMultisampleState { 1570 WGPUChainedStruct const * nextInChain; 1571 uint32_t count; 1572 uint32_t mask; 1573 WGPUBool alphaToCoverageEnabled; 1574 } WGPUMultisampleState WGPU_STRUCTURE_ATTRIBUTE; 1575 1576 typedef struct WGPUOrigin3D { 1577 uint32_t x; 1578 uint32_t y; 1579 uint32_t z; 1580 } WGPUOrigin3D WGPU_STRUCTURE_ATTRIBUTE; 1581 1582 typedef struct WGPUPipelineLayoutDescriptor { 1583 WGPUChainedStruct const * nextInChain; 1584 /** 1585 * This is a \ref NonNullInputString. 1586 */ 1587 WGPUStringView label; 1588 size_t bindGroupLayoutCount; 1589 WGPUBindGroupLayout const * bindGroupLayouts; 1590 } WGPUPipelineLayoutDescriptor WGPU_STRUCTURE_ATTRIBUTE; 1591 1592 typedef struct WGPUPrimitiveState { 1593 WGPUChainedStruct const * nextInChain; 1594 WGPUPrimitiveTopology topology; 1595 WGPUIndexFormat stripIndexFormat; 1596 WGPUFrontFace frontFace; 1597 WGPUCullMode cullMode; 1598 WGPUBool unclippedDepth; 1599 } WGPUPrimitiveState WGPU_STRUCTURE_ATTRIBUTE; 1600 1601 typedef struct WGPUQuerySetDescriptor { 1602 WGPUChainedStruct const * nextInChain; 1603 /** 1604 * This is a \ref NonNullInputString. 1605 */ 1606 WGPUStringView label; 1607 WGPUQueryType type; 1608 uint32_t count; 1609 } WGPUQuerySetDescriptor WGPU_STRUCTURE_ATTRIBUTE; 1610 1611 typedef struct WGPUQueueDescriptor { 1612 WGPUChainedStruct const * nextInChain; 1613 /** 1614 * This is a \ref NonNullInputString. 1615 */ 1616 WGPUStringView label; 1617 } WGPUQueueDescriptor WGPU_STRUCTURE_ATTRIBUTE; 1618 1619 typedef struct WGPURenderBundleDescriptor { 1620 WGPUChainedStruct const * nextInChain; 1621 /** 1622 * This is a \ref NonNullInputString. 1623 */ 1624 WGPUStringView label; 1625 } WGPURenderBundleDescriptor WGPU_STRUCTURE_ATTRIBUTE; 1626 1627 typedef struct WGPURenderBundleEncoderDescriptor { 1628 WGPUChainedStruct const * nextInChain; 1629 /** 1630 * This is a \ref NonNullInputString. 1631 */ 1632 WGPUStringView label; 1633 size_t colorFormatCount; 1634 WGPUTextureFormat const * colorFormats; 1635 WGPUTextureFormat depthStencilFormat; 1636 uint32_t sampleCount; 1637 WGPUBool depthReadOnly; 1638 WGPUBool stencilReadOnly; 1639 } WGPURenderBundleEncoderDescriptor WGPU_STRUCTURE_ATTRIBUTE; 1640 1641 typedef struct WGPURenderPassDepthStencilAttachment { 1642 WGPUTextureView view; 1643 WGPULoadOp depthLoadOp; 1644 WGPUStoreOp depthStoreOp; 1645 float depthClearValue; 1646 WGPUBool depthReadOnly; 1647 WGPULoadOp stencilLoadOp; 1648 WGPUStoreOp stencilStoreOp; 1649 uint32_t stencilClearValue; 1650 WGPUBool stencilReadOnly; 1651 } WGPURenderPassDepthStencilAttachment WGPU_STRUCTURE_ATTRIBUTE; 1652 1653 typedef struct WGPURenderPassMaxDrawCount { 1654 WGPUChainedStruct chain; 1655 uint64_t maxDrawCount; 1656 } WGPURenderPassMaxDrawCount WGPU_STRUCTURE_ATTRIBUTE; 1657 1658 typedef struct WGPURenderPassTimestampWrites { 1659 WGPUQuerySet querySet; 1660 uint32_t beginningOfPassWriteIndex; 1661 uint32_t endOfPassWriteIndex; 1662 } WGPURenderPassTimestampWrites WGPU_STRUCTURE_ATTRIBUTE; 1663 1664 typedef struct WGPURequestAdapterOptions { 1665 WGPUChainedStruct const * nextInChain; 1666 /** 1667 * "Feature level" for the adapter request. If an adapter is returned, it must support the features and limits in the requested feature level. 1668 * 1669 * Implementations may ignore @ref WGPUFeatureLevel_Compatibility and provide @ref WGPUFeatureLevel_Core instead. @ref WGPUFeatureLevel_Core is the default in the JS API, but in C, this field is **required** (must not be undefined). 1670 */ 1671 WGPUFeatureLevel featureLevel; 1672 WGPUPowerPreference powerPreference; 1673 /** 1674 * If true, requires the adapter to be a "fallback" adapter as defined by the JS spec. 1675 * If this is not possible, the request returns null. 1676 */ 1677 WGPUBool forceFallbackAdapter; 1678 /** 1679 * If set, requires the adapter to have a particular backend type. 1680 * If this is not possible, the request returns null. 1681 */ 1682 WGPUBackendType backendType; 1683 /** 1684 * If set, requires the adapter to be able to output to a particular surface. 1685 * If this is not possible, the request returns null. 1686 */ 1687 WGPU_NULLABLE WGPUSurface compatibleSurface; 1688 } WGPURequestAdapterOptions WGPU_STRUCTURE_ATTRIBUTE; 1689 1690 typedef struct WGPUSamplerBindingLayout { 1691 WGPUChainedStruct const * nextInChain; 1692 WGPUSamplerBindingType type; 1693 } WGPUSamplerBindingLayout WGPU_STRUCTURE_ATTRIBUTE; 1694 1695 typedef struct WGPUSamplerDescriptor { 1696 WGPUChainedStruct const * nextInChain; 1697 /** 1698 * This is a \ref NonNullInputString. 1699 */ 1700 WGPUStringView label; 1701 WGPUAddressMode addressModeU; 1702 WGPUAddressMode addressModeV; 1703 WGPUAddressMode addressModeW; 1704 WGPUFilterMode magFilter; 1705 WGPUFilterMode minFilter; 1706 WGPUMipmapFilterMode mipmapFilter; 1707 float lodMinClamp; 1708 float lodMaxClamp; 1709 WGPUCompareFunction compare; 1710 uint16_t maxAnisotropy; 1711 } WGPUSamplerDescriptor WGPU_STRUCTURE_ATTRIBUTE; 1712 1713 typedef struct WGPUShaderModuleDescriptor { 1714 WGPUChainedStruct const * nextInChain; 1715 /** 1716 * This is a \ref NonNullInputString. 1717 */ 1718 WGPUStringView label; 1719 } WGPUShaderModuleDescriptor WGPU_STRUCTURE_ATTRIBUTE; 1720 1721 typedef struct WGPUShaderSourceSPIRV { 1722 WGPUChainedStruct chain; 1723 uint32_t codeSize; 1724 uint32_t const * code; 1725 } WGPUShaderSourceSPIRV WGPU_STRUCTURE_ATTRIBUTE; 1726 1727 typedef struct WGPUShaderSourceWGSL { 1728 WGPUChainedStruct chain; 1729 /** 1730 * This is a \ref NonNullInputString. 1731 */ 1732 WGPUStringView code; 1733 } WGPUShaderSourceWGSL WGPU_STRUCTURE_ATTRIBUTE; 1734 1735 typedef struct WGPUStencilFaceState { 1736 WGPUCompareFunction compare; 1737 WGPUStencilOperation failOp; 1738 WGPUStencilOperation depthFailOp; 1739 WGPUStencilOperation passOp; 1740 } WGPUStencilFaceState WGPU_STRUCTURE_ATTRIBUTE; 1741 1742 typedef struct WGPUStorageTextureBindingLayout { 1743 WGPUChainedStruct const * nextInChain; 1744 WGPUStorageTextureAccess access; 1745 WGPUTextureFormat format; 1746 WGPUTextureViewDimension viewDimension; 1747 } WGPUStorageTextureBindingLayout WGPU_STRUCTURE_ATTRIBUTE; 1748 1749 typedef struct WGPUSupportedFeatures { 1750 size_t featureCount; 1751 WGPUFeatureName const * features; 1752 } WGPUSupportedFeatures WGPU_STRUCTURE_ATTRIBUTE; 1753 1754 typedef struct WGPUSupportedWGSLLanguageFeatures { 1755 size_t featureCount; 1756 WGPUWGSLLanguageFeatureName const * features; 1757 } WGPUSupportedWGSLLanguageFeatures WGPU_STRUCTURE_ATTRIBUTE; 1758 1759 /** 1760 * Filled by `::wgpuSurfaceGetCapabilities` with what's supported for `::wgpuSurfaceConfigure` for a pair of @ref WGPUSurface and @ref WGPUAdapter. 1761 */ 1762 typedef struct WGPUSurfaceCapabilities { 1763 WGPUChainedStructOut * nextInChain; 1764 /** 1765 * The bit set of supported @ref WGPUTextureUsage bits. 1766 * Guaranteed to contain @ref WGPUTextureUsage_RenderAttachment. 1767 */ 1768 WGPUTextureUsage usages; 1769 /** 1770 * A list of supported @ref WGPUTextureFormat values, in order of preference. 1771 */ 1772 size_t formatCount; 1773 WGPUTextureFormat const * formats; 1774 /** 1775 * A list of supported @ref WGPUPresentMode values. 1776 * Guaranteed to contain @ref WGPUPresentMode_Fifo. 1777 */ 1778 size_t presentModeCount; 1779 WGPUPresentMode const * presentModes; 1780 /** 1781 * A list of supported @ref WGPUCompositeAlphaMode values. 1782 * @ref WGPUCompositeAlphaMode_Auto will be an alias for the first element and will never be present in this array. 1783 */ 1784 size_t alphaModeCount; 1785 WGPUCompositeAlphaMode const * alphaModes; 1786 } WGPUSurfaceCapabilities WGPU_STRUCTURE_ATTRIBUTE; 1787 1788 /** 1789 * Options to `::wgpuSurfaceConfigure` for defining how a @ref WGPUSurface will be rendered to and presented to the user. 1790 * See @ref Surface-Configuration for more details. 1791 */ 1792 typedef struct WGPUSurfaceConfiguration { 1793 WGPUChainedStruct const * nextInChain; 1794 /** 1795 * The @ref WGPUDevice to use to render to surface's textures. 1796 */ 1797 WGPUDevice device; 1798 /** 1799 * The @ref WGPUTextureFormat of the surface's textures. 1800 */ 1801 WGPUTextureFormat format; 1802 /** 1803 * The @ref WGPUTextureUsage of the surface's textures. 1804 */ 1805 WGPUTextureUsage usage; 1806 /** 1807 * The width of the surface's textures. 1808 */ 1809 uint32_t width; 1810 /** 1811 * The height of the surface's textures. 1812 */ 1813 uint32_t height; 1814 /** 1815 * The additional @ref WGPUTextureFormat for @ref WGPUTextureView format reinterpretation of the surface's textures. 1816 */ 1817 size_t viewFormatCount; 1818 WGPUTextureFormat const * viewFormats; 1819 /** 1820 * How the surface's frames will be composited on the screen. 1821 */ 1822 WGPUCompositeAlphaMode alphaMode; 1823 /** 1824 * When and in which order the surface's frames will be shown on the screen. Defaults to @ref WGPUPresentMode_Fifo. 1825 */ 1826 WGPUPresentMode presentMode; 1827 } WGPUSurfaceConfiguration WGPU_STRUCTURE_ATTRIBUTE; 1828 1829 /** 1830 * The root descriptor for the creation of an @ref WGPUSurface with `::wgpuInstanceCreateSurface`. 1831 * It isn't sufficient by itself and must have one of the `WGPUSurfaceSource*` in its chain. 1832 * See @ref Surface-Creation for more details. 1833 */ 1834 typedef struct WGPUSurfaceDescriptor { 1835 WGPUChainedStruct const * nextInChain; 1836 /** 1837 * Label used to refer to the object. 1838 * 1839 * This is a \ref NonNullInputString. 1840 */ 1841 WGPUStringView label; 1842 } WGPUSurfaceDescriptor WGPU_STRUCTURE_ATTRIBUTE; 1843 1844 /** 1845 * Chained in @ref WGPUSurfaceDescriptor to make an @ref WGPUSurface wrapping an Android [`ANativeWindow`](https://developer.android.com/ndk/reference/group/a-native-window). 1846 */ 1847 typedef struct WGPUSurfaceSourceAndroidNativeWindow { 1848 WGPUChainedStruct chain; 1849 /** 1850 * The pointer to the [`ANativeWindow`](https://developer.android.com/ndk/reference/group/a-native-window) that will be wrapped by the @ref WGPUSurface. 1851 */ 1852 void * window; 1853 } WGPUSurfaceSourceAndroidNativeWindow WGPU_STRUCTURE_ATTRIBUTE; 1854 1855 /** 1856 * Chained in @ref WGPUSurfaceDescriptor to make an @ref WGPUSurface wrapping a [`CAMetalLayer`](https://developer.apple.com/documentation/quartzcore/cametallayer?language=objc). 1857 */ 1858 typedef struct WGPUSurfaceSourceMetalLayer { 1859 WGPUChainedStruct chain; 1860 /** 1861 * The pointer to the [`CAMetalLayer`](https://developer.apple.com/documentation/quartzcore/cametallayer?language=objc) that will be wrapped by the @ref WGPUSurface. 1862 */ 1863 void * layer; 1864 } WGPUSurfaceSourceMetalLayer WGPU_STRUCTURE_ATTRIBUTE; 1865 1866 /** 1867 * Chained in @ref WGPUSurfaceDescriptor to make an @ref WGPUSurface wrapping a [Wayland](https://wayland.freedesktop.org/) [`wl_surface`](https://wayland.freedesktop.org/docs/html/apa.html#protocol-spec-wl_surface). 1868 */ 1869 typedef struct WGPUSurfaceSourceWaylandSurface { 1870 WGPUChainedStruct chain; 1871 /** 1872 * A [`wl_display`](https://wayland.freedesktop.org/docs/html/apa.html#protocol-spec-wl_display) for this Wayland instance. 1873 */ 1874 void * display; 1875 /** 1876 * A [`wl_surface`](https://wayland.freedesktop.org/docs/html/apa.html#protocol-spec-wl_surface) that will be wrapped by the @ref WGPUSurface 1877 */ 1878 void * surface; 1879 } WGPUSurfaceSourceWaylandSurface WGPU_STRUCTURE_ATTRIBUTE; 1880 1881 /** 1882 * Chained in @ref WGPUSurfaceDescriptor to make an @ref WGPUSurface wrapping a Windows [`HWND`](https://learn.microsoft.com/en-us/windows/apps/develop/ui-input/retrieve-hwnd). 1883 */ 1884 typedef struct WGPUSurfaceSourceWindowsHWND { 1885 WGPUChainedStruct chain; 1886 /** 1887 * The [`HINSTANCE`](https://learn.microsoft.com/en-us/windows/win32/learnwin32/winmain--the-application-entry-point) for this application. 1888 * Most commonly `GetModuleHandle(nullptr)`. 1889 */ 1890 void * hinstance; 1891 /** 1892 * The [`HWND`](https://learn.microsoft.com/en-us/windows/apps/develop/ui-input/retrieve-hwnd) that will be wrapped by the @ref WGPUSurface. 1893 */ 1894 void * hwnd; 1895 } WGPUSurfaceSourceWindowsHWND WGPU_STRUCTURE_ATTRIBUTE; 1896 1897 /** 1898 * Chained in @ref WGPUSurfaceDescriptor to make an @ref WGPUSurface wrapping an [XCB](https://xcb.freedesktop.org/) `xcb_window_t`. 1899 */ 1900 typedef struct WGPUSurfaceSourceXCBWindow { 1901 WGPUChainedStruct chain; 1902 /** 1903 * The `xcb_connection_t` for the connection to the X server. 1904 */ 1905 void * connection; 1906 /** 1907 * The `xcb_window_t` for the window that will be wrapped by the @ref WGPUSurface. 1908 */ 1909 uint32_t window; 1910 } WGPUSurfaceSourceXCBWindow WGPU_STRUCTURE_ATTRIBUTE; 1911 1912 /** 1913 * Chained in @ref WGPUSurfaceDescriptor to make an @ref WGPUSurface wrapping an [Xlib](https://www.x.org/releases/current/doc/libX11/libX11/libX11.html) `Window`. 1914 */ 1915 typedef struct WGPUSurfaceSourceXlibWindow { 1916 WGPUChainedStruct chain; 1917 /** 1918 * A pointer to the [`Display`](https://www.x.org/releases/current/doc/libX11/libX11/libX11.html#Opening_the_Display) connected to the X server. 1919 */ 1920 void * display; 1921 /** 1922 * The [`Window`](https://www.x.org/releases/current/doc/libX11/libX11/libX11.html#Creating_Windows) that will be wrapped by the @ref WGPUSurface. 1923 */ 1924 uint64_t window; 1925 } WGPUSurfaceSourceXlibWindow WGPU_STRUCTURE_ATTRIBUTE; 1926 1927 /** 1928 * Queried each frame from a @ref WGPUSurface to get a @ref WGPUTexture to render to along with some metadata. 1929 * See @ref Surface-Presenting for more details. 1930 */ 1931 typedef struct WGPUSurfaceTexture { 1932 WGPUChainedStructOut * nextInChain; 1933 /** 1934 * The @ref WGPUTexture representing the frame that will be shown on the surface. 1935 * It is @ref ReturnedWithOwnership from @ref wgpuSurfaceGetCurrentTexture. 1936 */ 1937 WGPUTexture texture; 1938 /** 1939 * Whether the call to `::wgpuSurfaceGetCurrentTexture` succeeded and a hint as to why it might not have. 1940 */ 1941 WGPUSurfaceGetCurrentTextureStatus status; 1942 } WGPUSurfaceTexture WGPU_STRUCTURE_ATTRIBUTE; 1943 1944 typedef struct WGPUTexelCopyBufferLayout { 1945 uint64_t offset; 1946 uint32_t bytesPerRow; 1947 uint32_t rowsPerImage; 1948 } WGPUTexelCopyBufferLayout WGPU_STRUCTURE_ATTRIBUTE; 1949 1950 typedef struct WGPUTextureBindingLayout { 1951 WGPUChainedStruct const * nextInChain; 1952 WGPUTextureSampleType sampleType; 1953 WGPUTextureViewDimension viewDimension; 1954 WGPUBool multisampled; 1955 } WGPUTextureBindingLayout WGPU_STRUCTURE_ATTRIBUTE; 1956 1957 typedef struct WGPUTextureViewDescriptor { 1958 WGPUChainedStruct const * nextInChain; 1959 /** 1960 * This is a \ref NonNullInputString. 1961 */ 1962 WGPUStringView label; 1963 WGPUTextureFormat format; 1964 WGPUTextureViewDimension dimension; 1965 uint32_t baseMipLevel; 1966 uint32_t mipLevelCount; 1967 uint32_t baseArrayLayer; 1968 uint32_t arrayLayerCount; 1969 WGPUTextureAspect aspect; 1970 WGPUTextureUsage usage; 1971 } WGPUTextureViewDescriptor WGPU_STRUCTURE_ATTRIBUTE; 1972 1973 typedef struct WGPUVertexAttribute { 1974 WGPUVertexFormat format; 1975 uint64_t offset; 1976 uint32_t shaderLocation; 1977 } WGPUVertexAttribute WGPU_STRUCTURE_ATTRIBUTE; 1978 1979 typedef struct WGPUBindGroupDescriptor { 1980 WGPUChainedStruct const * nextInChain; 1981 /** 1982 * This is a \ref NonNullInputString. 1983 */ 1984 WGPUStringView label; 1985 WGPUBindGroupLayout layout; 1986 size_t entryCount; 1987 WGPUBindGroupEntry const * entries; 1988 } WGPUBindGroupDescriptor WGPU_STRUCTURE_ATTRIBUTE; 1989 1990 typedef struct WGPUBindGroupLayoutEntry { 1991 WGPUChainedStruct const * nextInChain; 1992 uint32_t binding; 1993 WGPUShaderStage visibility; 1994 WGPUBufferBindingLayout buffer; 1995 WGPUSamplerBindingLayout sampler; 1996 WGPUTextureBindingLayout texture; 1997 WGPUStorageTextureBindingLayout storageTexture; 1998 } WGPUBindGroupLayoutEntry WGPU_STRUCTURE_ATTRIBUTE; 1999 2000 typedef struct WGPUBlendState { 2001 WGPUBlendComponent color; 2002 WGPUBlendComponent alpha; 2003 } WGPUBlendState WGPU_STRUCTURE_ATTRIBUTE; 2004 2005 typedef struct WGPUCompilationInfo { 2006 WGPUChainedStruct const * nextInChain; 2007 size_t messageCount; 2008 WGPUCompilationMessage const * messages; 2009 } WGPUCompilationInfo WGPU_STRUCTURE_ATTRIBUTE; 2010 2011 typedef struct WGPUComputePassDescriptor { 2012 WGPUChainedStruct const * nextInChain; 2013 /** 2014 * This is a \ref NonNullInputString. 2015 */ 2016 WGPUStringView label; 2017 WGPU_NULLABLE WGPUComputePassTimestampWrites const * timestampWrites; 2018 } WGPUComputePassDescriptor WGPU_STRUCTURE_ATTRIBUTE; 2019 2020 typedef struct WGPUDepthStencilState { 2021 WGPUChainedStruct const * nextInChain; 2022 WGPUTextureFormat format; 2023 WGPUOptionalBool depthWriteEnabled; 2024 WGPUCompareFunction depthCompare; 2025 WGPUStencilFaceState stencilFront; 2026 WGPUStencilFaceState stencilBack; 2027 uint32_t stencilReadMask; 2028 uint32_t stencilWriteMask; 2029 int32_t depthBias; 2030 float depthBiasSlopeScale; 2031 float depthBiasClamp; 2032 } WGPUDepthStencilState WGPU_STRUCTURE_ATTRIBUTE; 2033 2034 typedef struct WGPUDeviceDescriptor { 2035 WGPUChainedStruct const * nextInChain; 2036 /** 2037 * This is a \ref NonNullInputString. 2038 */ 2039 WGPUStringView label; 2040 size_t requiredFeatureCount; 2041 WGPUFeatureName const * requiredFeatures; 2042 WGPU_NULLABLE WGPULimits const * requiredLimits; 2043 WGPUQueueDescriptor defaultQueue; 2044 WGPUDeviceLostCallbackInfo deviceLostCallbackInfo; 2045 WGPUUncapturedErrorCallbackInfo uncapturedErrorCallbackInfo; 2046 } WGPUDeviceDescriptor WGPU_STRUCTURE_ATTRIBUTE; 2047 2048 /** 2049 * Struct holding a future to wait on, and a `completed` boolean flag. 2050 */ 2051 typedef struct WGPUFutureWaitInfo { 2052 /** 2053 * The future to wait on. 2054 */ 2055 WGPUFuture future; 2056 /** 2057 * Whether or not the future completed. 2058 */ 2059 WGPUBool completed; 2060 } WGPUFutureWaitInfo WGPU_STRUCTURE_ATTRIBUTE; 2061 2062 typedef struct WGPUInstanceDescriptor { 2063 WGPUChainedStruct const * nextInChain; 2064 /** 2065 * Instance features to enable 2066 */ 2067 WGPUInstanceCapabilities features; 2068 } WGPUInstanceDescriptor WGPU_STRUCTURE_ATTRIBUTE; 2069 2070 typedef struct WGPUProgrammableStageDescriptor { 2071 WGPUChainedStruct const * nextInChain; 2072 WGPUShaderModule module; 2073 /** 2074 * This is a \ref NullableInputString. 2075 */ 2076 WGPUStringView entryPoint; 2077 size_t constantCount; 2078 WGPUConstantEntry const * constants; 2079 } WGPUProgrammableStageDescriptor WGPU_STRUCTURE_ATTRIBUTE; 2080 2081 typedef struct WGPURenderPassColorAttachment { 2082 WGPUChainedStruct const * nextInChain; 2083 WGPU_NULLABLE WGPUTextureView view; 2084 uint32_t depthSlice; 2085 WGPU_NULLABLE WGPUTextureView resolveTarget; 2086 WGPULoadOp loadOp; 2087 WGPUStoreOp storeOp; 2088 WGPUColor clearValue; 2089 } WGPURenderPassColorAttachment WGPU_STRUCTURE_ATTRIBUTE; 2090 2091 typedef struct WGPUTexelCopyBufferInfo { 2092 WGPUTexelCopyBufferLayout layout; 2093 WGPUBuffer buffer; 2094 } WGPUTexelCopyBufferInfo WGPU_STRUCTURE_ATTRIBUTE; 2095 2096 typedef struct WGPUTexelCopyTextureInfo { 2097 WGPUTexture texture; 2098 uint32_t mipLevel; 2099 WGPUOrigin3D origin; 2100 WGPUTextureAspect aspect; 2101 } WGPUTexelCopyTextureInfo WGPU_STRUCTURE_ATTRIBUTE; 2102 2103 typedef struct WGPUTextureDescriptor { 2104 WGPUChainedStruct const * nextInChain; 2105 /** 2106 * This is a \ref NonNullInputString. 2107 */ 2108 WGPUStringView label; 2109 WGPUTextureUsage usage; 2110 WGPUTextureDimension dimension; 2111 WGPUExtent3D size; 2112 WGPUTextureFormat format; 2113 uint32_t mipLevelCount; 2114 uint32_t sampleCount; 2115 size_t viewFormatCount; 2116 WGPUTextureFormat const * viewFormats; 2117 } WGPUTextureDescriptor WGPU_STRUCTURE_ATTRIBUTE; 2118 2119 typedef struct WGPUVertexBufferLayout { 2120 /** 2121 * The step mode for the vertex buffer. If @ref WGPUVertexStepMode_VertexBufferNotUsed, 2122 * indicates a "hole" in the parent @ref WGPUVertexState `buffers` array: 2123 * the pipeline does not use a vertex buffer at this `location`. 2124 */ 2125 WGPUVertexStepMode stepMode; 2126 uint64_t arrayStride; 2127 size_t attributeCount; 2128 WGPUVertexAttribute const * attributes; 2129 } WGPUVertexBufferLayout WGPU_STRUCTURE_ATTRIBUTE; 2130 2131 typedef struct WGPUBindGroupLayoutDescriptor { 2132 WGPUChainedStruct const * nextInChain; 2133 /** 2134 * This is a \ref NonNullInputString. 2135 */ 2136 WGPUStringView label; 2137 size_t entryCount; 2138 WGPUBindGroupLayoutEntry const * entries; 2139 } WGPUBindGroupLayoutDescriptor WGPU_STRUCTURE_ATTRIBUTE; 2140 2141 typedef struct WGPUColorTargetState { 2142 WGPUChainedStruct const * nextInChain; 2143 /** 2144 * The texture format of the target. If @ref WGPUTextureFormat_Undefined, 2145 * indicates a "hole" in the parent @ref WGPUFragmentState `targets` array: 2146 * the pipeline does not output a value at this `location`. 2147 */ 2148 WGPUTextureFormat format; 2149 WGPU_NULLABLE WGPUBlendState const * blend; 2150 WGPUColorWriteMask writeMask; 2151 } WGPUColorTargetState WGPU_STRUCTURE_ATTRIBUTE; 2152 2153 typedef struct WGPUComputePipelineDescriptor { 2154 WGPUChainedStruct const * nextInChain; 2155 /** 2156 * This is a \ref NonNullInputString. 2157 */ 2158 WGPUStringView label; 2159 WGPU_NULLABLE WGPUPipelineLayout layout; 2160 WGPUProgrammableStageDescriptor compute; 2161 } WGPUComputePipelineDescriptor WGPU_STRUCTURE_ATTRIBUTE; 2162 2163 typedef struct WGPURenderPassDescriptor { 2164 WGPUChainedStruct const * nextInChain; 2165 /** 2166 * This is a \ref NonNullInputString. 2167 */ 2168 WGPUStringView label; 2169 size_t colorAttachmentCount; 2170 WGPURenderPassColorAttachment const * colorAttachments; 2171 WGPU_NULLABLE WGPURenderPassDepthStencilAttachment const * depthStencilAttachment; 2172 WGPU_NULLABLE WGPUQuerySet occlusionQuerySet; 2173 WGPU_NULLABLE WGPURenderPassTimestampWrites const * timestampWrites; 2174 } WGPURenderPassDescriptor WGPU_STRUCTURE_ATTRIBUTE; 2175 2176 typedef struct WGPUVertexState { 2177 WGPUChainedStruct const * nextInChain; 2178 WGPUShaderModule module; 2179 /** 2180 * This is a \ref NullableInputString. 2181 */ 2182 WGPUStringView entryPoint; 2183 size_t constantCount; 2184 WGPUConstantEntry const * constants; 2185 size_t bufferCount; 2186 WGPUVertexBufferLayout const * buffers; 2187 } WGPUVertexState WGPU_STRUCTURE_ATTRIBUTE; 2188 2189 typedef struct WGPUFragmentState { 2190 WGPUChainedStruct const * nextInChain; 2191 WGPUShaderModule module; 2192 /** 2193 * This is a \ref NullableInputString. 2194 */ 2195 WGPUStringView entryPoint; 2196 size_t constantCount; 2197 WGPUConstantEntry const * constants; 2198 size_t targetCount; 2199 WGPUColorTargetState const * targets; 2200 } WGPUFragmentState WGPU_STRUCTURE_ATTRIBUTE; 2201 2202 typedef struct WGPURenderPipelineDescriptor { 2203 WGPUChainedStruct const * nextInChain; 2204 /** 2205 * This is a \ref NonNullInputString. 2206 */ 2207 WGPUStringView label; 2208 WGPU_NULLABLE WGPUPipelineLayout layout; 2209 WGPUVertexState vertex; 2210 WGPUPrimitiveState primitive; 2211 WGPU_NULLABLE WGPUDepthStencilState const * depthStencil; 2212 WGPUMultisampleState multisample; 2213 WGPU_NULLABLE WGPUFragmentState const * fragment; 2214 } WGPURenderPipelineDescriptor WGPU_STRUCTURE_ATTRIBUTE; 2215 2216 /** @} */ 2217 2218 #ifdef __cplusplus 2219 extern "C" { 2220 #endif 2221 2222 #if !defined(WGPU_SKIP_PROCS) 2223 2224 /** 2225 * Proc pointer type for @ref wgpuCreateInstance: 2226 * > @copydoc wgpuCreateInstance 2227 */ 2228 typedef WGPUInstance (*WGPUProcCreateInstance)(WGPU_NULLABLE WGPUInstanceDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; 2229 /** 2230 * Proc pointer type for @ref wgpuGetInstanceCapabilities: 2231 * > @copydoc wgpuGetInstanceCapabilities 2232 */ 2233 typedef WGPUStatus (*WGPUProcGetInstanceCapabilities)(WGPUInstanceCapabilities * capabilities) WGPU_FUNCTION_ATTRIBUTE; 2234 /** 2235 * Proc pointer type for @ref wgpuGetProcAddress: 2236 * > @copydoc wgpuGetProcAddress 2237 */ 2238 typedef WGPUProc (*WGPUProcGetProcAddress)(WGPUStringView procName) WGPU_FUNCTION_ATTRIBUTE; 2239 2240 // Procs of Adapter 2241 /** 2242 * Proc pointer type for @ref wgpuAdapterGetFeatures: 2243 * > @copydoc wgpuAdapterGetFeatures 2244 */ 2245 typedef void (*WGPUProcAdapterGetFeatures)(WGPUAdapter adapter, WGPUSupportedFeatures * features) WGPU_FUNCTION_ATTRIBUTE; 2246 /** 2247 * Proc pointer type for @ref wgpuAdapterGetInfo: 2248 * > @copydoc wgpuAdapterGetInfo 2249 */ 2250 typedef WGPUStatus (*WGPUProcAdapterGetInfo)(WGPUAdapter adapter, WGPUAdapterInfo * info) WGPU_FUNCTION_ATTRIBUTE; 2251 /** 2252 * Proc pointer type for @ref wgpuAdapterGetLimits: 2253 * > @copydoc wgpuAdapterGetLimits 2254 */ 2255 typedef WGPUStatus (*WGPUProcAdapterGetLimits)(WGPUAdapter adapter, WGPULimits * limits) WGPU_FUNCTION_ATTRIBUTE; 2256 /** 2257 * Proc pointer type for @ref wgpuAdapterHasFeature: 2258 * > @copydoc wgpuAdapterHasFeature 2259 */ 2260 typedef WGPUBool (*WGPUProcAdapterHasFeature)(WGPUAdapter adapter, WGPUFeatureName feature) WGPU_FUNCTION_ATTRIBUTE; 2261 /** 2262 * Proc pointer type for @ref wgpuAdapterRequestDevice: 2263 * > @copydoc wgpuAdapterRequestDevice 2264 */ 2265 typedef WGPUFuture (*WGPUProcAdapterRequestDevice)(WGPUAdapter adapter, WGPU_NULLABLE WGPUDeviceDescriptor const * descriptor, WGPURequestDeviceCallbackInfo callbackInfo) WGPU_FUNCTION_ATTRIBUTE; 2266 /** 2267 * Proc pointer type for @ref wgpuAdapterAddRef. 2268 * > @copydoc wgpuAdapterAddRef 2269 */ 2270 typedef void (*WGPUProcAdapterAddRef)(WGPUAdapter adapter) WGPU_FUNCTION_ATTRIBUTE; 2271 /** 2272 * Proc pointer type for @ref wgpuAdapterRelease. 2273 * > @copydoc wgpuAdapterRelease 2274 */ 2275 typedef void (*WGPUProcAdapterRelease)(WGPUAdapter adapter) WGPU_FUNCTION_ATTRIBUTE; 2276 2277 // Procs of AdapterInfo 2278 /** 2279 * Proc pointer type for @ref wgpuAdapterInfoFreeMembers: 2280 * > @copydoc wgpuAdapterInfoFreeMembers 2281 */ 2282 typedef void (*WGPUProcAdapterInfoFreeMembers)(WGPUAdapterInfo adapterInfo) WGPU_FUNCTION_ATTRIBUTE; 2283 2284 // Procs of BindGroup 2285 /** 2286 * Proc pointer type for @ref wgpuBindGroupSetLabel: 2287 * > @copydoc wgpuBindGroupSetLabel 2288 */ 2289 typedef void (*WGPUProcBindGroupSetLabel)(WGPUBindGroup bindGroup, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE; 2290 /** 2291 * Proc pointer type for @ref wgpuBindGroupAddRef. 2292 * > @copydoc wgpuBindGroupAddRef 2293 */ 2294 typedef void (*WGPUProcBindGroupAddRef)(WGPUBindGroup bindGroup) WGPU_FUNCTION_ATTRIBUTE; 2295 /** 2296 * Proc pointer type for @ref wgpuBindGroupRelease. 2297 * > @copydoc wgpuBindGroupRelease 2298 */ 2299 typedef void (*WGPUProcBindGroupRelease)(WGPUBindGroup bindGroup) WGPU_FUNCTION_ATTRIBUTE; 2300 2301 // Procs of BindGroupLayout 2302 /** 2303 * Proc pointer type for @ref wgpuBindGroupLayoutSetLabel: 2304 * > @copydoc wgpuBindGroupLayoutSetLabel 2305 */ 2306 typedef void (*WGPUProcBindGroupLayoutSetLabel)(WGPUBindGroupLayout bindGroupLayout, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE; 2307 /** 2308 * Proc pointer type for @ref wgpuBindGroupLayoutAddRef. 2309 * > @copydoc wgpuBindGroupLayoutAddRef 2310 */ 2311 typedef void (*WGPUProcBindGroupLayoutAddRef)(WGPUBindGroupLayout bindGroupLayout) WGPU_FUNCTION_ATTRIBUTE; 2312 /** 2313 * Proc pointer type for @ref wgpuBindGroupLayoutRelease. 2314 * > @copydoc wgpuBindGroupLayoutRelease 2315 */ 2316 typedef void (*WGPUProcBindGroupLayoutRelease)(WGPUBindGroupLayout bindGroupLayout) WGPU_FUNCTION_ATTRIBUTE; 2317 2318 // Procs of Buffer 2319 /** 2320 * Proc pointer type for @ref wgpuBufferDestroy: 2321 * > @copydoc wgpuBufferDestroy 2322 */ 2323 typedef void (*WGPUProcBufferDestroy)(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE; 2324 /** 2325 * Proc pointer type for @ref wgpuBufferGetConstMappedRange: 2326 * > @copydoc wgpuBufferGetConstMappedRange 2327 */ 2328 typedef void const * (*WGPUProcBufferGetConstMappedRange)(WGPUBuffer buffer, size_t offset, size_t size) WGPU_FUNCTION_ATTRIBUTE; 2329 /** 2330 * Proc pointer type for @ref wgpuBufferGetMapState: 2331 * > @copydoc wgpuBufferGetMapState 2332 */ 2333 typedef WGPUBufferMapState (*WGPUProcBufferGetMapState)(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE; 2334 /** 2335 * Proc pointer type for @ref wgpuBufferGetMappedRange: 2336 * > @copydoc wgpuBufferGetMappedRange 2337 */ 2338 typedef void * (*WGPUProcBufferGetMappedRange)(WGPUBuffer buffer, size_t offset, size_t size) WGPU_FUNCTION_ATTRIBUTE; 2339 /** 2340 * Proc pointer type for @ref wgpuBufferGetSize: 2341 * > @copydoc wgpuBufferGetSize 2342 */ 2343 typedef uint64_t (*WGPUProcBufferGetSize)(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE; 2344 /** 2345 * Proc pointer type for @ref wgpuBufferGetUsage: 2346 * > @copydoc wgpuBufferGetUsage 2347 */ 2348 typedef WGPUBufferUsage (*WGPUProcBufferGetUsage)(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE; 2349 /** 2350 * Proc pointer type for @ref wgpuBufferMapAsync: 2351 * > @copydoc wgpuBufferMapAsync 2352 */ 2353 typedef WGPUFuture (*WGPUProcBufferMapAsync)(WGPUBuffer buffer, WGPUMapMode mode, size_t offset, size_t size, WGPUBufferMapCallbackInfo callbackInfo) WGPU_FUNCTION_ATTRIBUTE; 2354 /** 2355 * Proc pointer type for @ref wgpuBufferSetLabel: 2356 * > @copydoc wgpuBufferSetLabel 2357 */ 2358 typedef void (*WGPUProcBufferSetLabel)(WGPUBuffer buffer, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE; 2359 /** 2360 * Proc pointer type for @ref wgpuBufferUnmap: 2361 * > @copydoc wgpuBufferUnmap 2362 */ 2363 typedef void (*WGPUProcBufferUnmap)(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE; 2364 /** 2365 * Proc pointer type for @ref wgpuBufferAddRef. 2366 * > @copydoc wgpuBufferAddRef 2367 */ 2368 typedef void (*WGPUProcBufferAddRef)(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE; 2369 /** 2370 * Proc pointer type for @ref wgpuBufferRelease. 2371 * > @copydoc wgpuBufferRelease 2372 */ 2373 typedef void (*WGPUProcBufferRelease)(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE; 2374 2375 // Procs of CommandBuffer 2376 /** 2377 * Proc pointer type for @ref wgpuCommandBufferSetLabel: 2378 * > @copydoc wgpuCommandBufferSetLabel 2379 */ 2380 typedef void (*WGPUProcCommandBufferSetLabel)(WGPUCommandBuffer commandBuffer, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE; 2381 /** 2382 * Proc pointer type for @ref wgpuCommandBufferAddRef. 2383 * > @copydoc wgpuCommandBufferAddRef 2384 */ 2385 typedef void (*WGPUProcCommandBufferAddRef)(WGPUCommandBuffer commandBuffer) WGPU_FUNCTION_ATTRIBUTE; 2386 /** 2387 * Proc pointer type for @ref wgpuCommandBufferRelease. 2388 * > @copydoc wgpuCommandBufferRelease 2389 */ 2390 typedef void (*WGPUProcCommandBufferRelease)(WGPUCommandBuffer commandBuffer) WGPU_FUNCTION_ATTRIBUTE; 2391 2392 // Procs of CommandEncoder 2393 /** 2394 * Proc pointer type for @ref wgpuCommandEncoderBeginComputePass: 2395 * > @copydoc wgpuCommandEncoderBeginComputePass 2396 */ 2397 typedef WGPUComputePassEncoder (*WGPUProcCommandEncoderBeginComputePass)(WGPUCommandEncoder commandEncoder, WGPU_NULLABLE WGPUComputePassDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; 2398 /** 2399 * Proc pointer type for @ref wgpuCommandEncoderBeginRenderPass: 2400 * > @copydoc wgpuCommandEncoderBeginRenderPass 2401 */ 2402 typedef WGPURenderPassEncoder (*WGPUProcCommandEncoderBeginRenderPass)(WGPUCommandEncoder commandEncoder, WGPURenderPassDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; 2403 /** 2404 * Proc pointer type for @ref wgpuCommandEncoderClearBuffer: 2405 * > @copydoc wgpuCommandEncoderClearBuffer 2406 */ 2407 typedef void (*WGPUProcCommandEncoderClearBuffer)(WGPUCommandEncoder commandEncoder, WGPUBuffer buffer, uint64_t offset, uint64_t size) WGPU_FUNCTION_ATTRIBUTE; 2408 /** 2409 * Proc pointer type for @ref wgpuCommandEncoderCopyBufferToBuffer: 2410 * > @copydoc wgpuCommandEncoderCopyBufferToBuffer 2411 */ 2412 typedef void (*WGPUProcCommandEncoderCopyBufferToBuffer)(WGPUCommandEncoder commandEncoder, WGPUBuffer source, uint64_t sourceOffset, WGPUBuffer destination, uint64_t destinationOffset, uint64_t size) WGPU_FUNCTION_ATTRIBUTE; 2413 /** 2414 * Proc pointer type for @ref wgpuCommandEncoderCopyBufferToTexture: 2415 * > @copydoc wgpuCommandEncoderCopyBufferToTexture 2416 */ 2417 typedef void (*WGPUProcCommandEncoderCopyBufferToTexture)(WGPUCommandEncoder commandEncoder, WGPUTexelCopyBufferInfo const * source, WGPUTexelCopyTextureInfo const * destination, WGPUExtent3D const * copySize) WGPU_FUNCTION_ATTRIBUTE; 2418 /** 2419 * Proc pointer type for @ref wgpuCommandEncoderCopyTextureToBuffer: 2420 * > @copydoc wgpuCommandEncoderCopyTextureToBuffer 2421 */ 2422 typedef void (*WGPUProcCommandEncoderCopyTextureToBuffer)(WGPUCommandEncoder commandEncoder, WGPUTexelCopyTextureInfo const * source, WGPUTexelCopyBufferInfo const * destination, WGPUExtent3D const * copySize) WGPU_FUNCTION_ATTRIBUTE; 2423 /** 2424 * Proc pointer type for @ref wgpuCommandEncoderCopyTextureToTexture: 2425 * > @copydoc wgpuCommandEncoderCopyTextureToTexture 2426 */ 2427 typedef void (*WGPUProcCommandEncoderCopyTextureToTexture)(WGPUCommandEncoder commandEncoder, WGPUTexelCopyTextureInfo const * source, WGPUTexelCopyTextureInfo const * destination, WGPUExtent3D const * copySize) WGPU_FUNCTION_ATTRIBUTE; 2428 /** 2429 * Proc pointer type for @ref wgpuCommandEncoderFinish: 2430 * > @copydoc wgpuCommandEncoderFinish 2431 */ 2432 typedef WGPUCommandBuffer (*WGPUProcCommandEncoderFinish)(WGPUCommandEncoder commandEncoder, WGPU_NULLABLE WGPUCommandBufferDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; 2433 /** 2434 * Proc pointer type for @ref wgpuCommandEncoderInsertDebugMarker: 2435 * > @copydoc wgpuCommandEncoderInsertDebugMarker 2436 */ 2437 typedef void (*WGPUProcCommandEncoderInsertDebugMarker)(WGPUCommandEncoder commandEncoder, WGPUStringView markerLabel) WGPU_FUNCTION_ATTRIBUTE; 2438 /** 2439 * Proc pointer type for @ref wgpuCommandEncoderPopDebugGroup: 2440 * > @copydoc wgpuCommandEncoderPopDebugGroup 2441 */ 2442 typedef void (*WGPUProcCommandEncoderPopDebugGroup)(WGPUCommandEncoder commandEncoder) WGPU_FUNCTION_ATTRIBUTE; 2443 /** 2444 * Proc pointer type for @ref wgpuCommandEncoderPushDebugGroup: 2445 * > @copydoc wgpuCommandEncoderPushDebugGroup 2446 */ 2447 typedef void (*WGPUProcCommandEncoderPushDebugGroup)(WGPUCommandEncoder commandEncoder, WGPUStringView groupLabel) WGPU_FUNCTION_ATTRIBUTE; 2448 /** 2449 * Proc pointer type for @ref wgpuCommandEncoderResolveQuerySet: 2450 * > @copydoc wgpuCommandEncoderResolveQuerySet 2451 */ 2452 typedef void (*WGPUProcCommandEncoderResolveQuerySet)(WGPUCommandEncoder commandEncoder, WGPUQuerySet querySet, uint32_t firstQuery, uint32_t queryCount, WGPUBuffer destination, uint64_t destinationOffset) WGPU_FUNCTION_ATTRIBUTE; 2453 /** 2454 * Proc pointer type for @ref wgpuCommandEncoderSetLabel: 2455 * > @copydoc wgpuCommandEncoderSetLabel 2456 */ 2457 typedef void (*WGPUProcCommandEncoderSetLabel)(WGPUCommandEncoder commandEncoder, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE; 2458 /** 2459 * Proc pointer type for @ref wgpuCommandEncoderWriteTimestamp: 2460 * > @copydoc wgpuCommandEncoderWriteTimestamp 2461 */ 2462 typedef void (*WGPUProcCommandEncoderWriteTimestamp)(WGPUCommandEncoder commandEncoder, WGPUQuerySet querySet, uint32_t queryIndex) WGPU_FUNCTION_ATTRIBUTE; 2463 /** 2464 * Proc pointer type for @ref wgpuCommandEncoderAddRef. 2465 * > @copydoc wgpuCommandEncoderAddRef 2466 */ 2467 typedef void (*WGPUProcCommandEncoderAddRef)(WGPUCommandEncoder commandEncoder) WGPU_FUNCTION_ATTRIBUTE; 2468 /** 2469 * Proc pointer type for @ref wgpuCommandEncoderRelease. 2470 * > @copydoc wgpuCommandEncoderRelease 2471 */ 2472 typedef void (*WGPUProcCommandEncoderRelease)(WGPUCommandEncoder commandEncoder) WGPU_FUNCTION_ATTRIBUTE; 2473 2474 // Procs of ComputePassEncoder 2475 /** 2476 * Proc pointer type for @ref wgpuComputePassEncoderDispatchWorkgroups: 2477 * > @copydoc wgpuComputePassEncoderDispatchWorkgroups 2478 */ 2479 typedef void (*WGPUProcComputePassEncoderDispatchWorkgroups)(WGPUComputePassEncoder computePassEncoder, uint32_t workgroupCountX, uint32_t workgroupCountY, uint32_t workgroupCountZ) WGPU_FUNCTION_ATTRIBUTE; 2480 /** 2481 * Proc pointer type for @ref wgpuComputePassEncoderDispatchWorkgroupsIndirect: 2482 * > @copydoc wgpuComputePassEncoderDispatchWorkgroupsIndirect 2483 */ 2484 typedef void (*WGPUProcComputePassEncoderDispatchWorkgroupsIndirect)(WGPUComputePassEncoder computePassEncoder, WGPUBuffer indirectBuffer, uint64_t indirectOffset) WGPU_FUNCTION_ATTRIBUTE; 2485 /** 2486 * Proc pointer type for @ref wgpuComputePassEncoderEnd: 2487 * > @copydoc wgpuComputePassEncoderEnd 2488 */ 2489 typedef void (*WGPUProcComputePassEncoderEnd)(WGPUComputePassEncoder computePassEncoder) WGPU_FUNCTION_ATTRIBUTE; 2490 /** 2491 * Proc pointer type for @ref wgpuComputePassEncoderInsertDebugMarker: 2492 * > @copydoc wgpuComputePassEncoderInsertDebugMarker 2493 */ 2494 typedef void (*WGPUProcComputePassEncoderInsertDebugMarker)(WGPUComputePassEncoder computePassEncoder, WGPUStringView markerLabel) WGPU_FUNCTION_ATTRIBUTE; 2495 /** 2496 * Proc pointer type for @ref wgpuComputePassEncoderPopDebugGroup: 2497 * > @copydoc wgpuComputePassEncoderPopDebugGroup 2498 */ 2499 typedef void (*WGPUProcComputePassEncoderPopDebugGroup)(WGPUComputePassEncoder computePassEncoder) WGPU_FUNCTION_ATTRIBUTE; 2500 /** 2501 * Proc pointer type for @ref wgpuComputePassEncoderPushDebugGroup: 2502 * > @copydoc wgpuComputePassEncoderPushDebugGroup 2503 */ 2504 typedef void (*WGPUProcComputePassEncoderPushDebugGroup)(WGPUComputePassEncoder computePassEncoder, WGPUStringView groupLabel) WGPU_FUNCTION_ATTRIBUTE; 2505 /** 2506 * Proc pointer type for @ref wgpuComputePassEncoderSetBindGroup: 2507 * > @copydoc wgpuComputePassEncoderSetBindGroup 2508 */ 2509 typedef void (*WGPUProcComputePassEncoderSetBindGroup)(WGPUComputePassEncoder computePassEncoder, uint32_t groupIndex, WGPU_NULLABLE WGPUBindGroup group, size_t dynamicOffsetCount, uint32_t const * dynamicOffsets) WGPU_FUNCTION_ATTRIBUTE; 2510 /** 2511 * Proc pointer type for @ref wgpuComputePassEncoderSetLabel: 2512 * > @copydoc wgpuComputePassEncoderSetLabel 2513 */ 2514 typedef void (*WGPUProcComputePassEncoderSetLabel)(WGPUComputePassEncoder computePassEncoder, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE; 2515 /** 2516 * Proc pointer type for @ref wgpuComputePassEncoderSetPipeline: 2517 * > @copydoc wgpuComputePassEncoderSetPipeline 2518 */ 2519 typedef void (*WGPUProcComputePassEncoderSetPipeline)(WGPUComputePassEncoder computePassEncoder, WGPUComputePipeline pipeline) WGPU_FUNCTION_ATTRIBUTE; 2520 /** 2521 * Proc pointer type for @ref wgpuComputePassEncoderAddRef. 2522 * > @copydoc wgpuComputePassEncoderAddRef 2523 */ 2524 typedef void (*WGPUProcComputePassEncoderAddRef)(WGPUComputePassEncoder computePassEncoder) WGPU_FUNCTION_ATTRIBUTE; 2525 /** 2526 * Proc pointer type for @ref wgpuComputePassEncoderRelease. 2527 * > @copydoc wgpuComputePassEncoderRelease 2528 */ 2529 typedef void (*WGPUProcComputePassEncoderRelease)(WGPUComputePassEncoder computePassEncoder) WGPU_FUNCTION_ATTRIBUTE; 2530 2531 // Procs of ComputePipeline 2532 /** 2533 * Proc pointer type for @ref wgpuComputePipelineGetBindGroupLayout: 2534 * > @copydoc wgpuComputePipelineGetBindGroupLayout 2535 */ 2536 typedef WGPUBindGroupLayout (*WGPUProcComputePipelineGetBindGroupLayout)(WGPUComputePipeline computePipeline, uint32_t groupIndex) WGPU_FUNCTION_ATTRIBUTE; 2537 /** 2538 * Proc pointer type for @ref wgpuComputePipelineSetLabel: 2539 * > @copydoc wgpuComputePipelineSetLabel 2540 */ 2541 typedef void (*WGPUProcComputePipelineSetLabel)(WGPUComputePipeline computePipeline, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE; 2542 /** 2543 * Proc pointer type for @ref wgpuComputePipelineAddRef. 2544 * > @copydoc wgpuComputePipelineAddRef 2545 */ 2546 typedef void (*WGPUProcComputePipelineAddRef)(WGPUComputePipeline computePipeline) WGPU_FUNCTION_ATTRIBUTE; 2547 /** 2548 * Proc pointer type for @ref wgpuComputePipelineRelease. 2549 * > @copydoc wgpuComputePipelineRelease 2550 */ 2551 typedef void (*WGPUProcComputePipelineRelease)(WGPUComputePipeline computePipeline) WGPU_FUNCTION_ATTRIBUTE; 2552 2553 // Procs of Device 2554 /** 2555 * Proc pointer type for @ref wgpuDeviceCreateBindGroup: 2556 * > @copydoc wgpuDeviceCreateBindGroup 2557 */ 2558 typedef WGPUBindGroup (*WGPUProcDeviceCreateBindGroup)(WGPUDevice device, WGPUBindGroupDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; 2559 /** 2560 * Proc pointer type for @ref wgpuDeviceCreateBindGroupLayout: 2561 * > @copydoc wgpuDeviceCreateBindGroupLayout 2562 */ 2563 typedef WGPUBindGroupLayout (*WGPUProcDeviceCreateBindGroupLayout)(WGPUDevice device, WGPUBindGroupLayoutDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; 2564 /** 2565 * Proc pointer type for @ref wgpuDeviceCreateBuffer: 2566 * > @copydoc wgpuDeviceCreateBuffer 2567 */ 2568 typedef WGPUBuffer (*WGPUProcDeviceCreateBuffer)(WGPUDevice device, WGPUBufferDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; 2569 /** 2570 * Proc pointer type for @ref wgpuDeviceCreateCommandEncoder: 2571 * > @copydoc wgpuDeviceCreateCommandEncoder 2572 */ 2573 typedef WGPUCommandEncoder (*WGPUProcDeviceCreateCommandEncoder)(WGPUDevice device, WGPU_NULLABLE WGPUCommandEncoderDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; 2574 /** 2575 * Proc pointer type for @ref wgpuDeviceCreateComputePipeline: 2576 * > @copydoc wgpuDeviceCreateComputePipeline 2577 */ 2578 typedef WGPUComputePipeline (*WGPUProcDeviceCreateComputePipeline)(WGPUDevice device, WGPUComputePipelineDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; 2579 /** 2580 * Proc pointer type for @ref wgpuDeviceCreateComputePipelineAsync: 2581 * > @copydoc wgpuDeviceCreateComputePipelineAsync 2582 */ 2583 typedef WGPUFuture (*WGPUProcDeviceCreateComputePipelineAsync)(WGPUDevice device, WGPUComputePipelineDescriptor const * descriptor, WGPUCreateComputePipelineAsyncCallbackInfo callbackInfo) WGPU_FUNCTION_ATTRIBUTE; 2584 /** 2585 * Proc pointer type for @ref wgpuDeviceCreatePipelineLayout: 2586 * > @copydoc wgpuDeviceCreatePipelineLayout 2587 */ 2588 typedef WGPUPipelineLayout (*WGPUProcDeviceCreatePipelineLayout)(WGPUDevice device, WGPUPipelineLayoutDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; 2589 /** 2590 * Proc pointer type for @ref wgpuDeviceCreateQuerySet: 2591 * > @copydoc wgpuDeviceCreateQuerySet 2592 */ 2593 typedef WGPUQuerySet (*WGPUProcDeviceCreateQuerySet)(WGPUDevice device, WGPUQuerySetDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; 2594 /** 2595 * Proc pointer type for @ref wgpuDeviceCreateRenderBundleEncoder: 2596 * > @copydoc wgpuDeviceCreateRenderBundleEncoder 2597 */ 2598 typedef WGPURenderBundleEncoder (*WGPUProcDeviceCreateRenderBundleEncoder)(WGPUDevice device, WGPURenderBundleEncoderDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; 2599 /** 2600 * Proc pointer type for @ref wgpuDeviceCreateRenderPipeline: 2601 * > @copydoc wgpuDeviceCreateRenderPipeline 2602 */ 2603 typedef WGPURenderPipeline (*WGPUProcDeviceCreateRenderPipeline)(WGPUDevice device, WGPURenderPipelineDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; 2604 /** 2605 * Proc pointer type for @ref wgpuDeviceCreateRenderPipelineAsync: 2606 * > @copydoc wgpuDeviceCreateRenderPipelineAsync 2607 */ 2608 typedef WGPUFuture (*WGPUProcDeviceCreateRenderPipelineAsync)(WGPUDevice device, WGPURenderPipelineDescriptor const * descriptor, WGPUCreateRenderPipelineAsyncCallbackInfo callbackInfo) WGPU_FUNCTION_ATTRIBUTE; 2609 /** 2610 * Proc pointer type for @ref wgpuDeviceCreateSampler: 2611 * > @copydoc wgpuDeviceCreateSampler 2612 */ 2613 typedef WGPUSampler (*WGPUProcDeviceCreateSampler)(WGPUDevice device, WGPU_NULLABLE WGPUSamplerDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; 2614 /** 2615 * Proc pointer type for @ref wgpuDeviceCreateShaderModule: 2616 * > @copydoc wgpuDeviceCreateShaderModule 2617 */ 2618 typedef WGPUShaderModule (*WGPUProcDeviceCreateShaderModule)(WGPUDevice device, WGPUShaderModuleDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; 2619 /** 2620 * Proc pointer type for @ref wgpuDeviceCreateTexture: 2621 * > @copydoc wgpuDeviceCreateTexture 2622 */ 2623 typedef WGPUTexture (*WGPUProcDeviceCreateTexture)(WGPUDevice device, WGPUTextureDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; 2624 /** 2625 * Proc pointer type for @ref wgpuDeviceDestroy: 2626 * > @copydoc wgpuDeviceDestroy 2627 */ 2628 typedef void (*WGPUProcDeviceDestroy)(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE; 2629 /** 2630 * Proc pointer type for @ref wgpuDeviceGetAdapterInfo: 2631 * > @copydoc wgpuDeviceGetAdapterInfo 2632 */ 2633 typedef WGPUAdapterInfo (*WGPUProcDeviceGetAdapterInfo)(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE; 2634 /** 2635 * Proc pointer type for @ref wgpuDeviceGetFeatures: 2636 * > @copydoc wgpuDeviceGetFeatures 2637 */ 2638 typedef void (*WGPUProcDeviceGetFeatures)(WGPUDevice device, WGPUSupportedFeatures * features) WGPU_FUNCTION_ATTRIBUTE; 2639 /** 2640 * Proc pointer type for @ref wgpuDeviceGetLimits: 2641 * > @copydoc wgpuDeviceGetLimits 2642 */ 2643 typedef WGPUStatus (*WGPUProcDeviceGetLimits)(WGPUDevice device, WGPULimits * limits) WGPU_FUNCTION_ATTRIBUTE; 2644 /** 2645 * Proc pointer type for @ref wgpuDeviceGetLostFuture: 2646 * > @copydoc wgpuDeviceGetLostFuture 2647 */ 2648 typedef WGPUFuture (*WGPUProcDeviceGetLostFuture)(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE; 2649 /** 2650 * Proc pointer type for @ref wgpuDeviceGetQueue: 2651 * > @copydoc wgpuDeviceGetQueue 2652 */ 2653 typedef WGPUQueue (*WGPUProcDeviceGetQueue)(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE; 2654 /** 2655 * Proc pointer type for @ref wgpuDeviceHasFeature: 2656 * > @copydoc wgpuDeviceHasFeature 2657 */ 2658 typedef WGPUBool (*WGPUProcDeviceHasFeature)(WGPUDevice device, WGPUFeatureName feature) WGPU_FUNCTION_ATTRIBUTE; 2659 /** 2660 * Proc pointer type for @ref wgpuDevicePopErrorScope: 2661 * > @copydoc wgpuDevicePopErrorScope 2662 */ 2663 typedef WGPUFuture (*WGPUProcDevicePopErrorScope)(WGPUDevice device, WGPUPopErrorScopeCallbackInfo callbackInfo) WGPU_FUNCTION_ATTRIBUTE; 2664 /** 2665 * Proc pointer type for @ref wgpuDevicePushErrorScope: 2666 * > @copydoc wgpuDevicePushErrorScope 2667 */ 2668 typedef void (*WGPUProcDevicePushErrorScope)(WGPUDevice device, WGPUErrorFilter filter) WGPU_FUNCTION_ATTRIBUTE; 2669 /** 2670 * Proc pointer type for @ref wgpuDeviceSetLabel: 2671 * > @copydoc wgpuDeviceSetLabel 2672 */ 2673 typedef void (*WGPUProcDeviceSetLabel)(WGPUDevice device, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE; 2674 /** 2675 * Proc pointer type for @ref wgpuDeviceAddRef. 2676 * > @copydoc wgpuDeviceAddRef 2677 */ 2678 typedef void (*WGPUProcDeviceAddRef)(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE; 2679 /** 2680 * Proc pointer type for @ref wgpuDeviceRelease. 2681 * > @copydoc wgpuDeviceRelease 2682 */ 2683 typedef void (*WGPUProcDeviceRelease)(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE; 2684 2685 // Procs of Instance 2686 /** 2687 * Proc pointer type for @ref wgpuInstanceCreateSurface: 2688 * > @copydoc wgpuInstanceCreateSurface 2689 */ 2690 typedef WGPUSurface (*WGPUProcInstanceCreateSurface)(WGPUInstance instance, WGPUSurfaceDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; 2691 /** 2692 * Proc pointer type for @ref wgpuInstanceGetWGSLLanguageFeatures: 2693 * > @copydoc wgpuInstanceGetWGSLLanguageFeatures 2694 */ 2695 typedef WGPUStatus (*WGPUProcInstanceGetWGSLLanguageFeatures)(WGPUInstance instance, WGPUSupportedWGSLLanguageFeatures * features) WGPU_FUNCTION_ATTRIBUTE; 2696 /** 2697 * Proc pointer type for @ref wgpuInstanceHasWGSLLanguageFeature: 2698 * > @copydoc wgpuInstanceHasWGSLLanguageFeature 2699 */ 2700 typedef WGPUBool (*WGPUProcInstanceHasWGSLLanguageFeature)(WGPUInstance instance, WGPUWGSLLanguageFeatureName feature) WGPU_FUNCTION_ATTRIBUTE; 2701 /** 2702 * Proc pointer type for @ref wgpuInstanceProcessEvents: 2703 * > @copydoc wgpuInstanceProcessEvents 2704 */ 2705 typedef void (*WGPUProcInstanceProcessEvents)(WGPUInstance instance) WGPU_FUNCTION_ATTRIBUTE; 2706 /** 2707 * Proc pointer type for @ref wgpuInstanceRequestAdapter: 2708 * > @copydoc wgpuInstanceRequestAdapter 2709 */ 2710 typedef WGPUFuture (*WGPUProcInstanceRequestAdapter)(WGPUInstance instance, WGPU_NULLABLE WGPURequestAdapterOptions const * options, WGPURequestAdapterCallbackInfo callbackInfo) WGPU_FUNCTION_ATTRIBUTE; 2711 /** 2712 * Proc pointer type for @ref wgpuInstanceWaitAny: 2713 * > @copydoc wgpuInstanceWaitAny 2714 */ 2715 typedef WGPUWaitStatus (*WGPUProcInstanceWaitAny)(WGPUInstance instance, size_t futureCount, WGPU_NULLABLE WGPUFutureWaitInfo * futures, uint64_t timeoutNS) WGPU_FUNCTION_ATTRIBUTE; 2716 /** 2717 * Proc pointer type for @ref wgpuInstanceAddRef. 2718 * > @copydoc wgpuInstanceAddRef 2719 */ 2720 typedef void (*WGPUProcInstanceAddRef)(WGPUInstance instance) WGPU_FUNCTION_ATTRIBUTE; 2721 /** 2722 * Proc pointer type for @ref wgpuInstanceRelease. 2723 * > @copydoc wgpuInstanceRelease 2724 */ 2725 typedef void (*WGPUProcInstanceRelease)(WGPUInstance instance) WGPU_FUNCTION_ATTRIBUTE; 2726 2727 // Procs of PipelineLayout 2728 /** 2729 * Proc pointer type for @ref wgpuPipelineLayoutSetLabel: 2730 * > @copydoc wgpuPipelineLayoutSetLabel 2731 */ 2732 typedef void (*WGPUProcPipelineLayoutSetLabel)(WGPUPipelineLayout pipelineLayout, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE; 2733 /** 2734 * Proc pointer type for @ref wgpuPipelineLayoutAddRef. 2735 * > @copydoc wgpuPipelineLayoutAddRef 2736 */ 2737 typedef void (*WGPUProcPipelineLayoutAddRef)(WGPUPipelineLayout pipelineLayout) WGPU_FUNCTION_ATTRIBUTE; 2738 /** 2739 * Proc pointer type for @ref wgpuPipelineLayoutRelease. 2740 * > @copydoc wgpuPipelineLayoutRelease 2741 */ 2742 typedef void (*WGPUProcPipelineLayoutRelease)(WGPUPipelineLayout pipelineLayout) WGPU_FUNCTION_ATTRIBUTE; 2743 2744 // Procs of QuerySet 2745 /** 2746 * Proc pointer type for @ref wgpuQuerySetDestroy: 2747 * > @copydoc wgpuQuerySetDestroy 2748 */ 2749 typedef void (*WGPUProcQuerySetDestroy)(WGPUQuerySet querySet) WGPU_FUNCTION_ATTRIBUTE; 2750 /** 2751 * Proc pointer type for @ref wgpuQuerySetGetCount: 2752 * > @copydoc wgpuQuerySetGetCount 2753 */ 2754 typedef uint32_t (*WGPUProcQuerySetGetCount)(WGPUQuerySet querySet) WGPU_FUNCTION_ATTRIBUTE; 2755 /** 2756 * Proc pointer type for @ref wgpuQuerySetGetType: 2757 * > @copydoc wgpuQuerySetGetType 2758 */ 2759 typedef WGPUQueryType (*WGPUProcQuerySetGetType)(WGPUQuerySet querySet) WGPU_FUNCTION_ATTRIBUTE; 2760 /** 2761 * Proc pointer type for @ref wgpuQuerySetSetLabel: 2762 * > @copydoc wgpuQuerySetSetLabel 2763 */ 2764 typedef void (*WGPUProcQuerySetSetLabel)(WGPUQuerySet querySet, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE; 2765 /** 2766 * Proc pointer type for @ref wgpuQuerySetAddRef. 2767 * > @copydoc wgpuQuerySetAddRef 2768 */ 2769 typedef void (*WGPUProcQuerySetAddRef)(WGPUQuerySet querySet) WGPU_FUNCTION_ATTRIBUTE; 2770 /** 2771 * Proc pointer type for @ref wgpuQuerySetRelease. 2772 * > @copydoc wgpuQuerySetRelease 2773 */ 2774 typedef void (*WGPUProcQuerySetRelease)(WGPUQuerySet querySet) WGPU_FUNCTION_ATTRIBUTE; 2775 2776 // Procs of Queue 2777 /** 2778 * Proc pointer type for @ref wgpuQueueOnSubmittedWorkDone: 2779 * > @copydoc wgpuQueueOnSubmittedWorkDone 2780 */ 2781 typedef WGPUFuture (*WGPUProcQueueOnSubmittedWorkDone)(WGPUQueue queue, WGPUQueueWorkDoneCallbackInfo callbackInfo) WGPU_FUNCTION_ATTRIBUTE; 2782 /** 2783 * Proc pointer type for @ref wgpuQueueSetLabel: 2784 * > @copydoc wgpuQueueSetLabel 2785 */ 2786 typedef void (*WGPUProcQueueSetLabel)(WGPUQueue queue, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE; 2787 /** 2788 * Proc pointer type for @ref wgpuQueueSubmit: 2789 * > @copydoc wgpuQueueSubmit 2790 */ 2791 typedef void (*WGPUProcQueueSubmit)(WGPUQueue queue, size_t commandCount, WGPUCommandBuffer const * commands) WGPU_FUNCTION_ATTRIBUTE; 2792 /** 2793 * Proc pointer type for @ref wgpuQueueWriteBuffer: 2794 * > @copydoc wgpuQueueWriteBuffer 2795 */ 2796 typedef void (*WGPUProcQueueWriteBuffer)(WGPUQueue queue, WGPUBuffer buffer, uint64_t bufferOffset, void const * data, size_t size) WGPU_FUNCTION_ATTRIBUTE; 2797 /** 2798 * Proc pointer type for @ref wgpuQueueWriteTexture: 2799 * > @copydoc wgpuQueueWriteTexture 2800 */ 2801 typedef void (*WGPUProcQueueWriteTexture)(WGPUQueue queue, WGPUTexelCopyTextureInfo const * destination, void const * data, size_t dataSize, WGPUTexelCopyBufferLayout const * dataLayout, WGPUExtent3D const * writeSize) WGPU_FUNCTION_ATTRIBUTE; 2802 /** 2803 * Proc pointer type for @ref wgpuQueueAddRef. 2804 * > @copydoc wgpuQueueAddRef 2805 */ 2806 typedef void (*WGPUProcQueueAddRef)(WGPUQueue queue) WGPU_FUNCTION_ATTRIBUTE; 2807 /** 2808 * Proc pointer type for @ref wgpuQueueRelease. 2809 * > @copydoc wgpuQueueRelease 2810 */ 2811 typedef void (*WGPUProcQueueRelease)(WGPUQueue queue) WGPU_FUNCTION_ATTRIBUTE; 2812 2813 // Procs of RenderBundle 2814 /** 2815 * Proc pointer type for @ref wgpuRenderBundleSetLabel: 2816 * > @copydoc wgpuRenderBundleSetLabel 2817 */ 2818 typedef void (*WGPUProcRenderBundleSetLabel)(WGPURenderBundle renderBundle, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE; 2819 /** 2820 * Proc pointer type for @ref wgpuRenderBundleAddRef. 2821 * > @copydoc wgpuRenderBundleAddRef 2822 */ 2823 typedef void (*WGPUProcRenderBundleAddRef)(WGPURenderBundle renderBundle) WGPU_FUNCTION_ATTRIBUTE; 2824 /** 2825 * Proc pointer type for @ref wgpuRenderBundleRelease. 2826 * > @copydoc wgpuRenderBundleRelease 2827 */ 2828 typedef void (*WGPUProcRenderBundleRelease)(WGPURenderBundle renderBundle) WGPU_FUNCTION_ATTRIBUTE; 2829 2830 // Procs of RenderBundleEncoder 2831 /** 2832 * Proc pointer type for @ref wgpuRenderBundleEncoderDraw: 2833 * > @copydoc wgpuRenderBundleEncoderDraw 2834 */ 2835 typedef void (*WGPUProcRenderBundleEncoderDraw)(WGPURenderBundleEncoder renderBundleEncoder, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) WGPU_FUNCTION_ATTRIBUTE; 2836 /** 2837 * Proc pointer type for @ref wgpuRenderBundleEncoderDrawIndexed: 2838 * > @copydoc wgpuRenderBundleEncoderDrawIndexed 2839 */ 2840 typedef void (*WGPUProcRenderBundleEncoderDrawIndexed)(WGPURenderBundleEncoder renderBundleEncoder, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t baseVertex, uint32_t firstInstance) WGPU_FUNCTION_ATTRIBUTE; 2841 /** 2842 * Proc pointer type for @ref wgpuRenderBundleEncoderDrawIndexedIndirect: 2843 * > @copydoc wgpuRenderBundleEncoderDrawIndexedIndirect 2844 */ 2845 typedef void (*WGPUProcRenderBundleEncoderDrawIndexedIndirect)(WGPURenderBundleEncoder renderBundleEncoder, WGPUBuffer indirectBuffer, uint64_t indirectOffset) WGPU_FUNCTION_ATTRIBUTE; 2846 /** 2847 * Proc pointer type for @ref wgpuRenderBundleEncoderDrawIndirect: 2848 * > @copydoc wgpuRenderBundleEncoderDrawIndirect 2849 */ 2850 typedef void (*WGPUProcRenderBundleEncoderDrawIndirect)(WGPURenderBundleEncoder renderBundleEncoder, WGPUBuffer indirectBuffer, uint64_t indirectOffset) WGPU_FUNCTION_ATTRIBUTE; 2851 /** 2852 * Proc pointer type for @ref wgpuRenderBundleEncoderFinish: 2853 * > @copydoc wgpuRenderBundleEncoderFinish 2854 */ 2855 typedef WGPURenderBundle (*WGPUProcRenderBundleEncoderFinish)(WGPURenderBundleEncoder renderBundleEncoder, WGPU_NULLABLE WGPURenderBundleDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; 2856 /** 2857 * Proc pointer type for @ref wgpuRenderBundleEncoderInsertDebugMarker: 2858 * > @copydoc wgpuRenderBundleEncoderInsertDebugMarker 2859 */ 2860 typedef void (*WGPUProcRenderBundleEncoderInsertDebugMarker)(WGPURenderBundleEncoder renderBundleEncoder, WGPUStringView markerLabel) WGPU_FUNCTION_ATTRIBUTE; 2861 /** 2862 * Proc pointer type for @ref wgpuRenderBundleEncoderPopDebugGroup: 2863 * > @copydoc wgpuRenderBundleEncoderPopDebugGroup 2864 */ 2865 typedef void (*WGPUProcRenderBundleEncoderPopDebugGroup)(WGPURenderBundleEncoder renderBundleEncoder) WGPU_FUNCTION_ATTRIBUTE; 2866 /** 2867 * Proc pointer type for @ref wgpuRenderBundleEncoderPushDebugGroup: 2868 * > @copydoc wgpuRenderBundleEncoderPushDebugGroup 2869 */ 2870 typedef void (*WGPUProcRenderBundleEncoderPushDebugGroup)(WGPURenderBundleEncoder renderBundleEncoder, WGPUStringView groupLabel) WGPU_FUNCTION_ATTRIBUTE; 2871 /** 2872 * Proc pointer type for @ref wgpuRenderBundleEncoderSetBindGroup: 2873 * > @copydoc wgpuRenderBundleEncoderSetBindGroup 2874 */ 2875 typedef void (*WGPUProcRenderBundleEncoderSetBindGroup)(WGPURenderBundleEncoder renderBundleEncoder, uint32_t groupIndex, WGPU_NULLABLE WGPUBindGroup group, size_t dynamicOffsetCount, uint32_t const * dynamicOffsets) WGPU_FUNCTION_ATTRIBUTE; 2876 /** 2877 * Proc pointer type for @ref wgpuRenderBundleEncoderSetIndexBuffer: 2878 * > @copydoc wgpuRenderBundleEncoderSetIndexBuffer 2879 */ 2880 typedef void (*WGPUProcRenderBundleEncoderSetIndexBuffer)(WGPURenderBundleEncoder renderBundleEncoder, WGPUBuffer buffer, WGPUIndexFormat format, uint64_t offset, uint64_t size) WGPU_FUNCTION_ATTRIBUTE; 2881 /** 2882 * Proc pointer type for @ref wgpuRenderBundleEncoderSetLabel: 2883 * > @copydoc wgpuRenderBundleEncoderSetLabel 2884 */ 2885 typedef void (*WGPUProcRenderBundleEncoderSetLabel)(WGPURenderBundleEncoder renderBundleEncoder, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE; 2886 /** 2887 * Proc pointer type for @ref wgpuRenderBundleEncoderSetPipeline: 2888 * > @copydoc wgpuRenderBundleEncoderSetPipeline 2889 */ 2890 typedef void (*WGPUProcRenderBundleEncoderSetPipeline)(WGPURenderBundleEncoder renderBundleEncoder, WGPURenderPipeline pipeline) WGPU_FUNCTION_ATTRIBUTE; 2891 /** 2892 * Proc pointer type for @ref wgpuRenderBundleEncoderSetVertexBuffer: 2893 * > @copydoc wgpuRenderBundleEncoderSetVertexBuffer 2894 */ 2895 typedef void (*WGPUProcRenderBundleEncoderSetVertexBuffer)(WGPURenderBundleEncoder renderBundleEncoder, uint32_t slot, WGPU_NULLABLE WGPUBuffer buffer, uint64_t offset, uint64_t size) WGPU_FUNCTION_ATTRIBUTE; 2896 /** 2897 * Proc pointer type for @ref wgpuRenderBundleEncoderAddRef. 2898 * > @copydoc wgpuRenderBundleEncoderAddRef 2899 */ 2900 typedef void (*WGPUProcRenderBundleEncoderAddRef)(WGPURenderBundleEncoder renderBundleEncoder) WGPU_FUNCTION_ATTRIBUTE; 2901 /** 2902 * Proc pointer type for @ref wgpuRenderBundleEncoderRelease. 2903 * > @copydoc wgpuRenderBundleEncoderRelease 2904 */ 2905 typedef void (*WGPUProcRenderBundleEncoderRelease)(WGPURenderBundleEncoder renderBundleEncoder) WGPU_FUNCTION_ATTRIBUTE; 2906 2907 // Procs of RenderPassEncoder 2908 /** 2909 * Proc pointer type for @ref wgpuRenderPassEncoderBeginOcclusionQuery: 2910 * > @copydoc wgpuRenderPassEncoderBeginOcclusionQuery 2911 */ 2912 typedef void (*WGPUProcRenderPassEncoderBeginOcclusionQuery)(WGPURenderPassEncoder renderPassEncoder, uint32_t queryIndex) WGPU_FUNCTION_ATTRIBUTE; 2913 /** 2914 * Proc pointer type for @ref wgpuRenderPassEncoderDraw: 2915 * > @copydoc wgpuRenderPassEncoderDraw 2916 */ 2917 typedef void (*WGPUProcRenderPassEncoderDraw)(WGPURenderPassEncoder renderPassEncoder, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) WGPU_FUNCTION_ATTRIBUTE; 2918 /** 2919 * Proc pointer type for @ref wgpuRenderPassEncoderDrawIndexed: 2920 * > @copydoc wgpuRenderPassEncoderDrawIndexed 2921 */ 2922 typedef void (*WGPUProcRenderPassEncoderDrawIndexed)(WGPURenderPassEncoder renderPassEncoder, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t baseVertex, uint32_t firstInstance) WGPU_FUNCTION_ATTRIBUTE; 2923 /** 2924 * Proc pointer type for @ref wgpuRenderPassEncoderDrawIndexedIndirect: 2925 * > @copydoc wgpuRenderPassEncoderDrawIndexedIndirect 2926 */ 2927 typedef void (*WGPUProcRenderPassEncoderDrawIndexedIndirect)(WGPURenderPassEncoder renderPassEncoder, WGPUBuffer indirectBuffer, uint64_t indirectOffset) WGPU_FUNCTION_ATTRIBUTE; 2928 /** 2929 * Proc pointer type for @ref wgpuRenderPassEncoderDrawIndirect: 2930 * > @copydoc wgpuRenderPassEncoderDrawIndirect 2931 */ 2932 typedef void (*WGPUProcRenderPassEncoderDrawIndirect)(WGPURenderPassEncoder renderPassEncoder, WGPUBuffer indirectBuffer, uint64_t indirectOffset) WGPU_FUNCTION_ATTRIBUTE; 2933 /** 2934 * Proc pointer type for @ref wgpuRenderPassEncoderEnd: 2935 * > @copydoc wgpuRenderPassEncoderEnd 2936 */ 2937 typedef void (*WGPUProcRenderPassEncoderEnd)(WGPURenderPassEncoder renderPassEncoder) WGPU_FUNCTION_ATTRIBUTE; 2938 /** 2939 * Proc pointer type for @ref wgpuRenderPassEncoderEndOcclusionQuery: 2940 * > @copydoc wgpuRenderPassEncoderEndOcclusionQuery 2941 */ 2942 typedef void (*WGPUProcRenderPassEncoderEndOcclusionQuery)(WGPURenderPassEncoder renderPassEncoder) WGPU_FUNCTION_ATTRIBUTE; 2943 /** 2944 * Proc pointer type for @ref wgpuRenderPassEncoderExecuteBundles: 2945 * > @copydoc wgpuRenderPassEncoderExecuteBundles 2946 */ 2947 typedef void (*WGPUProcRenderPassEncoderExecuteBundles)(WGPURenderPassEncoder renderPassEncoder, size_t bundleCount, WGPURenderBundle const * bundles) WGPU_FUNCTION_ATTRIBUTE; 2948 /** 2949 * Proc pointer type for @ref wgpuRenderPassEncoderInsertDebugMarker: 2950 * > @copydoc wgpuRenderPassEncoderInsertDebugMarker 2951 */ 2952 typedef void (*WGPUProcRenderPassEncoderInsertDebugMarker)(WGPURenderPassEncoder renderPassEncoder, WGPUStringView markerLabel) WGPU_FUNCTION_ATTRIBUTE; 2953 /** 2954 * Proc pointer type for @ref wgpuRenderPassEncoderPopDebugGroup: 2955 * > @copydoc wgpuRenderPassEncoderPopDebugGroup 2956 */ 2957 typedef void (*WGPUProcRenderPassEncoderPopDebugGroup)(WGPURenderPassEncoder renderPassEncoder) WGPU_FUNCTION_ATTRIBUTE; 2958 /** 2959 * Proc pointer type for @ref wgpuRenderPassEncoderPushDebugGroup: 2960 * > @copydoc wgpuRenderPassEncoderPushDebugGroup 2961 */ 2962 typedef void (*WGPUProcRenderPassEncoderPushDebugGroup)(WGPURenderPassEncoder renderPassEncoder, WGPUStringView groupLabel) WGPU_FUNCTION_ATTRIBUTE; 2963 /** 2964 * Proc pointer type for @ref wgpuRenderPassEncoderSetBindGroup: 2965 * > @copydoc wgpuRenderPassEncoderSetBindGroup 2966 */ 2967 typedef void (*WGPUProcRenderPassEncoderSetBindGroup)(WGPURenderPassEncoder renderPassEncoder, uint32_t groupIndex, WGPU_NULLABLE WGPUBindGroup group, size_t dynamicOffsetCount, uint32_t const * dynamicOffsets) WGPU_FUNCTION_ATTRIBUTE; 2968 /** 2969 * Proc pointer type for @ref wgpuRenderPassEncoderSetBlendConstant: 2970 * > @copydoc wgpuRenderPassEncoderSetBlendConstant 2971 */ 2972 typedef void (*WGPUProcRenderPassEncoderSetBlendConstant)(WGPURenderPassEncoder renderPassEncoder, WGPUColor const * color) WGPU_FUNCTION_ATTRIBUTE; 2973 /** 2974 * Proc pointer type for @ref wgpuRenderPassEncoderSetIndexBuffer: 2975 * > @copydoc wgpuRenderPassEncoderSetIndexBuffer 2976 */ 2977 typedef void (*WGPUProcRenderPassEncoderSetIndexBuffer)(WGPURenderPassEncoder renderPassEncoder, WGPUBuffer buffer, WGPUIndexFormat format, uint64_t offset, uint64_t size) WGPU_FUNCTION_ATTRIBUTE; 2978 /** 2979 * Proc pointer type for @ref wgpuRenderPassEncoderSetLabel: 2980 * > @copydoc wgpuRenderPassEncoderSetLabel 2981 */ 2982 typedef void (*WGPUProcRenderPassEncoderSetLabel)(WGPURenderPassEncoder renderPassEncoder, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE; 2983 /** 2984 * Proc pointer type for @ref wgpuRenderPassEncoderSetPipeline: 2985 * > @copydoc wgpuRenderPassEncoderSetPipeline 2986 */ 2987 typedef void (*WGPUProcRenderPassEncoderSetPipeline)(WGPURenderPassEncoder renderPassEncoder, WGPURenderPipeline pipeline) WGPU_FUNCTION_ATTRIBUTE; 2988 /** 2989 * Proc pointer type for @ref wgpuRenderPassEncoderSetScissorRect: 2990 * > @copydoc wgpuRenderPassEncoderSetScissorRect 2991 */ 2992 typedef void (*WGPUProcRenderPassEncoderSetScissorRect)(WGPURenderPassEncoder renderPassEncoder, uint32_t x, uint32_t y, uint32_t width, uint32_t height) WGPU_FUNCTION_ATTRIBUTE; 2993 /** 2994 * Proc pointer type for @ref wgpuRenderPassEncoderSetStencilReference: 2995 * > @copydoc wgpuRenderPassEncoderSetStencilReference 2996 */ 2997 typedef void (*WGPUProcRenderPassEncoderSetStencilReference)(WGPURenderPassEncoder renderPassEncoder, uint32_t reference) WGPU_FUNCTION_ATTRIBUTE; 2998 /** 2999 * Proc pointer type for @ref wgpuRenderPassEncoderSetVertexBuffer: 3000 * > @copydoc wgpuRenderPassEncoderSetVertexBuffer 3001 */ 3002 typedef void (*WGPUProcRenderPassEncoderSetVertexBuffer)(WGPURenderPassEncoder renderPassEncoder, uint32_t slot, WGPU_NULLABLE WGPUBuffer buffer, uint64_t offset, uint64_t size) WGPU_FUNCTION_ATTRIBUTE; 3003 /** 3004 * Proc pointer type for @ref wgpuRenderPassEncoderSetViewport: 3005 * > @copydoc wgpuRenderPassEncoderSetViewport 3006 */ 3007 typedef void (*WGPUProcRenderPassEncoderSetViewport)(WGPURenderPassEncoder renderPassEncoder, float x, float y, float width, float height, float minDepth, float maxDepth) WGPU_FUNCTION_ATTRIBUTE; 3008 /** 3009 * Proc pointer type for @ref wgpuRenderPassEncoderAddRef. 3010 * > @copydoc wgpuRenderPassEncoderAddRef 3011 */ 3012 typedef void (*WGPUProcRenderPassEncoderAddRef)(WGPURenderPassEncoder renderPassEncoder) WGPU_FUNCTION_ATTRIBUTE; 3013 /** 3014 * Proc pointer type for @ref wgpuRenderPassEncoderRelease. 3015 * > @copydoc wgpuRenderPassEncoderRelease 3016 */ 3017 typedef void (*WGPUProcRenderPassEncoderRelease)(WGPURenderPassEncoder renderPassEncoder) WGPU_FUNCTION_ATTRIBUTE; 3018 3019 // Procs of RenderPipeline 3020 /** 3021 * Proc pointer type for @ref wgpuRenderPipelineGetBindGroupLayout: 3022 * > @copydoc wgpuRenderPipelineGetBindGroupLayout 3023 */ 3024 typedef WGPUBindGroupLayout (*WGPUProcRenderPipelineGetBindGroupLayout)(WGPURenderPipeline renderPipeline, uint32_t groupIndex) WGPU_FUNCTION_ATTRIBUTE; 3025 /** 3026 * Proc pointer type for @ref wgpuRenderPipelineSetLabel: 3027 * > @copydoc wgpuRenderPipelineSetLabel 3028 */ 3029 typedef void (*WGPUProcRenderPipelineSetLabel)(WGPURenderPipeline renderPipeline, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE; 3030 /** 3031 * Proc pointer type for @ref wgpuRenderPipelineAddRef. 3032 * > @copydoc wgpuRenderPipelineAddRef 3033 */ 3034 typedef void (*WGPUProcRenderPipelineAddRef)(WGPURenderPipeline renderPipeline) WGPU_FUNCTION_ATTRIBUTE; 3035 /** 3036 * Proc pointer type for @ref wgpuRenderPipelineRelease. 3037 * > @copydoc wgpuRenderPipelineRelease 3038 */ 3039 typedef void (*WGPUProcRenderPipelineRelease)(WGPURenderPipeline renderPipeline) WGPU_FUNCTION_ATTRIBUTE; 3040 3041 // Procs of Sampler 3042 /** 3043 * Proc pointer type for @ref wgpuSamplerSetLabel: 3044 * > @copydoc wgpuSamplerSetLabel 3045 */ 3046 typedef void (*WGPUProcSamplerSetLabel)(WGPUSampler sampler, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE; 3047 /** 3048 * Proc pointer type for @ref wgpuSamplerAddRef. 3049 * > @copydoc wgpuSamplerAddRef 3050 */ 3051 typedef void (*WGPUProcSamplerAddRef)(WGPUSampler sampler) WGPU_FUNCTION_ATTRIBUTE; 3052 /** 3053 * Proc pointer type for @ref wgpuSamplerRelease. 3054 * > @copydoc wgpuSamplerRelease 3055 */ 3056 typedef void (*WGPUProcSamplerRelease)(WGPUSampler sampler) WGPU_FUNCTION_ATTRIBUTE; 3057 3058 // Procs of ShaderModule 3059 /** 3060 * Proc pointer type for @ref wgpuShaderModuleGetCompilationInfo: 3061 * > @copydoc wgpuShaderModuleGetCompilationInfo 3062 */ 3063 typedef WGPUFuture (*WGPUProcShaderModuleGetCompilationInfo)(WGPUShaderModule shaderModule, WGPUCompilationInfoCallbackInfo callbackInfo) WGPU_FUNCTION_ATTRIBUTE; 3064 /** 3065 * Proc pointer type for @ref wgpuShaderModuleSetLabel: 3066 * > @copydoc wgpuShaderModuleSetLabel 3067 */ 3068 typedef void (*WGPUProcShaderModuleSetLabel)(WGPUShaderModule shaderModule, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE; 3069 /** 3070 * Proc pointer type for @ref wgpuShaderModuleAddRef. 3071 * > @copydoc wgpuShaderModuleAddRef 3072 */ 3073 typedef void (*WGPUProcShaderModuleAddRef)(WGPUShaderModule shaderModule) WGPU_FUNCTION_ATTRIBUTE; 3074 /** 3075 * Proc pointer type for @ref wgpuShaderModuleRelease. 3076 * > @copydoc wgpuShaderModuleRelease 3077 */ 3078 typedef void (*WGPUProcShaderModuleRelease)(WGPUShaderModule shaderModule) WGPU_FUNCTION_ATTRIBUTE; 3079 3080 // Procs of SupportedFeatures 3081 /** 3082 * Proc pointer type for @ref wgpuSupportedFeaturesFreeMembers: 3083 * > @copydoc wgpuSupportedFeaturesFreeMembers 3084 */ 3085 typedef void (*WGPUProcSupportedFeaturesFreeMembers)(WGPUSupportedFeatures supportedFeatures) WGPU_FUNCTION_ATTRIBUTE; 3086 3087 // Procs of SupportedWGSLLanguageFeatures 3088 /** 3089 * Proc pointer type for @ref wgpuSupportedWGSLLanguageFeaturesFreeMembers: 3090 * > @copydoc wgpuSupportedWGSLLanguageFeaturesFreeMembers 3091 */ 3092 typedef void (*WGPUProcSupportedWGSLLanguageFeaturesFreeMembers)(WGPUSupportedWGSLLanguageFeatures supportedWGSLLanguageFeatures) WGPU_FUNCTION_ATTRIBUTE; 3093 3094 // Procs of Surface 3095 /** 3096 * Proc pointer type for @ref wgpuSurfaceConfigure: 3097 * > @copydoc wgpuSurfaceConfigure 3098 */ 3099 typedef void (*WGPUProcSurfaceConfigure)(WGPUSurface surface, WGPUSurfaceConfiguration const * config) WGPU_FUNCTION_ATTRIBUTE; 3100 /** 3101 * Proc pointer type for @ref wgpuSurfaceGetCapabilities: 3102 * > @copydoc wgpuSurfaceGetCapabilities 3103 */ 3104 typedef WGPUStatus (*WGPUProcSurfaceGetCapabilities)(WGPUSurface surface, WGPUAdapter adapter, WGPUSurfaceCapabilities * capabilities) WGPU_FUNCTION_ATTRIBUTE; 3105 /** 3106 * Proc pointer type for @ref wgpuSurfaceGetCurrentTexture: 3107 * > @copydoc wgpuSurfaceGetCurrentTexture 3108 */ 3109 typedef void (*WGPUProcSurfaceGetCurrentTexture)(WGPUSurface surface, WGPUSurfaceTexture * surfaceTexture) WGPU_FUNCTION_ATTRIBUTE; 3110 /** 3111 * Proc pointer type for @ref wgpuSurfacePresent: 3112 * > @copydoc wgpuSurfacePresent 3113 */ 3114 typedef WGPUStatus (*WGPUProcSurfacePresent)(WGPUSurface surface) WGPU_FUNCTION_ATTRIBUTE; 3115 /** 3116 * Proc pointer type for @ref wgpuSurfaceSetLabel: 3117 * > @copydoc wgpuSurfaceSetLabel 3118 */ 3119 typedef void (*WGPUProcSurfaceSetLabel)(WGPUSurface surface, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE; 3120 /** 3121 * Proc pointer type for @ref wgpuSurfaceUnconfigure: 3122 * > @copydoc wgpuSurfaceUnconfigure 3123 */ 3124 typedef void (*WGPUProcSurfaceUnconfigure)(WGPUSurface surface) WGPU_FUNCTION_ATTRIBUTE; 3125 /** 3126 * Proc pointer type for @ref wgpuSurfaceAddRef. 3127 * > @copydoc wgpuSurfaceAddRef 3128 */ 3129 typedef void (*WGPUProcSurfaceAddRef)(WGPUSurface surface) WGPU_FUNCTION_ATTRIBUTE; 3130 /** 3131 * Proc pointer type for @ref wgpuSurfaceRelease. 3132 * > @copydoc wgpuSurfaceRelease 3133 */ 3134 typedef void (*WGPUProcSurfaceRelease)(WGPUSurface surface) WGPU_FUNCTION_ATTRIBUTE; 3135 3136 // Procs of SurfaceCapabilities 3137 /** 3138 * Proc pointer type for @ref wgpuSurfaceCapabilitiesFreeMembers: 3139 * > @copydoc wgpuSurfaceCapabilitiesFreeMembers 3140 */ 3141 typedef void (*WGPUProcSurfaceCapabilitiesFreeMembers)(WGPUSurfaceCapabilities surfaceCapabilities) WGPU_FUNCTION_ATTRIBUTE; 3142 3143 // Procs of Texture 3144 /** 3145 * Proc pointer type for @ref wgpuTextureCreateView: 3146 * > @copydoc wgpuTextureCreateView 3147 */ 3148 typedef WGPUTextureView (*WGPUProcTextureCreateView)(WGPUTexture texture, WGPU_NULLABLE WGPUTextureViewDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; 3149 /** 3150 * Proc pointer type for @ref wgpuTextureDestroy: 3151 * > @copydoc wgpuTextureDestroy 3152 */ 3153 typedef void (*WGPUProcTextureDestroy)(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE; 3154 /** 3155 * Proc pointer type for @ref wgpuTextureGetDepthOrArrayLayers: 3156 * > @copydoc wgpuTextureGetDepthOrArrayLayers 3157 */ 3158 typedef uint32_t (*WGPUProcTextureGetDepthOrArrayLayers)(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE; 3159 /** 3160 * Proc pointer type for @ref wgpuTextureGetDimension: 3161 * > @copydoc wgpuTextureGetDimension 3162 */ 3163 typedef WGPUTextureDimension (*WGPUProcTextureGetDimension)(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE; 3164 /** 3165 * Proc pointer type for @ref wgpuTextureGetFormat: 3166 * > @copydoc wgpuTextureGetFormat 3167 */ 3168 typedef WGPUTextureFormat (*WGPUProcTextureGetFormat)(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE; 3169 /** 3170 * Proc pointer type for @ref wgpuTextureGetHeight: 3171 * > @copydoc wgpuTextureGetHeight 3172 */ 3173 typedef uint32_t (*WGPUProcTextureGetHeight)(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE; 3174 /** 3175 * Proc pointer type for @ref wgpuTextureGetMipLevelCount: 3176 * > @copydoc wgpuTextureGetMipLevelCount 3177 */ 3178 typedef uint32_t (*WGPUProcTextureGetMipLevelCount)(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE; 3179 /** 3180 * Proc pointer type for @ref wgpuTextureGetSampleCount: 3181 * > @copydoc wgpuTextureGetSampleCount 3182 */ 3183 typedef uint32_t (*WGPUProcTextureGetSampleCount)(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE; 3184 /** 3185 * Proc pointer type for @ref wgpuTextureGetUsage: 3186 * > @copydoc wgpuTextureGetUsage 3187 */ 3188 typedef WGPUTextureUsage (*WGPUProcTextureGetUsage)(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE; 3189 /** 3190 * Proc pointer type for @ref wgpuTextureGetWidth: 3191 * > @copydoc wgpuTextureGetWidth 3192 */ 3193 typedef uint32_t (*WGPUProcTextureGetWidth)(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE; 3194 /** 3195 * Proc pointer type for @ref wgpuTextureSetLabel: 3196 * > @copydoc wgpuTextureSetLabel 3197 */ 3198 typedef void (*WGPUProcTextureSetLabel)(WGPUTexture texture, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE; 3199 /** 3200 * Proc pointer type for @ref wgpuTextureAddRef. 3201 * > @copydoc wgpuTextureAddRef 3202 */ 3203 typedef void (*WGPUProcTextureAddRef)(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE; 3204 /** 3205 * Proc pointer type for @ref wgpuTextureRelease. 3206 * > @copydoc wgpuTextureRelease 3207 */ 3208 typedef void (*WGPUProcTextureRelease)(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE; 3209 3210 // Procs of TextureView 3211 /** 3212 * Proc pointer type for @ref wgpuTextureViewSetLabel: 3213 * > @copydoc wgpuTextureViewSetLabel 3214 */ 3215 typedef void (*WGPUProcTextureViewSetLabel)(WGPUTextureView textureView, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE; 3216 /** 3217 * Proc pointer type for @ref wgpuTextureViewAddRef. 3218 * > @copydoc wgpuTextureViewAddRef 3219 */ 3220 typedef void (*WGPUProcTextureViewAddRef)(WGPUTextureView textureView) WGPU_FUNCTION_ATTRIBUTE; 3221 /** 3222 * Proc pointer type for @ref wgpuTextureViewRelease. 3223 * > @copydoc wgpuTextureViewRelease 3224 */ 3225 typedef void (*WGPUProcTextureViewRelease)(WGPUTextureView textureView) WGPU_FUNCTION_ATTRIBUTE; 3226 3227 #endif // !defined(WGPU_SKIP_PROCS) 3228 3229 #if !defined(WGPU_SKIP_DECLARATIONS) 3230 /** 3231 * \defgroup GlobalFunctions Global Functions 3232 * \brief Functions that are not specific to an object. 3233 * 3234 * @{ 3235 */ 3236 /** 3237 * Create a WGPUInstance 3238 */ 3239 WGPU_EXPORT WGPUInstance wgpuCreateInstance(WGPU_NULLABLE WGPUInstanceDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; 3240 /** 3241 * Query the supported instance capabilities. 3242 * 3243 * @param capabilities 3244 * The supported instance capabilities 3245 * 3246 * @returns 3247 * Indicates if there was an @ref OutStructChainError. 3248 */ 3249 WGPU_EXPORT WGPUStatus wgpuGetInstanceCapabilities(WGPUInstanceCapabilities * capabilities) WGPU_FUNCTION_ATTRIBUTE; 3250 /** 3251 * Returns the "procedure address" (function pointer) of the named function. 3252 * The result must be cast to the appropriate proc pointer type. 3253 */ 3254 WGPU_EXPORT WGPUProc wgpuGetProcAddress(WGPUStringView procName) WGPU_FUNCTION_ATTRIBUTE; 3255 3256 3257 /** @} */ 3258 3259 /** 3260 * \defgroup Methods 3261 * \brief Functions that are relative to a specific object. 3262 * 3263 * @{ 3264 */ 3265 3266 /** 3267 * \defgroup WGPUAdapterMethods WGPUAdapter methods 3268 * \brief Functions whose first argument has type WGPUAdapter. 3269 * 3270 * @{ 3271 */ 3272 /** 3273 * Get the list of @ref WGPUFeatureName values supported by the adapter. 3274 * 3275 * @param features 3276 * This parameter is @ref ReturnedWithOwnership. 3277 */ 3278 WGPU_EXPORT void wgpuAdapterGetFeatures(WGPUAdapter adapter, WGPUSupportedFeatures * features) WGPU_FUNCTION_ATTRIBUTE; 3279 /** 3280 * @param info 3281 * This parameter is @ref ReturnedWithOwnership. 3282 * 3283 * @returns 3284 * Indicates if there was an @ref OutStructChainError. 3285 */ 3286 WGPU_EXPORT WGPUStatus wgpuAdapterGetInfo(WGPUAdapter adapter, WGPUAdapterInfo * info) WGPU_FUNCTION_ATTRIBUTE; 3287 /** 3288 * @returns 3289 * Indicates if there was an @ref OutStructChainError. 3290 */ 3291 WGPU_EXPORT WGPUStatus wgpuAdapterGetLimits(WGPUAdapter adapter, WGPULimits * limits) WGPU_FUNCTION_ATTRIBUTE; 3292 WGPU_EXPORT WGPUBool wgpuAdapterHasFeature(WGPUAdapter adapter, WGPUFeatureName feature) WGPU_FUNCTION_ATTRIBUTE; 3293 WGPU_EXPORT WGPUFuture wgpuAdapterRequestDevice(WGPUAdapter adapter, WGPU_NULLABLE WGPUDeviceDescriptor const * descriptor, WGPURequestDeviceCallbackInfo callbackInfo) WGPU_FUNCTION_ATTRIBUTE; 3294 WGPU_EXPORT void wgpuAdapterAddRef(WGPUAdapter adapter) WGPU_FUNCTION_ATTRIBUTE; 3295 WGPU_EXPORT void wgpuAdapterRelease(WGPUAdapter adapter) WGPU_FUNCTION_ATTRIBUTE; 3296 /** @} */ 3297 3298 3299 3300 /** 3301 * \defgroup WGPUAdapterInfoMethods WGPUAdapterInfo methods 3302 * \brief Functions whose first argument has type WGPUAdapterInfo. 3303 * 3304 * @{ 3305 */ 3306 /** 3307 * Frees array members of WGPUAdapterInfo which were allocated by the API. 3308 */ 3309 WGPU_EXPORT void wgpuAdapterInfoFreeMembers(WGPUAdapterInfo adapterInfo) WGPU_FUNCTION_ATTRIBUTE; 3310 /** @} */ 3311 3312 3313 3314 /** 3315 * \defgroup WGPUBindGroupMethods WGPUBindGroup methods 3316 * \brief Functions whose first argument has type WGPUBindGroup. 3317 * 3318 * @{ 3319 */ 3320 WGPU_EXPORT void wgpuBindGroupSetLabel(WGPUBindGroup bindGroup, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE; 3321 WGPU_EXPORT void wgpuBindGroupAddRef(WGPUBindGroup bindGroup) WGPU_FUNCTION_ATTRIBUTE; 3322 WGPU_EXPORT void wgpuBindGroupRelease(WGPUBindGroup bindGroup) WGPU_FUNCTION_ATTRIBUTE; 3323 /** @} */ 3324 3325 3326 3327 /** 3328 * \defgroup WGPUBindGroupLayoutMethods WGPUBindGroupLayout methods 3329 * \brief Functions whose first argument has type WGPUBindGroupLayout. 3330 * 3331 * @{ 3332 */ 3333 WGPU_EXPORT void wgpuBindGroupLayoutSetLabel(WGPUBindGroupLayout bindGroupLayout, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE; 3334 WGPU_EXPORT void wgpuBindGroupLayoutAddRef(WGPUBindGroupLayout bindGroupLayout) WGPU_FUNCTION_ATTRIBUTE; 3335 WGPU_EXPORT void wgpuBindGroupLayoutRelease(WGPUBindGroupLayout bindGroupLayout) WGPU_FUNCTION_ATTRIBUTE; 3336 /** @} */ 3337 3338 3339 3340 /** 3341 * \defgroup WGPUBufferMethods WGPUBuffer methods 3342 * \brief Functions whose first argument has type WGPUBuffer. 3343 * 3344 * @{ 3345 */ 3346 WGPU_EXPORT void wgpuBufferDestroy(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE; 3347 /** 3348 * @param offset 3349 * Byte offset relative to the beginning of the buffer. 3350 * 3351 * @param size 3352 * Byte size of the range to get. The returned pointer is valid for exactly this many bytes. 3353 * 3354 * @returns 3355 * Returns a const pointer to beginning of the mapped range. 3356 * It must not be written; writing to this range causes undefined behavior. 3357 * Returns `NULL` with @ref ImplementationDefinedLogging if: 3358 * 3359 * - There is any content-timeline error as defined in the WebGPU specification for `getMappedRange()` (alignments, overlaps, etc.) 3360 * **except** for overlaps with other *const* ranges, which are allowed in C. 3361 * (JS does not allow this because const ranges do not exist.) 3362 */ 3363 WGPU_EXPORT void const * wgpuBufferGetConstMappedRange(WGPUBuffer buffer, size_t offset, size_t size) WGPU_FUNCTION_ATTRIBUTE; 3364 WGPU_EXPORT WGPUBufferMapState wgpuBufferGetMapState(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE; 3365 /** 3366 * @param offset 3367 * Byte offset relative to the beginning of the buffer. 3368 * 3369 * @param size 3370 * Byte size of the range to get. The returned pointer is valid for exactly this many bytes. 3371 * 3372 * @returns 3373 * Returns a mutable pointer to beginning of the mapped range. 3374 * Returns `NULL` with @ref ImplementationDefinedLogging if: 3375 * 3376 * - There is any content-timeline error as defined in the WebGPU specification for `getMappedRange()` (alignments, overlaps, etc.) 3377 * - The buffer is not mapped with @ref WGPUMapMode_Write. 3378 */ 3379 WGPU_EXPORT void * wgpuBufferGetMappedRange(WGPUBuffer buffer, size_t offset, size_t size) WGPU_FUNCTION_ATTRIBUTE; 3380 WGPU_EXPORT uint64_t wgpuBufferGetSize(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE; 3381 WGPU_EXPORT WGPUBufferUsage wgpuBufferGetUsage(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE; 3382 WGPU_EXPORT WGPUFuture wgpuBufferMapAsync(WGPUBuffer buffer, WGPUMapMode mode, size_t offset, size_t size, WGPUBufferMapCallbackInfo callbackInfo) WGPU_FUNCTION_ATTRIBUTE; 3383 WGPU_EXPORT void wgpuBufferSetLabel(WGPUBuffer buffer, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE; 3384 WGPU_EXPORT void wgpuBufferUnmap(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE; 3385 WGPU_EXPORT void wgpuBufferAddRef(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE; 3386 WGPU_EXPORT void wgpuBufferRelease(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE; 3387 /** @} */ 3388 3389 3390 3391 /** 3392 * \defgroup WGPUCommandBufferMethods WGPUCommandBuffer methods 3393 * \brief Functions whose first argument has type WGPUCommandBuffer. 3394 * 3395 * @{ 3396 */ 3397 WGPU_EXPORT void wgpuCommandBufferSetLabel(WGPUCommandBuffer commandBuffer, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE; 3398 WGPU_EXPORT void wgpuCommandBufferAddRef(WGPUCommandBuffer commandBuffer) WGPU_FUNCTION_ATTRIBUTE; 3399 WGPU_EXPORT void wgpuCommandBufferRelease(WGPUCommandBuffer commandBuffer) WGPU_FUNCTION_ATTRIBUTE; 3400 /** @} */ 3401 3402 3403 3404 /** 3405 * \defgroup WGPUCommandEncoderMethods WGPUCommandEncoder methods 3406 * \brief Functions whose first argument has type WGPUCommandEncoder. 3407 * 3408 * @{ 3409 */ 3410 WGPU_EXPORT WGPUComputePassEncoder wgpuCommandEncoderBeginComputePass(WGPUCommandEncoder commandEncoder, WGPU_NULLABLE WGPUComputePassDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; 3411 WGPU_EXPORT WGPURenderPassEncoder wgpuCommandEncoderBeginRenderPass(WGPUCommandEncoder commandEncoder, WGPURenderPassDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; 3412 WGPU_EXPORT void wgpuCommandEncoderClearBuffer(WGPUCommandEncoder commandEncoder, WGPUBuffer buffer, uint64_t offset, uint64_t size) WGPU_FUNCTION_ATTRIBUTE; 3413 WGPU_EXPORT void wgpuCommandEncoderCopyBufferToBuffer(WGPUCommandEncoder commandEncoder, WGPUBuffer source, uint64_t sourceOffset, WGPUBuffer destination, uint64_t destinationOffset, uint64_t size) WGPU_FUNCTION_ATTRIBUTE; 3414 WGPU_EXPORT void wgpuCommandEncoderCopyBufferToTexture(WGPUCommandEncoder commandEncoder, WGPUTexelCopyBufferInfo const * source, WGPUTexelCopyTextureInfo const * destination, WGPUExtent3D const * copySize) WGPU_FUNCTION_ATTRIBUTE; 3415 WGPU_EXPORT void wgpuCommandEncoderCopyTextureToBuffer(WGPUCommandEncoder commandEncoder, WGPUTexelCopyTextureInfo const * source, WGPUTexelCopyBufferInfo const * destination, WGPUExtent3D const * copySize) WGPU_FUNCTION_ATTRIBUTE; 3416 WGPU_EXPORT void wgpuCommandEncoderCopyTextureToTexture(WGPUCommandEncoder commandEncoder, WGPUTexelCopyTextureInfo const * source, WGPUTexelCopyTextureInfo const * destination, WGPUExtent3D const * copySize) WGPU_FUNCTION_ATTRIBUTE; 3417 WGPU_EXPORT WGPUCommandBuffer wgpuCommandEncoderFinish(WGPUCommandEncoder commandEncoder, WGPU_NULLABLE WGPUCommandBufferDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; 3418 WGPU_EXPORT void wgpuCommandEncoderInsertDebugMarker(WGPUCommandEncoder commandEncoder, WGPUStringView markerLabel) WGPU_FUNCTION_ATTRIBUTE; 3419 WGPU_EXPORT void wgpuCommandEncoderPopDebugGroup(WGPUCommandEncoder commandEncoder) WGPU_FUNCTION_ATTRIBUTE; 3420 WGPU_EXPORT void wgpuCommandEncoderPushDebugGroup(WGPUCommandEncoder commandEncoder, WGPUStringView groupLabel) WGPU_FUNCTION_ATTRIBUTE; 3421 WGPU_EXPORT void wgpuCommandEncoderResolveQuerySet(WGPUCommandEncoder commandEncoder, WGPUQuerySet querySet, uint32_t firstQuery, uint32_t queryCount, WGPUBuffer destination, uint64_t destinationOffset) WGPU_FUNCTION_ATTRIBUTE; 3422 WGPU_EXPORT void wgpuCommandEncoderSetLabel(WGPUCommandEncoder commandEncoder, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE; 3423 WGPU_EXPORT void wgpuCommandEncoderWriteTimestamp(WGPUCommandEncoder commandEncoder, WGPUQuerySet querySet, uint32_t queryIndex) WGPU_FUNCTION_ATTRIBUTE; 3424 WGPU_EXPORT void wgpuCommandEncoderAddRef(WGPUCommandEncoder commandEncoder) WGPU_FUNCTION_ATTRIBUTE; 3425 WGPU_EXPORT void wgpuCommandEncoderRelease(WGPUCommandEncoder commandEncoder) WGPU_FUNCTION_ATTRIBUTE; 3426 /** @} */ 3427 3428 3429 3430 /** 3431 * \defgroup WGPUComputePassEncoderMethods WGPUComputePassEncoder methods 3432 * \brief Functions whose first argument has type WGPUComputePassEncoder. 3433 * 3434 * @{ 3435 */ 3436 WGPU_EXPORT void wgpuComputePassEncoderDispatchWorkgroups(WGPUComputePassEncoder computePassEncoder, uint32_t workgroupCountX, uint32_t workgroupCountY, uint32_t workgroupCountZ) WGPU_FUNCTION_ATTRIBUTE; 3437 WGPU_EXPORT void wgpuComputePassEncoderDispatchWorkgroupsIndirect(WGPUComputePassEncoder computePassEncoder, WGPUBuffer indirectBuffer, uint64_t indirectOffset) WGPU_FUNCTION_ATTRIBUTE; 3438 WGPU_EXPORT void wgpuComputePassEncoderEnd(WGPUComputePassEncoder computePassEncoder) WGPU_FUNCTION_ATTRIBUTE; 3439 WGPU_EXPORT void wgpuComputePassEncoderInsertDebugMarker(WGPUComputePassEncoder computePassEncoder, WGPUStringView markerLabel) WGPU_FUNCTION_ATTRIBUTE; 3440 WGPU_EXPORT void wgpuComputePassEncoderPopDebugGroup(WGPUComputePassEncoder computePassEncoder) WGPU_FUNCTION_ATTRIBUTE; 3441 WGPU_EXPORT void wgpuComputePassEncoderPushDebugGroup(WGPUComputePassEncoder computePassEncoder, WGPUStringView groupLabel) WGPU_FUNCTION_ATTRIBUTE; 3442 WGPU_EXPORT void wgpuComputePassEncoderSetBindGroup(WGPUComputePassEncoder computePassEncoder, uint32_t groupIndex, WGPU_NULLABLE WGPUBindGroup group, size_t dynamicOffsetCount, uint32_t const * dynamicOffsets) WGPU_FUNCTION_ATTRIBUTE; 3443 WGPU_EXPORT void wgpuComputePassEncoderSetLabel(WGPUComputePassEncoder computePassEncoder, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE; 3444 WGPU_EXPORT void wgpuComputePassEncoderSetPipeline(WGPUComputePassEncoder computePassEncoder, WGPUComputePipeline pipeline) WGPU_FUNCTION_ATTRIBUTE; 3445 WGPU_EXPORT void wgpuComputePassEncoderAddRef(WGPUComputePassEncoder computePassEncoder) WGPU_FUNCTION_ATTRIBUTE; 3446 WGPU_EXPORT void wgpuComputePassEncoderRelease(WGPUComputePassEncoder computePassEncoder) WGPU_FUNCTION_ATTRIBUTE; 3447 /** @} */ 3448 3449 3450 3451 /** 3452 * \defgroup WGPUComputePipelineMethods WGPUComputePipeline methods 3453 * \brief Functions whose first argument has type WGPUComputePipeline. 3454 * 3455 * @{ 3456 */ 3457 WGPU_EXPORT WGPUBindGroupLayout wgpuComputePipelineGetBindGroupLayout(WGPUComputePipeline computePipeline, uint32_t groupIndex) WGPU_FUNCTION_ATTRIBUTE; 3458 WGPU_EXPORT void wgpuComputePipelineSetLabel(WGPUComputePipeline computePipeline, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE; 3459 WGPU_EXPORT void wgpuComputePipelineAddRef(WGPUComputePipeline computePipeline) WGPU_FUNCTION_ATTRIBUTE; 3460 WGPU_EXPORT void wgpuComputePipelineRelease(WGPUComputePipeline computePipeline) WGPU_FUNCTION_ATTRIBUTE; 3461 /** @} */ 3462 3463 3464 3465 /** 3466 * \defgroup WGPUDeviceMethods WGPUDevice methods 3467 * \brief Functions whose first argument has type WGPUDevice. 3468 * 3469 * @{ 3470 */ 3471 WGPU_EXPORT WGPUBindGroup wgpuDeviceCreateBindGroup(WGPUDevice device, WGPUBindGroupDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; 3472 WGPU_EXPORT WGPUBindGroupLayout wgpuDeviceCreateBindGroupLayout(WGPUDevice device, WGPUBindGroupLayoutDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; 3473 WGPU_EXPORT WGPUBuffer wgpuDeviceCreateBuffer(WGPUDevice device, WGPUBufferDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; 3474 WGPU_EXPORT WGPUCommandEncoder wgpuDeviceCreateCommandEncoder(WGPUDevice device, WGPU_NULLABLE WGPUCommandEncoderDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; 3475 WGPU_EXPORT WGPUComputePipeline wgpuDeviceCreateComputePipeline(WGPUDevice device, WGPUComputePipelineDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; 3476 WGPU_EXPORT WGPUFuture wgpuDeviceCreateComputePipelineAsync(WGPUDevice device, WGPUComputePipelineDescriptor const * descriptor, WGPUCreateComputePipelineAsyncCallbackInfo callbackInfo) WGPU_FUNCTION_ATTRIBUTE; 3477 WGPU_EXPORT WGPUPipelineLayout wgpuDeviceCreatePipelineLayout(WGPUDevice device, WGPUPipelineLayoutDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; 3478 WGPU_EXPORT WGPUQuerySet wgpuDeviceCreateQuerySet(WGPUDevice device, WGPUQuerySetDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; 3479 WGPU_EXPORT WGPURenderBundleEncoder wgpuDeviceCreateRenderBundleEncoder(WGPUDevice device, WGPURenderBundleEncoderDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; 3480 WGPU_EXPORT WGPURenderPipeline wgpuDeviceCreateRenderPipeline(WGPUDevice device, WGPURenderPipelineDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; 3481 WGPU_EXPORT WGPUFuture wgpuDeviceCreateRenderPipelineAsync(WGPUDevice device, WGPURenderPipelineDescriptor const * descriptor, WGPUCreateRenderPipelineAsyncCallbackInfo callbackInfo) WGPU_FUNCTION_ATTRIBUTE; 3482 WGPU_EXPORT WGPUSampler wgpuDeviceCreateSampler(WGPUDevice device, WGPU_NULLABLE WGPUSamplerDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; 3483 WGPU_EXPORT WGPUShaderModule wgpuDeviceCreateShaderModule(WGPUDevice device, WGPUShaderModuleDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; 3484 WGPU_EXPORT WGPUTexture wgpuDeviceCreateTexture(WGPUDevice device, WGPUTextureDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; 3485 WGPU_EXPORT void wgpuDeviceDestroy(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE; 3486 WGPU_EXPORT WGPUAdapterInfo wgpuDeviceGetAdapterInfo(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE; 3487 /** 3488 * Get the list of @ref WGPUFeatureName values supported by the device. 3489 * 3490 * @param features 3491 * This parameter is @ref ReturnedWithOwnership. 3492 */ 3493 WGPU_EXPORT void wgpuDeviceGetFeatures(WGPUDevice device, WGPUSupportedFeatures * features) WGPU_FUNCTION_ATTRIBUTE; 3494 /** 3495 * @returns 3496 * Indicates if there was an @ref OutStructChainError. 3497 */ 3498 WGPU_EXPORT WGPUStatus wgpuDeviceGetLimits(WGPUDevice device, WGPULimits * limits) WGPU_FUNCTION_ATTRIBUTE; 3499 /** 3500 * @returns 3501 * The @ref WGPUFuture for the device-lost event of the device. 3502 */ 3503 WGPU_EXPORT WGPUFuture wgpuDeviceGetLostFuture(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE; 3504 WGPU_EXPORT WGPUQueue wgpuDeviceGetQueue(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE; 3505 WGPU_EXPORT WGPUBool wgpuDeviceHasFeature(WGPUDevice device, WGPUFeatureName feature) WGPU_FUNCTION_ATTRIBUTE; 3506 WGPU_EXPORT WGPUFuture wgpuDevicePopErrorScope(WGPUDevice device, WGPUPopErrorScopeCallbackInfo callbackInfo) WGPU_FUNCTION_ATTRIBUTE; 3507 WGPU_EXPORT void wgpuDevicePushErrorScope(WGPUDevice device, WGPUErrorFilter filter) WGPU_FUNCTION_ATTRIBUTE; 3508 WGPU_EXPORT void wgpuDeviceSetLabel(WGPUDevice device, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE; 3509 WGPU_EXPORT void wgpuDeviceAddRef(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE; 3510 WGPU_EXPORT void wgpuDeviceRelease(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE; 3511 /** @} */ 3512 3513 3514 3515 /** 3516 * \defgroup WGPUInstanceMethods WGPUInstance methods 3517 * \brief Functions whose first argument has type WGPUInstance. 3518 * 3519 * @{ 3520 */ 3521 /** 3522 * Creates a @ref WGPUSurface, see @ref Surface-Creation for more details. 3523 * 3524 * @param descriptor 3525 * The description of the @ref WGPUSurface to create. 3526 * 3527 * @returns 3528 * A new @ref WGPUSurface for this descriptor (or an error @ref WGPUSurface). 3529 */ 3530 WGPU_EXPORT WGPUSurface wgpuInstanceCreateSurface(WGPUInstance instance, WGPUSurfaceDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; 3531 /** 3532 * Get the list of @ref WGPUWGSLLanguageFeatureName values supported by the instance. 3533 */ 3534 WGPU_EXPORT WGPUStatus wgpuInstanceGetWGSLLanguageFeatures(WGPUInstance instance, WGPUSupportedWGSLLanguageFeatures * features) WGPU_FUNCTION_ATTRIBUTE; 3535 WGPU_EXPORT WGPUBool wgpuInstanceHasWGSLLanguageFeature(WGPUInstance instance, WGPUWGSLLanguageFeatureName feature) WGPU_FUNCTION_ATTRIBUTE; 3536 /** 3537 * Processes asynchronous events on this `WGPUInstance`, calling any callbacks for asynchronous operations created with `::WGPUCallbackMode_AllowProcessEvents`. 3538 * 3539 * See @ref Process-Events for more information. 3540 */ 3541 WGPU_EXPORT void wgpuInstanceProcessEvents(WGPUInstance instance) WGPU_FUNCTION_ATTRIBUTE; 3542 WGPU_EXPORT WGPUFuture wgpuInstanceRequestAdapter(WGPUInstance instance, WGPU_NULLABLE WGPURequestAdapterOptions const * options, WGPURequestAdapterCallbackInfo callbackInfo) WGPU_FUNCTION_ATTRIBUTE; 3543 /** 3544 * Wait for at least one WGPUFuture in `futures` to complete, and call callbacks of the respective completed asynchronous operations. 3545 * 3546 * See @ref Wait-Any for more information. 3547 */ 3548 WGPU_EXPORT WGPUWaitStatus wgpuInstanceWaitAny(WGPUInstance instance, size_t futureCount, WGPU_NULLABLE WGPUFutureWaitInfo * futures, uint64_t timeoutNS) WGPU_FUNCTION_ATTRIBUTE; 3549 WGPU_EXPORT void wgpuInstanceAddRef(WGPUInstance instance) WGPU_FUNCTION_ATTRIBUTE; 3550 WGPU_EXPORT void wgpuInstanceRelease(WGPUInstance instance) WGPU_FUNCTION_ATTRIBUTE; 3551 /** @} */ 3552 3553 3554 3555 /** 3556 * \defgroup WGPUPipelineLayoutMethods WGPUPipelineLayout methods 3557 * \brief Functions whose first argument has type WGPUPipelineLayout. 3558 * 3559 * @{ 3560 */ 3561 WGPU_EXPORT void wgpuPipelineLayoutSetLabel(WGPUPipelineLayout pipelineLayout, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE; 3562 WGPU_EXPORT void wgpuPipelineLayoutAddRef(WGPUPipelineLayout pipelineLayout) WGPU_FUNCTION_ATTRIBUTE; 3563 WGPU_EXPORT void wgpuPipelineLayoutRelease(WGPUPipelineLayout pipelineLayout) WGPU_FUNCTION_ATTRIBUTE; 3564 /** @} */ 3565 3566 3567 3568 /** 3569 * \defgroup WGPUQuerySetMethods WGPUQuerySet methods 3570 * \brief Functions whose first argument has type WGPUQuerySet. 3571 * 3572 * @{ 3573 */ 3574 WGPU_EXPORT void wgpuQuerySetDestroy(WGPUQuerySet querySet) WGPU_FUNCTION_ATTRIBUTE; 3575 WGPU_EXPORT uint32_t wgpuQuerySetGetCount(WGPUQuerySet querySet) WGPU_FUNCTION_ATTRIBUTE; 3576 WGPU_EXPORT WGPUQueryType wgpuQuerySetGetType(WGPUQuerySet querySet) WGPU_FUNCTION_ATTRIBUTE; 3577 WGPU_EXPORT void wgpuQuerySetSetLabel(WGPUQuerySet querySet, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE; 3578 WGPU_EXPORT void wgpuQuerySetAddRef(WGPUQuerySet querySet) WGPU_FUNCTION_ATTRIBUTE; 3579 WGPU_EXPORT void wgpuQuerySetRelease(WGPUQuerySet querySet) WGPU_FUNCTION_ATTRIBUTE; 3580 /** @} */ 3581 3582 3583 3584 /** 3585 * \defgroup WGPUQueueMethods WGPUQueue methods 3586 * \brief Functions whose first argument has type WGPUQueue. 3587 * 3588 * @{ 3589 */ 3590 WGPU_EXPORT WGPUFuture wgpuQueueOnSubmittedWorkDone(WGPUQueue queue, WGPUQueueWorkDoneCallbackInfo callbackInfo) WGPU_FUNCTION_ATTRIBUTE; 3591 WGPU_EXPORT void wgpuQueueSetLabel(WGPUQueue queue, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE; 3592 WGPU_EXPORT void wgpuQueueSubmit(WGPUQueue queue, size_t commandCount, WGPUCommandBuffer const * commands) WGPU_FUNCTION_ATTRIBUTE; 3593 /** 3594 * Produces a @ref DeviceError both content-timeline (`size` alignment) and device-timeline 3595 * errors defined by the WebGPU specification. 3596 */ 3597 WGPU_EXPORT void wgpuQueueWriteBuffer(WGPUQueue queue, WGPUBuffer buffer, uint64_t bufferOffset, void const * data, size_t size) WGPU_FUNCTION_ATTRIBUTE; 3598 WGPU_EXPORT void wgpuQueueWriteTexture(WGPUQueue queue, WGPUTexelCopyTextureInfo const * destination, void const * data, size_t dataSize, WGPUTexelCopyBufferLayout const * dataLayout, WGPUExtent3D const * writeSize) WGPU_FUNCTION_ATTRIBUTE; 3599 WGPU_EXPORT void wgpuQueueAddRef(WGPUQueue queue) WGPU_FUNCTION_ATTRIBUTE; 3600 WGPU_EXPORT void wgpuQueueRelease(WGPUQueue queue) WGPU_FUNCTION_ATTRIBUTE; 3601 /** @} */ 3602 3603 3604 3605 /** 3606 * \defgroup WGPURenderBundleMethods WGPURenderBundle methods 3607 * \brief Functions whose first argument has type WGPURenderBundle. 3608 * 3609 * @{ 3610 */ 3611 WGPU_EXPORT void wgpuRenderBundleSetLabel(WGPURenderBundle renderBundle, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE; 3612 WGPU_EXPORT void wgpuRenderBundleAddRef(WGPURenderBundle renderBundle) WGPU_FUNCTION_ATTRIBUTE; 3613 WGPU_EXPORT void wgpuRenderBundleRelease(WGPURenderBundle renderBundle) WGPU_FUNCTION_ATTRIBUTE; 3614 /** @} */ 3615 3616 3617 3618 /** 3619 * \defgroup WGPURenderBundleEncoderMethods WGPURenderBundleEncoder methods 3620 * \brief Functions whose first argument has type WGPURenderBundleEncoder. 3621 * 3622 * @{ 3623 */ 3624 WGPU_EXPORT void wgpuRenderBundleEncoderDraw(WGPURenderBundleEncoder renderBundleEncoder, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) WGPU_FUNCTION_ATTRIBUTE; 3625 WGPU_EXPORT void wgpuRenderBundleEncoderDrawIndexed(WGPURenderBundleEncoder renderBundleEncoder, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t baseVertex, uint32_t firstInstance) WGPU_FUNCTION_ATTRIBUTE; 3626 WGPU_EXPORT void wgpuRenderBundleEncoderDrawIndexedIndirect(WGPURenderBundleEncoder renderBundleEncoder, WGPUBuffer indirectBuffer, uint64_t indirectOffset) WGPU_FUNCTION_ATTRIBUTE; 3627 WGPU_EXPORT void wgpuRenderBundleEncoderDrawIndirect(WGPURenderBundleEncoder renderBundleEncoder, WGPUBuffer indirectBuffer, uint64_t indirectOffset) WGPU_FUNCTION_ATTRIBUTE; 3628 WGPU_EXPORT WGPURenderBundle wgpuRenderBundleEncoderFinish(WGPURenderBundleEncoder renderBundleEncoder, WGPU_NULLABLE WGPURenderBundleDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; 3629 WGPU_EXPORT void wgpuRenderBundleEncoderInsertDebugMarker(WGPURenderBundleEncoder renderBundleEncoder, WGPUStringView markerLabel) WGPU_FUNCTION_ATTRIBUTE; 3630 WGPU_EXPORT void wgpuRenderBundleEncoderPopDebugGroup(WGPURenderBundleEncoder renderBundleEncoder) WGPU_FUNCTION_ATTRIBUTE; 3631 WGPU_EXPORT void wgpuRenderBundleEncoderPushDebugGroup(WGPURenderBundleEncoder renderBundleEncoder, WGPUStringView groupLabel) WGPU_FUNCTION_ATTRIBUTE; 3632 WGPU_EXPORT void wgpuRenderBundleEncoderSetBindGroup(WGPURenderBundleEncoder renderBundleEncoder, uint32_t groupIndex, WGPU_NULLABLE WGPUBindGroup group, size_t dynamicOffsetCount, uint32_t const * dynamicOffsets) WGPU_FUNCTION_ATTRIBUTE; 3633 WGPU_EXPORT void wgpuRenderBundleEncoderSetIndexBuffer(WGPURenderBundleEncoder renderBundleEncoder, WGPUBuffer buffer, WGPUIndexFormat format, uint64_t offset, uint64_t size) WGPU_FUNCTION_ATTRIBUTE; 3634 WGPU_EXPORT void wgpuRenderBundleEncoderSetLabel(WGPURenderBundleEncoder renderBundleEncoder, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE; 3635 WGPU_EXPORT void wgpuRenderBundleEncoderSetPipeline(WGPURenderBundleEncoder renderBundleEncoder, WGPURenderPipeline pipeline) WGPU_FUNCTION_ATTRIBUTE; 3636 WGPU_EXPORT void wgpuRenderBundleEncoderSetVertexBuffer(WGPURenderBundleEncoder renderBundleEncoder, uint32_t slot, WGPU_NULLABLE WGPUBuffer buffer, uint64_t offset, uint64_t size) WGPU_FUNCTION_ATTRIBUTE; 3637 WGPU_EXPORT void wgpuRenderBundleEncoderAddRef(WGPURenderBundleEncoder renderBundleEncoder) WGPU_FUNCTION_ATTRIBUTE; 3638 WGPU_EXPORT void wgpuRenderBundleEncoderRelease(WGPURenderBundleEncoder renderBundleEncoder) WGPU_FUNCTION_ATTRIBUTE; 3639 /** @} */ 3640 3641 3642 3643 /** 3644 * \defgroup WGPURenderPassEncoderMethods WGPURenderPassEncoder methods 3645 * \brief Functions whose first argument has type WGPURenderPassEncoder. 3646 * 3647 * @{ 3648 */ 3649 WGPU_EXPORT void wgpuRenderPassEncoderBeginOcclusionQuery(WGPURenderPassEncoder renderPassEncoder, uint32_t queryIndex) WGPU_FUNCTION_ATTRIBUTE; 3650 WGPU_EXPORT void wgpuRenderPassEncoderDraw(WGPURenderPassEncoder renderPassEncoder, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) WGPU_FUNCTION_ATTRIBUTE; 3651 WGPU_EXPORT void wgpuRenderPassEncoderDrawIndexed(WGPURenderPassEncoder renderPassEncoder, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t baseVertex, uint32_t firstInstance) WGPU_FUNCTION_ATTRIBUTE; 3652 WGPU_EXPORT void wgpuRenderPassEncoderDrawIndexedIndirect(WGPURenderPassEncoder renderPassEncoder, WGPUBuffer indirectBuffer, uint64_t indirectOffset) WGPU_FUNCTION_ATTRIBUTE; 3653 WGPU_EXPORT void wgpuRenderPassEncoderDrawIndirect(WGPURenderPassEncoder renderPassEncoder, WGPUBuffer indirectBuffer, uint64_t indirectOffset) WGPU_FUNCTION_ATTRIBUTE; 3654 WGPU_EXPORT void wgpuRenderPassEncoderEnd(WGPURenderPassEncoder renderPassEncoder) WGPU_FUNCTION_ATTRIBUTE; 3655 WGPU_EXPORT void wgpuRenderPassEncoderEndOcclusionQuery(WGPURenderPassEncoder renderPassEncoder) WGPU_FUNCTION_ATTRIBUTE; 3656 WGPU_EXPORT void wgpuRenderPassEncoderExecuteBundles(WGPURenderPassEncoder renderPassEncoder, size_t bundleCount, WGPURenderBundle const * bundles) WGPU_FUNCTION_ATTRIBUTE; 3657 WGPU_EXPORT void wgpuRenderPassEncoderInsertDebugMarker(WGPURenderPassEncoder renderPassEncoder, WGPUStringView markerLabel) WGPU_FUNCTION_ATTRIBUTE; 3658 WGPU_EXPORT void wgpuRenderPassEncoderPopDebugGroup(WGPURenderPassEncoder renderPassEncoder) WGPU_FUNCTION_ATTRIBUTE; 3659 WGPU_EXPORT void wgpuRenderPassEncoderPushDebugGroup(WGPURenderPassEncoder renderPassEncoder, WGPUStringView groupLabel) WGPU_FUNCTION_ATTRIBUTE; 3660 WGPU_EXPORT void wgpuRenderPassEncoderSetBindGroup(WGPURenderPassEncoder renderPassEncoder, uint32_t groupIndex, WGPU_NULLABLE WGPUBindGroup group, size_t dynamicOffsetCount, uint32_t const * dynamicOffsets) WGPU_FUNCTION_ATTRIBUTE; 3661 WGPU_EXPORT void wgpuRenderPassEncoderSetBlendConstant(WGPURenderPassEncoder renderPassEncoder, WGPUColor const * color) WGPU_FUNCTION_ATTRIBUTE; 3662 WGPU_EXPORT void wgpuRenderPassEncoderSetIndexBuffer(WGPURenderPassEncoder renderPassEncoder, WGPUBuffer buffer, WGPUIndexFormat format, uint64_t offset, uint64_t size) WGPU_FUNCTION_ATTRIBUTE; 3663 WGPU_EXPORT void wgpuRenderPassEncoderSetLabel(WGPURenderPassEncoder renderPassEncoder, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE; 3664 WGPU_EXPORT void wgpuRenderPassEncoderSetPipeline(WGPURenderPassEncoder renderPassEncoder, WGPURenderPipeline pipeline) WGPU_FUNCTION_ATTRIBUTE; 3665 WGPU_EXPORT void wgpuRenderPassEncoderSetScissorRect(WGPURenderPassEncoder renderPassEncoder, uint32_t x, uint32_t y, uint32_t width, uint32_t height) WGPU_FUNCTION_ATTRIBUTE; 3666 WGPU_EXPORT void wgpuRenderPassEncoderSetStencilReference(WGPURenderPassEncoder renderPassEncoder, uint32_t reference) WGPU_FUNCTION_ATTRIBUTE; 3667 WGPU_EXPORT void wgpuRenderPassEncoderSetVertexBuffer(WGPURenderPassEncoder renderPassEncoder, uint32_t slot, WGPU_NULLABLE WGPUBuffer buffer, uint64_t offset, uint64_t size) WGPU_FUNCTION_ATTRIBUTE; 3668 WGPU_EXPORT void wgpuRenderPassEncoderSetViewport(WGPURenderPassEncoder renderPassEncoder, float x, float y, float width, float height, float minDepth, float maxDepth) WGPU_FUNCTION_ATTRIBUTE; 3669 WGPU_EXPORT void wgpuRenderPassEncoderAddRef(WGPURenderPassEncoder renderPassEncoder) WGPU_FUNCTION_ATTRIBUTE; 3670 WGPU_EXPORT void wgpuRenderPassEncoderRelease(WGPURenderPassEncoder renderPassEncoder) WGPU_FUNCTION_ATTRIBUTE; 3671 /** @} */ 3672 3673 3674 3675 /** 3676 * \defgroup WGPURenderPipelineMethods WGPURenderPipeline methods 3677 * \brief Functions whose first argument has type WGPURenderPipeline. 3678 * 3679 * @{ 3680 */ 3681 WGPU_EXPORT WGPUBindGroupLayout wgpuRenderPipelineGetBindGroupLayout(WGPURenderPipeline renderPipeline, uint32_t groupIndex) WGPU_FUNCTION_ATTRIBUTE; 3682 WGPU_EXPORT void wgpuRenderPipelineSetLabel(WGPURenderPipeline renderPipeline, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE; 3683 WGPU_EXPORT void wgpuRenderPipelineAddRef(WGPURenderPipeline renderPipeline) WGPU_FUNCTION_ATTRIBUTE; 3684 WGPU_EXPORT void wgpuRenderPipelineRelease(WGPURenderPipeline renderPipeline) WGPU_FUNCTION_ATTRIBUTE; 3685 /** @} */ 3686 3687 3688 3689 /** 3690 * \defgroup WGPUSamplerMethods WGPUSampler methods 3691 * \brief Functions whose first argument has type WGPUSampler. 3692 * 3693 * @{ 3694 */ 3695 WGPU_EXPORT void wgpuSamplerSetLabel(WGPUSampler sampler, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE; 3696 WGPU_EXPORT void wgpuSamplerAddRef(WGPUSampler sampler) WGPU_FUNCTION_ATTRIBUTE; 3697 WGPU_EXPORT void wgpuSamplerRelease(WGPUSampler sampler) WGPU_FUNCTION_ATTRIBUTE; 3698 /** @} */ 3699 3700 3701 3702 /** 3703 * \defgroup WGPUShaderModuleMethods WGPUShaderModule methods 3704 * \brief Functions whose first argument has type WGPUShaderModule. 3705 * 3706 * @{ 3707 */ 3708 WGPU_EXPORT WGPUFuture wgpuShaderModuleGetCompilationInfo(WGPUShaderModule shaderModule, WGPUCompilationInfoCallbackInfo callbackInfo) WGPU_FUNCTION_ATTRIBUTE; 3709 WGPU_EXPORT void wgpuShaderModuleSetLabel(WGPUShaderModule shaderModule, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE; 3710 WGPU_EXPORT void wgpuShaderModuleAddRef(WGPUShaderModule shaderModule) WGPU_FUNCTION_ATTRIBUTE; 3711 WGPU_EXPORT void wgpuShaderModuleRelease(WGPUShaderModule shaderModule) WGPU_FUNCTION_ATTRIBUTE; 3712 /** @} */ 3713 3714 3715 3716 /** 3717 * \defgroup WGPUSupportedFeaturesMethods WGPUSupportedFeatures methods 3718 * \brief Functions whose first argument has type WGPUSupportedFeatures. 3719 * 3720 * @{ 3721 */ 3722 /** 3723 * Frees array members of WGPUSupportedFeatures which were allocated by the API. 3724 */ 3725 WGPU_EXPORT void wgpuSupportedFeaturesFreeMembers(WGPUSupportedFeatures supportedFeatures) WGPU_FUNCTION_ATTRIBUTE; 3726 /** @} */ 3727 3728 3729 3730 /** 3731 * \defgroup WGPUSupportedWGSLLanguageFeaturesMethods WGPUSupportedWGSLLanguageFeatures methods 3732 * \brief Functions whose first argument has type WGPUSupportedWGSLLanguageFeatures. 3733 * 3734 * @{ 3735 */ 3736 /** 3737 * Frees array members of WGPUSupportedWGSLLanguageFeatures which were allocated by the API. 3738 */ 3739 WGPU_EXPORT void wgpuSupportedWGSLLanguageFeaturesFreeMembers(WGPUSupportedWGSLLanguageFeatures supportedWGSLLanguageFeatures) WGPU_FUNCTION_ATTRIBUTE; 3740 /** @} */ 3741 3742 3743 3744 /** 3745 * \defgroup WGPUSurfaceMethods WGPUSurface methods 3746 * \brief Functions whose first argument has type WGPUSurface. 3747 * 3748 * @{ 3749 */ 3750 /** 3751 * Configures parameters for rendering to `surface`. 3752 * Produces a @ref DeviceError for all content-timeline errors defined by the WebGPU specification. 3753 * 3754 * See @ref Surface-Configuration for more details. 3755 * 3756 * @param config 3757 * The new configuration to use. 3758 */ 3759 WGPU_EXPORT void wgpuSurfaceConfigure(WGPUSurface surface, WGPUSurfaceConfiguration const * config) WGPU_FUNCTION_ATTRIBUTE; 3760 /** 3761 * Provides information on how `adapter` is able to use `surface`. 3762 * See @ref Surface-Capabilities for more details. 3763 * 3764 * @param adapter 3765 * The @ref WGPUAdapter to get capabilities for presenting to this @ref WGPUSurface. 3766 * 3767 * @param capabilities 3768 * The structure to fill capabilities in. 3769 * It may contain memory allocations so `::wgpuSurfaceCapabilitiesFreeMembers` must be called to avoid memory leaks. 3770 * This parameter is @ref ReturnedWithOwnership. 3771 * 3772 * @returns 3773 * Indicates if there was an @ref OutStructChainError. 3774 */ 3775 WGPU_EXPORT WGPUStatus wgpuSurfaceGetCapabilities(WGPUSurface surface, WGPUAdapter adapter, WGPUSurfaceCapabilities * capabilities) WGPU_FUNCTION_ATTRIBUTE; 3776 /** 3777 * Returns the @ref WGPUTexture to render to `surface` this frame along with metadata on the frame. 3778 * Returns `NULL` and @ref WGPUSurfaceGetCurrentTextureStatus_Error if the surface is not configured. 3779 * 3780 * See @ref Surface-Presenting for more details. 3781 * 3782 * @param surfaceTexture 3783 * The structure to fill the @ref WGPUTexture and metadata in. 3784 */ 3785 WGPU_EXPORT void wgpuSurfaceGetCurrentTexture(WGPUSurface surface, WGPUSurfaceTexture * surfaceTexture) WGPU_FUNCTION_ATTRIBUTE; 3786 /** 3787 * Shows `surface`'s current texture to the user. 3788 * See @ref Surface-Presenting for more details. 3789 * 3790 * @returns 3791 * Returns @ref WGPUStatus_Error if the surface doesn't have a current texture. 3792 */ 3793 WGPU_EXPORT WGPUStatus wgpuSurfacePresent(WGPUSurface surface) WGPU_FUNCTION_ATTRIBUTE; 3794 /** 3795 * Modifies the label used to refer to `surface`. 3796 * 3797 * @param label 3798 * The new label. 3799 */ 3800 WGPU_EXPORT void wgpuSurfaceSetLabel(WGPUSurface surface, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE; 3801 /** 3802 * Removes the configuration for `surface`. 3803 * See @ref Surface-Configuration for more details. 3804 */ 3805 WGPU_EXPORT void wgpuSurfaceUnconfigure(WGPUSurface surface) WGPU_FUNCTION_ATTRIBUTE; 3806 WGPU_EXPORT void wgpuSurfaceAddRef(WGPUSurface surface) WGPU_FUNCTION_ATTRIBUTE; 3807 WGPU_EXPORT void wgpuSurfaceRelease(WGPUSurface surface) WGPU_FUNCTION_ATTRIBUTE; 3808 /** @} */ 3809 3810 3811 3812 /** 3813 * \defgroup WGPUSurfaceCapabilitiesMethods WGPUSurfaceCapabilities methods 3814 * \brief Functions whose first argument has type WGPUSurfaceCapabilities. 3815 * 3816 * @{ 3817 */ 3818 /** 3819 * Frees array members of WGPUSurfaceCapabilities which were allocated by the API. 3820 */ 3821 WGPU_EXPORT void wgpuSurfaceCapabilitiesFreeMembers(WGPUSurfaceCapabilities surfaceCapabilities) WGPU_FUNCTION_ATTRIBUTE; 3822 /** @} */ 3823 3824 3825 3826 /** 3827 * \defgroup WGPUTextureMethods WGPUTexture methods 3828 * \brief Functions whose first argument has type WGPUTexture. 3829 * 3830 * @{ 3831 */ 3832 WGPU_EXPORT WGPUTextureView wgpuTextureCreateView(WGPUTexture texture, WGPU_NULLABLE WGPUTextureViewDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; 3833 WGPU_EXPORT void wgpuTextureDestroy(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE; 3834 WGPU_EXPORT uint32_t wgpuTextureGetDepthOrArrayLayers(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE; 3835 WGPU_EXPORT WGPUTextureDimension wgpuTextureGetDimension(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE; 3836 WGPU_EXPORT WGPUTextureFormat wgpuTextureGetFormat(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE; 3837 WGPU_EXPORT uint32_t wgpuTextureGetHeight(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE; 3838 WGPU_EXPORT uint32_t wgpuTextureGetMipLevelCount(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE; 3839 WGPU_EXPORT uint32_t wgpuTextureGetSampleCount(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE; 3840 WGPU_EXPORT WGPUTextureUsage wgpuTextureGetUsage(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE; 3841 WGPU_EXPORT uint32_t wgpuTextureGetWidth(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE; 3842 WGPU_EXPORT void wgpuTextureSetLabel(WGPUTexture texture, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE; 3843 WGPU_EXPORT void wgpuTextureAddRef(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE; 3844 WGPU_EXPORT void wgpuTextureRelease(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE; 3845 /** @} */ 3846 3847 3848 3849 /** 3850 * \defgroup WGPUTextureViewMethods WGPUTextureView methods 3851 * \brief Functions whose first argument has type WGPUTextureView. 3852 * 3853 * @{ 3854 */ 3855 WGPU_EXPORT void wgpuTextureViewSetLabel(WGPUTextureView textureView, WGPUStringView label) WGPU_FUNCTION_ATTRIBUTE; 3856 WGPU_EXPORT void wgpuTextureViewAddRef(WGPUTextureView textureView) WGPU_FUNCTION_ATTRIBUTE; 3857 WGPU_EXPORT void wgpuTextureViewRelease(WGPUTextureView textureView) WGPU_FUNCTION_ATTRIBUTE; 3858 /** @} */ 3859 3860 3861 /** @} */ 3862 3863 #endif // !defined(WGPU_SKIP_DECLARATIONS) 3864 3865 #ifdef __cplusplus 3866 } // extern "C" 3867 #endif 3868 3869 #endif // WEBGPU_H_