package vendor:wgpu

⌘K
Ctrl+K
or
/

    Overview

    A cross-platform (and WASM) GPU API.

    WASM support is achieved by providing wrappers around the browser native WebGPU API that are called instead of the wgpu-native library, the wgpu-native library provides support for all other targets.

    Examples

    You can find a number of examples on Odin's official examples repository.

    Getting the wgpu-native libraries

    For native support (not the browser), some libraries are required. Fortunately this is extremely easy, just download them from the releases on GitHub. the bindings are for v24.0.0.2 at the moment.

    These are expected in the lib folder under the same name as they are released (just unzipped). By default it will look for a static release version (wgpu-OS-ARCH-release.a|lib), you can set -define:WGPU_DEBUG=true for it to look for a debug version, and use -define:WGPU_SHARED=true to look for the shared libraries.

    WASM

    For WASM, the module has to be built with a function table to enable callbacks. You can do so using -extra-linker-flags:"--export-table".

    Being able to allocate is also required (for some auxiliary APIs but also for mapping/unmapping buffers).

    You can set the context that is used for allocations by setting the global variable wpgu.g_context. It will default to the runtime.default_context.

    Have a look at the example build file and html file to see how it looks when set up, doing the --import-memory and the likes is not strictly necessary but allows your app more memory than the minimal default.

    The bindings work on both -target:js_wasm32 and -target:js_wasm64p32.

    SDL Glue

    There is an inner package sdl2glue (and sdl3glue) that can be used to glue together WGPU and SDL. It exports one procedure GetSurface(wgpu.Instance, ^SDL.Window) -> wgpu.Surface. The procedure will call the needed target specific procedures and return a surface configured for the given window.

    GLFW Glue

    There is an inner package glfwglue that can be used to glue together WGPU and GLFW. It exports one procedure GetSurface(wgpu.Instance, glfw.WindowHandle) -> wgpu.Surface. The procedure will call the needed target specific procedures and return a surface configured for the given window.

    Do note that wgpu does not require GLFW, you can use native windows or another windowing library too. For that you can take inspiration from glfwglue on glueing them together.

    GLFW and Wayland

    GLFW supports Wayland from version 3.4 onwards and only if it is compiled with -DGLFW_EXPOSE_NATIVE_WAYLAND.

    Odin links against your system's glfw library (probably installed through a package manager). If that version is lower than 3.4 or hasn't been compiled with the previously mentioned define, you will have to compile glfw from source yourself and adjust the foreign import declarations in vendor:glfw/bindings to point to it.

    Index

    Types (207)
    Variables (0)

    This section is empty.

    Procedures (240)

    Types

    AdapterInfo ¶

    AdapterInfo :: struct {
    	nextInChain:  ^ChainedStructOut,
    	vendor:       string,
    	architecture: string,
    	device:       string,
    	description:  string,
    	backendType:  BackendType,
    	adapterType:  AdapterType,
    	vendorID:     u32,
    	deviceID:     u32,
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    AdapterType ¶

    AdapterType :: enum i32 {
    	DiscreteGPU   = 1, 
    	IntegratedGPU = 2, 
    	CPU           = 3, 
    	Unknown       = 4, 
    }

    AddressMode ¶

    AddressMode :: enum i32 {
    	Undefined    = 0, 
    	ClampToEdge  = 1, 
    	Repeat       = 2, 
    	MirrorRepeat = 3, 
    }

    BackendType ¶

    BackendType :: enum i32 {
    	Undefined = 0, 
    	Null      = 1, 
    	WebGPU    = 2, 
    	D3D11     = 3, 
    	D3D12     = 4, 
    	Metal     = 5, 
    	Vulkan    = 6, 
    	OpenGL    = 7, 
    	OpenGLES  = 8, 
    }

    BindGroupDescriptor ¶

    BindGroupDescriptor :: struct {
    	nextInChain: ^ChainedStruct,
    	label:       string,
    	layout:      BindGroupLayout,
    	entryCount:  uint,
    	entries:     [^]BindGroupEntry `fmt:"v,entryCount"`,
    }
    Related Procedures With Parameters

    BindGroupEntry ¶

    BindGroupEntry :: struct {
    	nextInChain: ^ChainedStruct,
    	binding:     u32,
    	buffer:      Buffer,
    	offset:      u64,
    	size:        u64,
    	sampler:     Sampler,
    	textureView: TextureView,
    }

    BindGroupEntryExtras ¶

    BindGroupEntryExtras :: struct {
    	using chain:      ChainedStruct,
    	buffers:          [^]Buffer `fmt:"v,bufferCount"`,
    	bufferCount:      uint,
    	samplers:         [^]Sampler `fmt:"v,samplerCount"`,
    	samplerCount:     uint,
    	textureViews:     [^]TextureView `fmt:"v,textureViewCount"`,
    	textureViewCount: uint,
    }

    BindGroupLayoutDescriptor ¶

    BindGroupLayoutDescriptor :: struct {
    	nextInChain: ^ChainedStruct,
    	label:       string,
    	entryCount:  uint,
    	entries:     [^]BindGroupLayoutEntry `fmt:"v,entryCount"`,
    }
    Related Procedures With Parameters

    BindGroupLayoutEntry ¶

    BindGroupLayoutEntry :: struct {
    	nextInChain:    ^ChainedStruct,
    	binding:        u32,
    	visibility:     bit_set[ShaderStage; u64],
    	buffer:         BufferBindingLayout,
    	sampler:        SamplerBindingLayout,
    	texture:        TextureBindingLayout,
    	storageTexture: StorageTextureBindingLayout,
    }

    BindGroupLayoutEntryExtras ¶

    BindGroupLayoutEntryExtras :: struct {
    	using chain: ChainedStruct,
    	count: u32,
    }

    BlendComponent ¶

    BlendComponent :: struct {
    	operation: BlendOperation,
    	srcFactor: BlendFactor,
    	dstFactor: BlendFactor,
    }

    BlendFactor ¶

    BlendFactor :: enum i32 {
    	Undefined         = 0, 
    	Zero              = 1, 
    	One               = 2, 
    	Src               = 3, 
    	OneMinusSrc       = 4, 
    	SrcAlpha          = 5, 
    	OneMinusSrcAlpha  = 6, 
    	Dst               = 7, 
    	OneMinusDst       = 8, 
    	DstAlpha          = 9, 
    	OneMinusDstAlpha  = 10, 
    	SrcAlphaSaturated = 11, 
    	Constant          = 12, 
    	OneMinusConstant  = 13, 
    	Src1              = 14, 
    	OneMinusSrc1      = 15, 
    	Src1Alpha         = 16, 
    	OneMinusSrc1Alpha = 17, 
    }

    BlendOperation ¶

    BlendOperation :: enum i32 {
    	Add             = 0, 
    	Subtract        = 1, 
    	ReverseSubtract = 2, 
    	Min             = 3, 
    	Max             = 4, 
    }

    BlendState ¶

    BlendState :: struct {
    	color: BlendComponent,
    	alpha: BlendComponent,
    }

    BufferBindingLayout ¶

    BufferBindingLayout :: struct {
    	nextInChain:      ^ChainedStruct,
    	type:             BufferBindingType,
    	hasDynamicOffset: b32,
    	minBindingSize:   u64,
    }

    BufferBindingType ¶

    BufferBindingType :: enum i32 {
    	BindingNotUsed  = 0, 
    	Undefined       = 1, 
    	Uniform         = 2, 
    	Storage         = 3, 
    	ReadOnlyStorage = 4, 
    }

    BufferDescriptor ¶

    BufferDescriptor :: struct {
    	nextInChain:      ^ChainedStruct,
    	label:            string,
    	usage:            bit_set[BufferUsage; u64],
    	size:             u64,
    	mappedAtCreation: b32,
    }
    Related Procedures With Parameters

    BufferMapCallback ¶

    BufferMapCallback :: proc "c" (status: MapAsyncStatus, message: string, userdata1: rawptr, userdata2: rawptr)

    BufferMapCallbackInfo ¶

    BufferMapCallbackInfo :: struct {
    	nextInChain: ^ChainedStruct,
    	mode:        CallbackMode,
    	callback:    BufferMapCallback,
    	userdata1:   rawptr,
    	userdata2:   rawptr,
    }
    Related Procedures With Parameters

    BufferMapState ¶

    BufferMapState :: enum i32 {
    	Unmapped = 1, 
    	Pending  = 2, 
    	Mapped   = 3, 
    }
    Related Procedures With Returns

    BufferUsage ¶

    BufferUsage :: enum i32 {
    	MapRead      = 0, 
    	MapWrite     = 1, 
    	CopySrc      = 2, 
    	CopyDst      = 3, 
    	Index        = 4, 
    	Vertex       = 5, 
    	Uniform      = 6, 
    	Storage      = 7, 
    	Indirect     = 8, 
    	QueryResolve = 9, 
    }

    BufferUsageFlags ¶

    BufferUsageFlags :: bit_set[BufferUsage; u64]

    BufferWithDataDescriptor ¶

    BufferWithDataDescriptor :: struct {
    	label: string,
    	usage: bit_set[BufferUsage; u64],
    }
    Related Procedures With Parameters

    CallbackMode ¶

    CallbackMode :: enum i32 {
    	WaitAnyOnly        = 1, 
    	AllowProcessEvents = 2, 
    	AllowSpontaneos    = 3, 
    }

    ChainedStruct ¶

    ChainedStruct :: struct {
    	next:  ^ChainedStruct,
    	sType: SType,
    }

    ChainedStructOut ¶

    ChainedStructOut :: struct {
    	next:  ^ChainedStructOut,
    	sType: SType,
    }

    Color ¶

    Color :: [4]f64

    ColorTargetState ¶

    ColorTargetState :: struct {
    	nextInChain: ^ChainedStruct,
    	format:      TextureFormat,
    	blend:       ^BlendState,
    	writeMask:   bit_set[ColorWriteMask; u64],
    }

    ColorWriteMask ¶

    ColorWriteMask :: enum i32 {
    	Red   = 0, 
    	Green = 1, 
    	Blue  = 2, 
    	Alpha = 3, 
    }

    ColorWriteMaskFlags ¶

    ColorWriteMaskFlags :: bit_set[ColorWriteMask; u64]
    Related Constants

    CommandBuffer ¶

    CommandBuffer :: distinct rawptr
    Related Procedures With Parameters
    Related Procedures With Returns

    CommandBufferDescriptor ¶

    CommandBufferDescriptor :: struct {
    	nextInChain: ^ChainedStruct,
    	label:       string,
    }
    Related Procedures With Parameters

    CommandEncoderDescriptor ¶

    CommandEncoderDescriptor :: struct {
    	nextInChain: ^ChainedStruct,
    	label:       string,
    }
    Related Procedures With Parameters

    CompareFunction ¶

    CompareFunction :: enum i32 {
    	Undefined    = 0, 
    	Never        = 1, 
    	Less         = 2, 
    	Equal        = 3, 
    	LessEqual    = 4, 
    	Greater      = 5, 
    	NotEqual     = 6, 
    	GreaterEqual = 7, 
    	Always       = 8, 
    }

    CompilationInfo ¶

    CompilationInfo :: struct {
    	nextInChain:  ^ChainedStruct,
    	messageCount: uint,
    	messages:     [^]CompilationMessage `fmt:"v,messageCount"`,
    }

    CompilationInfoCallback ¶

    CompilationInfoCallback :: proc "c" (status: CompilationInfoRequestStatus, compilationInfo: ^CompilationInfo, userdata1: rawptr, userdata2: rawptr)

    CompilationInfoCallbackInfo ¶

    CompilationInfoCallbackInfo :: struct {
    	nextInChain: ^ChainedStruct,
    	mode:        CallbackMode,
    	callback:    CompilationInfoCallback,
    	userdata1:   rawptr,
    	userdata2:   rawptr,
    }
    Related Procedures With Parameters

    CompilationInfoRequestStatus ¶

    CompilationInfoRequestStatus :: enum i32 {
    	Success         = 1, 
    	InstanceDropped = 2, 
    	Error           = 3, 
    	Unknown         = 4, 
    }

    CompilationMessage ¶

    CompilationMessage :: struct {
    	nextInChain: ^ChainedStruct,
    	message:     string,
    	type:        CompilationMessageType,
    	lineNum:     u64,
    	linePos:     u64,
    	offset:      u64,
    	length:      u64,
    }

    CompilationMessageType ¶

    CompilationMessageType :: enum i32 {
    	Error   = 1, 
    	Warning = 2, 
    	Info    = 3, 
    }

    CompositeAlphaMode ¶

    CompositeAlphaMode :: enum i32 {
    	Auto            = 0, 
    	Opaque          = 1, 
    	Premultiplied   = 2, 
    	Unpremultiplied = 3, 
    	Inherit         = 4, 
    }

    ComputePassDescriptor ¶

    ComputePassDescriptor :: struct {
    	nextInChain:     ^ChainedStruct,
    	label:           string,
    	timestampWrites: ^ComputePassTimestampWrites,
    }
    Related Procedures With Parameters

    ComputePassTimestampWrites ¶

    ComputePassTimestampWrites :: struct {
    	querySet:                  QuerySet,
    	beginningOfPassWriteIndex: u32,
    	endOfPassWriteIndex:       u32,
    }

    ComputePipelineDescriptor ¶

    ComputePipelineDescriptor :: struct {
    	nextInChain: ^ChainedStruct,
    	label:       string,
    	layout:      PipelineLayout,
    	compute:     ProgrammableStageDescriptor,
    }
    Related Procedures With Parameters

    ConstantEntry ¶

    ConstantEntry :: struct {
    	nextInChain: ^ChainedStruct,
    	key:         string,
    	value:       f64,
    }

    CreateComputePipelineAsyncCallback ¶

    CreateComputePipelineAsyncCallback :: proc "c" (status: CreatePipelineAsyncStatus, pipeline: ComputePipeline, message: string, userdata1: rawptr, userdata2: rawptr)

    CreateComputePipelineAsyncCallbackInfo ¶

    CreateComputePipelineAsyncCallbackInfo :: struct {
    	nextInChain: ^ChainedStruct,
    	mode:        CallbackMode,
    	callback:    CreateComputePipelineAsyncCallback,
    	userdata1:   rawptr,
    	userdata2:   rawptr,
    }
    Related Procedures With Parameters

    CreatePipelineAsyncStatus ¶

    CreatePipelineAsyncStatus :: enum i32 {
    	Success         = 1, 
    	InstanceDropped = 2, 
    	ValidationError = 3, 
    	InternalError   = 4, 
    	Unknown         = 5, 
    }

    CreateRenderPipelineAsyncCallback ¶

    CreateRenderPipelineAsyncCallback :: proc "c" (status: CreatePipelineAsyncStatus, pipeline: RenderPipeline, message: string, userdata1: rawptr, userdata2: rawptr)

    CreateRenderPipelineAsyncCallbackInfo ¶

    CreateRenderPipelineAsyncCallbackInfo :: struct {
    	nextInChain: ^ChainedStruct,
    	mode:        CallbackMode,
    	callback:    CreateRenderPipelineAsyncCallback,
    	userdata1:   rawptr,
    	userdata2:   rawptr,
    }
    Related Procedures With Parameters

    CullMode ¶

    CullMode :: enum i32 {
    	Undefined = 0, 
    	None      = 1, 
    	Front     = 2, 
    	Back      = 3, 
    }

    DepthStencilState ¶

    DepthStencilState :: struct {
    	nextInChain:         ^ChainedStruct,
    	format:              TextureFormat,
    	depthWriteEnabled:   OptionalBool,
    	depthCompare:        CompareFunction,
    	stencilFront:        StencilFaceState,
    	stencilBack:         StencilFaceState,
    	stencilReadMask:     u32,
    	stencilWriteMask:    u32,
    	depthBias:           i32,
    	depthBiasSlopeScale: f32,
    	depthBiasClamp:      f32,
    }

    DeviceDescriptor ¶

    DeviceDescriptor :: struct {
    	nextInChain:                 ^ChainedStruct,
    	label:                       string,
    	requiredFeatureCount:        uint,
    	requiredFeatures:            [^]FeatureName `fmt:"v,requiredFeatureCount"`,
    	requiredLimits:              ^Limits,
    	defaultQueue:                QueueDescriptor,
    	deviceLostCallbackInfo:      DeviceLostCallbackInfo,
    	uncapturedErrorCallbackInfo: UncapturedErrorCallbackInfo,
    }
    Related Procedures With Parameters

    DeviceExtras ¶

    DeviceExtras :: struct {
    	using chain: ChainedStruct,
    	tracePath: string,
    }

    DeviceLostCallback ¶

    DeviceLostCallback :: proc "c" (device: ^Device, reason: DeviceLostReason, message: string, userdata1: rawptr, userdata2: rawptr)

    DeviceLostCallbackInfo ¶

    DeviceLostCallbackInfo :: struct {
    	nextInChain: ^ChainedStruct,
    	mode:        CallbackMode,
    	callback:    DeviceLostCallback,
    	userdata1:   rawptr,
    	userdata2:   rawptr,
    }

    DeviceLostReason ¶

    DeviceLostReason :: enum i32 {
    	Undefined       = 0, 
    	Unknown         = 1, 
    	Destroyed       = 2, 
    	InstanceDropped = 3, 
    	FailedCreation  = 4, 
    }

    Dx12Compiler ¶

    Dx12Compiler :: enum i32 {
    	Undefined, 
    	Fxc, 
    	Dxc, 
    }

    ErrorFilter ¶

    ErrorFilter :: enum i32 {
    	Validation  = 1, 
    	OutOfMemory = 2, 
    	Internal    = 3, 
    }
    Related Procedures With Parameters

    ErrorType ¶

    ErrorType :: enum i32 {
    	NoError     = 1, 
    	Validation  = 2, 
    	OutOfMemory = 3, 
    	Internal    = 4, 
    	Unknown     = 5, 
    }

    Extent3D ¶

    Extent3D :: struct {
    	width:              u32,
    	height:             u32,
    	depthOrArrayLayers: u32,
    }
    Related Procedures With Parameters

    FeatureLevel ¶

    FeatureLevel :: enum i32 {
    	Compatibility = 1, 
    	Core          = 2, 
    }

    FeatureName ¶

    FeatureName :: enum i32 {
    	// WebGPU.
    	Undefined                                             = 0, 
    	DepthClipControl                                      = 1, 
    	Depth32FloatStencil8                                  = 2, 
    	TimestampQuery                                        = 3, 
    	TextureCompressionBC                                  = 4, 
    	TextureCompressionBCSliced3D                          = 5, 
    	TextureCompressionETC2                                = 6, 
    	TextureCompressionASTC                                = 7, 
    	TextureCompressionASTCSliced3D                        = 8, 
    	IndirectFirstInstance                                 = 9, 
    	ShaderF16                                             = 10, 
    	RG11B10UfloatRenderable                               = 11, 
    	BGRA8UnormStorage                                     = 12, 
    	Float32Filterable                                     = 13, 
    	Float32Blendable                                      = 14, 
    	ClipDistances                                         = 15, 
    	DualSourceBlending                                    = 16, 
    	// Native.
    	PushConstants                                         = 196609, 
    	TextureAdapterSpecificFormatFeatures, 
    	MultiDrawIndirect, 
    	MultiDrawIndirectCount, 
    	VertexWritableStorage, 
    	TextureBindingArray, 
    	SampledTextureAndStorageBufferArrayNonUniformIndexing, 
    	PipelineStatisticsQuery, 
    	StorageResourceBindingArray, 
    	PartiallyBoundBindingArray, 
    	TextureFormat16bitNorm, 
    	TextureCompressionAstcHdr, 
    	MappablePrimaryBuffers                                = 196622, 
    	BufferBindingArray, 
    	UniformBufferAndStorageTextureArrayNonUniformIndexing, 
    	// TODO: requires wgpu.h api change
    	// AddressModeClampToZero,
    	// AddressModeClampToBorder,
    	// PolygonModeLine,
    	// PolygonModePoint,
    	// ConservativeRasterization,
    	// ClearTexture,
    	SpirvShaderPassthrough                                = 196631, 
    	// MultiView,
    	VertexAttribute64bit                                  = 196633, 
    	TextureFormatNv12, 
    	RayTracingAccelarationStructure, 
    	RayQuery, 
    	ShaderF64, 
    	ShaderI16, 
    	ShaderPrimitiveIndex, 
    	ShaderEarlyDepthTest, 
    	Subgroup, 
    	SubgroupVertex, 
    	SubgroupBarrier, 
    	TimestampQueryInsideEncoders, 
    	TimestampQueryInsidePasses, 
    }
    Related Procedures With Parameters

    FilterMode ¶

    FilterMode :: enum i32 {
    	Undefined = 0, 
    	Nearest   = 1, 
    	Linear    = 2, 
    }

    Flags ¶

    Flags :: u64

    FragmentState ¶

    FragmentState :: struct {
    	nextInChain:   ^ChainedStruct,
    	module:        ShaderModule,
    	entryPoint:    string,
    	constantCount: uint,
    	constants:     [^]ConstantEntry `fmt:"v,constantCount"`,
    	targetCount:   uint,
    	targets:       [^]ColorTargetState `fmt:"v,targetCount"`,
    }

    FrontFace ¶

    FrontFace :: enum i32 {
    	Undefined = 0, 
    	CCW       = 1, 
    	CW        = 2, 
    }

    FutureWaitInfo ¶

    FutureWaitInfo :: struct {
    	future:    Future,
    	completed: b32,
    }
    Related Procedures With Parameters

    Gles3MinorVersion ¶

    Gles3MinorVersion :: enum i32 {
    	Automatic, 
    	Version0, 
    	Version1, 
    	Version2, 
    }

    GlobalReport ¶

    GlobalReport :: struct {
    	surfaces: RegistryReport,
    	hub:      HubReport,
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    HubReport ¶

    HubReport :: struct {
    	adapters:         RegistryReport,
    	devices:          RegistryReport,
    	queues:           RegistryReport,
    	pipelineLayouts:  RegistryReport,
    	shaderModules:    RegistryReport,
    	bindGroupLayouts: RegistryReport,
    	bindGroups:       RegistryReport,
    	commandBuffers:   RegistryReport,
    	renderBundles:    RegistryReport,
    	renderPipelines:  RegistryReport,
    	computePipelines: RegistryReport,
    	pipelineCaches:   RegistryReport,
    	querySets:        RegistryReport,
    	buffers:          RegistryReport,
    	textures:         RegistryReport,
    	textureViews:     RegistryReport,
    	samplers:         RegistryReport,
    }

    IndexFormat ¶

    IndexFormat :: enum i32 {
    	Undefined = 0, 
    	Uint16    = 1, 
    	Uint32    = 2, 
    }
    Related Procedures With Parameters

    InstanceBackend ¶

    InstanceBackend :: enum i32 {
    	Vulkan, 
    	GL, 
    	Metal, 
    	DX12, 
    	DX11, 
    	BrowserWebGPU, 
    }

    InstanceCapabilities ¶

    InstanceCapabilities :: struct {
    	nextInChain:          ^ChainedStructOut,
    	timedWaitAnyEnable:   b32,
    	timedWaitAnyMaxCount: uint,
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    InstanceDescriptor ¶

    InstanceDescriptor :: struct {
    	nextInChain: ^ChainedStruct,
    	features:    InstanceCapabilities,
    }
    Related Procedures With Parameters

    InstanceEnumerateAdapterOptions ¶

    InstanceEnumerateAdapterOptions :: struct {
    	nextInChain: ^ChainedStruct,
    	backends:    bit_set[InstanceBackend; u64],
    }
    Related Procedures With Parameters

    InstanceExtras ¶

    InstanceExtras :: struct {
    	using chain:        ChainedStruct,
    	backends:           bit_set[InstanceBackend; u64],
    	flags:              bit_set[InstanceFlag; u64],
    	dx12ShaderCompiler: Dx12Compiler,
    	gles3MinorVersion:  Gles3MinorVersion,
    	dxilPath:           string,
    	dxcPath:            string,
    }

    InstanceFlag ¶

    InstanceFlag :: enum i32 {
    	Debug, 
    	Validation, 
    	DiscardHalLabels, 
    }

    InstanceFlags ¶

    InstanceFlags :: bit_set[InstanceFlag; u64]
    Related Constants

    Limits ¶

    Limits :: struct {
    	nextInChain:                               ^ChainedStructOut,
    	maxTextureDimension1D:                     u32,
    	maxTextureDimension2D:                     u32,
    	maxTextureDimension3D:                     u32,
    	maxTextureArrayLayers:                     u32,
    	maxBindGroups:                             u32,
    	maxBindGroupsPlusVertexBuffers:            u32,
    	maxBindingsPerBindGroup:                   u32,
    	maxDynamicUniformBuffersPerPipelineLayout: u32,
    	maxDynamicStorageBuffersPerPipelineLayout: u32,
    	maxSampledTexturesPerShaderStage:          u32,
    	maxSamplersPerShaderStage:                 u32,
    	maxStorageBuffersPerShaderStage:           u32,
    	maxStorageTexturesPerShaderStage:          u32,
    	maxUniformBuffersPerShaderStage:           u32,
    	maxUniformBufferBindingSize:               u64,
    	maxStorageBufferBindingSize:               u64,
    	minUniformBufferOffsetAlignment:           u32,
    	minStorageBufferOffsetAlignment:           u32,
    	maxVertexBuffers:                          u32,
    	maxBufferSize:                             u64,
    	maxVertexAttributes:                       u32,
    	maxVertexBufferArrayStride:                u32,
    	maxInterStageShaderVariables:              u32,
    	maxColorAttachments:                       u32,
    	maxColorAttachmentBytesPerSample:          u32,
    	maxComputeWorkgroupStorageSize:            u32,
    	maxComputeInvocationsPerWorkgroup:         u32,
    	maxComputeWorkgroupSizeX:                  u32,
    	maxComputeWorkgroupSizeY:                  u32,
    	maxComputeWorkgroupSizeZ:                  u32,
    	maxComputeWorkgroupsPerDimension:          u32,
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    LoadOp ¶

    LoadOp :: enum i32 {
    	Undefined = 0, 
    	Load      = 1, 
    	Clear     = 2, 
    }

    LogCallback ¶

    LogCallback :: proc "c" (level: LogLevel, message: string, userdata: rawptr)
    Related Procedures With Parameters

    LogLevel ¶

    LogLevel :: enum i32 {
    	Off, 
    	Error, 
    	Warn, 
    	Info, 
    	Debug, 
    	Trace, 
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    MapAsyncStatus ¶

    MapAsyncStatus :: enum i32 {
    	Success         = 1, 
    	InstanceDropped = 2, 
    	Error           = 3, 
    	Aborted         = 4, 
    	Unknown         = 5, 
    }

    MapMode ¶

    MapMode :: enum i32 {
    	Read  = 0, 
    	Write = 1, 
    }

    MapModeFlags ¶

    MapModeFlags :: bit_set[MapMode; u64]

    MipmapFilterMode ¶

    MipmapFilterMode :: enum i32 {
    	Undefined = 0, 
    	Nearest   = 1, 
    	Linear    = 2, 
    }

    MultisampleState ¶

    MultisampleState :: struct {
    	nextInChain:            ^ChainedStruct,
    	count:                  u32,
    	mask:                   u32,
    	alphaToCoverageEnabled: b32,
    }

    NativeLimits ¶

    NativeLimits :: struct {
    	using chain:           ChainedStructOut,
    	maxPushConstantSize:   u32,
    	maxNonSamplerBindings: u32,
    }

    OptionalBool ¶

    OptionalBool :: enum i32 {
    	False     = 0, 
    	True      = 1, 
    	Undefined = 2, 
    }

    Origin3D ¶

    Origin3D :: struct {
    	x: u32,
    	y: u32,
    	z: u32,
    }

    PipelineLayout ¶

    PipelineLayout :: distinct rawptr
    Related Procedures With Parameters
    Related Procedures With Returns

    PipelineLayoutDescriptor ¶

    PipelineLayoutDescriptor :: struct {
    	nextInChain:          ^ChainedStruct,
    	label:                string,
    	bindGroupLayoutCount: uint,
    	bindGroupLayouts:     [^]BindGroupLayout `fmt:"v,bindGroupLayoutCount"`,
    }
    Related Procedures With Parameters

    PipelineLayoutExtras ¶

    PipelineLayoutExtras :: struct {
    	using chain:            ChainedStruct,
    	pushConstantRangeCount: uint,
    	pushConstantRanges:     [^]PushConstantRange `fmt:"v,pushConstantRangeCount"`,
    }

    PipelineStatisticName ¶

    PipelineStatisticName :: enum i32 {
    	VertexShaderInvocations, 
    	ClipperInvocations, 
    	ClipperPrimitivesOut, 
    	FragmentShaderInvocations, 
    	ComputeShaderInvocations, 
    }

    PopErrorScopeCallback ¶

    PopErrorScopeCallback :: proc "c" (status: PopErrorScopeStatus, type: ErrorType, message: string, userdata1: rawptr, userdata2: rawptr)

    PopErrorScopeCallbackInfo ¶

    PopErrorScopeCallbackInfo :: struct {
    	nextInChain: ^ChainedStruct,
    	mode:        CallbackMode,
    	callback:    PopErrorScopeCallback,
    	userdata1:   rawptr,
    	userdata2:   rawptr,
    }
    Related Procedures With Parameters

    PopErrorScopeStatus ¶

    PopErrorScopeStatus :: enum i32 {
    	Success         = 1, 
    	InstanceDropped = 2, 
    	EmptyStack      = 3, 
    }

    PowerPreference ¶

    PowerPreference :: enum i32 {
    	Undefined       = 0, 
    	LowPower        = 1, 
    	HighPerformance = 2, 
    }

    PresentMode ¶

    PresentMode :: enum i32 {
    	Undefined   = 0, 
    	Fifo        = 1, 
    	FifoRelaxed = 2, 
    	Immediate   = 3, 
    	Mailbox     = 4, 
    }

    PrimitiveState ¶

    PrimitiveState :: struct {
    	nextInChain:      ^ChainedStruct,
    	topology:         PrimitiveTopology,
    	stripIndexFormat: IndexFormat,
    	frontFace:        FrontFace,
    	cullMode:         CullMode,
    	unclippedDepth:   b32,
    }

    PrimitiveTopology ¶

    PrimitiveTopology :: enum i32 {
    	Undefined     = 0, 
    	PointList     = 1, 
    	LineList      = 2, 
    	LineStrip     = 3, 
    	TriangleList  = 4, 
    	TriangleStrip = 5, 
    }

    Proc ¶

    Proc :: distinct rawptr
    Related Procedures With Returns

    ProgrammableStageDescriptor ¶

    ProgrammableStageDescriptor :: struct {
    	nextInChain:   ^ChainedStruct,
    	module:        ShaderModule,
    	entryPoint:    string,
    	constantCount: uint,
    	constants:     [^]ConstantEntry `fmt:"v,constantCount"`,
    }

    PushConstantRange ¶

    PushConstantRange :: struct {
    	stages: bit_set[ShaderStage; u64],
    	start:  u32,
    	end:    u32,
    }

    QuerySetDescriptor ¶

    QuerySetDescriptor :: struct {
    	nextInChain: ^ChainedStruct,
    	label:       string,
    	type:        QueryType,
    	count:       u32,
    }
    Related Procedures With Parameters

    QuerySetDescriptorExtras ¶

    QuerySetDescriptorExtras :: struct {
    	using chain:            ChainedStruct,
    	pipelineStatistics:     [^]PipelineStatisticName `fmt:"v,pipelineStatisticCount"`,
    	pipelineStatisticCount: uint,
    }

    QueryType ¶

    QueryType :: enum i32 {
    	// WebGPU.
    	Occlusion          = 1, 
    	Timestamp          = 2, 
    	// Native.
    	PipelineStatistics = 196608, 
    }
    Related Procedures With Returns

    QueueDescriptor ¶

    QueueDescriptor :: struct {
    	nextInChain: ^ChainedStruct,
    	label:       string,
    }

    QueueWorkDoneCallback ¶

    QueueWorkDoneCallback :: proc "c" (status: QueueWorkDoneStatus, userdata1: rawptr, userdata2: rawptr)

    QueueWorkDoneCallbackInfo ¶

    QueueWorkDoneCallbackInfo :: struct {
    	nextInChain: ^ChainedStruct,
    	mode:        CallbackMode,
    	callback:    QueueWorkDoneCallback,
    	userdata1:   rawptr,
    	userdata2:   rawptr,
    }
    Related Procedures With Parameters

    QueueWorkDoneStatus ¶

    QueueWorkDoneStatus :: enum i32 {
    	Success         = 1, 
    	InstanceDropped = 2, 
    	Error           = 3, 
    	Unknown         = 4, 
    }

    RegistryReport ¶

    RegistryReport :: struct {
    	numAllocated:        uint,
    	numKeptFromUser:     uint,
    	numReleasedFromUser: uint,
    	elementSize:         uint,
    }

    RenderBundle ¶

    RenderBundle :: distinct rawptr
    Related Procedures With Parameters
    Related Procedures With Returns

    RenderBundleDescriptor ¶

    RenderBundleDescriptor :: struct {
    	nextInChain: ^ChainedStruct,
    	label:       string,
    }
    Related Procedures With Parameters

    RenderBundleEncoderDescriptor ¶

    RenderBundleEncoderDescriptor :: struct {
    	nextInChain:        ^ChainedStruct,
    	label:              string,
    	colorFormatCount:   uint,
    	colorFormats:       [^]TextureFormat `fmt:"v,colorFormatCount"`,
    	depthStencilFormat: TextureFormat,
    	sampleCount:        u32,
    	depthReadOnly:      b32,
    	stencilReadOnly:    b32,
    }
    Related Procedures With Parameters

    RenderPassColorAttachment ¶

    RenderPassColorAttachment :: struct {
    	nextInChain:   ^ChainedStruct,
    	view:          TextureView,
    	depthSlice:    u32,
    	resolveTarget: TextureView,
    	loadOp:        LoadOp,
    	storeOp:       StoreOp,
    	clearValue:    [4]f64,
    }

    RenderPassDepthStencilAttachment ¶

    RenderPassDepthStencilAttachment :: struct {
    	view:              TextureView,
    	depthLoadOp:       LoadOp,
    	depthStoreOp:      StoreOp,
    	depthClearValue:   f32,
    	depthReadOnly:     b32,
    	stencilLoadOp:     LoadOp,
    	stencilStoreOp:    StoreOp,
    	stencilClearValue: u32,
    	stencilReadOnly:   b32,
    }

    RenderPassDescriptor ¶

    RenderPassDescriptor :: struct {
    	nextInChain:            ^ChainedStruct,
    	label:                  string,
    	colorAttachmentCount:   uint,
    	colorAttachments:       [^]RenderPassColorAttachment `fmt:"v,colorAttachmentCount"`,
    	depthStencilAttachment: ^RenderPassDepthStencilAttachment,
    	occlusionQuerySet:      QuerySet,
    	timestampWrites:        ^RenderPassTimestampWrites,
    }
    Related Procedures With Parameters

    RenderPassMaxDrawCount ¶

    RenderPassMaxDrawCount :: struct {
    	using chain:  ChainedStruct,
    	maxDrawCount: u64,
    }

    RenderPassTimestampWrites ¶

    RenderPassTimestampWrites :: struct {
    	querySet:                  QuerySet,
    	beginningOfPassWriteIndex: u32,
    	endOfPassWriteIndex:       u32,
    }

    RenderPipelineDescriptor ¶

    RenderPipelineDescriptor :: struct {
    	nextInChain:  ^ChainedStruct,
    	label:        string,
    	layout:       PipelineLayout,
    	vertex:       VertexState,
    	primitive:    PrimitiveState,
    	depthStencil: ^DepthStencilState,
    	multisample:  MultisampleState,
    	fragment:     ^FragmentState,
    }
    Related Procedures With Parameters

    RequestAdapterCallback ¶

    RequestAdapterCallback :: proc "c" (status: RequestAdapterStatus, adapter: Adapter, message: string, userdata1: rawptr, userdata2: rawptr)

    RequestAdapterCallbackInfo ¶

    RequestAdapterCallbackInfo :: struct {
    	nextInChain: ^ChainedStruct,
    	mode:        CallbackMode,
    	callback:    RequestAdapterCallback,
    	userdata1:   rawptr,
    	userdata2:   rawptr,
    }
    Related Procedures With Parameters

    RequestAdapterOptions ¶

    RequestAdapterOptions :: struct {
    	nextInChain:          ^ChainedStruct,
    	featureLevel:         FeatureLevel,
    	powerPreference:      PowerPreference,
    	forceFallbackAdapter: b32,
    	backendType:          BackendType,
    	compatibleSurface:    Surface,
    }
    Related Procedures With Parameters

    RequestAdapterStatus ¶

    RequestAdapterStatus :: enum i32 {
    	Success         = 1, 
    	InstanceDropped = 2, 
    	Unavailable     = 3, 
    	Error           = 4, 
    	Unknown         = 5, 
    }

    RequestDeviceCallback ¶

    RequestDeviceCallback :: proc "c" (status: RequestDeviceStatus, adapter: Device, message: string, userdata1: rawptr, userdata2: rawptr)

    RequestDeviceCallbackInfo ¶

    RequestDeviceCallbackInfo :: struct {
    	nextInChain: ^ChainedStruct,
    	mode:        CallbackMode,
    	callback:    RequestDeviceCallback,
    	userdata1:   rawptr,
    	userdata2:   rawptr,
    }
    Related Procedures With Parameters

    RequestDeviceStatus ¶

    RequestDeviceStatus :: enum i32 {
    	Success         = 1, 
    	InstanceDropped = 2, 
    	Error           = 3, 
    	Unknown         = 4, 
    }

    SType ¶

    SType :: enum i32 {
    	// WebGPU.
    	ShaderSourceSPIRV                = 1, 
    	ShaderSourceWGSL                 = 2, 
    	RenderPassMaxDrawCount           = 3, 
    	SurfaceSourceMetalLayer          = 4, 
    	SurfaceSourceWindowsHWND         = 5, 
    	SurfaceSourceXlibWindow          = 6, 
    	SurfaceSourceWaylandSurface      = 7, 
    	SurfaceSourceAndroidNativeWindow = 8, 
    	SurfaceSourceXCBWindow           = 9, 
    	// Native.
    	DeviceExtras                     = 196609, 
    	NativeLimits, 
    	PipelineLayoutExtras, 
    	ShaderModuleGLSLDescriptor, 
    	SupportedLimitsExtras, 
    	InstanceExtras, 
    	BindGroupEntryExtras, 
    	BindGroupLayoutEntryExtras, 
    	QuerySetDescriptorExtras, 
    	SurfaceConfigurationExtras, 
    	// Odin.
    	SurfaceSourceCanvasHTMLSelector  = 262145, 
    }

    Sampler ¶

    Sampler :: distinct rawptr
    Related Procedures With Parameters
    Related Procedures With Returns

    SamplerBindingLayout ¶

    SamplerBindingLayout :: struct {
    	nextInChain: ^ChainedStruct,
    	type:        SamplerBindingType,
    }

    SamplerBindingType ¶

    SamplerBindingType :: enum i32 {
    	BindingNotUsed = 0, 
    	Undefined      = 1, 
    	Filtering      = 2, 
    	NonFiltering   = 3, 
    	Comparison     = 4, 
    }

    SamplerDescriptor ¶

    SamplerDescriptor :: struct {
    	nextInChain:   ^ChainedStruct,
    	label:         string,
    	addressModeU:  AddressMode,
    	addressModeV:  AddressMode,
    	addressModeW:  AddressMode,
    	magFilter:     FilterMode,
    	minFilter:     FilterMode,
    	mipmapFilter:  MipmapFilterMode,
    	lodMinClamp:   f32,
    	lodMaxClamp:   f32,
    	compare:       CompareFunction,
    	maxAnisotropy: u16,
    }
    Related Procedures With Parameters

    ShaderDefine ¶

    ShaderDefine :: struct {
    	name:  string,
    	value: string,
    }

    ShaderModuleDescriptor ¶

    ShaderModuleDescriptor :: struct {
    	nextInChain: ^ChainedStruct,
    	label:       string,
    }
    Related Procedures With Parameters

    ShaderModuleDescriptorSpirV ¶

    ShaderModuleDescriptorSpirV :: struct {
    	label:      string,
    	sourceSize: u32,
    	source:     [^]u32 `fmt:"v,sourceSize"`,
    }
    Related Procedures With Parameters

    ShaderModuleGLSLDescriptor ¶

    ShaderModuleGLSLDescriptor :: struct {
    	using chain: ChainedStruct,
    	stage:       ShaderStage,
    	code:        string,
    	defineCount: uint,
    	defines:     [^]ShaderDefine `fmt:"v,defineCount"`,
    }

    ShaderSourceSPIRV ¶

    ShaderSourceSPIRV :: struct {
    	using chain: ChainedStruct,
    	codeSize: u32,
    	code:     [^]u32 `fmt:"v,codeSize"`,
    }

    ShaderSourceWGSL ¶

    ShaderSourceWGSL :: struct {
    	using chain: ChainedStruct,
    	code:  string,
    }

    ShaderStage ¶

    ShaderStage :: enum i32 {
    	Vertex   = 0, 
    	Fragment = 1, 
    	Compute  = 2, 
    }

    ShaderStageFlags ¶

    ShaderStageFlags :: bit_set[ShaderStage; u64]

    StencilFaceState ¶

    StencilFaceState :: struct {
    	compare:     CompareFunction,
    	failOp:      StencilOperation,
    	depthFailOp: StencilOperation,
    	passOp:      StencilOperation,
    }

    StencilOperation ¶

    StencilOperation :: enum i32 {
    	Undefined      = 0, 
    	Keep           = 1, 
    	Zero           = 2, 
    	Replace        = 3, 
    	Invert         = 4, 
    	IncrementClamp = 5, 
    	DecrementClamp = 6, 
    	IncrementWrap  = 7, 
    	DecrementWrap  = 8, 
    }

    StorageTextureAccess ¶

    StorageTextureAccess :: enum i32 {
    	BindingNotUsed = 0, 
    	Undefined      = 1, 
    	WriteOnly      = 2, 
    	ReadOnly       = 3, 
    	ReadWrite      = 4, 
    }

    StorageTextureBindingLayout ¶

    StorageTextureBindingLayout :: struct {
    	nextInChain:   ^ChainedStruct,
    	access:        StorageTextureAccess,
    	format:        TextureFormat,
    	viewDimension: TextureViewDimension,
    }

    StoreOp ¶

    StoreOp :: enum i32 {
    	Undefined = 0, 
    	Store     = 1, 
    	Discard   = 2, 
    }

    SubmissionIndex ¶

    SubmissionIndex :: distinct u64
    Related Procedures With Parameters
    Related Procedures With Returns

    SupportedFeatures ¶

    SupportedFeatures :: struct {
    	featureCount: uint,
    	features:     [^]FeatureName `fmt:"v,featureCount"`,
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    SupportedWGSLLanguageFeatures ¶

    SupportedWGSLLanguageFeatures :: struct {
    	featureCount: uint,
    	features:     [^]WGSLLanguageFeatureName `fmt:"v,featureCount"`,
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    SurfaceCapabilities ¶

    SurfaceCapabilities :: struct {
    	nextInChain:      ^ChainedStructOut,
    	usages:           bit_set[TextureUsage; u64],
    	formatCount:      uint,
    	formats:          [^]TextureFormat `fmt:"v,formatCount"`,
    	presentModeCount: uint,
    	presentModes:     [^]PresentMode `fmt:"v,presentModeCount"`,
    	alphaModeCount:   uint,
    	alphaModes:       [^]CompositeAlphaMode `fmt:"v,alphaModeCount"`,
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    SurfaceConfiguration ¶

    SurfaceConfiguration :: struct {
    	nextInChain:     ^ChainedStruct,
    	device:          Device,
    	format:          TextureFormat,
    	usage:           bit_set[TextureUsage; u64],
    	width:           u32,
    	height:          u32,
    	viewFormatCount: uint,
    	viewFormats:     [^]TextureFormat `fmt:"v,viewFormatCount"`,
    	alphaMode:       CompositeAlphaMode,
    	presentMode:     PresentMode,
    }
    Related Procedures With Parameters

    SurfaceConfigurationExtras ¶

    SurfaceConfigurationExtras :: struct {
    	using chain:                ChainedStruct,
    	desiredMaximumFrameLatency: u32,
    }

    SurfaceDescriptor ¶

    SurfaceDescriptor :: struct {
    	nextInChain: ^ChainedStruct,
    	label:       string,
    }
    Related Procedures With Parameters

    SurfaceGetCurrentTextureStatus ¶

    SurfaceGetCurrentTextureStatus :: enum i32 {
    	SuccessOptimal    = 1, 
    	SuccessSuboptimal = 2, 
    	Timeout           = 3, 
    	Outdated          = 4, 
    	Lost              = 5, 
    	OutOfMemory       = 6, 
    	DeviceLost        = 7, 
    	Error             = 8, 
    }

    SurfaceSourceAndroidNativeWindow ¶

    SurfaceSourceAndroidNativeWindow :: struct {
    	using chain: ChainedStruct,
    	window: rawptr,
    }

    SurfaceSourceCanvasHTMLSelector ¶

    SurfaceSourceCanvasHTMLSelector :: struct {
    	using chain: ChainedStruct,
    	selector: string,
    }

    SurfaceSourceMetalLayer ¶

    SurfaceSourceMetalLayer :: struct {
    	using chain: ChainedStruct,
    	layer: rawptr,
    }

    SurfaceSourceWaylandSurface ¶

    SurfaceSourceWaylandSurface :: struct {
    	using chain: ChainedStruct,
    	display: rawptr,
    	surface: rawptr,
    }

    SurfaceSourceWindowsHWND ¶

    SurfaceSourceWindowsHWND :: struct {
    	using chain: ChainedStruct,
    	hinstance: rawptr,
    	hwnd:      rawptr,
    }

    SurfaceSourceXcbWindow ¶

    SurfaceSourceXcbWindow :: struct {
    	using chain: ChainedStruct,
    	connection: rawptr,
    	window:     u32,
    }

    SurfaceSourceXlibWindow ¶

    SurfaceSourceXlibWindow :: struct {
    	using chain: ChainedStruct,
    	display: rawptr,
    	window:  u64,
    }

    SurfaceTexture ¶

    SurfaceTexture :: struct {
    	nextInChain: ^ChainedStructOut,
    	texture:     Texture,
    	status:      SurfaceGetCurrentTextureStatus,
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    TexelCopyBufferInfo ¶

    TexelCopyBufferInfo :: struct {
    	layout: TexelCopyBufferLayout,
    	buffer: Buffer,
    }
    Related Procedures With Parameters

    TexelCopyBufferLayout ¶

    TexelCopyBufferLayout :: struct {
    	offset:       u64,
    	bytesPerRow:  u32,
    	rowsPerImage: u32,
    }
    Related Procedures With Parameters

    TexelCopyTextureInfo ¶

    TexelCopyTextureInfo :: struct {
    	texture:  Texture,
    	mipLevel: u32,
    	origin:   Origin3D,
    	aspect:   TextureAspect,
    }
    Related Procedures With Parameters

    TextureAspect ¶

    TextureAspect :: enum i32 {
    	Undefined   = 0, 
    	All         = 1, 
    	StencilOnly = 2, 
    	DepthOnly   = 3, 
    }

    TextureBindingLayout ¶

    TextureBindingLayout :: struct {
    	nextInChain:   ^ChainedStruct,
    	sampleType:    TextureSampleType,
    	viewDimension: TextureViewDimension,
    	multisampled:  b32,
    }

    TextureDescriptor ¶

    TextureDescriptor :: struct {
    	nextInChain:     ^ChainedStruct,
    	label:           string,
    	usage:           bit_set[TextureUsage; u64],
    	dimension:       TextureDimension,
    	size:            Extent3D,
    	format:          TextureFormat,
    	mipLevelCount:   u32,
    	sampleCount:     u32,
    	viewFormatCount: uint,
    	viewFormats:     [^]TextureFormat `fmt:"v,viewFormatCount"`,
    }
    Related Procedures With Parameters

    TextureDimension ¶

    TextureDimension :: enum i32 {
    	Undefined = 0, 
    	_1D       = 1, 
    	_2D       = 2, 
    	_3D       = 3, 
    }
    Related Procedures With Returns

    TextureFormat ¶

    TextureFormat :: enum i32 {
    	Undefined            = 0, 
    	R8Unorm              = 1, 
    	R8Snorm              = 2, 
    	R8Uint               = 3, 
    	R8Sint               = 4, 
    	R16Uint              = 5, 
    	R16Sint              = 6, 
    	R16Float             = 7, 
    	RG8Unorm             = 8, 
    	RG8Snorm             = 9, 
    	RG8Uint              = 10, 
    	RG8Sint              = 11, 
    	R32Float             = 12, 
    	R32Uint              = 13, 
    	R32Sint              = 14, 
    	RG16Uint             = 15, 
    	RG16Sint             = 16, 
    	RG16Float            = 17, 
    	RGBA8Unorm           = 18, 
    	RGBA8UnormSrgb       = 19, 
    	RGBA8Snorm           = 20, 
    	RGBA8Uint            = 21, 
    	RGBA8Sint            = 22, 
    	BGRA8Unorm           = 23, 
    	BGRA8UnormSrgb       = 24, 
    	RGB10A2Uint          = 25, 
    	RGB10A2Unorm         = 26, 
    	RG11B10Ufloat        = 27, 
    	RGB9E5Ufloat         = 28, 
    	RG32Float            = 29, 
    	RG32Uint             = 30, 
    	RG32Sint             = 31, 
    	RGBA16Uint           = 32, 
    	RGBA16Sint           = 33, 
    	RGBA16Float          = 34, 
    	RGBA32Float          = 35, 
    	RGBA32Uint           = 36, 
    	RGBA32Sint           = 37, 
    	Stencil8             = 38, 
    	Depth16Unorm         = 39, 
    	Depth24Plus          = 40, 
    	Depth24PlusStencil8  = 41, 
    	Depth32Float         = 42, 
    	Depth32FloatStencil8 = 43, 
    	BC1RGBAUnorm         = 44, 
    	BC1RGBAUnormSrgb     = 45, 
    	BC2RGBAUnorm         = 46, 
    	BC2RGBAUnormSrgb     = 47, 
    	BC3RGBAUnorm         = 48, 
    	BC3RGBAUnormSrgb     = 49, 
    	BC4RUnorm            = 50, 
    	BC4RSnorm            = 51, 
    	BC5RGUnorm           = 52, 
    	BC5RGSnorm           = 53, 
    	BC6HRGBUfloat        = 54, 
    	BC6HRGBFloat         = 55, 
    	BC7RGBAUnorm         = 56, 
    	BC7RGBAUnormSrgb     = 57, 
    	ETC2RGB8Unorm        = 58, 
    	ETC2RGB8UnormSrgb    = 59, 
    	ETC2RGB8A1Unorm      = 60, 
    	ETC2RGB8A1UnormSrgb  = 61, 
    	ETC2RGBA8Unorm       = 62, 
    	ETC2RGBA8UnormSrgb   = 63, 
    	EACR11Unorm          = 64, 
    	EACR11Snorm          = 65, 
    	EACRG11Unorm         = 66, 
    	EACRG11Snorm         = 67, 
    	ASTC4x4Unorm         = 68, 
    	ASTC4x4UnormSrgb     = 69, 
    	ASTC5x4Unorm         = 70, 
    	ASTC5x4UnormSrgb     = 71, 
    	ASTC5x5Unorm         = 72, 
    	ASTC5x5UnormSrgb     = 73, 
    	ASTC6x5Unorm         = 74, 
    	ASTC6x5UnormSrgb     = 75, 
    	ASTC6x6Unorm         = 76, 
    	ASTC6x6UnormSrgb     = 77, 
    	ASTC8x5Unorm         = 78, 
    	ASTC8x5UnormSrgb     = 79, 
    	ASTC8x6Unorm         = 80, 
    	ASTC8x6UnormSrgb     = 81, 
    	ASTC8x8Unorm         = 82, 
    	ASTC8x8UnormSrgb     = 83, 
    	ASTC10x5Unorm        = 84, 
    	ASTC10x5UnormSrgb    = 85, 
    	ASTC10x6Unorm        = 86, 
    	ASTC10x6UnormSrgb    = 87, 
    	ASTC10x8Unorm        = 88, 
    	ASTC10x8UnormSrgb    = 89, 
    	ASTC10x10Unorm       = 90, 
    	ASTC10x10UnormSrgb   = 91, 
    	ASTC12x10Unorm       = 92, 
    	ASTC12x10UnormSrgb   = 93, 
    	ASTC12x12Unorm       = 94, 
    	ASTC12x12UnormSrgb   = 95, 
    	// From FeatureName.TextureFormat16bitNorm
    	R16Unorm             = 196609, 
    	R16Snorm, 
    	Rg16Unorm, 
    	Rg16Snorm, 
    	Rgba16Unorm, 
    	Rgba16Snorm, 
    	// From FeatureName.TextureFormatNv12
    	NV12, 
    }
    Related Procedures With Returns

    TextureSampleType ¶

    TextureSampleType :: enum i32 {
    	BindingNotUsed    = 0, 
    	Undefined         = 1, 
    	Float             = 2, 
    	UnfilterableFloat = 3, 
    	Depth             = 4, 
    	Sint              = 5, 
    	Uint              = 6, 
    }

    TextureUsage ¶

    TextureUsage :: enum i32 {
    	CopySrc          = 0, 
    	CopyDst          = 1, 
    	TextureBinding   = 2, 
    	StorageBinding   = 3, 
    	RenderAttachment = 4, 
    }

    TextureUsageFlags ¶

    TextureUsageFlags :: bit_set[TextureUsage; u64]

    TextureView ¶

    TextureView :: distinct rawptr
    Related Procedures With Parameters
    Related Procedures With Returns

    TextureViewDescriptor ¶

    TextureViewDescriptor :: struct {
    	nextInChain:     ^ChainedStruct,
    	label:           string,
    	format:          TextureFormat,
    	dimension:       TextureViewDimension,
    	baseMipLevel:    u32,
    	mipLevelCount:   u32,
    	baseArrayLayer:  u32,
    	arrayLayerCount: u32,
    	aspect:          TextureAspect,
    	usage:           bit_set[TextureUsage; u64],
    }
    Related Procedures With Parameters

    TextureViewDimension ¶

    TextureViewDimension :: enum i32 {
    	Undefined = 0, 
    	_1D       = 1, 
    	_2D       = 2, 
    	_2DArray  = 3, 
    	Cube      = 4, 
    	CubeArray = 5, 
    	_3D       = 6, 
    }

    UncapturedErrorCallback ¶

    UncapturedErrorCallback :: proc "c" (device: ^Device, type: ErrorType, message: string, userdata1: rawptr, userdata2: rawptr)

    UncapturedErrorCallbackInfo ¶

    UncapturedErrorCallbackInfo :: struct {
    	nextInChain: ^ChainedStruct,
    	callback:    UncapturedErrorCallback,
    	userdata1:   rawptr,
    	userdata2:   rawptr,
    }

    VertexAttribute ¶

    VertexAttribute :: struct {
    	format:         VertexFormat,
    	offset:         u64,
    	shaderLocation: u32,
    }

    VertexBufferLayout ¶

    VertexBufferLayout :: struct {
    	stepMode:       VertexStepMode,
    	arrayStride:    u64,
    	attributeCount: uint,
    	attributes:     [^]VertexAttribute `fmt:"v,attributeCount"`,
    }

    VertexFormat ¶

    VertexFormat :: enum i32 {
    	Uint8           = 1, 
    	Uint8x2         = 2, 
    	Uint8x4         = 3, 
    	Sint8           = 4, 
    	Sint8x2         = 5, 
    	Sint8x4         = 6, 
    	Unorm8          = 7, 
    	Unorm8x2        = 8, 
    	Unorm8x4        = 9, 
    	Snorm8          = 10, 
    	Snorm8x2        = 11, 
    	Snorm8x4        = 12, 
    	Uint16          = 13, 
    	Uint16x2        = 14, 
    	Uint16x4        = 15, 
    	Sint16          = 16, 
    	Sint16x2        = 17, 
    	Sint16x4        = 18, 
    	Unorm16         = 19, 
    	Unorm16x2       = 20, 
    	Unorm16x4       = 21, 
    	Snorm16         = 22, 
    	Snorm16x2       = 23, 
    	Snorm16x4       = 24, 
    	Float16         = 25, 
    	Float16x2       = 26, 
    	Float16x4       = 27, 
    	Float32         = 28, 
    	Float32x2       = 29, 
    	Float32x3       = 30, 
    	Float32x4       = 31, 
    	Uint32          = 32, 
    	Uint32x2        = 33, 
    	Uint32x3        = 34, 
    	Uint32x4        = 35, 
    	Sint32          = 36, 
    	Sint32x2        = 37, 
    	Sint32x3        = 38, 
    	Sint32x4        = 39, 
    	Unorm10_10_10_2 = 40, 
    	Unorm8x4BGRA    = 41, 
    }

    VertexState ¶

    VertexState :: struct {
    	nextInChain:   ^ChainedStruct,
    	module:        ShaderModule,
    	entryPoint:    string,
    	constantCount: uint,
    	constants:     [^]ConstantEntry `fmt:"v,constantCount"`,
    	bufferCount:   uint,
    	buffers:       [^]VertexBufferLayout `fmt:"v,bufferCount"`,
    }

    VertexStepMode ¶

    VertexStepMode :: enum i32 {
    	VertexBufferNotUsed = 0, 
    	Undefined           = 1, 
    	Vertex              = 2, 
    	Instance            = 3, 
    }

    WGSLLanguageFeatureName ¶

    WGSLLanguageFeatureName :: enum i32 {
    	ReadonlyAndReadwriteStorageTextures = 1, 
    	Packed4x8IntegerDotProduct          = 2, 
    	UnrestrictedPointerParameters       = 3, 
    	PointerCompositeAccess              = 4, 
    }
    Related Procedures With Parameters

    WaitStatus ¶

    WaitStatus :: enum i32 {
    	Success                = 1, 
    	TimedOut               = 2, 
    	UnsupportedTimeout     = 3, 
    	UnsupportedCount       = 4, 
    	UnsupportedMixedSource = 5, 
    }
    Related Procedures With Returns

    Constants

    ARRAY_LAYER_COUNT_UNDEFINED ¶

    ARRAY_LAYER_COUNT_UNDEFINED: u32 : max(u32)

    BINDINGS_VERSION ¶

    BINDINGS_VERSION: [4]u8 : [4]u8{24, 0, 0, 2}

    BINDINGS_VERSION_STRING ¶

    BINDINGS_VERSION_STRING: string : "24.0.0.2"

    COPY_STRIDE_UNDEFINED ¶

    COPY_STRIDE_UNDEFINED: u32 : max(u32)

    ColorWriteMaskFlags_All ¶

    ColorWriteMaskFlags_All: bit_set[ColorWriteMask; u64] : ColorWriteMaskFlags{.Red, .Green, .Blue, .Alpha}

    DEPTH_SLICE_UNDEFINED ¶

    DEPTH_SLICE_UNDEFINED: u32 : max(u32)

    InstanceBackendFlags_All ¶

    InstanceBackendFlags_All: bit_set[InstanceBackend; u64] : InstanceBackendFlags{}

    InstanceBackendFlags_Primary ¶

    InstanceBackendFlags_Primary: bit_set[InstanceBackend; u64] : InstanceBackendFlags{.Vulkan, .Metal, .DX12, .BrowserWebGPU}

    InstanceBackendFlags_Secondary ¶

    InstanceBackendFlags_Secondary: bit_set[InstanceBackend; u64] : InstanceBackendFlags{.GL, .DX11}

    InstanceFlags_Default ¶

    InstanceFlags_Default: bit_set[InstanceFlag; u64] : InstanceFlags{}

    LIMIT_U32_UNDEFINED ¶

    LIMIT_U32_UNDEFINED: u32 : max(u32)

    LIMIT_U64_UNDEFINED ¶

    LIMIT_U64_UNDEFINED: u64 : max(u64)

    MIP_LEVEL_COUNT_UNDEFINED ¶

    MIP_LEVEL_COUNT_UNDEFINED: u32 : max(u32)

    QUERY_SET_INDEX_UNDEFINED ¶

    QUERY_SET_INDEX_UNDEFINED: u32 : max(u32)

    STRLEN ¶

    STRLEN: int : transmute(int)(max(uint))

    WGPU_DEBUG ¶

    WGPU_DEBUG: bool : #config(WGPU_DEBUG, false)

    WGPU_SHARED ¶

    WGPU_SHARED: bool : #config(WGPU_SHARED, false)

    WHOLE_MAP_SIZE ¶

    WHOLE_MAP_SIZE: uint : max(uint)

    WHOLE_SIZE ¶

    WHOLE_SIZE: u64 : max(u64)

    Variables

    This section is empty.

    Procedures

    AdapterAddRef ¶

    AdapterAddRef :: proc "c" (adapter: Adapter) ---

    AdapterGetFeatures ¶

    AdapterGetFeatures :: proc "c" (adapter: Adapter) -> (features: SupportedFeatures) {…}

    AdapterGetInfo ¶

    AdapterGetInfo :: proc "c" (adapter: Adapter) -> (info: AdapterInfo, status: Status) {…}

    AdapterGetLimits ¶

    AdapterGetLimits :: proc "c" (adapter: Adapter) -> (limits: Limits, status: Status) {…}

    AdapterHasFeature ¶

    AdapterHasFeature :: proc "c" (adapter: Adapter, feature: FeatureName) -> b32 ---

    AdapterInfoFreeMembers ¶

    AdapterInfoFreeMembers :: proc "c" (adapterInfo: AdapterInfo) ---
     

    Procs of AdapterInfo

    AdapterRelease ¶

    AdapterRelease :: proc "c" (adapter: Adapter) ---

    AdapterRequestDevice ¶

    AdapterRequestDevice :: proc "c" (adapter: Adapter, descriptor: ^DeviceDescriptor, callbackInfo: RequestDeviceCallbackInfo) -> Future ---

    BindGroupAddRef ¶

    BindGroupAddRef :: proc "c" (bindGroup: BindGroup) ---

    BindGroupLayoutAddRef ¶

    BindGroupLayoutAddRef :: proc "c" (bindGroupLayout: BindGroupLayout) ---

    BindGroupLayoutRelease ¶

    BindGroupLayoutRelease :: proc "c" (bindGroupLayout: BindGroupLayout) ---

    BindGroupLayoutSetLabel ¶

    BindGroupLayoutSetLabel :: proc "c" (bindGroupLayout: BindGroupLayout, label: cstring) ---
     

    Methods of BindGroupLayout

    BindGroupRelease ¶

    BindGroupRelease :: proc "c" (bindGroup: BindGroup) ---

    BindGroupSetLabel ¶

    BindGroupSetLabel :: proc "c" (bindGroup: BindGroup, label: string) ---
     

    Methods of BindGroup

    BufferAddRef ¶

    BufferAddRef :: proc "c" (buffer: Buffer) ---

    BufferDestroy ¶

    BufferDestroy :: proc "c" (buffer: Buffer) ---
     

    Methods of Buffer

    BufferGetConstMappedRange ¶

    BufferGetConstMappedRange :: proc "c" (buffer: Buffer, offset: uint, size: uint) -> []u8 {…}

    BufferGetConstMappedRangeSlice ¶

    BufferGetConstMappedRangeSlice :: proc "c" (buffer: Buffer, offset: uint, length: uint, $T: typeid) -> []typeid {…}

    BufferGetConstMappedRangeTyped ¶

    BufferGetConstMappedRangeTyped :: proc "c" (buffer: Buffer, offset: uint, $T: typeid) -> ^typeid {…}

    BufferGetMapState ¶

    BufferGetMapState :: proc "c" (buffer: Buffer) -> BufferMapState ---

    BufferGetMappedRange ¶

    BufferGetMappedRange :: proc "c" (buffer: Buffer, offset: uint, size: uint) -> []u8 {…}

    BufferGetMappedRangeSlice ¶

    BufferGetMappedRangeSlice :: proc "c" (buffer: Buffer, offset: uint, $T: typeid, length: uint) -> []typeid {…}

    BufferGetMappedRangeTyped ¶

    BufferGetMappedRangeTyped :: proc "c" (buffer: Buffer, offset: uint, $T: typeid) -> ^typeid {…}

    BufferGetSize ¶

    BufferGetSize :: proc "c" (buffer: Buffer) -> u64 ---

    BufferGetUsage ¶

    BufferGetUsage :: proc "c" (buffer: Buffer) -> bit_set[BufferUsage; u64] ---

    BufferMapAsync ¶

    BufferMapAsync :: proc "c" (buffer: Buffer, mode: bit_set[MapMode; u64], offset: uint, size: uint, callbackInfo: BufferMapCallbackInfo) -> Future ---

    BufferRelease ¶

    BufferRelease :: proc "c" (buffer: Buffer) ---

    BufferSetLabel ¶

    BufferSetLabel :: proc "c" (buffer: Buffer, label: string) ---

    BufferUnmap ¶

    BufferUnmap :: proc "c" (buffer: Buffer) ---

    CommandBufferAddRef ¶

    CommandBufferAddRef :: proc "c" (commandBuffer: CommandBuffer) ---

    CommandBufferRelease ¶

    CommandBufferRelease :: proc "c" (commandBuffer: CommandBuffer) ---

    CommandBufferSetLabel ¶

    CommandBufferSetLabel :: proc "c" (commandBuffer: CommandBuffer, label: string) ---
     

    Methods of CommandBuffer

    CommandEncoderAddRef ¶

    CommandEncoderAddRef :: proc "c" (commandEncoder: CommandEncoder) ---

    CommandEncoderBeginComputePass ¶

    CommandEncoderBeginComputePass :: proc "c" (commandEncoder: CommandEncoder, descriptor: ^ComputePassDescriptor = nil) -> ComputePassEncoder ---
     

    Methods of CommandEncoder

    CommandEncoderBeginRenderPass ¶

    CommandEncoderBeginRenderPass :: proc "c" (commandEncoder: CommandEncoder, descriptor: ^RenderPassDescriptor) -> RenderPassEncoder ---

    CommandEncoderClearBuffer ¶

    CommandEncoderClearBuffer :: proc "c" (commandEncoder: CommandEncoder, buffer: Buffer, offset: u64, size: u64) ---

    CommandEncoderCopyBufferToBuffer ¶

    CommandEncoderCopyBufferToBuffer :: proc "c" (
    	commandEncoder:    CommandEncoder, 
    	source:            Buffer, 
    	sourceOffset:      u64, 
    	destination:       Buffer, 
    	destinationOffset: u64, 
    	size:              u64, 
    ) ---

    CommandEncoderCopyBufferToTexture ¶

    CommandEncoderCopyBufferToTexture :: proc "c" (commandEncoder: CommandEncoder, source: ^TexelCopyBufferInfo, destination: ^TexelCopyTextureInfo, copySize: ^Extent3D) ---

    CommandEncoderCopyTextureToBuffer ¶

    CommandEncoderCopyTextureToBuffer :: proc "c" (commandEncoder: CommandEncoder, source: ^TexelCopyTextureInfo, destination: ^TexelCopyBufferInfo, copySize: ^Extent3D) ---

    CommandEncoderCopyTextureToTexture ¶

    CommandEncoderCopyTextureToTexture :: proc "c" (commandEncoder: CommandEncoder, source: ^TexelCopyTextureInfo, destination: ^TexelCopyTextureInfo, copySize: ^Extent3D) ---

    CommandEncoderFinish ¶

    CommandEncoderFinish :: proc "c" (commandEncoder: CommandEncoder, descriptor: ^CommandBufferDescriptor = nil) -> CommandBuffer ---

    CommandEncoderInsertDebugMarker ¶

    CommandEncoderInsertDebugMarker :: proc "c" (commandEncoder: CommandEncoder, markerLabel: string) ---

    CommandEncoderPopDebugGroup ¶

    CommandEncoderPopDebugGroup :: proc "c" (commandEncoder: CommandEncoder) ---

    CommandEncoderPushDebugGroup ¶

    CommandEncoderPushDebugGroup :: proc "c" (commandEncoder: CommandEncoder, groupLabel: string) ---

    CommandEncoderRelease ¶

    CommandEncoderRelease :: proc "c" (commandEncoder: CommandEncoder) ---

    CommandEncoderResolveQuerySet ¶

    CommandEncoderResolveQuerySet :: proc "c" (
    	commandEncoder:    CommandEncoder, 
    	querySet:          QuerySet, 
    	firstQuery:        u32, 
    	queryCount:        u32, 
    	destination:       Buffer, 
    	destinationOffset: u64, 
    ) ---

    CommandEncoderSetLabel ¶

    CommandEncoderSetLabel :: proc "c" (commandEncoder: CommandEncoder, label: string) ---

    CommandEncoderWriteTimestamp ¶

    CommandEncoderWriteTimestamp :: proc "c" (commandEncoder: CommandEncoder, querySet: QuerySet, queryIndex: u32) ---

    ComputePassEncoderAddRef ¶

    ComputePassEncoderAddRef :: proc "c" (computePassEncoder: ComputePassEncoder) ---

    ComputePassEncoderBeginPipelineStatisticsQuery ¶

    ComputePassEncoderBeginPipelineStatisticsQuery :: proc "c" (computePassEncoder: ComputePassEncoder, querySet: QuerySet, queryIndex: u32) ---

    ComputePassEncoderDispatchWorkgroups ¶

    ComputePassEncoderDispatchWorkgroups :: proc "c" (computePassEncoder: ComputePassEncoder, workgroupCountX: u32, workgroupCountY: u32, workgroupCountZ: u32) ---
     

    Methods of ComputePassEncoder

    ComputePassEncoderDispatchWorkgroupsIndirect ¶

    ComputePassEncoderDispatchWorkgroupsIndirect :: proc "c" (computePassEncoder: ComputePassEncoder, indirectBuffer: Buffer, indirectOffset: u64) ---

    ComputePassEncoderEnd ¶

    ComputePassEncoderEnd :: proc "c" (computePassEncoder: ComputePassEncoder) ---

    ComputePassEncoderEndPipelineStatisticsQuery ¶

    ComputePassEncoderEndPipelineStatisticsQuery :: proc "c" (computePassEncoder: ComputePassEncoder) ---

    ComputePassEncoderInsertDebugMarker ¶

    ComputePassEncoderInsertDebugMarker :: proc "c" (computePassEncoder: ComputePassEncoder, markerLabel: string) ---

    ComputePassEncoderPopDebugGroup ¶

    ComputePassEncoderPopDebugGroup :: proc "c" (computePassEncoder: ComputePassEncoder) ---

    ComputePassEncoderPushDebugGroup ¶

    ComputePassEncoderPushDebugGroup :: proc "c" (computePassEncoder: ComputePassEncoder, groupLabel: string) ---

    ComputePassEncoderRelease ¶

    ComputePassEncoderRelease :: proc "c" (computePassEncoder: ComputePassEncoder) ---

    ComputePassEncoderSetBindGroup ¶

    ComputePassEncoderSetBindGroup :: proc "c" (computePassEncoder: ComputePassEncoder, groupIndex: u32, group: BindGroup, dynamicOffsets: []u32 = nil) {…}

    ComputePassEncoderSetLabel ¶

    ComputePassEncoderSetLabel :: proc "c" (computePassEncoder: ComputePassEncoder, label: string) ---

    ComputePassEncoderSetPipeline ¶

    ComputePassEncoderSetPipeline :: proc "c" (computePassEncoder: ComputePassEncoder, pipeline: ComputePipeline) ---

    ComputePassEncoderSetPushConstants ¶

    ComputePassEncoderSetPushConstants :: proc "c" (encoder: ComputePassEncoder, offset: u32, sizeBytes: u32, data: rawptr) ---

    ComputePassEncoderWriteTimestamp ¶

    ComputePassEncoderWriteTimestamp :: proc "c" (computePassEncoder: ComputePassEncoder, querySet: QuerySet, queryIndex: u32) ---

    ComputePipelineAddRef ¶

    ComputePipelineAddRef :: proc "c" (computePipeline: ComputePipeline) ---

    ComputePipelineGetBindGroupLayout ¶

    ComputePipelineGetBindGroupLayout :: proc "c" (computePipeline: ComputePipeline, groupIndex: u32) -> BindGroupLayout ---
     

    Methods of ComputePipeline

    ComputePipelineRelease ¶

    ComputePipelineRelease :: proc "c" (computePipeline: ComputePipeline) ---

    ComputePipelineSetLabel ¶

    ComputePipelineSetLabel :: proc "c" (computePipeline: ComputePipeline, label: string) ---

    ConvertOdinToWGPULogLevel ¶

    ConvertOdinToWGPULogLevel :: proc(level: runtime.Logger_Level) -> LogLevel {…}

    ConvertWGPUToOdinLogLevel ¶

    ConvertWGPUToOdinLogLevel :: proc(level: LogLevel) -> runtime.Logger_Level {…}

    CreateInstance ¶

    CreateInstance :: proc "c" (descriptor: ^InstanceDescriptor = nil) -> Instance {…}

    DeviceAddRef ¶

    DeviceAddRef :: proc "c" (device: Device) ---

    DeviceCreateBindGroup ¶

    DeviceCreateBindGroup :: proc "c" (device: Device, descriptor: ^BindGroupDescriptor) -> BindGroup ---
     

    Methods of Device

    DeviceCreateBindGroupLayout ¶

    DeviceCreateBindGroupLayout :: proc "c" (device: Device, descriptor: ^BindGroupLayoutDescriptor) -> BindGroupLayout ---

    DeviceCreateBuffer ¶

    DeviceCreateBuffer :: proc "c" (device: Device, descriptor: ^BufferDescriptor) -> Buffer ---

    DeviceCreateBufferWithDataSlice ¶

    DeviceCreateBufferWithDataSlice :: proc "c" (device: Device, descriptor: ^BufferWithDataDescriptor, data: []$T) -> (buf: Buffer) {…}

    DeviceCreateBufferWithDataTyped ¶

    DeviceCreateBufferWithDataTyped :: proc "c" (device: Device, descriptor: ^BufferWithDataDescriptor, data: $T) -> (buf: Buffer) {…}

    DeviceCreateCommandEncoder ¶

    DeviceCreateCommandEncoder :: proc "c" (device: Device, descriptor: ^CommandEncoderDescriptor = nil) -> CommandEncoder ---

    DeviceCreateComputePipeline ¶

    DeviceCreateComputePipeline :: proc "c" (device: Device, descriptor: ^ComputePipelineDescriptor) -> ComputePipeline ---

    DeviceCreateComputePipelineAsync ¶

    DeviceCreateComputePipelineAsync :: proc "c" (device: Device, descriptor: ^ComputePipelineDescriptor, callbackInfo: CreateComputePipelineAsyncCallbackInfo) -> Future ---

    DeviceCreatePipelineLayout ¶

    DeviceCreatePipelineLayout :: proc "c" (device: Device, descriptor: ^PipelineLayoutDescriptor) -> PipelineLayout ---

    DeviceCreateQuerySet ¶

    DeviceCreateQuerySet :: proc "c" (device: Device, descriptor: ^QuerySetDescriptor) -> QuerySet ---

    DeviceCreateRenderBundleEncoder ¶

    DeviceCreateRenderBundleEncoder :: proc "c" (device: Device, descriptor: ^RenderBundleEncoderDescriptor) -> RenderBundleEncoder ---

    DeviceCreateRenderPipeline ¶

    DeviceCreateRenderPipeline :: proc "c" (device: Device, descriptor: ^RenderPipelineDescriptor) -> RenderPipeline ---

    DeviceCreateRenderPipelineAsync ¶

    DeviceCreateRenderPipelineAsync :: proc "c" (device: Device, descriptor: ^RenderPipelineDescriptor, callbackInfo: CreateRenderPipelineAsyncCallbackInfo) -> Future ---

    DeviceCreateSampler ¶

    DeviceCreateSampler :: proc "c" (device: Device, descriptor: ^SamplerDescriptor = nil) -> Sampler ---

    DeviceCreateShaderModule ¶

    DeviceCreateShaderModule :: proc "c" (device: Device, descriptor: ^ShaderModuleDescriptor) -> ShaderModule ---

    DeviceCreateShaderModuleSpirV ¶

    DeviceCreateShaderModuleSpirV :: proc "c" (device: Device, descriptor: ^ShaderModuleDescriptorSpirV) -> ShaderModule ---

    DeviceCreateTexture ¶

    DeviceCreateTexture :: proc "c" (device: Device, descriptor: ^TextureDescriptor) -> Texture ---

    DeviceDestroy ¶

    DeviceDestroy :: proc "c" (device: Device) ---

    DeviceGetAdapterInfo ¶

    DeviceGetAdapterInfo :: proc "c" (device: Device) -> (info: AdapterInfo, status: Status) {…}

    DeviceGetFeatures ¶

    DeviceGetFeatures :: proc "c" (device: Device) -> (features: SupportedFeatures) {…}

    DeviceGetLimits ¶

    DeviceGetLimits :: proc "c" (device: Device) -> (limits: Limits, status: Status) {…}

    DeviceGetLostFuture ¶

    DeviceGetLostFuture :: proc "c" (device: Device) -> Future ---

    DeviceGetQueue ¶

    DeviceGetQueue :: proc "c" (device: Device) -> Queue ---

    DeviceHasFeature ¶

    DeviceHasFeature :: proc "c" (device: Device, feature: FeatureName) -> b32 ---

    DevicePoll ¶

    DevicePoll :: proc "c" (device: Device, wait: b32, wrappedSubmissionIndex: ^SubmissionIndex = nil) -> b32 ---
     

    Returns true if the queue is empty, or false if there are more queue submissions still in flight.

    DevicePopErrorScope ¶

    DevicePopErrorScope :: proc "c" (device: Device, callbackInfo: PopErrorScopeCallbackInfo) -> Future ---

    DevicePushErrorScope ¶

    DevicePushErrorScope :: proc "c" (device: Device, filter: ErrorFilter) ---

    DeviceRelease ¶

    DeviceRelease :: proc "c" (device: Device) ---

    DeviceSetLabel ¶

    DeviceSetLabel :: proc "c" (device: Device, label: string) ---

    GenerateReport ¶

    GenerateReport :: proc "c" (instance: Instance) -> (report: GlobalReport) {…}

    GetInstanceCapabilities ¶

    GetInstanceCapabilities :: proc "c" () -> (capabilities: InstanceCapabilities, status: Status) {…}

    GetProcAddress ¶

    GetProcAddress :: proc "c" (procName: string) -> Proc ---

    GetVersion ¶

    GetVersion :: proc "c" () -> u32 ---

    InstanceAddRef ¶

    InstanceAddRef :: proc "c" (instance: Instance) ---

    InstanceCreateSurface ¶

    InstanceCreateSurface :: proc "c" (instance: Instance, descriptor: ^SurfaceDescriptor) -> Surface ---
     

    Methods of Instance

    InstanceEnumerateAdapters ¶

    InstanceEnumerateAdapters :: proc(instance: Instance, options: ^InstanceEnumerateAdapterOptions = nil, allocator := context.allocator) -> (adapters: []Adapter) {…}

    InstanceGetWGSLLanguageFeatures ¶

    InstanceGetWGSLLanguageFeatures :: proc "c" (instance: Instance) -> (features: SupportedWGSLLanguageFeatures, status: Status) {…}

    InstanceHasWGSLLanguageFeature ¶

    InstanceHasWGSLLanguageFeature :: proc "c" (instance: Instance, feature: WGSLLanguageFeatureName) -> b32 ---

    InstanceProcessEvents ¶

    InstanceProcessEvents :: proc "c" (instance: Instance) ---

    InstanceRelease ¶

    InstanceRelease :: proc "c" (instance: Instance) ---

    InstanceRequestAdapter ¶

    InstanceRequestAdapter :: proc "c" (instance: Instance, options: ^RequestAdapterOptions, callbackInfo: RequestAdapterCallbackInfo) -> Future ---

    InstanceWaitAny ¶

    InstanceWaitAny :: proc "c" (instance: Instance, futureCount: uint, futures: [^]FutureWaitInfo, timeoutNS: u64) -> WaitStatus ---

    PipelineLayoutAddRef ¶

    PipelineLayoutAddRef :: proc "c" (pipelineLayout: PipelineLayout) ---

    PipelineLayoutRelease ¶

    PipelineLayoutRelease :: proc "c" (pipelineLayout: PipelineLayout) ---

    PipelineLayoutSetLabel ¶

    PipelineLayoutSetLabel :: proc "c" (pipelineLayout: PipelineLayout, label: string) ---
     

    Methods of PipelineLayout

    QuerySetAddRef ¶

    QuerySetAddRef :: proc "c" (querySet: QuerySet) ---

    QuerySetDestroy ¶

    QuerySetDestroy :: proc "c" (querySet: QuerySet) ---
     

    Methods of QuerySet

    QuerySetGetCount ¶

    QuerySetGetCount :: proc "c" (querySet: QuerySet) -> u32 ---

    QuerySetGetType ¶

    QuerySetGetType :: proc "c" (querySet: QuerySet) -> QueryType ---

    QuerySetRelease ¶

    QuerySetRelease :: proc "c" (querySet: QuerySet) ---

    QuerySetSetLabel ¶

    QuerySetSetLabel :: proc "c" (querySet: QuerySet, label: string) ---

    QueueAddRef ¶

    QueueAddRef :: proc "c" (queue: Queue) ---

    QueueOnSubmittedWorkDone ¶

    QueueOnSubmittedWorkDone :: proc "c" (queue: Queue, callbackInfo: QueueWorkDoneCallbackInfo) -> Future ---
     

    Methods of Queue

    QueueRelease ¶

    QueueRelease :: proc "c" (queue: Queue) ---

    QueueSetLabel ¶

    QueueSetLabel :: proc "c" (queue: Queue, label: string) ---

    QueueSubmit ¶

    QueueSubmit :: proc "c" (queue: Queue, commands: []CommandBuffer) {…}

    QueueSubmitForIndex ¶

    QueueSubmitForIndex :: proc "c" (queue: Queue, commands: []CommandBuffer) -> SubmissionIndex {…}

    QueueWriteBuffer ¶

    QueueWriteBuffer :: proc "c" (queue: Queue, buffer: Buffer, bufferOffset: u64, data: rawptr, size: uint) ---

    QueueWriteTexture ¶

    QueueWriteTexture :: proc "c" (
    	queue:       Queue, 
    	destination: ^TexelCopyTextureInfo, 
    	data:        rawptr, 
    	dataSize:    uint, 
    	dataLayout:  ^TexelCopyBufferLayout, 
    	writeSize:   ^Extent3D, 
    ) ---

    RawAdapterGetFeatures ¶

    RawAdapterGetFeatures :: proc "c" (adapter: Adapter, features: ^SupportedFeatures) ---
     

    Methods of Adapter

    RawAdapterGetInfo ¶

    RawAdapterGetInfo :: proc "c" (adapter: Adapter, info: ^AdapterInfo) -> Status ---

    RawAdapterGetLimits ¶

    RawAdapterGetLimits :: proc "c" (adapter: Adapter, limits: ^Limits) -> Status ---

    RawBufferGetConstMappedRange ¶

    RawBufferGetConstMappedRange :: proc "c" (buffer: Buffer, offset: uint, size: uint) -> rawptr ---

    RawBufferGetMappedRange ¶

    RawBufferGetMappedRange :: proc "c" (buffer: Buffer, offset: uint, size: uint) -> rawptr ---

    RawComputePassEncoderSetBindGroup ¶

    RawComputePassEncoderSetBindGroup :: proc "c" (computePassEncoder: ComputePassEncoder, groupIndex: u32, group: BindGroup, dynamicOffsetCount: uint, dynamicOffsets: [^]u32) ---

    RawCreateInstance ¶

    RawCreateInstance :: proc "c" (descriptor: ^InstanceDescriptor = nil) -> Instance ---

    RawDeviceGetAdapterInfo ¶

    RawDeviceGetAdapterInfo :: proc "c" (device: Device, info: ^AdapterInfo) -> Status ---

    RawDeviceGetFeatures ¶

    RawDeviceGetFeatures :: proc "c" (device: Device, features: ^SupportedFeatures) ---

    RawDeviceGetLimits ¶

    RawDeviceGetLimits :: proc "c" (device: Device, limits: ^Limits) -> Status ---

    RawGenerateReport ¶

    RawGenerateReport :: proc "c" (instance: Instance, report: ^GlobalReport) ---

    RawGetInstanceCapabilities ¶

    RawGetInstanceCapabilities :: proc "c" (capabilities: ^InstanceCapabilities) -> Status ---

    RawInstanceEnumerateAdapters ¶

    RawInstanceEnumerateAdapters :: proc "c" (instance: Instance, options: ^InstanceEnumerateAdapterOptions, adapters: [^]Adapter) -> uint ---

    RawInstanceGetWGSLLanguageFeatures ¶

    RawInstanceGetWGSLLanguageFeatures :: proc "c" (instance: Instance, features: ^SupportedWGSLLanguageFeatures) -> Status ---

    RawQueueSubmit ¶

    RawQueueSubmit :: proc "c" (queue: Queue, commandCount: uint, commands: [^]CommandBuffer) ---

    RawQueueSubmitForIndex ¶

    RawQueueSubmitForIndex :: proc "c" (queue: Queue, commandCount: uint, commands: [^]CommandBuffer) -> SubmissionIndex ---

    RawRenderBundleEncoderSetBindGroup ¶

    RawRenderBundleEncoderSetBindGroup :: proc "c" (renderBundleEncoder: RenderBundleEncoder, groupIndex: u32, group: BindGroup, dynamicOffsetCount: uint, dynamicOffsets: [^]u32) ---

    RawRenderPassEncoderExecuteBundles ¶

    RawRenderPassEncoderExecuteBundles :: proc "c" (renderPassEncoder: RenderPassEncoder, bundleCount: uint, bundles: [^]RenderBundle) ---

    RawRenderPassEncoderSetBindGroup ¶

    RawRenderPassEncoderSetBindGroup :: proc "c" (renderPassEncoder: RenderPassEncoder, groupIndex: u32, group: BindGroup, dynamicOffsetCount: uint, dynamicOffsets: [^]u32) ---

    RawSurfaceGetCapabilities ¶

    RawSurfaceGetCapabilities :: proc "c" (surface: Surface, adapter: Adapter, capabilities: ^SurfaceCapabilities) -> Status ---

    RawSurfaceGetCurrentTexture ¶

    RawSurfaceGetCurrentTexture :: proc "c" (surface: Surface, surfaceTexture: ^SurfaceTexture) ---

    RenderBundleAddRef ¶

    RenderBundleAddRef :: proc "c" (renderBundle: RenderBundle) ---

    RenderBundleEncoderAddRef ¶

    RenderBundleEncoderAddRef :: proc "c" (renderBundleEncoder: RenderBundleEncoder) ---

    RenderBundleEncoderDraw ¶

    RenderBundleEncoderDraw :: proc "c" (renderBundleEncoder: RenderBundleEncoder, vertexCount: u32, instanceCount: u32, firstVertex: u32, firstInstance: u32) ---
     

    Methods of RenderBundleEncoder

    RenderBundleEncoderDrawIndexed ¶

    RenderBundleEncoderDrawIndexed :: proc "c" (
    	renderBundleEncoder: RenderBundleEncoder, 
    	indexCount:          u32, 
    	instanceCount:       u32, 
    	firstIndex:          u32, 
    	baseVertex:          i32, 
    	firstInstance:       u32, 
    ) ---

    RenderBundleEncoderDrawIndexedIndirect ¶

    RenderBundleEncoderDrawIndexedIndirect :: proc "c" (renderBundleEncoder: RenderBundleEncoder, indirectBuffer: Buffer, indirectOffset: u64) ---

    RenderBundleEncoderDrawIndirect ¶

    RenderBundleEncoderDrawIndirect :: proc "c" (renderBundleEncoder: RenderBundleEncoder, indirectBuffer: Buffer, indirectOffset: u64) ---

    RenderBundleEncoderFinish ¶

    RenderBundleEncoderFinish :: proc "c" (renderBundleEncoder: RenderBundleEncoder, descriptor: ^RenderBundleDescriptor = nil) -> RenderBundle ---

    RenderBundleEncoderInsertDebugMarker ¶

    RenderBundleEncoderInsertDebugMarker :: proc "c" (renderBundleEncoder: RenderBundleEncoder, markerLabel: string) ---

    RenderBundleEncoderPopDebugGroup ¶

    RenderBundleEncoderPopDebugGroup :: proc "c" (renderBundleEncoder: RenderBundleEncoder) ---

    RenderBundleEncoderPushDebugGroup ¶

    RenderBundleEncoderPushDebugGroup :: proc "c" (renderBundleEncoder: RenderBundleEncoder, groupLabel: string) ---

    RenderBundleEncoderRelease ¶

    RenderBundleEncoderRelease :: proc "c" (renderBundleEncoder: RenderBundleEncoder) ---

    RenderBundleEncoderSetBindGroup ¶

    RenderBundleEncoderSetBindGroup :: proc "c" (renderBundleEncoder: RenderBundleEncoder, groupIndex: u32, group: BindGroup, dynamicOffsets: []u32 = nil) {…}

    RenderBundleEncoderSetIndexBuffer ¶

    RenderBundleEncoderSetIndexBuffer :: proc "c" (renderBundleEncoder: RenderBundleEncoder, buffer: Buffer, format: IndexFormat, offset: u64, size: u64) ---

    RenderBundleEncoderSetLabel ¶

    RenderBundleEncoderSetLabel :: proc "c" (renderBundleEncoder: RenderBundleEncoder, label: string) ---

    RenderBundleEncoderSetPipeline ¶

    RenderBundleEncoderSetPipeline :: proc "c" (renderBundleEncoder: RenderBundleEncoder, pipeline: RenderPipeline) ---

    RenderBundleEncoderSetPushConstants ¶

    RenderBundleEncoderSetPushConstants :: proc "c" (encoder: RenderBundleEncoder, stages: bit_set[ShaderStage; u64], offset: u32, sizeBytes: u32, data: rawptr) ---

    RenderBundleEncoderSetVertexBuffer ¶

    RenderBundleEncoderSetVertexBuffer :: proc "c" (renderBundleEncoder: RenderBundleEncoder, slot: u32, buffer: Buffer, offset: u64, size: u64) ---

    RenderBundleRelease ¶

    RenderBundleRelease :: proc "c" (renderBundle: RenderBundle) ---

    RenderBundleSetLabel ¶

    RenderBundleSetLabel :: proc "c" (renderBundle: RenderBundle, label: string) ---
     

    Methods of RenderBundle

    RenderPassEncoderAddRef ¶

    RenderPassEncoderAddRef :: proc "c" (renderPassEncoder: RenderPassEncoder) ---

    RenderPassEncoderBeginOcclusionQuery ¶

    RenderPassEncoderBeginOcclusionQuery :: proc "c" (renderPassEncoder: RenderPassEncoder, queryIndex: u32) ---
     

    Methods of RenderPassEncoder

    RenderPassEncoderBeginPipelineStatisticsQuery ¶

    RenderPassEncoderBeginPipelineStatisticsQuery :: proc "c" (renderPassEncoder: RenderPassEncoder, querySet: QuerySet, queryIndex: u32) ---

    RenderPassEncoderDraw ¶

    RenderPassEncoderDraw :: proc "c" (renderPassEncoder: RenderPassEncoder, vertexCount: u32, instanceCount: u32, firstVertex: u32, firstInstance: u32) ---

    RenderPassEncoderDrawIndexed ¶

    RenderPassEncoderDrawIndexed :: proc "c" (
    	renderPassEncoder: RenderPassEncoder, 
    	indexCount:        u32, 
    	instanceCount:     u32, 
    	firstIndex:        u32, 
    	baseVertex:        i32, 
    	firstInstance:     u32, 
    ) ---

    RenderPassEncoderDrawIndexedIndirect ¶

    RenderPassEncoderDrawIndexedIndirect :: proc "c" (renderPassEncoder: RenderPassEncoder, indirectBuffer: Buffer, indirectOffset: u64) ---

    RenderPassEncoderDrawIndirect ¶

    RenderPassEncoderDrawIndirect :: proc "c" (renderPassEncoder: RenderPassEncoder, indirectBuffer: Buffer, indirectOffset: u64) ---

    RenderPassEncoderEnd ¶

    RenderPassEncoderEnd :: proc "c" (renderPassEncoder: RenderPassEncoder) ---

    RenderPassEncoderEndOcclusionQuery ¶

    RenderPassEncoderEndOcclusionQuery :: proc "c" (renderPassEncoder: RenderPassEncoder) ---

    RenderPassEncoderEndPipelineStatisticsQuery ¶

    RenderPassEncoderEndPipelineStatisticsQuery :: proc "c" (renderPassEncoder: RenderPassEncoder) ---

    RenderPassEncoderExecuteBundles ¶

    RenderPassEncoderExecuteBundles :: proc "c" (renderPassEncoder: RenderPassEncoder, bundles: []RenderBundle) {…}

    RenderPassEncoderInsertDebugMarker ¶

    RenderPassEncoderInsertDebugMarker :: proc "c" (renderPassEncoder: RenderPassEncoder, markerLabel: string) ---

    RenderPassEncoderMultiDrawIndexedIndirect ¶

    RenderPassEncoderMultiDrawIndexedIndirect :: proc "c" (encoder: RenderPassEncoder, buffer: Buffer, offset: u64, count: u32) ---

    RenderPassEncoderMultiDrawIndexedIndirectCount ¶

    RenderPassEncoderMultiDrawIndexedIndirectCount :: proc "c" (
    	encoder:             RenderPassEncoder, 
    	buffer:              Buffer, 
    	offset:              u64, 
    	count_buffer:        Buffer, 
    	count_buffer_offset: u64, 
    	max_count:           u32, 
    ) ---

    RenderPassEncoderMultiDrawIndirect ¶

    RenderPassEncoderMultiDrawIndirect :: proc "c" (encoder: RenderPassEncoder, buffer: Buffer, offset: u64, count: u32) ---

    RenderPassEncoderMultiDrawIndirectCount ¶

    RenderPassEncoderMultiDrawIndirectCount :: proc "c" (
    	encoder:             RenderPassEncoder, 
    	buffer:              Buffer, 
    	offset:              u64, 
    	count_buffer:        Buffer, 
    	count_buffer_offset: u64, 
    	max_count:           u32, 
    ) ---

    RenderPassEncoderPopDebugGroup ¶

    RenderPassEncoderPopDebugGroup :: proc "c" (renderPassEncoder: RenderPassEncoder) ---

    RenderPassEncoderPushDebugGroup ¶

    RenderPassEncoderPushDebugGroup :: proc "c" (renderPassEncoder: RenderPassEncoder, groupLabel: string) ---

    RenderPassEncoderRelease ¶

    RenderPassEncoderRelease :: proc "c" (renderPassEncoder: RenderPassEncoder) ---

    RenderPassEncoderSetBindGroup ¶

    RenderPassEncoderSetBindGroup :: proc "c" (renderPassEncoder: RenderPassEncoder, groupIndex: u32, group: BindGroup, dynamicOffsets: []u32 = nil) {…}

    RenderPassEncoderSetBlendConstant ¶

    RenderPassEncoderSetBlendConstant :: proc "c" (renderPassEncoder: RenderPassEncoder, color: ^[4]f64) ---

    RenderPassEncoderSetIndexBuffer ¶

    RenderPassEncoderSetIndexBuffer :: proc "c" (renderPassEncoder: RenderPassEncoder, buffer: Buffer, format: IndexFormat, offset: u64, size: u64) ---

    RenderPassEncoderSetLabel ¶

    RenderPassEncoderSetLabel :: proc "c" (renderPassEncoder: RenderPassEncoder, label: string) ---

    RenderPassEncoderSetPipeline ¶

    RenderPassEncoderSetPipeline :: proc "c" (renderPassEncoder: RenderPassEncoder, pipeline: RenderPipeline) ---

    RenderPassEncoderSetPushConstants ¶

    RenderPassEncoderSetPushConstants :: proc "c" (encoder: RenderPassEncoder, stages: bit_set[ShaderStage; u64], offset: u32, sizeBytes: u32, data: rawptr) ---

    RenderPassEncoderSetScissorRect ¶

    RenderPassEncoderSetScissorRect :: proc "c" (renderPassEncoder: RenderPassEncoder, x: u32, y: u32, width: u32, height: u32) ---

    RenderPassEncoderSetStencilReference ¶

    RenderPassEncoderSetStencilReference :: proc "c" (renderPassEncoder: RenderPassEncoder, reference: u32) ---

    RenderPassEncoderSetVertexBuffer ¶

    RenderPassEncoderSetVertexBuffer :: proc "c" (renderPassEncoder: RenderPassEncoder, slot: u32, buffer: Buffer, offset: u64, size: u64) ---

    RenderPassEncoderSetViewport ¶

    RenderPassEncoderSetViewport :: proc "c" (
    	renderPassEncoder: RenderPassEncoder, 
    	x:                 f32, 
    	y:                 f32, 
    	width:             f32, 
    	height:            f32, 
    	minDepth:          f32, 
    	maxDepth:          f32, 
    ) ---

    RenderPassEncoderWriteTimestamp ¶

    RenderPassEncoderWriteTimestamp :: proc "c" (renderPassEncoder: RenderPassEncoder, querySet: QuerySet, queryIndex: u32) ---

    RenderPipelineAddRef ¶

    RenderPipelineAddRef :: proc "c" (renderPipeline: RenderPipeline) ---

    RenderPipelineGetBindGroupLayout ¶

    RenderPipelineGetBindGroupLayout :: proc "c" (renderPipeline: RenderPipeline, groupIndex: u32) -> BindGroupLayout ---
     

    Methods of RenderPipeline

    RenderPipelineRelease ¶

    RenderPipelineRelease :: proc "c" (renderPipeline: RenderPipeline) ---

    RenderPipelineSetLabel ¶

    RenderPipelineSetLabel :: proc "c" (renderPipeline: RenderPipeline, label: string) ---

    SamplerAddRef ¶

    SamplerAddRef :: proc "c" (sampler: Sampler) ---

    SamplerRelease ¶

    SamplerRelease :: proc "c" (sampler: Sampler) ---

    SamplerSetLabel ¶

    SamplerSetLabel :: proc "c" (sampler: Sampler, label: string) ---
     

    Methods of Sampler

    SetLogCallback ¶

    SetLogCallback :: proc "c" (callback: LogCallback, userdata: rawptr) ---

    SetLogLevel ¶

    SetLogLevel :: proc "c" (level: LogLevel) ---

    ShaderModuleAddRef ¶

    ShaderModuleAddRef :: proc "c" (shaderModule: ShaderModule) ---

    ShaderModuleGetCompilationInfo ¶

    ShaderModuleGetCompilationInfo :: proc "c" (shaderModule: ShaderModule, callbackInfo: CompilationInfoCallbackInfo) -> Future ---
     

    Methods of ShaderModule

    ShaderModuleRelease ¶

    ShaderModuleRelease :: proc "c" (shaderModule: ShaderModule) ---

    ShaderModuleSetLabel ¶

    ShaderModuleSetLabel :: proc "c" (shaderModule: ShaderModule, label: string) ---

    SupportedFeaturesFreeMembers ¶

    SupportedFeaturesFreeMembers :: proc "c" (supportedFeatures: SupportedFeatures) ---
     

    Methods of SupportedFeatures

    SupportedWGSLLanguageFeaturesFreeMembers ¶

    SupportedWGSLLanguageFeaturesFreeMembers :: proc "c" (supportedWGSLLanguageFeatures: SupportedWGSLLanguageFeatures) ---
     

    Methods of SupportedWGSLLanguageFeatures

    SurfaceAddRef ¶

    SurfaceAddRef :: proc "c" (surface: Surface) ---

    SurfaceCapabilitiesFreeMembers ¶

    SurfaceCapabilitiesFreeMembers :: proc "c" (surfaceCapabilities: SurfaceCapabilities) ---
     

    Methods of SurfaceCapabilities

    SurfaceConfigure ¶

    SurfaceConfigure :: proc "c" (surface: Surface, config: ^SurfaceConfiguration) ---
     

    Methods of Surface

    SurfaceGetCapabilities ¶

    SurfaceGetCapabilities :: proc "c" (surface: Surface, adapter: Adapter) -> (capabilities: SurfaceCapabilities, status: Status) {…}

    SurfaceGetCurrentTexture ¶

    SurfaceGetCurrentTexture :: proc "c" (surface: Surface) -> (surface_texture: SurfaceTexture) {…}

    SurfacePresent ¶

    SurfacePresent :: proc "c" (surface: Surface) -> Status ---

    SurfaceRelease ¶

    SurfaceRelease :: proc "c" (surface: Surface) ---

    SurfaceSetLabel ¶

    SurfaceSetLabel :: proc "c" (surface: Surface, label: string) ---

    SurfaceUnconfigure ¶

    SurfaceUnconfigure :: proc "c" (surface: Surface) ---

    TextureAddRef ¶

    TextureAddRef :: proc "c" (texture: Texture) ---

    TextureCreateView ¶

    TextureCreateView :: proc "c" (texture: Texture, descriptor: ^TextureViewDescriptor = nil) -> TextureView ---
     

    Methods of Texture

    TextureDestroy ¶

    TextureDestroy :: proc "c" (texture: Texture) ---

    TextureGetDepthOrArrayLayers ¶

    TextureGetDepthOrArrayLayers :: proc "c" (texture: Texture) -> u32 ---

    TextureGetDimension ¶

    TextureGetDimension :: proc "c" (texture: Texture) -> TextureDimension ---

    TextureGetFormat ¶

    TextureGetFormat :: proc "c" (texture: Texture) -> TextureFormat ---

    TextureGetHeight ¶

    TextureGetHeight :: proc "c" (texture: Texture) -> u32 ---

    TextureGetMipLevelCount ¶

    TextureGetMipLevelCount :: proc "c" (texture: Texture) -> u32 ---

    TextureGetSampleCount ¶

    TextureGetSampleCount :: proc "c" (texture: Texture) -> u32 ---

    TextureGetUsage ¶

    TextureGetUsage :: proc "c" (texture: Texture) -> bit_set[TextureUsage; u64] ---

    TextureGetWidth ¶

    TextureGetWidth :: proc "c" (texture: Texture) -> u32 ---

    TextureRelease ¶

    TextureRelease :: proc "c" (texture: Texture) ---

    TextureSetLabel ¶

    TextureSetLabel :: proc "c" (texture: Texture, label: string) ---

    TextureViewAddRef ¶

    TextureViewAddRef :: proc "c" (textureView: TextureView) ---

    TextureViewRelease ¶

    TextureViewRelease :: proc "c" (textureView: TextureView) ---

    TextureViewSetLabel ¶

    TextureViewSetLabel :: proc "c" (textureView: TextureView, label: string) ---
     

    Methods of TextureView

    Procedure Groups

    Source Files

    Generation Information

    Generated with odin version dev-2025-03 (vendor "odin") Windows_amd64 @ 2025-03-25 21:11:18.220572200 +0000 UTC