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