| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215 |
- // Based on
- // https://github.com/webgpu-native/webgpu-headers/blob/main/webgpu.h
- // Copyright 2019-2023 WebGPU-Native developers
- // SPDX-License-Identifier: BSD-3-Clause
- #pragma once
- #define WGPU_NULLABLE
- #include <stdint.h>
- #include <stddef.h>
- #include <math.h>
- typedef struct WGPUStringView {
- WGPU_NULLABLE char const * data;
- size_t length;
- } WGPUStringView;
- typedef uint64_t WGPUFlags;
- typedef uint32_t WGPUBool;
- typedef struct WGPUAdapterImpl* WGPUAdapter;
- typedef struct WGPUBindGroupImpl* WGPUBindGroup;
- typedef struct WGPUBindGroupLayoutImpl* WGPUBindGroupLayout;
- typedef struct WGPUBufferImpl* WGPUBuffer;
- typedef struct WGPUCommandBufferImpl* WGPUCommandBuffer;
- typedef struct WGPUCommandEncoderImpl* WGPUCommandEncoder;
- typedef struct WGPUDeviceImpl* WGPUDevice;
- typedef struct WGPUInstanceImpl* WGPUInstance;
- typedef struct WGPUPipelineLayoutImpl* WGPUPipelineLayout;
- typedef struct WGPUQuerySetImpl* WGPUQuerySet;
- typedef struct WGPUQueueImpl* WGPUQueue;
- typedef struct WGPURenderPassEncoderImpl* WGPURenderPassEncoder;
- typedef struct WGPURenderPipelineImpl* WGPURenderPipeline;
- typedef struct WGPUSamplerImpl* WGPUSampler;
- typedef struct WGPUShaderModuleImpl* WGPUShaderModule;
- typedef struct WGPUSurfaceImpl* WGPUSurface;
- typedef struct WGPUTextureImpl* WGPUTexture;
- typedef struct WGPUTextureViewImpl* WGPUTextureView;
- struct WGPUAdapterInfo;
- struct WGPUBindGroupEntry;
- struct WGPUBlendComponent;
- struct WGPUBufferBindingLayout;
- struct WGPUBufferDescriptor;
- struct WGPUColor;
- struct WGPUCommandBufferDescriptor;
- struct WGPUCommandEncoderDescriptor;
- struct WGPUConstantEntry;
- struct WGPUExtent3D;
- struct WGPUFuture;
- struct WGPUInstanceLimits;
- struct WGPULimits;
- struct WGPUMultisampleState;
- struct WGPUOrigin3D;
- struct WGPUPassTimestampWrites;
- struct WGPUPipelineLayoutDescriptor;
- struct WGPUPrimitiveState;
- struct WGPUQueueDescriptor;
- struct WGPURenderPassDepthStencilAttachment;
- struct WGPUSamplerBindingLayout;
- struct WGPUSamplerDescriptor;
- struct WGPUShaderSourceWGSL;
- struct WGPUStencilFaceState;
- struct WGPUStorageTextureBindingLayout;
- struct WGPUSurfaceCapabilities;
- struct WGPUSurfaceTexture;
- struct WGPUTexelCopyBufferLayout;
- struct WGPUTextureBindingLayout;
- struct WGPUTextureViewDescriptor;
- struct WGPUVertexAttribute;
- struct WGPUBindGroupDescriptor;
- struct WGPUBindGroupLayoutEntry;
- struct WGPUBlendState;
- struct WGPUDepthStencilState;
- struct WGPUDeviceDescriptor;
- struct WGPUInstanceDescriptor;
- struct WGPURenderPassColorAttachment;
- struct WGPURequestAdapterOptions;
- struct WGPUShaderModuleDescriptor;
- struct WGPUTexelCopyBufferInfo;
- struct WGPUTexelCopyTextureInfo;
- struct WGPUTextureDescriptor;
- struct WGPUVertexBufferLayout;
- struct WGPUBindGroupLayoutDescriptor;
- struct WGPUColorTargetState;
- struct WGPURenderPassDescriptor;
- struct WGPUVertexState;
- struct WGPUFragmentState;
- struct WGPURenderPipelineDescriptor;
- struct WGPUDeviceLostCallbackInfo;
- struct WGPURequestAdapterCallbackInfo;
- struct WGPURequestDeviceCallbackInfo;
- struct WGPUUncapturedErrorCallbackInfo;
- typedef enum WGPUAdapterType {
- WGPUAdapterType_DiscreteGPU = 0x00000001,
- WGPUAdapterType_IntegratedGPU = 0x00000002,
- WGPUAdapterType_CPU = 0x00000003,
- WGPUAdapterType_Unknown = 0x00000004,
- WGPUAdapterType_Force32 = 0x7FFFFFFF
- } WGPUAdapterType;
- typedef enum WGPUAddressMode {
- WGPUAddressMode_Undefined = 0x00000000,
- WGPUAddressMode_ClampToEdge = 0x00000001,
- WGPUAddressMode_Repeat = 0x00000002,
- WGPUAddressMode_MirrorRepeat = 0x00000003,
- WGPUAddressMode_Force32 = 0x7FFFFFFF
- } WGPUAddressMode;
- typedef enum WGPUBackendType {
- WGPUBackendType_Undefined = 0x00000000,
- WGPUBackendType_Null = 0x00000001,
- WGPUBackendType_WebGPU = 0x00000002,
- WGPUBackendType_D3D11 = 0x00000003,
- WGPUBackendType_D3D12 = 0x00000004,
- WGPUBackendType_Metal = 0x00000005,
- WGPUBackendType_Vulkan = 0x00000006,
- WGPUBackendType_OpenGL = 0x00000007,
- WGPUBackendType_OpenGLES = 0x00000008,
- WGPUBackendType_Force32 = 0x7FFFFFFF
- } WGPUBackendType;
- typedef enum WGPUBlendFactor {
- WGPUBlendFactor_Undefined = 0x00000000,
- WGPUBlendFactor_Zero = 0x00000001,
- WGPUBlendFactor_One = 0x00000002,
- WGPUBlendFactor_Src = 0x00000003,
- WGPUBlendFactor_OneMinusSrc = 0x00000004,
- WGPUBlendFactor_SrcAlpha = 0x00000005,
- WGPUBlendFactor_OneMinusSrcAlpha = 0x00000006,
- WGPUBlendFactor_Dst = 0x00000007,
- WGPUBlendFactor_OneMinusDst = 0x00000008,
- WGPUBlendFactor_DstAlpha = 0x00000009,
- WGPUBlendFactor_OneMinusDstAlpha = 0x0000000A,
- WGPUBlendFactor_SrcAlphaSaturated = 0x0000000B,
- WGPUBlendFactor_Constant = 0x0000000C,
- WGPUBlendFactor_OneMinusConstant = 0x0000000D,
- WGPUBlendFactor_Src1 = 0x0000000E,
- WGPUBlendFactor_OneMinusSrc1 = 0x0000000F,
- WGPUBlendFactor_Src1Alpha = 0x00000010,
- WGPUBlendFactor_OneMinusSrc1Alpha = 0x00000011,
- WGPUBlendFactor_Force32 = 0x7FFFFFFF
- } WGPUBlendFactor;
- typedef enum WGPUBlendOperation {
- WGPUBlendOperation_Undefined = 0x00000000,
- WGPUBlendOperation_Add = 0x00000001,
- WGPUBlendOperation_Subtract = 0x00000002,
- WGPUBlendOperation_ReverseSubtract = 0x00000003,
- WGPUBlendOperation_Min = 0x00000004,
- WGPUBlendOperation_Max = 0x00000005,
- WGPUBlendOperation_Force32 = 0x7FFFFFFF
- } WGPUBlendOperation;
- typedef enum WGPUBufferBindingType {
- WGPUBufferBindingType_BindingNotUsed = 0x00000000,
- WGPUBufferBindingType_Undefined = 0x00000001,
- WGPUBufferBindingType_Uniform = 0x00000002,
- WGPUBufferBindingType_Storage = 0x00000003,
- WGPUBufferBindingType_ReadOnlyStorage = 0x00000004,
- WGPUBufferBindingType_Force32 = 0x7FFFFFFF
- } WGPUBufferBindingType;
- typedef enum WGPUCallbackMode {
- WGPUCallbackMode_WaitAnyOnly = 0x00000001,
- WGPUCallbackMode_AllowProcessEvents = 0x00000002,
- WGPUCallbackMode_AllowSpontaneous = 0x00000003,
- WGPUCallbackMode_Force32 = 0x7FFFFFFF
- } WGPUCallbackMode;
- typedef enum WGPUCompareFunction {
- WGPUCompareFunction_Undefined = 0x00000000,
- WGPUCompareFunction_Never = 0x00000001,
- WGPUCompareFunction_Less = 0x00000002,
- WGPUCompareFunction_Equal = 0x00000003,
- WGPUCompareFunction_LessEqual = 0x00000004,
- WGPUCompareFunction_Greater = 0x00000005,
- WGPUCompareFunction_NotEqual = 0x00000006,
- WGPUCompareFunction_GreaterEqual = 0x00000007,
- WGPUCompareFunction_Always = 0x00000008,
- WGPUCompareFunction_Force32 = 0x7FFFFFFF
- } WGPUCompareFunction;
- typedef enum WGPUCompositeAlphaMode {
- WGPUCompositeAlphaMode_Auto = 0x00000000,
- WGPUCompositeAlphaMode_Opaque = 0x00000001,
- WGPUCompositeAlphaMode_Premultiplied = 0x00000002,
- WGPUCompositeAlphaMode_Unpremultiplied = 0x00000003,
- WGPUCompositeAlphaMode_Inherit = 0x00000004,
- WGPUCompositeAlphaMode_Force32 = 0x7FFFFFFF
- } WGPUCompositeAlphaMode;
- typedef enum WGPUCullMode {
- WGPUCullMode_Undefined = 0x00000000,
- WGPUCullMode_None = 0x00000001,
- WGPUCullMode_Front = 0x00000002,
- WGPUCullMode_Back = 0x00000003,
- WGPUCullMode_Force32 = 0x7FFFFFFF
- } WGPUCullMode;
- typedef enum WGPUDeviceLostReason {
- WGPUDeviceLostReason_Unknown = 0x00000001,
- WGPUDeviceLostReason_Destroyed = 0x00000002,
- WGPUDeviceLostReason_CallbackCancelled = 0x00000003,
- WGPUDeviceLostReason_FailedCreation = 0x00000004,
- WGPUDeviceLostReason_Force32 = 0x7FFFFFFF
- } WGPUDeviceLostReason;
- typedef enum WGPUErrorType {
- WGPUErrorType_NoError = 0x00000001,
- WGPUErrorType_Validation = 0x00000002,
- WGPUErrorType_OutOfMemory = 0x00000003,
- WGPUErrorType_Internal = 0x00000004,
- WGPUErrorType_Unknown = 0x00000005,
- WGPUErrorType_Force32 = 0x7FFFFFFF
- } WGPUErrorType;
- typedef enum WGPUFeatureLevel {
- WGPUFeatureLevel_Undefined = 0x00000000,
- WGPUFeatureLevel_Compatibility = 0x00000001,
- WGPUFeatureLevel_Core = 0x00000002,
- WGPUFeatureLevel_Force32 = 0x7FFFFFFF
- } WGPUFeatureLevel;
- typedef enum WGPUFeatureName {
- WGPUFeatureName_CoreFeaturesAndLimits = 0x00000001,
- WGPUFeatureName_DepthClipControl = 0x00000002,
- WGPUFeatureName_Depth32FloatStencil8 = 0x00000003,
- WGPUFeatureName_TextureCompressionBC = 0x00000004,
- WGPUFeatureName_TextureCompressionBCSliced3D = 0x00000005,
- WGPUFeatureName_TextureCompressionETC2 = 0x00000006,
- WGPUFeatureName_TextureCompressionASTC = 0x00000007,
- WGPUFeatureName_TextureCompressionASTCSliced3D = 0x00000008,
- WGPUFeatureName_TimestampQuery = 0x00000009,
- WGPUFeatureName_IndirectFirstInstance = 0x0000000A,
- WGPUFeatureName_ShaderF16 = 0x0000000B,
- WGPUFeatureName_RG11B10UfloatRenderable = 0x0000000C,
- WGPUFeatureName_BGRA8UnormStorage = 0x0000000D,
- WGPUFeatureName_Float32Filterable = 0x0000000E,
- WGPUFeatureName_Float32Blendable = 0x0000000F,
- WGPUFeatureName_ClipDistances = 0x00000010,
- WGPUFeatureName_DualSourceBlending = 0x00000011,
- WGPUFeatureName_Subgroups = 0x00000012,
- WGPUFeatureName_TextureFormatsTier1 = 0x00000013,
- WGPUFeatureName_TextureFormatsTier2 = 0x00000014,
- WGPUFeatureName_PrimitiveIndex = 0x00000015,
- WGPUFeatureName_TextureComponentSwizzle = 0x00000016,
- WGPUFeatureName_Force32 = 0x7FFFFFFF
- } WGPUFeatureName;
- typedef enum WGPUFilterMode {
- WGPUFilterMode_Undefined = 0x00000000,
- WGPUFilterMode_Nearest = 0x00000001,
- WGPUFilterMode_Linear = 0x00000002,
- WGPUFilterMode_Force32 = 0x7FFFFFFF
- } WGPUFilterMode;
- typedef enum WGPUFrontFace {
- WGPUFrontFace_Undefined = 0x00000000,
- WGPUFrontFace_CCW = 0x00000001,
- WGPUFrontFace_CW = 0x00000002,
- WGPUFrontFace_Force32 = 0x7FFFFFFF
- } WGPUFrontFace;
- typedef enum WGPUIndexFormat {
- WGPUIndexFormat_Undefined = 0x00000000,
- WGPUIndexFormat_Uint16 = 0x00000001,
- WGPUIndexFormat_Uint32 = 0x00000002,
- WGPUIndexFormat_Force32 = 0x7FFFFFFF
- } WGPUIndexFormat;
- typedef enum WGPUInstanceFeatureName {
- WGPUInstanceFeatureName_TimedWaitAny = 0x00000001,
- WGPUInstanceFeatureName_ShaderSourceSPIRV = 0x00000002,
- WGPUInstanceFeatureName_MultipleDevicesPerAdapter = 0x00000003,
- WGPUInstanceFeatureName_Force32 = 0x7FFFFFFF
- } WGPUInstanceFeatureName;
- typedef enum WGPULoadOp {
- WGPULoadOp_Undefined = 0x00000000,
- WGPULoadOp_Load = 0x00000001,
- WGPULoadOp_Clear = 0x00000002,
- WGPULoadOp_Force32 = 0x7FFFFFFF
- } WGPULoadOp;
- typedef enum WGPUMipmapFilterMode {
- WGPUMipmapFilterMode_Undefined = 0x00000000,
- WGPUMipmapFilterMode_Nearest = 0x00000001,
- WGPUMipmapFilterMode_Linear = 0x00000002,
- WGPUMipmapFilterMode_Force32 = 0x7FFFFFFF
- } WGPUMipmapFilterMode;
- typedef enum WGPUOptionalBool {
- WGPUOptionalBool_False = 0x00000000,
- WGPUOptionalBool_True = 0x00000001,
- WGPUOptionalBool_Undefined = 0x00000002,
- WGPUOptionalBool_Force32 = 0x7FFFFFFF
- } WGPUOptionalBool;
- typedef enum WGPUPowerPreference {
- WGPUPowerPreference_Undefined = 0x00000000,
- WGPUPowerPreference_LowPower = 0x00000001,
- WGPUPowerPreference_HighPerformance = 0x00000002,
- WGPUPowerPreference_Force32 = 0x7FFFFFFF
- } WGPUPowerPreference;
- typedef enum WGPUPresentMode {
- WGPUPresentMode_Undefined = 0x00000000,
- WGPUPresentMode_Fifo = 0x00000001,
- WGPUPresentMode_FifoRelaxed = 0x00000002,
- WGPUPresentMode_Immediate = 0x00000003,
- WGPUPresentMode_Mailbox = 0x00000004,
- WGPUPresentMode_Force32 = 0x7FFFFFFF
- } WGPUPresentMode;
- typedef enum WGPUPrimitiveTopology {
- WGPUPrimitiveTopology_Undefined = 0x00000000,
- WGPUPrimitiveTopology_PointList = 0x00000001,
- WGPUPrimitiveTopology_LineList = 0x00000002,
- WGPUPrimitiveTopology_LineStrip = 0x00000003,
- WGPUPrimitiveTopology_TriangleList = 0x00000004,
- WGPUPrimitiveTopology_TriangleStrip = 0x00000005,
- WGPUPrimitiveTopology_Force32 = 0x7FFFFFFF
- } WGPUPrimitiveTopology;
- typedef enum WGPUQueueWorkDoneStatus {
- WGPUQueueWorkDoneStatus_Success = 0x00000001,
- WGPUQueueWorkDoneStatus_CallbackCancelled = 0x00000002,
- WGPUQueueWorkDoneStatus_Error = 0x00000003,
- WGPUQueueWorkDoneStatus_Force32 = 0x7FFFFFFF
- } WGPUQueueWorkDoneStatus;
- typedef enum WGPURequestAdapterStatus {
- WGPURequestAdapterStatus_Success = 0x00000001,
- WGPURequestAdapterStatus_CallbackCancelled = 0x00000002,
- WGPURequestAdapterStatus_Unavailable = 0x00000003,
- WGPURequestAdapterStatus_Error = 0x00000004,
- WGPURequestAdapterStatus_Force32 = 0x7FFFFFFF
- } WGPURequestAdapterStatus;
- typedef enum WGPURequestDeviceStatus {
- WGPURequestDeviceStatus_Success = 0x00000001,
- WGPURequestDeviceStatus_CallbackCancelled = 0x00000002,
- WGPURequestDeviceStatus_Error = 0x00000003,
- WGPURequestDeviceStatus_Force32 = 0x7FFFFFFF
- } WGPURequestDeviceStatus;
- typedef enum WGPUSamplerBindingType {
- WGPUSamplerBindingType_BindingNotUsed = 0x00000000,
- WGPUSamplerBindingType_Undefined = 0x00000001,
- WGPUSamplerBindingType_Filtering = 0x00000002,
- WGPUSamplerBindingType_NonFiltering = 0x00000003,
- WGPUSamplerBindingType_Comparison = 0x00000004,
- WGPUSamplerBindingType_Force32 = 0x7FFFFFFF
- } WGPUSamplerBindingType;
- typedef enum WGPUStatus {
- WGPUStatus_Success = 0x00000001,
- WGPUStatus_Error = 0x00000002,
- WGPUStatus_Force32 = 0x7FFFFFFF
- } WGPUStatus;
- typedef enum WGPUStencilOperation {
- WGPUStencilOperation_Undefined = 0x00000000,
- WGPUStencilOperation_Keep = 0x00000001,
- WGPUStencilOperation_Zero = 0x00000002,
- WGPUStencilOperation_Replace = 0x00000003,
- WGPUStencilOperation_Invert = 0x00000004,
- WGPUStencilOperation_IncrementClamp = 0x00000005,
- WGPUStencilOperation_DecrementClamp = 0x00000006,
- WGPUStencilOperation_IncrementWrap = 0x00000007,
- WGPUStencilOperation_DecrementWrap = 0x00000008,
- WGPUStencilOperation_Force32 = 0x7FFFFFFF
- } WGPUStencilOperation;
- typedef enum WGPUStorageTextureAccess {
- WGPUStorageTextureAccess_BindingNotUsed = 0x00000000,
- WGPUStorageTextureAccess_Undefined = 0x00000001,
- WGPUStorageTextureAccess_WriteOnly = 0x00000002,
- WGPUStorageTextureAccess_ReadOnly = 0x00000003,
- WGPUStorageTextureAccess_ReadWrite = 0x00000004,
- WGPUStorageTextureAccess_Force32 = 0x7FFFFFFF
- } WGPUStorageTextureAccess;
- typedef enum WGPUStoreOp {
- WGPUStoreOp_Undefined = 0x00000000,
- WGPUStoreOp_Store = 0x00000001,
- WGPUStoreOp_Discard = 0x00000002,
- WGPUStoreOp_Force32 = 0x7FFFFFFF
- } WGPUStoreOp;
- typedef enum WGPUSType {
- WGPUSType_ShaderSourceSPIRV = 0x00000001,
- WGPUSType_ShaderSourceWGSL = 0x00000002,
- WGPUSType_RenderPassMaxDrawCount = 0x00000003,
- WGPUSType_SurfaceSourceMetalLayer = 0x00000004,
- WGPUSType_SurfaceSourceWindowsHWND = 0x00000005,
- WGPUSType_SurfaceSourceXlibWindow = 0x00000006,
- WGPUSType_SurfaceSourceWaylandSurface = 0x00000007,
- WGPUSType_SurfaceSourceAndroidNativeWindow = 0x00000008,
- WGPUSType_SurfaceSourceXCBWindow = 0x00000009,
- WGPUSType_SurfaceColorManagement = 0x0000000A,
- WGPUSType_RequestAdapterWebXROptions = 0x0000000B,
- WGPUSType_Force32 = 0x7FFFFFFF
- } WGPUSType;
- typedef enum WGPUSurfaceGetCurrentTextureStatus {
- WGPUSurfaceGetCurrentTextureStatus_SuccessOptimal = 0x00000001,
- WGPUSurfaceGetCurrentTextureStatus_SuccessSuboptimal = 0x00000002,
- WGPUSurfaceGetCurrentTextureStatus_Timeout = 0x00000003,
- WGPUSurfaceGetCurrentTextureStatus_Outdated = 0x00000004,
- WGPUSurfaceGetCurrentTextureStatus_Lost = 0x00000005,
- WGPUSurfaceGetCurrentTextureStatus_Error = 0x00000006,
- WGPUSurfaceGetCurrentTextureStatus_Force32 = 0x7FFFFFFF
- } WGPUSurfaceGetCurrentTextureStatus;
- typedef enum WGPUTextureAspect {
- WGPUTextureAspect_Undefined = 0x00000000,
- WGPUTextureAspect_All = 0x00000001,
- WGPUTextureAspect_StencilOnly = 0x00000002,
- WGPUTextureAspect_DepthOnly = 0x00000003,
- WGPUTextureAspect_Force32 = 0x7FFFFFFF
- } WGPUTextureAspect;
- typedef enum WGPUTextureDimension {
- WGPUTextureDimension_Undefined = 0x00000000,
- WGPUTextureDimension_1D = 0x00000001,
- WGPUTextureDimension_2D = 0x00000002,
- WGPUTextureDimension_3D = 0x00000003,
- WGPUTextureDimension_Force32 = 0x7FFFFFFF
- } WGPUTextureDimension;
- typedef enum WGPUTextureFormat {
- WGPUTextureFormat_Undefined = 0x00000000,
- WGPUTextureFormat_R8Unorm = 0x00000001,
- WGPUTextureFormat_R8Snorm = 0x00000002,
- WGPUTextureFormat_R8Uint = 0x00000003,
- WGPUTextureFormat_R8Sint = 0x00000004,
- WGPUTextureFormat_R16Unorm = 0x00000005,
- WGPUTextureFormat_R16Snorm = 0x00000006,
- WGPUTextureFormat_R16Uint = 0x00000007,
- WGPUTextureFormat_R16Sint = 0x00000008,
- WGPUTextureFormat_R16Float = 0x00000009,
- WGPUTextureFormat_RG8Unorm = 0x0000000A,
- WGPUTextureFormat_RG8Snorm = 0x0000000B,
- WGPUTextureFormat_RG8Uint = 0x0000000C,
- WGPUTextureFormat_RG8Sint = 0x0000000D,
- WGPUTextureFormat_R32Float = 0x0000000E,
- WGPUTextureFormat_R32Uint = 0x0000000F,
- WGPUTextureFormat_R32Sint = 0x00000010,
- WGPUTextureFormat_RG16Unorm = 0x00000011,
- WGPUTextureFormat_RG16Snorm = 0x00000012,
- WGPUTextureFormat_RG16Uint = 0x00000013,
- WGPUTextureFormat_RG16Sint = 0x00000014,
- WGPUTextureFormat_RG16Float = 0x00000015,
- WGPUTextureFormat_RGBA8Unorm = 0x00000016,
- WGPUTextureFormat_RGBA8UnormSrgb = 0x00000017,
- WGPUTextureFormat_RGBA8Snorm = 0x00000018,
- WGPUTextureFormat_RGBA8Uint = 0x00000019,
- WGPUTextureFormat_RGBA8Sint = 0x0000001A,
- WGPUTextureFormat_BGRA8Unorm = 0x0000001B,
- WGPUTextureFormat_BGRA8UnormSrgb = 0x0000001C,
- WGPUTextureFormat_RGB10A2Uint = 0x0000001D,
- WGPUTextureFormat_RGB10A2Unorm = 0x0000001E,
- WGPUTextureFormat_RG11B10Ufloat = 0x0000001F,
- WGPUTextureFormat_RGB9E5Ufloat = 0x00000020,
- WGPUTextureFormat_RG32Float = 0x00000021,
- WGPUTextureFormat_RG32Uint = 0x00000022,
- WGPUTextureFormat_RG32Sint = 0x00000023,
- WGPUTextureFormat_RGBA16Unorm = 0x00000024,
- WGPUTextureFormat_RGBA16Snorm = 0x00000025,
- WGPUTextureFormat_RGBA16Uint = 0x00000026,
- WGPUTextureFormat_RGBA16Sint = 0x00000027,
- WGPUTextureFormat_RGBA16Float = 0x00000028,
- WGPUTextureFormat_RGBA32Float = 0x00000029,
- WGPUTextureFormat_RGBA32Uint = 0x0000002A,
- WGPUTextureFormat_RGBA32Sint = 0x0000002B,
- WGPUTextureFormat_Stencil8 = 0x0000002C,
- WGPUTextureFormat_Depth16Unorm = 0x0000002D,
- WGPUTextureFormat_Depth24Plus = 0x0000002E,
- WGPUTextureFormat_Depth24PlusStencil8 = 0x0000002F,
- WGPUTextureFormat_Depth32Float = 0x00000030,
- WGPUTextureFormat_Depth32FloatStencil8 = 0x00000031,
- WGPUTextureFormat_BC1RGBAUnorm = 0x00000032,
- WGPUTextureFormat_BC1RGBAUnormSrgb = 0x00000033,
- WGPUTextureFormat_BC2RGBAUnorm = 0x00000034,
- WGPUTextureFormat_BC2RGBAUnormSrgb = 0x00000035,
- WGPUTextureFormat_BC3RGBAUnorm = 0x00000036,
- WGPUTextureFormat_BC3RGBAUnormSrgb = 0x00000037,
- WGPUTextureFormat_BC4RUnorm = 0x00000038,
- WGPUTextureFormat_BC4RSnorm = 0x00000039,
- WGPUTextureFormat_BC5RGUnorm = 0x0000003A,
- WGPUTextureFormat_BC5RGSnorm = 0x0000003B,
- WGPUTextureFormat_BC6HRGBUfloat = 0x0000003C,
- WGPUTextureFormat_BC6HRGBFloat = 0x0000003D,
- WGPUTextureFormat_BC7RGBAUnorm = 0x0000003E,
- WGPUTextureFormat_BC7RGBAUnormSrgb = 0x0000003F,
- WGPUTextureFormat_ETC2RGB8Unorm = 0x00000040,
- WGPUTextureFormat_ETC2RGB8UnormSrgb = 0x00000041,
- WGPUTextureFormat_ETC2RGB8A1Unorm = 0x00000042,
- WGPUTextureFormat_ETC2RGB8A1UnormSrgb = 0x00000043,
- WGPUTextureFormat_ETC2RGBA8Unorm = 0x00000044,
- WGPUTextureFormat_ETC2RGBA8UnormSrgb = 0x00000045,
- WGPUTextureFormat_EACR11Unorm = 0x00000046,
- WGPUTextureFormat_EACR11Snorm = 0x00000047,
- WGPUTextureFormat_EACRG11Unorm = 0x00000048,
- WGPUTextureFormat_EACRG11Snorm = 0x00000049,
- WGPUTextureFormat_ASTC4x4Unorm = 0x0000004A,
- WGPUTextureFormat_ASTC4x4UnormSrgb = 0x0000004B,
- WGPUTextureFormat_ASTC5x4Unorm = 0x0000004C,
- WGPUTextureFormat_ASTC5x4UnormSrgb = 0x0000004D,
- WGPUTextureFormat_ASTC5x5Unorm = 0x0000004E,
- WGPUTextureFormat_ASTC5x5UnormSrgb = 0x0000004F,
- WGPUTextureFormat_ASTC6x5Unorm = 0x00000050,
- WGPUTextureFormat_ASTC6x5UnormSrgb = 0x00000051,
- WGPUTextureFormat_ASTC6x6Unorm = 0x00000052,
- WGPUTextureFormat_ASTC6x6UnormSrgb = 0x00000053,
- WGPUTextureFormat_ASTC8x5Unorm = 0x00000054,
- WGPUTextureFormat_ASTC8x5UnormSrgb = 0x00000055,
- WGPUTextureFormat_ASTC8x6Unorm = 0x00000056,
- WGPUTextureFormat_ASTC8x6UnormSrgb = 0x00000057,
- WGPUTextureFormat_ASTC8x8Unorm = 0x00000058,
- WGPUTextureFormat_ASTC8x8UnormSrgb = 0x00000059,
- WGPUTextureFormat_ASTC10x5Unorm = 0x0000005A,
- WGPUTextureFormat_ASTC10x5UnormSrgb = 0x0000005B,
- WGPUTextureFormat_ASTC10x6Unorm = 0x0000005C,
- WGPUTextureFormat_ASTC10x6UnormSrgb = 0x0000005D,
- WGPUTextureFormat_ASTC10x8Unorm = 0x0000005E,
- WGPUTextureFormat_ASTC10x8UnormSrgb = 0x0000005F,
- WGPUTextureFormat_ASTC10x10Unorm = 0x00000060,
- WGPUTextureFormat_ASTC10x10UnormSrgb = 0x00000061,
- WGPUTextureFormat_ASTC12x10Unorm = 0x00000062,
- WGPUTextureFormat_ASTC12x10UnormSrgb = 0x00000063,
- WGPUTextureFormat_ASTC12x12Unorm = 0x00000064,
- WGPUTextureFormat_ASTC12x12UnormSrgb = 0x00000065,
- WGPUTextureFormat_Force32 = 0x7FFFFFFF
- } WGPUTextureFormat;
- typedef enum WGPUTextureSampleType {
- WGPUTextureSampleType_BindingNotUsed = 0x00000000,
- WGPUTextureSampleType_Undefined = 0x00000001,
- WGPUTextureSampleType_Float = 0x00000002,
- WGPUTextureSampleType_UnfilterableFloat = 0x00000003,
- WGPUTextureSampleType_Depth = 0x00000004,
- WGPUTextureSampleType_Sint = 0x00000005,
- WGPUTextureSampleType_Uint = 0x00000006,
- WGPUTextureSampleType_Force32 = 0x7FFFFFFF
- } WGPUTextureSampleType;
- typedef enum WGPUTextureViewDimension {
- WGPUTextureViewDimension_Undefined = 0x00000000,
- WGPUTextureViewDimension_1D = 0x00000001,
- WGPUTextureViewDimension_2D = 0x00000002,
- WGPUTextureViewDimension_2DArray = 0x00000003,
- WGPUTextureViewDimension_Cube = 0x00000004,
- WGPUTextureViewDimension_CubeArray = 0x00000005,
- WGPUTextureViewDimension_3D = 0x00000006,
- WGPUTextureViewDimension_Force32 = 0x7FFFFFFF
- } WGPUTextureViewDimension;
- typedef enum WGPUVertexFormat {
- WGPUVertexFormat_Uint8 = 0x00000001,
- WGPUVertexFormat_Uint8x2 = 0x00000002,
- WGPUVertexFormat_Uint8x4 = 0x00000003,
- WGPUVertexFormat_Sint8 = 0x00000004,
- WGPUVertexFormat_Sint8x2 = 0x00000005,
- WGPUVertexFormat_Sint8x4 = 0x00000006,
- WGPUVertexFormat_Unorm8 = 0x00000007,
- WGPUVertexFormat_Unorm8x2 = 0x00000008,
- WGPUVertexFormat_Unorm8x4 = 0x00000009,
- WGPUVertexFormat_Snorm8 = 0x0000000A,
- WGPUVertexFormat_Snorm8x2 = 0x0000000B,
- WGPUVertexFormat_Snorm8x4 = 0x0000000C,
- WGPUVertexFormat_Uint16 = 0x0000000D,
- WGPUVertexFormat_Uint16x2 = 0x0000000E,
- WGPUVertexFormat_Uint16x4 = 0x0000000F,
- WGPUVertexFormat_Sint16 = 0x00000010,
- WGPUVertexFormat_Sint16x2 = 0x00000011,
- WGPUVertexFormat_Sint16x4 = 0x00000012,
- WGPUVertexFormat_Unorm16 = 0x00000013,
- WGPUVertexFormat_Unorm16x2 = 0x00000014,
- WGPUVertexFormat_Unorm16x4 = 0x00000015,
- WGPUVertexFormat_Snorm16 = 0x00000016,
- WGPUVertexFormat_Snorm16x2 = 0x00000017,
- WGPUVertexFormat_Snorm16x4 = 0x00000018,
- WGPUVertexFormat_Float16 = 0x00000019,
- WGPUVertexFormat_Float16x2 = 0x0000001A,
- WGPUVertexFormat_Float16x4 = 0x0000001B,
- WGPUVertexFormat_Float32 = 0x0000001C,
- WGPUVertexFormat_Float32x2 = 0x0000001D,
- WGPUVertexFormat_Float32x3 = 0x0000001E,
- WGPUVertexFormat_Float32x4 = 0x0000001F,
- WGPUVertexFormat_Uint32 = 0x00000020,
- WGPUVertexFormat_Uint32x2 = 0x00000021,
- WGPUVertexFormat_Uint32x3 = 0x00000022,
- WGPUVertexFormat_Uint32x4 = 0x00000023,
- WGPUVertexFormat_Sint32 = 0x00000024,
- WGPUVertexFormat_Sint32x2 = 0x00000025,
- WGPUVertexFormat_Sint32x3 = 0x00000026,
- WGPUVertexFormat_Sint32x4 = 0x00000027,
- WGPUVertexFormat_Unorm10_10_10_2 = 0x00000028,
- WGPUVertexFormat_Unorm8x4BGRA = 0x00000029,
- WGPUVertexFormat_Force32 = 0x7FFFFFFF
- } WGPUVertexFormat;
- typedef enum WGPUVertexStepMode {
- WGPUVertexStepMode_Undefined = 0x00000000,
- WGPUVertexStepMode_Vertex = 0x00000001,
- WGPUVertexStepMode_Instance = 0x00000002,
- WGPUVertexStepMode_Force32 = 0x7FFFFFFF
- } WGPUVertexStepMode;
- typedef WGPUFlags WGPUBufferUsage;
- static const WGPUBufferUsage WGPUBufferUsage_None = 0x0000000000000000;
- static const WGPUBufferUsage WGPUBufferUsage_MapRead = 0x0000000000000001;
- static const WGPUBufferUsage WGPUBufferUsage_MapWrite = 0x0000000000000002;
- static const WGPUBufferUsage WGPUBufferUsage_CopySrc = 0x0000000000000004;
- static const WGPUBufferUsage WGPUBufferUsage_CopyDst = 0x0000000000000008;
- static const WGPUBufferUsage WGPUBufferUsage_Index = 0x0000000000000010;
- static const WGPUBufferUsage WGPUBufferUsage_Vertex = 0x0000000000000020;
- static const WGPUBufferUsage WGPUBufferUsage_Uniform = 0x0000000000000040;
- static const WGPUBufferUsage WGPUBufferUsage_Storage = 0x0000000000000080;
- static const WGPUBufferUsage WGPUBufferUsage_Indirect = 0x0000000000000100;
- static const WGPUBufferUsage WGPUBufferUsage_QueryResolve = 0x0000000000000200;
- typedef WGPUFlags WGPUColorWriteMask;
- static const WGPUColorWriteMask WGPUColorWriteMask_None = 0x0000000000000000;
- static const WGPUColorWriteMask WGPUColorWriteMask_Red = 0x0000000000000001;
- static const WGPUColorWriteMask WGPUColorWriteMask_Green = 0x0000000000000002;
- static const WGPUColorWriteMask WGPUColorWriteMask_Blue = 0x0000000000000004;
- static const WGPUColorWriteMask WGPUColorWriteMask_Alpha = 0x0000000000000008;
- static const WGPUColorWriteMask WGPUColorWriteMask_All = 0x000000000000000F;
- typedef WGPUFlags WGPUMapMode;
- static const WGPUMapMode WGPUMapMode_None = 0x0000000000000000;
- static const WGPUMapMode WGPUMapMode_Read = 0x0000000000000001;
- static const WGPUMapMode WGPUMapMode_Write = 0x0000000000000002;
- typedef WGPUFlags WGPUShaderStage;
- static const WGPUShaderStage WGPUShaderStage_None = 0x0000000000000000;
- static const WGPUShaderStage WGPUShaderStage_Vertex = 0x0000000000000001;
- static const WGPUShaderStage WGPUShaderStage_Fragment = 0x0000000000000002;
- static const WGPUShaderStage WGPUShaderStage_Compute = 0x0000000000000004;
- typedef WGPUFlags WGPUTextureUsage;
- static const WGPUTextureUsage WGPUTextureUsage_None = 0x0000000000000000;
- static const WGPUTextureUsage WGPUTextureUsage_CopySrc = 0x0000000000000001;
- static const WGPUTextureUsage WGPUTextureUsage_CopyDst = 0x0000000000000002;
- static const WGPUTextureUsage WGPUTextureUsage_TextureBinding = 0x0000000000000004;
- static const WGPUTextureUsage WGPUTextureUsage_StorageBinding = 0x0000000000000008;
- static const WGPUTextureUsage WGPUTextureUsage_RenderAttachment = 0x0000000000000010;
- typedef void (*WGPUDeviceLostCallback)(WGPUDevice const * device, WGPUDeviceLostReason reason, WGPUStringView message, WGPU_NULLABLE void* userdata1, WGPU_NULLABLE void* userdata2);
- typedef void (*WGPURequestAdapterCallback)(WGPURequestAdapterStatus status, WGPUAdapter adapter, WGPUStringView message, WGPU_NULLABLE void* userdata1, WGPU_NULLABLE void* userdata2);
- typedef void (*WGPURequestDeviceCallback)(WGPURequestDeviceStatus status, WGPUDevice device, WGPUStringView message, WGPU_NULLABLE void* userdata1, WGPU_NULLABLE void* userdata2);
- typedef void (*WGPUUncapturedErrorCallback)(WGPUDevice const * device, WGPUErrorType type, WGPUStringView message, WGPU_NULLABLE void* userdata1, WGPU_NULLABLE void* userdata2);
- typedef struct WGPUChainedStruct {
- struct WGPUChainedStruct * next;
- WGPUSType sType;
- } WGPUChainedStruct;
- typedef struct WGPUDeviceLostCallbackInfo {
- WGPUChainedStruct * nextInChain;
- WGPUCallbackMode mode;
- WGPUDeviceLostCallback callback;
- WGPU_NULLABLE void* userdata1;
- WGPU_NULLABLE void* userdata2;
- } WGPUDeviceLostCallbackInfo;
- typedef struct WGPURequestAdapterCallbackInfo {
- WGPUChainedStruct * nextInChain;
- WGPUCallbackMode mode;
- WGPURequestAdapterCallback callback;
- WGPU_NULLABLE void* userdata1;
- WGPU_NULLABLE void* userdata2;
- } WGPURequestAdapterCallbackInfo;
- typedef struct WGPURequestDeviceCallbackInfo {
- WGPUChainedStruct * nextInChain;
- WGPUCallbackMode mode;
- WGPURequestDeviceCallback callback;
- WGPU_NULLABLE void* userdata1;
- WGPU_NULLABLE void* userdata2;
- } WGPURequestDeviceCallbackInfo;
- typedef struct WGPUUncapturedErrorCallbackInfo {
- WGPUChainedStruct * nextInChain;
- WGPUUncapturedErrorCallback callback;
- WGPU_NULLABLE void* userdata1;
- WGPU_NULLABLE void* userdata2;
- } WGPUUncapturedErrorCallbackInfo;
- typedef struct WGPUAdapterInfo {
- WGPUChainedStruct * nextInChain;
- WGPUStringView vendor;
- WGPUStringView architecture;
- WGPUStringView device;
- WGPUStringView description;
- WGPUBackendType backendType;
- WGPUAdapterType adapterType;
- uint32_t vendorID;
- uint32_t deviceID;
- uint32_t subgroupMinSize;
- uint32_t subgroupMaxSize;
- } WGPUAdapterInfo;
- typedef struct WGPUBindGroupEntry {
- WGPUChainedStruct * nextInChain;
- uint32_t binding;
- WGPU_NULLABLE WGPUBuffer buffer;
- uint64_t offset;
- uint64_t size;
- WGPU_NULLABLE WGPUSampler sampler;
- WGPU_NULLABLE WGPUTextureView textureView;
- } WGPUBindGroupEntry;
- typedef struct WGPUBlendComponent {
- WGPUBlendOperation operation;
- WGPUBlendFactor srcFactor;
- WGPUBlendFactor dstFactor;
- } WGPUBlendComponent;
- typedef struct WGPUBufferBindingLayout {
- WGPUChainedStruct * nextInChain;
- WGPUBufferBindingType type;
- WGPUBool hasDynamicOffset;
- uint64_t minBindingSize;
- } WGPUBufferBindingLayout;
- typedef struct WGPUBufferDescriptor {
- WGPUChainedStruct * nextInChain;
- WGPUStringView label;
- WGPUBufferUsage usage;
- uint64_t size;
- WGPUBool mappedAtCreation;
- } WGPUBufferDescriptor;
- typedef struct WGPUColor {
- double r;
- double g;
- double b;
- double a;
- } WGPUColor;
- typedef struct WGPUCommandBufferDescriptor {
- WGPUChainedStruct * nextInChain;
- WGPUStringView label;
- } WGPUCommandBufferDescriptor;
- typedef struct WGPUCommandEncoderDescriptor {
- WGPUChainedStruct * nextInChain;
- WGPUStringView label;
- } WGPUCommandEncoderDescriptor;
- typedef struct WGPUConstantEntry {
- WGPUChainedStruct * nextInChain;
- WGPUStringView key;
- double value;
- } WGPUConstantEntry;
- typedef struct WGPUExtent3D {
- uint32_t width;
- uint32_t height;
- uint32_t depthOrArrayLayers;
- } WGPUExtent3D;
- typedef struct WGPUFuture {
- uint64_t id;
- } WGPUFuture;
- typedef struct WGPUInstanceLimits {
- WGPUChainedStruct * nextInChain;
- size_t timedWaitAnyMaxCount;
- } WGPUInstanceLimits;
- typedef struct WGPULimits {
- WGPUChainedStruct * nextInChain;
- uint32_t maxTextureDimension1D;
- uint32_t maxTextureDimension2D;
- uint32_t maxTextureDimension3D;
- uint32_t maxTextureArrayLayers;
- uint32_t maxBindGroups;
- uint32_t maxBindGroupsPlusVertexBuffers;
- uint32_t maxBindingsPerBindGroup;
- uint32_t maxDynamicUniformBuffersPerPipelineLayout;
- uint32_t maxDynamicStorageBuffersPerPipelineLayout;
- uint32_t maxSampledTexturesPerShaderStage;
- uint32_t maxSamplersPerShaderStage;
- uint32_t maxStorageBuffersPerShaderStage;
- uint32_t maxStorageTexturesPerShaderStage;
- uint32_t maxUniformBuffersPerShaderStage;
- uint64_t maxUniformBufferBindingSize;
- uint64_t maxStorageBufferBindingSize;
- uint32_t minUniformBufferOffsetAlignment;
- uint32_t minStorageBufferOffsetAlignment;
- uint32_t maxVertexBuffers;
- uint64_t maxBufferSize;
- uint32_t maxVertexAttributes;
- uint32_t maxVertexBufferArrayStride;
- uint32_t maxInterStageShaderVariables;
- uint32_t maxColorAttachments;
- uint32_t maxColorAttachmentBytesPerSample;
- uint32_t maxComputeWorkgroupStorageSize;
- uint32_t maxComputeInvocationsPerWorkgroup;
- uint32_t maxComputeWorkgroupSizeX;
- uint32_t maxComputeWorkgroupSizeY;
- uint32_t maxComputeWorkgroupSizeZ;
- uint32_t maxComputeWorkgroupsPerDimension;
- uint32_t maxImmediateSize;
- } WGPULimits;
- typedef struct WGPUMultisampleState {
- WGPUChainedStruct * nextInChain;
- uint32_t count;
- uint32_t mask;
- WGPUBool alphaToCoverageEnabled;
- } WGPUMultisampleState;
- typedef struct WGPUOrigin3D {
- uint32_t x;
- uint32_t y;
- uint32_t z;
- } WGPUOrigin3D;
- typedef struct WGPUPassTimestampWrites {
- WGPUChainedStruct * nextInChain;
- WGPUQuerySet querySet;
- uint32_t beginningOfPassWriteIndex;
- uint32_t endOfPassWriteIndex;
- } WGPUPassTimestampWrites;
- typedef struct WGPUPipelineLayoutDescriptor {
- WGPUChainedStruct * nextInChain;
- WGPUStringView label;
- size_t bindGroupLayoutCount;
- WGPUBindGroupLayout const * bindGroupLayouts;
- uint32_t immediateSize;
- } WGPUPipelineLayoutDescriptor;
- typedef struct WGPUPrimitiveState {
- WGPUChainedStruct * nextInChain;
- WGPUPrimitiveTopology topology;
- WGPUIndexFormat stripIndexFormat;
- WGPUFrontFace frontFace;
- WGPUCullMode cullMode;
- WGPUBool unclippedDepth;
- } WGPUPrimitiveState;
- typedef struct WGPUQueueDescriptor {
- WGPUChainedStruct * nextInChain;
- WGPUStringView label;
- } WGPUQueueDescriptor;
- typedef struct WGPURenderPassDepthStencilAttachment {
- WGPUChainedStruct * nextInChain;
- WGPUTextureView view;
- WGPULoadOp depthLoadOp;
- WGPUStoreOp depthStoreOp;
- float depthClearValue;
- WGPUBool depthReadOnly;
- WGPULoadOp stencilLoadOp;
- WGPUStoreOp stencilStoreOp;
- uint32_t stencilClearValue;
- WGPUBool stencilReadOnly;
- } WGPURenderPassDepthStencilAttachment;
- typedef struct WGPUSamplerBindingLayout {
- WGPUChainedStruct * nextInChain;
- WGPUSamplerBindingType type;
- } WGPUSamplerBindingLayout;
- typedef struct WGPUSamplerDescriptor {
- WGPUChainedStruct * nextInChain;
- WGPUStringView label;
- WGPUAddressMode addressModeU;
- WGPUAddressMode addressModeV;
- WGPUAddressMode addressModeW;
- WGPUFilterMode magFilter;
- WGPUFilterMode minFilter;
- WGPUMipmapFilterMode mipmapFilter;
- float lodMinClamp;
- float lodMaxClamp;
- WGPUCompareFunction compare;
- uint16_t maxAnisotropy;
- } WGPUSamplerDescriptor;
- typedef struct WGPUShaderSourceWGSL {
- WGPUChainedStruct chain;
- WGPUStringView code;
- } WGPUShaderSourceWGSL;
- typedef struct WGPUStencilFaceState {
- WGPUCompareFunction compare;
- WGPUStencilOperation failOp;
- WGPUStencilOperation depthFailOp;
- WGPUStencilOperation passOp;
- } WGPUStencilFaceState;
- typedef struct WGPUStorageTextureBindingLayout {
- WGPUChainedStruct * nextInChain;
- WGPUStorageTextureAccess access;
- WGPUTextureFormat format;
- WGPUTextureViewDimension viewDimension;
- } WGPUStorageTextureBindingLayout;
- typedef struct WGPUSurfaceCapabilities {
- WGPUChainedStruct * nextInChain;
- WGPUTextureUsage usages;
- size_t formatCount;
- WGPUTextureFormat const * formats;
- size_t presentModeCount;
- WGPUPresentMode const * presentModes;
- size_t alphaModeCount;
- WGPUCompositeAlphaMode const * alphaModes;
- } WGPUSurfaceCapabilities;
- typedef struct WGPUSurfaceConfiguration {
- WGPUChainedStruct * nextInChain;
- WGPUDevice device;
- WGPUTextureFormat format;
- WGPUTextureUsage usage;
- uint32_t width;
- uint32_t height;
- size_t viewFormatCount;
- WGPUTextureFormat const * viewFormats;
- WGPUCompositeAlphaMode alphaMode;
- WGPUPresentMode presentMode;
- } WGPUSurfaceConfiguration;
- typedef struct WGPUSurfaceTexture {
- WGPUChainedStruct * nextInChain;
- WGPUTexture texture;
- WGPUSurfaceGetCurrentTextureStatus status;
- } WGPUSurfaceTexture;
- typedef struct WGPUTexelCopyBufferLayout {
- uint64_t offset;
- uint32_t bytesPerRow;
- uint32_t rowsPerImage;
- } WGPUTexelCopyBufferLayout;
- typedef struct WGPUTextureBindingLayout {
- WGPUChainedStruct * nextInChain;
- WGPUTextureSampleType sampleType;
- WGPUTextureViewDimension viewDimension;
- WGPUBool multisampled;
- } WGPUTextureBindingLayout;
- typedef struct WGPUTextureViewDescriptor {
- WGPUChainedStruct * nextInChain;
- WGPUStringView label;
- WGPUTextureFormat format;
- WGPUTextureViewDimension dimension;
- uint32_t baseMipLevel;
- uint32_t mipLevelCount;
- uint32_t baseArrayLayer;
- uint32_t arrayLayerCount;
- WGPUTextureAspect aspect;
- WGPUTextureUsage usage;
- } WGPUTextureViewDescriptor;
- typedef struct WGPUVertexAttribute {
- WGPUChainedStruct * nextInChain;
- WGPUVertexFormat format;
- uint64_t offset;
- uint32_t shaderLocation;
- } WGPUVertexAttribute;
- typedef struct WGPUBindGroupDescriptor {
- WGPUChainedStruct * nextInChain;
- WGPUStringView label;
- WGPUBindGroupLayout layout;
- size_t entryCount;
- WGPUBindGroupEntry const * entries;
- } WGPUBindGroupDescriptor;
- typedef struct WGPUBindGroupLayoutEntry {
- WGPUChainedStruct * nextInChain;
- uint32_t binding;
- WGPUShaderStage visibility;
- uint32_t bindingArraySize;
- WGPUBufferBindingLayout buffer;
- WGPUSamplerBindingLayout sampler;
- WGPUTextureBindingLayout texture;
- WGPUStorageTextureBindingLayout storageTexture;
- } WGPUBindGroupLayoutEntry;
- typedef struct WGPUBlendState {
- WGPUBlendComponent color;
- WGPUBlendComponent alpha;
- } WGPUBlendState;
- typedef struct WGPUDepthStencilState {
- WGPUChainedStruct * nextInChain;
- WGPUTextureFormat format;
- WGPUOptionalBool depthWriteEnabled;
- WGPUCompareFunction depthCompare;
- WGPUStencilFaceState stencilFront;
- WGPUStencilFaceState stencilBack;
- uint32_t stencilReadMask;
- uint32_t stencilWriteMask;
- int32_t depthBias;
- float depthBiasSlopeScale;
- float depthBiasClamp;
- } WGPUDepthStencilState;
- typedef struct WGPUDeviceDescriptor {
- WGPUChainedStruct * nextInChain;
- WGPUStringView label;
- size_t requiredFeatureCount;
- WGPUFeatureName const * requiredFeatures;
- WGPU_NULLABLE WGPULimits const * requiredLimits;
- WGPUQueueDescriptor defaultQueue;
- WGPUDeviceLostCallbackInfo deviceLostCallbackInfo;
- WGPUUncapturedErrorCallbackInfo uncapturedErrorCallbackInfo;
- } WGPUDeviceDescriptor;
- typedef struct WGPUInstanceDescriptor {
- WGPUChainedStruct * nextInChain;
- size_t requiredFeatureCount;
- WGPUInstanceFeatureName const * requiredFeatures;
- WGPU_NULLABLE WGPUInstanceLimits const * requiredLimits;
- } WGPUInstanceDescriptor;
- typedef struct WGPURenderPassColorAttachment {
- WGPUChainedStruct * nextInChain;
- WGPU_NULLABLE WGPUTextureView view;
- uint32_t depthSlice;
- WGPU_NULLABLE WGPUTextureView resolveTarget;
- WGPULoadOp loadOp;
- WGPUStoreOp storeOp;
- WGPUColor clearValue;
- } WGPURenderPassColorAttachment;
- typedef struct WGPURequestAdapterOptions {
- WGPUChainedStruct * nextInChain;
- WGPUFeatureLevel featureLevel;
- WGPUPowerPreference powerPreference;
- WGPUBool forceFallbackAdapter;
- WGPUBackendType backendType;
- WGPU_NULLABLE WGPUSurface compatibleSurface;
- } WGPURequestAdapterOptions;
- typedef struct WGPUShaderModuleDescriptor {
- WGPUChainedStruct * nextInChain;
- WGPUStringView label;
- } WGPUShaderModuleDescriptor;
- typedef struct WGPUTexelCopyBufferInfo {
- WGPUTexelCopyBufferLayout layout;
- WGPUBuffer buffer;
- } WGPUTexelCopyBufferInfo;
- typedef struct WGPUTexelCopyTextureInfo {
- WGPUTexture texture;
- uint32_t mipLevel;
- WGPUOrigin3D origin;
- WGPUTextureAspect aspect;
- } WGPUTexelCopyTextureInfo;
- typedef struct WGPUTextureDescriptor {
- WGPUChainedStruct * nextInChain;
- WGPUStringView label;
- WGPUTextureUsage usage;
- WGPUTextureDimension dimension;
- WGPUExtent3D size;
- WGPUTextureFormat format;
- uint32_t mipLevelCount;
- uint32_t sampleCount;
- size_t viewFormatCount;
- WGPUTextureFormat const * viewFormats;
- } WGPUTextureDescriptor;
- typedef struct WGPUVertexBufferLayout {
- WGPUChainedStruct * nextInChain;
- WGPUVertexStepMode stepMode;
- uint64_t arrayStride;
- size_t attributeCount;
- WGPUVertexAttribute const * attributes;
- } WGPUVertexBufferLayout;
- typedef struct WGPUBindGroupLayoutDescriptor {
- WGPUChainedStruct * nextInChain;
- WGPUStringView label;
- size_t entryCount;
- WGPUBindGroupLayoutEntry const * entries;
- } WGPUBindGroupLayoutDescriptor;
- typedef struct WGPUColorTargetState {
- WGPUChainedStruct * nextInChain;
- WGPUTextureFormat format;
- WGPU_NULLABLE WGPUBlendState const * blend;
- WGPUColorWriteMask writeMask;
- } WGPUColorTargetState;
- typedef struct WGPURenderPassDescriptor {
- WGPUChainedStruct * nextInChain;
- WGPUStringView label;
- size_t colorAttachmentCount;
- WGPURenderPassColorAttachment const * colorAttachments;
- WGPU_NULLABLE WGPURenderPassDepthStencilAttachment const * depthStencilAttachment;
- WGPU_NULLABLE WGPUQuerySet occlusionQuerySet;
- WGPU_NULLABLE WGPUPassTimestampWrites const * timestampWrites;
- } WGPURenderPassDescriptor;
- typedef struct WGPUVertexState {
- WGPUChainedStruct * nextInChain;
- WGPUShaderModule module;
- WGPUStringView entryPoint;
- size_t constantCount;
- WGPUConstantEntry const * constants;
- size_t bufferCount;
- WGPUVertexBufferLayout const * buffers;
- } WGPUVertexState;
- typedef struct WGPUFragmentState {
- WGPUChainedStruct * nextInChain;
- WGPUShaderModule module;
- WGPUStringView entryPoint;
- size_t constantCount;
- WGPUConstantEntry const * constants;
- size_t targetCount;
- WGPUColorTargetState const * targets;
- } WGPUFragmentState;
- typedef struct WGPURenderPipelineDescriptor {
- WGPUChainedStruct * nextInChain;
- WGPUStringView label;
- WGPU_NULLABLE WGPUPipelineLayout layout;
- WGPUVertexState vertex;
- WGPUPrimitiveState primitive;
- WGPU_NULLABLE WGPUDepthStencilState const * depthStencil;
- WGPUMultisampleState multisample;
- WGPU_NULLABLE WGPUFragmentState const * fragment;
- } WGPURenderPipelineDescriptor;
- #define IMPORT(str) __attribute__((import_module("imports"), import_name(str)))
- IMPORT("wgpuDeviceCreateTexture") WGPUTexture wgpuDeviceCreateTexture(WGPUDevice device, WGPUTextureDescriptor const *descriptor);
- IMPORT("wgpuTextureCreateView") WGPUTextureView wgpuTextureCreateView(WGPUTexture texture, WGPU_NULLABLE WGPUTextureViewDescriptor const *descriptor);
- IMPORT("wgpuCreateInstance") WGPUInstance wgpuCreateInstance(WGPU_NULLABLE WGPUInstanceDescriptor const *descriptor);
- // IMPORT("wgpuInstanceRequestAdapter") WGPUFuture wgpuInstanceRequestAdapter(WGPUInstance instance, WGPU_NULLABLE WGPURequestAdapterOptions const * options,
- // WGPURequestAdapterCallbackInfo callbackInfo);
- IMPORT("wgpuAdapterGetInfo") WGPUStatus wgpuAdapterGetInfo(WGPUAdapter adapter, WGPUAdapterInfo *info);
- IMPORT("wgpuAdapterInfoFreeMembers") void wgpuAdapterInfoFreeMembers(WGPUAdapterInfo adapterInfo);
- IMPORT("wgpuAdapterRequestDevice")
- WGPUFuture wgpuAdapterRequestDevice(WGPUAdapter adapter, WGPU_NULLABLE WGPUDeviceDescriptor const *descriptor, WGPURequestDeviceCallbackInfo callbackInfo);
- IMPORT("wgpuDeviceGetQueue") WGPUQueue wgpuDeviceGetQueue(WGPUDevice device);
- IMPORT("wgpuDeviceCreateBindGroupLayout")
- WGPUBindGroupLayout wgpuDeviceCreateBindGroupLayout(WGPUDevice device, WGPUBindGroupLayoutDescriptor const *descriptor);
- IMPORT("wgpuDeviceCreateBuffer") WGPUBuffer wgpuDeviceCreateBuffer(WGPUDevice device, WGPUBufferDescriptor const *descriptor);
- IMPORT("wgpuBufferGetMappedRange") void *wgpuBufferGetMappedRange(WGPUBuffer buffer, size_t offset, size_t size);
- IMPORT("wgpuBufferUnmap") void wgpuBufferUnmap(WGPUBuffer buffer);
- IMPORT("wgpuDeviceCreateCommandEncoder")
- WGPUCommandEncoder wgpuDeviceCreateCommandEncoder(WGPUDevice device, WGPU_NULLABLE WGPUCommandEncoderDescriptor const *descriptor);
- IMPORT("wgpuCommandEncoderCopyBufferToTexture")
- void wgpuCommandEncoderCopyBufferToTexture(WGPUCommandEncoder commandEncoder, WGPUTexelCopyBufferInfo const *source,
- WGPUTexelCopyTextureInfo const *destination, WGPUExtent3D const *copySize);
- IMPORT("wgpuCommandEncoderFinish")
- WGPUCommandBuffer wgpuCommandEncoderFinish(WGPUCommandEncoder commandEncoder, WGPU_NULLABLE WGPUCommandBufferDescriptor const *descriptor);
- IMPORT("wgpuQueueSubmit") void wgpuQueueSubmit(WGPUQueue queue, size_t commandCount, WGPUCommandBuffer const *commands);
- IMPORT("wgpuBufferRelease") void wgpuBufferRelease(WGPUBuffer buffer);
- IMPORT("wgpuDeviceCreateSampler") WGPUSampler wgpuDeviceCreateSampler(WGPUDevice device, WGPU_NULLABLE WGPUSamplerDescriptor const *descriptor);
- IMPORT("wgpuSurfaceGetCapabilities") WGPUStatus wgpuSurfaceGetCapabilities(WGPUSurface surface, WGPUAdapter adapter, WGPUSurfaceCapabilities *capabilities);
- IMPORT("wgpuSurfaceCapabilitiesFreeMembers") void wgpuSurfaceCapabilitiesFreeMembers(WGPUSurfaceCapabilities surfaceCapabilities);
- IMPORT("wgpuBufferDestroy") void wgpuBufferDestroy(WGPUBuffer buffer);
- IMPORT("wgpuSurfaceGetCurrentTexture") void wgpuSurfaceGetCurrentTexture(WGPUSurface surface, WGPUSurfaceTexture *surfaceTexture);
- IMPORT("wgpuCommandEncoderBeginRenderPass")
- WGPURenderPassEncoder wgpuCommandEncoderBeginRenderPass(WGPUCommandEncoder commandEncoder, WGPURenderPassDescriptor const *descriptor);
- IMPORT("wgpuRenderPassEncoderSetViewport")
- void wgpuRenderPassEncoderSetViewport(WGPURenderPassEncoder renderPassEncoder, float x, float y, float width, float height, float minDepth, float maxDepth);
- IMPORT("wgpuRenderPassEncoderSetScissorRect")
- void wgpuRenderPassEncoderSetScissorRect(WGPURenderPassEncoder renderPassEncoder, uint32_t x, uint32_t y, uint32_t width, uint32_t height);
- IMPORT("wgpuRenderPassEncoderEnd") void wgpuRenderPassEncoderEnd(WGPURenderPassEncoder renderPassEncoder);
- IMPORT("wgpuRenderPassEncoderRelease") void wgpuRenderPassEncoderRelease(WGPURenderPassEncoder renderPassEncoder);
- IMPORT("wgpuCommandBufferRelease") void wgpuCommandBufferRelease(WGPUCommandBuffer commandBuffer);
- IMPORT("wgpuCommandEncoderRelease") void wgpuCommandEncoderRelease(WGPUCommandEncoder commandEncoder);
- IMPORT("wgpuSurfacePresent") WGPUStatus wgpuSurfacePresent(WGPUSurface surface);
- IMPORT("wgpuRenderPassEncoderDrawIndexed")
- void wgpuRenderPassEncoderDrawIndexed(WGPURenderPassEncoder renderPassEncoder, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex,
- int32_t baseVertex, uint32_t firstInstance);
- IMPORT("wgpuRenderPassEncoderSetPipeline") void wgpuRenderPassEncoderSetPipeline(WGPURenderPassEncoder renderPassEncoder, WGPURenderPipeline pipeline);
- IMPORT("wgpuRenderPassEncoderSetVertexBuffer")
- void wgpuRenderPassEncoderSetVertexBuffer(WGPURenderPassEncoder renderPassEncoder, uint32_t slot, WGPU_NULLABLE WGPUBuffer buffer, uint64_t offset,
- uint64_t size);
- IMPORT("wgpuRenderPassEncoderSetIndexBuffer")
- void wgpuRenderPassEncoderSetIndexBuffer(WGPURenderPassEncoder renderPassEncoder, WGPUBuffer buffer, WGPUIndexFormat format, uint64_t offset, uint64_t size);
- IMPORT("wgpuDeviceCreateBindGroup") WGPUBindGroup wgpuDeviceCreateBindGroup(WGPUDevice device, WGPUBindGroupDescriptor const *descriptor);
- IMPORT("wgpuRenderPassEncoderSetBindGroup")
- void wgpuRenderPassEncoderSetBindGroup(WGPURenderPassEncoder renderPassEncoder, uint32_t groupIndex, WGPU_NULLABLE WGPUBindGroup group,
- size_t dynamicOffsetCount, uint32_t const *dynamicOffsets);
- IMPORT("wgpuBindGroupRelease") void wgpuBindGroupRelease(WGPUBindGroup bindGroup);
- IMPORT("wgpuRenderPipelineRelease") void wgpuRenderPipelineRelease(WGPURenderPipeline renderPipeline);
- IMPORT("wgpuPipelineLayoutRelease") void wgpuPipelineLayoutRelease(WGPUPipelineLayout pipelineLayout);
- IMPORT("wgpuDeviceCreatePipelineLayout") WGPUPipelineLayout wgpuDeviceCreatePipelineLayout(WGPUDevice device, WGPUPipelineLayoutDescriptor const *descriptor);
- IMPORT("wgpuDeviceCreateShaderModule") WGPUShaderModule wgpuDeviceCreateShaderModule(WGPUDevice device, WGPUShaderModuleDescriptor const *descriptor);
- IMPORT("wgpuDeviceCreateRenderPipeline") WGPURenderPipeline wgpuDeviceCreateRenderPipeline(WGPUDevice device, WGPURenderPipelineDescriptor const *descriptor);
- IMPORT("wgpuShaderModuleRelease") void wgpuShaderModuleRelease(WGPUShaderModule shaderModule);
- IMPORT("wgpuQueueWriteBuffer") void wgpuQueueWriteBuffer(WGPUQueue queue, WGPUBuffer buffer, uint64_t bufferOffset, void const *data, size_t size);
- IMPORT("wgpuTextureDestroy") void wgpuTextureDestroy(WGPUTexture texture);
- IMPORT("wgpuTextureRelease") void wgpuTextureRelease(WGPUTexture texture);
- IMPORT("wgpuTextureViewRelease") void wgpuTextureViewRelease(WGPUTextureView textureView);
- IMPORT("wgpuCommandEncoderCopyBufferToBuffer")
- void wgpuCommandEncoderCopyBufferToBuffer(WGPUCommandEncoder commandEncoder, WGPUBuffer source, uint64_t sourceOffset, WGPUBuffer destination,
- uint64_t destinationOffset, uint64_t size);
- IMPORT("wgpuSurfaceConfigure") void wgpuSurfaceConfigure(WGPUSurface surface, WGPUSurfaceConfiguration const *config);
- IMPORT("wgpuInstanceRequestAdapterSync") WGPUAdapter wgpuInstanceRequestAdapterSync();
- IMPORT("wgpuAdapterRequestDeviceSync") WGPUDevice wgpuAdapterRequestDeviceSync();
- IMPORT("wgpuBufferUnmap2") void wgpuBufferUnmap2(WGPUBuffer buffer, void *data, int start, int count);
|