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