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 v29.0.1.1 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.

    Packages 3

    glfwglueWGPU glue for GLFW.
    sdl2glueWGPU glue for SDL2.
    sdl3glueWGPU glue for SDL3.

    External Examples 3 ¶

    The programs in odin-lang/examples about this package, and how many of its declarations each uses.

    Index

    Types (234)
    Variables (0)

    This section is empty.

    Procedures (256)
    `#config` values (2)

    Types

    AdapterInfo ¶

    AdapterInfo :: struct {
    	nextInChain:     ^ChainedStruct,
    	vendor:          string,
    	architecture:    string,
    	device:          string,
    	description:     string,
    	backendType:     BackendType,
    	adapterType:     AdapterType,
    	vendorID:        u32,
    	deviceID:        u32,
    	subgroupMinSize: u32,
    	subgroupMaxSize: u32,
    }

    Related Procedures With Parameters

    Related Procedures With Returns

    AdapterType ¶

    AdapterType :: enum i32 {
    	DiscreteGPU   = 0x00000001, 
    	IntegratedGPU = 0x00000002, 
    	CPU           = 0x00000003, 
    	Unknown       = 0x00000004, 
    }

    AddressMode ¶

    AddressMode :: enum i32 {
    	Undefined     = 0x00000000, 
    	ClampToEdge   = 0x00000001, 
    	Repeat        = 0x00000002, 
    	MirrorRepeat  = 0x00000003, 
    	ClampToBorder = 0x00000004, 
    }

    BackendType ¶

    BackendType :: enum i32 {
    	Undefined = 0x00000000, 
    	Null      = 0x00000001, 
    	WebGPU    = 0x00000002, 
    	D3D11     = 0x00000003, 
    	D3D12     = 0x00000004, 
    	Metal     = 0x00000005, 
    	Vulkan    = 0x00000006, 
    	OpenGL    = 0x00000007, 
    	OpenGLES  = 0x00000008, 
    }

    BindGroupDescriptor ¶

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

    BindGroupEntry ¶

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

    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,
    }

    Fields Through using (2)

    From using chain: ChainedStruct

    BindGroupLayoutDescriptor ¶

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

    BindGroupLayoutEntry ¶

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

    BindGroupLayoutEntryExtras ¶

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

    Fields Through using (2)

    From using chain: ChainedStruct

    BlendComponent ¶

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

    BlendFactor ¶

    BlendFactor :: enum i32 {
    	Undefined         = 0x00000000, 
    	Zero              = 0x00000001, 
    	One               = 0x00000002, 
    	Src               = 0x00000003, 
    	OneMinusSrc       = 0x00000004, 
    	SrcAlpha          = 0x00000005, 
    	OneMinusSrcAlpha  = 0x00000006, 
    	Dst               = 0x00000007, 
    	OneMinusDst       = 0x00000008, 
    	DstAlpha          = 0x00000009, 
    	OneMinusDstAlpha  = 0x0000000A, 
    	SrcAlphaSaturated = 0x0000000B, 
    	Constant          = 0x0000000C, 
    	OneMinusConstant  = 0x0000000D, 
    	Src1              = 0x0000000E, 
    	OneMinusSrc1      = 0x0000000F, 
    	Src1Alpha         = 0x00000010, 
    	OneMinusSrc1Alpha = 0x00000011, 
    }

    BlendOperation ¶

    BlendOperation :: enum i32 {
    	Undefined       = 0x00000000, 
    	Add             = 0x00000001, 
    	Subtract        = 0x00000002, 
    	ReverseSubtract = 0x00000003, 
    	Min             = 0x00000004, 
    	Max             = 0x00000005, 
    }

    BlendState ¶

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

    BufferBindingLayout ¶

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

    BufferBindingType ¶

    BufferBindingType :: enum i32 {
    	BindingNotUsed  = 0x00000000, 
    	Undefined       = 0x00000001, 
    	Uniform         = 0x00000002, 
    	Storage         = 0x00000003, 
    	ReadOnlyStorage = 0x00000004, 
    }

    BufferDescriptor ¶

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

    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,
    }

    BufferMapState ¶

    BufferMapState :: enum i32 {
    	Unmapped = 0x00000001, 
    	Pending  = 0x00000002, 
    	Mapped   = 0x00000003, 
    }

    BufferUsage ¶

    BufferUsage :: enum i32 {
    	MapRead      = 0x00000000, 
    	MapWrite     = 0x00000001, 
    	CopySrc      = 0x00000002, 
    	CopyDst      = 0x00000003, 
    	Index        = 0x00000004, 
    	Vertex       = 0x00000005, 
    	Uniform      = 0x00000006, 
    	Storage      = 0x00000007, 
    	Indirect     = 0x00000008, 
    	QueryResolve = 0x00000009, 
    }

    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        = 0x00000001, 
    	AllowProcessEvents = 0x00000002, 
    	AllowSpontaneos    = 0x00000003, 
    }

    ChainedStruct ¶

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

    Color ¶

    Color :: [4]f64

    ColorTargetState ¶

    ColorTargetState :: struct {
    	nextInChain: ^ChainedStruct,
    	format:      TextureFormat,
    	blend:       ^BlendState,
    	writeMask:   bit_set[ColorWriteMask; u64],
    }
    External examples wgpu/glfw-triangle · wgpu/microui · wgpu/sdl3-triangle

    ColorWriteMask ¶

    ColorWriteMask :: enum i32 {
    	Red   = 0x00000000, 
    	Green = 0x00000001, 
    	Blue  = 0x00000002, 
    	Alpha = 0x00000003, 
    }

    CommandBufferDescriptor ¶

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

    CommandEncoderDescriptor ¶

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

    CompareFunction ¶

    CompareFunction :: enum i32 {
    	Undefined    = 0x00000000, 
    	Never        = 0x00000001, 
    	Less         = 0x00000002, 
    	Equal        = 0x00000003, 
    	LessEqual    = 0x00000004, 
    	Greater      = 0x00000005, 
    	NotEqual     = 0x00000006, 
    	GreaterEqual = 0x00000007, 
    	Always       = 0x00000008, 
    }

    CompatibilityModeLimits ¶

    CompatibilityModeLimits :: struct {
    	using chain:                       ChainedStruct,
    	maxStorageBuffersInVertexStage:    u32,
    	maxStorageTexturesInVertexStage:   u32,
    	maxStorageBuffersInFragmentStage:  u32,
    	maxStorageTexturesInFragmentStage: u32,
    }

    Fields Through using (2)

    From using chain: ChainedStruct

    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,
    }

    CompilationInfoRequestStatus ¶

    CompilationInfoRequestStatus :: enum i32 {
    	Success           = 0x00000001, 
    	CallbackCancelled = 0x00000002, 
    }

    CompilationMessage ¶

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

    CompilationMessageType ¶

    CompilationMessageType :: enum i32 {
    	Error   = 0x00000001, 
    	Warning = 0x00000002, 
    	Info    = 0x00000003, 
    }

    ComponentSwizzle ¶

    ComponentSwizzle :: enum i32 {
    	Undefined, 
    	Zero, 
    	One, 
    	R, 
    	G, 
    	B, 
    	A, 
    }

    CompositeAlphaMode ¶

    CompositeAlphaMode :: enum i32 {
    	Auto            = 0x00000000, 
    	Opaque          = 0x00000001, 
    	Premultiplied   = 0x00000002, 
    	Unpremultiplied = 0x00000003, 
    	Inherit         = 0x00000004, 
    }

    ComputePassDescriptor ¶

    ComputePassDescriptor :: struct {
    	nextInChain:     ^ChainedStruct,
    	label:           string,
    	timestampWrites: ^PassTimestampWrites,
    }

    ComputePipelineDescriptor ¶

    ComputePipelineDescriptor :: struct {
    	nextInChain: ^ChainedStruct,
    	label:       string,
    	layout:      PipelineLayout,
    	compute:     ComputeState,
    }

    Related Procedures With Parameters

    ComputeState ¶

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

    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,
    }

    CreatePipelineAsyncStatus ¶

    CreatePipelineAsyncStatus :: enum i32 {
    	Success           = 0x00000001, 
    	CallbackCancelled = 0x00000002, 
    	ValidationError   = 0x00000003, 
    	InternalError     = 0x00000004, 
    }

    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,
    }

    CullMode ¶

    CullMode :: enum i32 {
    	Undefined = 0x00000000, 
    	None      = 0x00000001, 
    	Front     = 0x00000002, 
    	Back      = 0x00000003, 
    }

    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,
    }

    DeviceExtras ¶

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

    Fields Through using (2)

    From using chain: ChainedStruct

    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         = 0x00000000, 
    	Unknown           = 0x00000001, 
    	Destroyed         = 0x00000002, 
    	CallbackCancelled = 0x00000003, 
    	FailedCreation    = 0x00000004, 
    }

    Dx12Compiler ¶

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

    Dx12SwapchainKind ¶

    Dx12SwapchainKind :: enum i32 {
    	Undefined, 
    	DxgiFromHwnd, 
    	DxgiFromVisual, 
    }

    DxcMaxShaderModel ¶

    DxcMaxShaderModel :: enum i32 {
    	V6_0, 
    	V6_1, 
    	V6_2, 
    	V6_3, 
    	V6_4, 
    	V6_5, 
    	V6_6, 
    	V6_7, 
    }

    ErrorFilter ¶

    ErrorFilter :: enum i32 {
    	Validation  = 0x00000001, 
    	OutOfMemory = 0x00000002, 
    	Internal    = 0x00000003, 
    }

    ErrorType ¶

    ErrorType :: enum i32 {
    	NoError     = 0x00000001, 
    	Validation  = 0x00000002, 
    	OutOfMemory = 0x00000003, 
    	Internal    = 0x00000004, 
    	Unknown     = 0x00000005, 
    }

    ExternalTextureBindingEntry ¶

    ExternalTextureBindingEntry :: struct {
    	using chain:     ChainedStruct,
    	externalTexture: ExternalTexture,
    }
     

    Chained in a BindGroupEntry.

    Fields Through using (2)

    From using chain: ChainedStruct

    ExternalTextureBindingLayout ¶

    ExternalTextureBindingLayout :: struct {
    	using chain: ChainedStruct,
    }
     

    Chained in a BindGroupLayoutEntry.

    Fields Through using (2)

    From using chain: ChainedStruct

    FeatureLevel ¶

    FeatureLevel :: enum i32 {
    	Undefined, 
    	Compatibility = 0x00000001, 
    	Core          = 0x00000002, 
    }

    FeatureName ¶

    FeatureName :: enum i32 {
    	// WebGPU.
    	Undefined                                             = 0x00000000, 
    	CoreFeaturesAndLimits                                 = 0x00000001, 
    	DepthClipControl                                      = 0x00000002, 
    	Depth32FloatStencil8                                  = 0x00000003, 
    	TextureCompressionBC                                  = 0x00000004, 
    	TextureCompressionBCSliced3D                          = 0x00000005, 
    	TextureCompressionETC2                                = 0x00000006, 
    	TextureCompressionASTC                                = 0x00000007, 
    	TextureCompressionASTCSliced3D                        = 0x00000008, 
    	TimestampQuery                                        = 0x00000009, 
    	IndirectFirstInstance                                 = 0x0000000A, 
    	ShaderF16                                             = 0x0000000B, 
    	RG11B10UfloatRenderable                               = 0x0000000C, 
    	BGRA8UnormStorage                                     = 0x0000000D, 
    	Float32Filterable                                     = 0x0000000E, 
    	Float32Blendable                                      = 0x0000000F, 
    	ClipDistances                                         = 0x00000010, 
    	DualSourceBlending                                    = 0x00000011, 
    	Subgroups                                             = 0x00000012, 
    	TextureFormatsTier1                                   = 0x00000013, 
    	TextureFormatsTier2                                   = 0x00000014, 
    	PrimitiveIndex                                        = 0x00000015, 
    	TextureComponentSwizzle                               = 0x00000016, 
    	// Native.
    	Immediates                                            = 0x00030001, 
    	TextureAdapterSpecificFormatFeatures, 
    	MultiDrawIndirectCount                                = 0x00030004, 
    	VertexWritableStorage, 
    	TextureBindingArray, 
    	SampledTextureAndStorageBufferArrayNonUniformIndexing, 
    	PipelineStatisticsQuery, 
    	StorageResourceBindingArray, 
    	PartiallyBoundBindingArray, 
    	TextureFormat16bitNorm, 
    	TextureCompressionAstcHdr, 
    	MappablePrimaryBuffers                                = 0x0003000E, 
    	BufferBindingArray, 
    	StorageTextureArrayNonUniformIndexing                 = 0x00030010, 
    	AdressModeClampToZero                                 = 0x00030011, 
    	AdressModeClampToBorder                               = 0x00030012, 
    	PolygonModeLine                                       = 0x00030013, 
    	PolygonModePoint, 
    	ConservativeRasterization, 
    	ClearTexture, 
    	MultiView                                             = 0x00030018, 
    	VertexAttribute64bit                                  = 0x00030019, 
    	TextureFormatNv12, 
    	RayQuery                                              = 0x0003001C, 
    	ShaderF64, 
    	ShaderI16, 
    	ShaderEarlyDepthTest                                  = 0x00030020, 
    	Subgroup, 
    	SubgroupVertex, 
    	SubgroupBarrier, 
    	TimestampQueryInsideEncoders, 
    	TimestampQueryInsidePasses, 
    	ShaderInt64, 
    	ShaderFloat32Atomic, 
    	TextureAtomic, 
    	TextureFormatP010, 
    	// TODO: requires wgpu.h api change
    	// ExternalTexture,
    	PipelineCache                                         = 0x0003002B, 
    	ShaderInt64AtomicMinMax, 
    	ShaderInt64AtomicAllOps, 
    	// TODO: requires wgpu.h api change
    	// VulkanGoogleDisplayTiming,
    	// VulkanExternalMemoryWin32,
    	TextureInt64Atomic                                    = 0x00030030, 
    	// TODO: not implemented yet, see https://github.com/gfx-rs/wgpu/issues/7149
    	UniformBufferBindingArrays, 
    	// TODO: requires wgpu.h api change
    	// MeshShader,
    	// RayHitVertexReturn,
    	// MeshShaderMultiview,
    	// ExtendedAccelerationStructureVertexFormat,
    	// PassThroughShaders,
    	ShaderBarycentrics                                    = 0x00030037, 
    	SelectiveMultiview, 
    	// TODO: requires wgpu.h api change
    	// MeshShaderPoints,
    	MultisampleArray                                      = 0x0003003A, 
    	CooperativeMatrix, 
    	ShaderPerVertex, 
    	ShaderDrawIndex, 
    	AccelerationStructureBindingArray, 
    	MemoryDecorationCoherent, 
    	MemoryDecorationVolative, 
    }

    Related Procedures With Parameters

    FilterMode ¶

    FilterMode :: enum i32 {
    	Undefined = 0x00000000, 
    	Nearest   = 0x00000001, 
    	Linear    = 0x00000002, 
    }

    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 = 0x00000000, 
    	CCW       = 0x00000001, 
    	CW        = 0x00000002, 
    }

    FutureWaitInfo ¶

    FutureWaitInfo :: struct {
    	future:    Future,
    	completed: b32,
    }

    GLFenceBehaviour ¶

    GLFenceBehaviour :: enum i32 {
    	Normal, 
    	AutoFinish, 
    }

    Gles3MinorVersion ¶

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

    GlobalReport ¶

    GlobalReport :: struct {
    	surfaces: RegistryReport,
    	hub:      HubReport,
    }

    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,
    }

    ImageSubresourceRange ¶

    ImageSubresourceRange :: struct {
    	aspect:          TextureAspect,
    	baseMipLevel:    u32,
    	mipLevelCount:   u32,
    	baseArrayLayer:  u32,
    	arrayLayerCount: u32,
    }

    IndexFormat ¶

    IndexFormat :: enum i32 {
    	Undefined = 0x00000000, 
    	Uint16    = 0x00000001, 
    	Uint32    = 0x00000002, 
    }

    Related Procedures With Parameters

    InstanceBackend ¶

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

    InstanceDescriptor ¶

    InstanceDescriptor :: struct {
    	nextInChain:          ^ChainedStruct,
    	requiredFeatureCount: uint,
    	requiredFeatures:     [^]InstanceFeatureName `fmt:"v,requiredFeatureCount"`,
    	requiredLimits:       ^InstanceLimits,
    }

    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,
    	glFenceBehaviour:        GLFenceBehaviour,
    	dxcPath:                 string,
    	dcxMaxShaderModel:       DxcMaxShaderModel,
    	dx12PresentationSystem:  Dx12SwapchainKind,
    	budgetForDeviceCreation: ^u8,
    	budgetForDeviceLoss:     ^u8,
    	displayHandle:           NativeDisplayHandle,
    }

    Fields Through using (2)

    From using chain: ChainedStruct

    InstanceFeatureName ¶

    InstanceFeatureName :: enum i32 {
    	TimedWaitAny              = 1, 
    	ShaderSourceSPIRV         = 2, 
    	MultipleDevicesPerAdapter = 3, 
    }

    InstanceFlag ¶

    InstanceFlag :: enum i32 {
    	Debug, 
    	Validation, 
    	DiscardHalLabels, 
    	AllowUnderlyingNoncompliantAdapter, 
    	GPUBasedValidation, 
    	ValidationIndirectCall, 
    	AutomaticTimestampNormalization, 
    	Default                            = 24, 
    	Debugging, 
    	AdvancedDebugging, 
    	WithEnv, 
    }

    InstanceLimits ¶

    InstanceLimits :: struct {
    	nextInChain:          ^ChainedStruct,
    	timedWaitAnyMaxCount: uint,
    }

    Limits ¶

    Limits :: struct {
    	nextInChain:                               ^ChainedStruct,
    	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,
    	maxImmediateSize:                          u32,
    }

    Related Procedures With Parameters

    Related Procedures With Returns

    LoadOp ¶

    LoadOp :: enum i32 {
    	Undefined = 0x00000000, 
    	Load      = 0x00000001, 
    	Clear     = 0x00000002, 
    }

    LogCallback ¶

    LogCallback :: proc "c" (level: LogLevel, message: string, userdata: rawptr)

    LogLevel ¶

    LogLevel :: enum i32 {
    	Off, 
    	Error, 
    	Warn, 
    	Info, 
    	Debug, 
    	Trace, 
    }

    Related Procedures With Parameters

    MapAsyncStatus ¶

    MapAsyncStatus :: enum i32 {
    	Success           = 0x00000001, 
    	CallbackCancelled = 0x00000002, 
    	Error             = 0x00000003, 
    	Aborted           = 0x00000004, 
    }

    MapMode ¶

    MapMode :: enum i32 {
    	Read  = 0x00000000, 
    	Write = 0x00000001, 
    }

    MapModeFlags ¶

    MapModeFlags :: bit_set[MapMode; u64]

    MipmapFilterMode ¶

    MipmapFilterMode :: enum i32 {
    	Undefined = 0x00000000, 
    	Nearest   = 0x00000001, 
    	Linear    = 0x00000002, 
    }

    MultisampleState ¶

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

    NativeDisplayHandle ¶

    NativeDisplayHandle :: struct {
    	type: NativeDisplayHandleType,
    	using data: struct #raw_union {
    		xlib:    XlibDisplayHandle,
    		xcb:     XcbDisplayHandle,
    		wayland: WaylandDisplayHandle,
    	},
    }

    NativeDisplayHandleType ¶

    NativeDisplayHandleType :: enum i32 {
    	None, 
    	Xlib, 
    	Xcb, 
    	Wayland, 
    }

    NativeLimits ¶

    NativeLimits :: struct {
    	using chain:                                  ChainedStruct,
    	maxNonSamplerBindings:                        u32,
    	maxBindingArrayElementsPerShaderStage:        u32,
    	maxBindingArraySamplerElementsPerShaderStage: u32,
    	maxMultiviewCount:                            u32,
    }

    Fields Through using (2)

    From using chain: ChainedStruct

    OptionalBool ¶

    OptionalBool :: enum i32 {
    	False     = 0x00000000, 
    	True      = 0x00000001, 
    	Undefined = 0x00000002, 
    }

    Origin3D ¶

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

    PassTimestampWrites ¶

    PassTimestampWrites :: struct {
    	nextInChain:               ^ChainedStruct,
    	querySet:                  QuerySet,
    	beginningOfPassWriteIndex: u32,
    	endOfPassWriteIndex:       u32,
    }

    PipelineLayout ¶

    PipelineLayout :: distinct rawptr
    External examples wgpu/glfw-triangle · wgpu/microui · wgpu/sdl3-triangle

    Related Procedures With Parameters

    PipelineLayoutDescriptor ¶

    PipelineLayoutDescriptor :: struct {
    	nextInChain:          ^ChainedStruct,
    	label:                string,
    	bindGroupLayoutCount: uint,
    	bindGroupLayouts:     [^]BindGroupLayout `fmt:"v,bindGroupLayoutCount"`,
    	immediateSize:        u32,
    }

    PipelineStatisticName ¶

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

    PolygonMode ¶

    PolygonMode :: enum i32 {
    	Fill, 
    	Line, 
    	Point, 
    }

    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,
    }

    PopErrorScopeStatus ¶

    PopErrorScopeStatus :: enum i32 {
    	Success           = 0x00000001, 
    	CallbackCancelled = 0x00000002, 
    	Error             = 0x00000003, 
    }

    PowerPreference ¶

    PowerPreference :: enum i32 {
    	Undefined       = 0x00000000, 
    	LowPower        = 0x00000001, 
    	HighPerformance = 0x00000002, 
    }

    PredefinedColorSpace ¶

    PredefinedColorSpace :: enum i32 {
    	SRGB      = 1, 
    	DisplayP3, 
    }

    PresentMode ¶

    PresentMode :: enum i32 {
    	Undefined   = 0x00000000, 
    	Fifo        = 0x00000001, 
    	FifoRelaxed = 0x00000002, 
    	Immediate   = 0x00000003, 
    	Mailbox     = 0x00000004, 
    }

    PrimitiveState ¶

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

    PrimitiveStateExtras ¶

    PrimitiveStateExtras :: struct {
    	using chain:  ChainedStruct,
    	polygonMode:  PolygonMode,
    	conservative: b32,
    }

    Fields Through using (2)

    From using chain: ChainedStruct

    PrimitiveTopology ¶

    PrimitiveTopology :: enum i32 {
    	Undefined     = 0x00000000, 
    	PointList     = 0x00000001, 
    	LineList      = 0x00000002, 
    	LineStrip     = 0x00000003, 
    	TriangleList  = 0x00000004, 
    	TriangleStrip = 0x00000005, 
    }

    Proc ¶

    Proc :: distinct rawptr

    QuerySetDescriptor ¶

    QuerySetDescriptor :: struct {
    	nextInChain: ^ChainedStruct,
    	label:       string,
    	type:        QueryType,
    	count:       u32,
    }

    QuerySetDescriptorExtras ¶

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

    Fields Through using (2)

    From using chain: ChainedStruct

    QueryType ¶

    QueryType :: enum i32 {
    	// WebGPU.
    	Occlusion          = 0x00000001, 
    	Timestamp          = 0x00000002, 
    	// Native.
    	PipelineStatistics = 0x00030000, 
    }

    Queue ¶

    Queue :: distinct rawptr
    External examples wgpu/glfw-triangle · wgpu/microui · wgpu/sdl3-triangle

    Related Procedures With Parameters

    QueueDescriptor ¶

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

    QueueWorkDoneCallback ¶

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

    QueueWorkDoneCallbackInfo ¶

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

    QueueWorkDoneStatus ¶

    QueueWorkDoneStatus :: enum i32 {
    	Success           = 0x00000001, 
    	CallbackCancelled = 0x00000002, 
    	Error             = 0x00000003, 
    }

    RegistryReport ¶

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

    RenderBundleDescriptor ¶

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

    RenderBundleEncoderDescriptor ¶

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

    RenderPassColorAttachment ¶

    RenderPassColorAttachment :: struct {
    	nextInChain:   ^ChainedStruct,
    	view:          TextureView,
    	depthSlice:    u32,
    	resolveTarget: TextureView,
    	loadOp:        LoadOp,
    	storeOp:       StoreOp,
    	clearValue:    [4]f64,
    }
    External examples wgpu/glfw-triangle · wgpu/microui · wgpu/sdl3-triangle

    RenderPassDepthStencilAttachment ¶

    RenderPassDepthStencilAttachment :: struct {
    	nextInChain:       ^ChainedStruct,
    	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:        ^PassTimestampWrites,
    }

    RenderPassMaxDrawCount ¶

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

    Fields Through using (2)

    From using chain: ChainedStruct

    RenderPipeline ¶

    RenderPipeline :: distinct rawptr
    External examples wgpu/glfw-triangle · wgpu/microui · wgpu/sdl3-triangle

    Related Procedures With Parameters

    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,
    }

    RequestAdapterOptions ¶

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

    RequestAdapterStatus ¶

    RequestAdapterStatus :: enum i32 {
    	Success           = 0x00000001, 
    	CallbackCancelled = 0x00000002, 
    	Unavailable       = 0x00000003, 
    	Error             = 0x00000004, 
    }
    External examples wgpu/microui · wgpu/glfw-triangle · wgpu/sdl3-triangle

    RequestAdapterWebXROptions ¶

    RequestAdapterWebXROptions :: struct {
    	using chain:  ChainedStruct,
    	xrCompatible: b32,
    }
     

    Chained in a RequestAdapterOptions.

    Fields Through using (2)

    From using chain: ChainedStruct

    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,
    }

    RequestDeviceStatus ¶

    RequestDeviceStatus :: enum i32 {
    	Success           = 0x00000001, 
    	CallbackCancelled = 0x00000002, 
    	Error             = 0x00000003, 
    }
    External examples wgpu/microui · wgpu/glfw-triangle · wgpu/sdl3-triangle

    SType ¶

    SType :: enum i32 {
    	// WebGPU.
    	ShaderSourceSPIRV                 = 0x00000001, 
    	ShaderSourceWGSL                  = 0x00000002, 
    	RenderPassMaxDrawCount            = 0x00000003, 
    	SurfaceSourceMetalLayer           = 0x00000004, 
    	SurfaceSourceWindowsHWND          = 0x00000005, 
    	SurfaceSourceXlibWindow           = 0x00000006, 
    	SurfaceSourceWaylandSurface       = 0x00000007, 
    	SurfaceSourceAndroidNativeWindow  = 0x00000008, 
    	SurfaceSourceXCBWindow            = 0x00000009, 
    	SurfaceColorManagement            = 0x0000000A, 
    	RequestAdapterWebXROptions        = 0x0000000B, 
    	TextureComponentSwizzleDescriptor = 0x0000000C, 
    	ExternalTextureBindingLayout      = 0x0000000D, 
    	ExternalTextureBindingEntry       = 0x0000000E, 
    	CompatibilityModeLimits           = 0x0000000F, 
    	TextureBindingViewDimension       = 0x00000010, 
    	// Native.
    	DeviceExtras                      = 0x00030001, 
    	NativeLimits, 
    	ShaderSourceGLSL, 
    	InstanceExtras, 
    	BindGroupEntryExtras, 
    	BindGroupLayoutEntryExtras, 
    	QuerySetDescriptorExtras, 
    	SurfaceConfigurationExtras, 
    	SurfaceSourceSwapChainPanel, 
    	PrimitiveStateExtras, 
    	SamplerDescriptorExtras, 
    	// Odin.
    	SurfaceSourceCanvasHTMLSelector   = 0x00040001, 
    }

    Sampler ¶

    Sampler :: distinct rawptr
    External examples wgpu/microui

    Related Procedures With Parameters

    SamplerBindingLayout ¶

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

    SamplerBindingType ¶

    SamplerBindingType :: enum i32 {
    	BindingNotUsed = 0x00000000, 
    	Undefined      = 0x00000001, 
    	Filtering      = 0x00000002, 
    	NonFiltering   = 0x00000003, 
    	Comparison     = 0x00000004, 
    }

    SamplerBorderColor ¶

    SamplerBorderColor :: enum i32 {
    	Undefined, 
    	TransparentBlack, 
    	OpaqueBlack, 
    	OpaqueWhite, 
    	Zero, 
    }

    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,
    }

    SamplerDescriptorExtras ¶

    SamplerDescriptorExtras :: struct {
    	using chain:       ChainedStruct,
    	samplerBoderColor: SamplerBorderColor,
    }

    Fields Through using (2)

    From using chain: ChainedStruct

    ShaderDefine ¶

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

    ShaderModule ¶

    ShaderModule :: distinct rawptr
    External examples wgpu/glfw-triangle · wgpu/microui · wgpu/sdl3-triangle

    Related Procedures With Parameters

    Related Procedures With Returns

    ShaderModuleDescriptor ¶

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

    Related Procedures With Parameters

    ShaderModuleDescriptorSpirV ¶

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

    ShaderRuntimeCheck ¶

    ShaderRuntimeCheck :: enum i32 {
    	BoundsChecks, 
    	ForceLoopBounding, 
    	RayQueryInitializationTracking, 
    	TaskShaderDispatchTracking, 
    	MeshShaderPrimitiveIndicesClamp, 
    }

    ShaderSourceGLSL ¶

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

    Fields Through using (2)

    From using chain: ChainedStruct

    ShaderSourceSPIRV ¶

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

    Fields Through using (2)

    From using chain: ChainedStruct

    ShaderSourceWGSL ¶

    ShaderSourceWGSL :: struct {
    	using chain: ChainedStruct,
    	code:  string,
    }
    External examples wgpu/glfw-triangle · wgpu/microui · wgpu/sdl3-triangle

    Fields Through using (2)

    From using chain: ChainedStruct

    ShaderStage ¶

    ShaderStage :: enum i32 {
    	Vertex   = 0x00000000, 
    	Fragment = 0x00000001, 
    	Compute  = 0x00000002, 
    }

    StencilFaceState ¶

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

    StencilOperation ¶

    StencilOperation :: enum i32 {
    	Undefined      = 0x00000000, 
    	Keep           = 0x00000001, 
    	Zero           = 0x00000002, 
    	Replace        = 0x00000003, 
    	Invert         = 0x00000004, 
    	IncrementClamp = 0x00000005, 
    	DecrementClamp = 0x00000006, 
    	IncrementWrap  = 0x00000007, 
    	DecrementWrap  = 0x00000008, 
    }

    StorageTextureAccess ¶

    StorageTextureAccess :: enum i32 {
    	BindingNotUsed = 0x00000000, 
    	Undefined      = 0x00000001, 
    	WriteOnly      = 0x00000002, 
    	ReadOnly       = 0x00000003, 
    	ReadWrite      = 0x00000004, 
    }

    StorageTextureBindingLayout ¶

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

    StoreOp ¶

    StoreOp :: enum i32 {
    	Undefined = 0x00000000, 
    	Store     = 0x00000001, 
    	Discard   = 0x00000002, 
    }

    SubmissionIndex ¶

    SubmissionIndex :: distinct u64

    Related Procedures With Returns

    SupportedFeatures ¶

    SupportedFeatures :: struct {
    	featureCount: uint,
    	features:     [^]FeatureName `fmt:"v,featureCount"`,
    }

    Related Procedures With Parameters

    Related Procedures With Returns

    SupportedInstanceFeatures ¶

    SupportedInstanceFeatures :: struct {
    	featureCount: uint,
    	features:     [^]InstanceFeatureName `fmt:"v,featureCount"`,
    }

    Related Procedures With Parameters

    SupportedWGSLLanguageFeatures ¶

    SupportedWGSLLanguageFeatures :: struct {
    	featureCount: uint,
    	features:     [^]WGSLLanguageFeatureName `fmt:"v,featureCount"`,
    }

    Related Procedures With Parameters

    Surface ¶

    Surface :: distinct rawptr
    External examples wgpu/glfw-triangle · wgpu/microui · wgpu/sdl3-triangle

    Related Procedures With Parameters

    SurfaceCapabilities ¶

    SurfaceCapabilities :: struct {
    	nextInChain:      ^ChainedStruct,
    	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

    SurfaceColorManagement ¶

    SurfaceColorManagement :: struct {
    	using chain:     ChainedStruct,
    	colorSpace:      PredefinedColorSpace,
    	toneMappingMode: ToneMappingMode,
    }
     

    Chained in a SurfaceConfiguration.

    Fields Through using (2)

    From using chain: ChainedStruct

    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,
    }
    External examples wgpu/glfw-triangle · wgpu/microui · wgpu/sdl3-triangle

    SurfaceConfigurationExtras ¶

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

    Fields Through using (2)

    From using chain: ChainedStruct

    SurfaceDescriptor ¶

    SurfaceDescriptor :: struct {
    	nextInChain: ^ChainedStruct,
    	label:       string,
    }
    External examples wgpu/glfw-triangle · wgpu/microui · wgpu/sdl3-triangle

    SurfaceGetCurrentTextureStatus ¶

    SurfaceGetCurrentTextureStatus :: enum i32 {
    	SuccessOptimal    = 0x00000001, 
    	SuccessSuboptimal = 0x00000002, 
    	Timeout           = 0x00000003, 
    	Outdated          = 0x00000004, 
    	Lost              = 0x00000005, 
    	Error             = 0x00000006, 
    	// Native.
    	Occluded          = 0x00030001, 
    }

    SurfaceSourceAndroidNativeWindow ¶

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

    Chained in a SurfaceDescriptor.

    Fields Through using (2)

    From using chain: ChainedStruct

    SurfaceSourceCanvasHTMLSelector ¶

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

    Chained in a SurfaceDescriptor.

    External examples wgpu/glfw-triangle · wgpu/microui · wgpu/sdl3-triangle

    Fields Through using (2)

    From using chain: ChainedStruct

    SurfaceSourceMetalLayer ¶

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

    Chained in a SurfaceDescriptor.

    Fields Through using (2)

    From using chain: ChainedStruct

    SurfaceSourceSwapChainPanel ¶

    SurfaceSourceSwapChainPanel :: struct {
    	using chain: ChainedStruct,
    	// *
    	//      * A pointer to the [[ ISwapChainPanelNative ; https://learn.microsoft.com/en-us/windows/windows-app-sdk/api/win32/microsoft.ui.xaml.media.dxinterop/nn-microsoft-ui-xaml-media-dxinterop-iswapchainpanelnative ]]
    	//      * interface of the `SwapChainPanel` that will be wrapped by the `Surface`.
    	panelNative: rawptr,
    }
     

    Chained in SurfaceDescriptor to make a Surface wrapping a WinUI SwapChainPanel.

    Fields Through using (2)

    From using chain: ChainedStruct

    SurfaceSourceWaylandSurface ¶

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

    Chained in a SurfaceDescriptor.

    Fields Through using (2)

    From using chain: ChainedStruct

    SurfaceSourceWindowsHWND ¶

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

    Chained in a SurfaceDescriptor.

    Fields Through using (2)

    From using chain: ChainedStruct

    SurfaceSourceXcbWindow ¶

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

    Chained in a SurfaceDescriptor.

    Fields Through using (2)

    From using chain: ChainedStruct

    SurfaceSourceXlibWindow ¶

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

    Chained in a SurfaceDescriptor.

    Fields Through using (2)

    From using chain: ChainedStruct

    SurfaceTexture ¶

    SurfaceTexture :: struct {
    	nextInChain: ^ChainedStruct,
    	texture:     Texture,
    	status:      SurfaceGetCurrentTextureStatus,
    }
    External examples wgpu/microui

    TexelCopyBufferLayout ¶

    TexelCopyBufferLayout :: struct {
    	offset:       u64,
    	bytesPerRow:  u32,
    	rowsPerImage: u32,
    }

    TextureAspect ¶

    TextureAspect :: enum i32 {
    	Undefined   = 0x00000000, 
    	All         = 0x00000001, 
    	StencilOnly = 0x00000002, 
    	DepthOnly   = 0x00000003, 
    }

    TextureBindingLayout ¶

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

    TextureBindingViewDimension ¶

    TextureBindingViewDimension :: struct {
    	using chain:                 ChainedStruct,
    	textureBindingViewDimension: TextureViewDimension,
    }

    Fields Through using (2)

    From using chain: ChainedStruct

    TextureComponentSwizzleDescriptor ¶

    TextureComponentSwizzleDescriptor :: struct {
    	using chain: ChainedStruct,
    	swizzle: TextureComponentSwizzle,
    }
     

    Chained in a TextureViewDescriptor.

    Fields Through using (2)

    From using chain: ChainedStruct

    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"`,
    }

    TextureDimension ¶

    TextureDimension :: enum i32 {
    	Undefined = 0x00000000, 
    	_1D       = 0x00000001, 
    	_2D       = 0x00000002, 
    	_3D       = 0x00000003, 
    }

    TextureFormat ¶

    TextureFormat :: enum i32 {
    	Undefined            = 0x00000000, 
    	R8Unorm              = 0x00000001, 
    	R8Snorm              = 0x00000002, 
    	R8Uint               = 0x00000003, 
    	R8Sint               = 0x00000004, 
    	R16Unorm             = 0x00000005, 
    	R16Snorm             = 0x00000006, 
    	R16Uint              = 0x00000007, 
    	R16Sint              = 0x00000008, 
    	R16Float             = 0x00000009, 
    	RG8Unorm             = 0x0000000A, 
    	RG8Snorm             = 0x0000000B, 
    	RG8Uint              = 0x0000000C, 
    	RG8Sint              = 0x0000000D, 
    	R32Float             = 0x0000000E, 
    	R32Uint              = 0x0000000F, 
    	R32Sint              = 0x00000010, 
    	RG16Unorm            = 0x00000011, 
    	RG16Snorm            = 0x00000012, 
    	RG16Uint             = 0x00000013, 
    	RG16Sint             = 0x00000014, 
    	RG16Float            = 0x00000015, 
    	RGBA8Unorm           = 0x00000016, 
    	RGBA8UnormSrgb       = 0x00000017, 
    	RGBA8Snorm           = 0x00000018, 
    	RGBA8Uint            = 0x00000019, 
    	RGBA8Sint            = 0x0000001A, 
    	BGRA8Unorm           = 0x0000001B, 
    	BGRA8UnormSrgb       = 0x0000001C, 
    	RGB10A2Uint          = 0x0000001D, 
    	RGB10A2Unorm         = 0x0000001E, 
    	RG11B10Ufloat        = 0x0000001F, 
    	RGB9E5Ufloat         = 0x00000020, 
    	RG32Float            = 0x00000021, 
    	RG32Uint             = 0x00000022, 
    	RG32Sint             = 0x00000023, 
    	RGBA16Unorm          = 0x00000024, 
    	RGBA16Snorm          = 0x00000025, 
    	RGBA16Uint           = 0x00000026, 
    	RGBA16Sint           = 0x00000027, 
    	RGBA16Float          = 0x00000028, 
    	RGBA32Float          = 0x00000029, 
    	RGBA32Uint           = 0x0000002A, 
    	RGBA32Sint           = 0x0000002B, 
    	Stencil8             = 0x0000002C, 
    	Depth16Unorm         = 0x0000002D, 
    	Depth24Plus          = 0x0000002E, 
    	Depth24PlusStencil8  = 0x0000002F, 
    	Depth32Float         = 0x00000030, 
    	Depth32FloatStencil8 = 0x00000031, 
    	BC1RGBAUnorm         = 0x00000032, 
    	BC1RGBAUnormSrgb     = 0x00000033, 
    	BC2RGBAUnorm         = 0x00000034, 
    	BC2RGBAUnormSrgb     = 0x00000035, 
    	BC3RGBAUnorm         = 0x00000036, 
    	BC3RGBAUnormSrgb     = 0x00000037, 
    	BC4RUnorm            = 0x00000038, 
    	BC4RSnorm            = 0x00000039, 
    	BC5RGUnorm           = 0x0000003A, 
    	BC5RGSnorm           = 0x0000003B, 
    	BC6HRGBUfloat        = 0x0000003C, 
    	BC6HRGBFloat         = 0x0000003D, 
    	BC7RGBAUnorm         = 0x0000003E, 
    	BC7RGBAUnormSrgb     = 0x0000003F, 
    	ETC2RGB8Unorm        = 0x00000040, 
    	ETC2RGB8UnormSrgb    = 0x00000041, 
    	ETC2RGB8A1Unorm      = 0x00000042, 
    	ETC2RGB8A1UnormSrgb  = 0x00000043, 
    	ETC2RGBA8Unorm       = 0x00000044, 
    	ETC2RGBA8UnormSrgb   = 0x00000045, 
    	EACR11Unorm          = 0x00000046, 
    	EACR11Snorm          = 0x00000047, 
    	EACRG11Unorm         = 0x00000048, 
    	EACRG11Snorm         = 0x00000049, 
    	ASTC4x4Unorm         = 0x0000004A, 
    	ASTC4x4UnormSrgb     = 0x0000004B, 
    	ASTC5x4Unorm         = 0x0000004C, 
    	ASTC5x4UnormSrgb     = 0x0000004D, 
    	ASTC5x5Unorm         = 0x0000004E, 
    	ASTC5x5UnormSrgb     = 0x0000004F, 
    	ASTC6x5Unorm         = 0x00000050, 
    	ASTC6x5UnormSrgb     = 0x00000051, 
    	ASTC6x6Unorm         = 0x00000052, 
    	ASTC6x6UnormSrgb     = 0x00000053, 
    	ASTC8x5Unorm         = 0x00000054, 
    	ASTC8x5UnormSrgb     = 0x00000055, 
    	ASTC8x6Unorm         = 0x00000056, 
    	ASTC8x6UnormSrgb     = 0x00000057, 
    	ASTC8x8Unorm         = 0x00000058, 
    	ASTC8x8UnormSrgb     = 0x00000059, 
    	ASTC10x5Unorm        = 0x0000005A, 
    	ASTC10x5UnormSrgb    = 0x0000005B, 
    	ASTC10x6Unorm        = 0x0000005C, 
    	ASTC10x6UnormSrgb    = 0x0000005D, 
    	ASTC10x8Unorm        = 0x0000005E, 
    	ASTC10x8UnormSrgb    = 0x0000005F, 
    	ASTC10x10Unorm       = 0x00000060, 
    	ASTC10x10UnormSrgb   = 0x00000061, 
    	ASTC12x10Unorm       = 0x00000062, 
    	ASTC12x10UnormSrgb   = 0x00000063, 
    	ASTC12x12Unorm       = 0x00000064, 
    	ASTC12x12UnormSrgb   = 0x00000065, 
    	NV12, 
    	P010, 
    }

    TextureSampleType ¶

    TextureSampleType :: enum i32 {
    	BindingNotUsed    = 0x00000000, 
    	Undefined         = 0x00000001, 
    	Float             = 0x00000002, 
    	UnfilterableFloat = 0x00000003, 
    	Depth             = 0x00000004, 
    	Sint              = 0x00000005, 
    	Uint              = 0x00000006, 
    }

    TextureUsage ¶

    TextureUsage :: enum i32 {
    	CopySrc, 
    	CopyDst, 
    	TextureBinding, 
    	StorageBinding, 
    	RenderAttachment, 
    	TransientAttachment, 
    }

    TextureUsageFlags ¶

    TextureUsageFlags :: bit_set[TextureUsage; u64]

    TextureView ¶

    TextureView :: distinct rawptr
    External examples wgpu/microui

    Related Procedures With Parameters

    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],
    }

    TextureViewDimension ¶

    TextureViewDimension :: enum i32 {
    	Undefined = 0x00000000, 
    	_1D       = 0x00000001, 
    	_2D       = 0x00000002, 
    	_2DArray  = 0x00000003, 
    	Cube      = 0x00000004, 
    	CubeArray = 0x00000005, 
    	_3D       = 0x00000006, 
    }

    ToneMappingMode ¶

    ToneMappingMode :: enum i32 {
    	Standard = 1, 
    	Extended, 
    }

    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 {
    	nextInChain:    ^ChainedStruct,
    	format:         VertexFormat,
    	offset:         u64,
    	shaderLocation: u32,
    }
    External examples wgpu/microui

    VertexBufferLayout ¶

    VertexBufferLayout :: struct {
    	nextInChain:    ^ChainedStruct,
    	stepMode:       VertexStepMode,
    	arrayStride:    u64,
    	attributeCount: uint,
    	attributes:     [^]VertexAttribute `fmt:"v,attributeCount"`,
    }
    External examples wgpu/microui

    VertexFormat ¶

    VertexFormat :: enum i32 {
    	Uint8           = 0x00000001, 
    	Uint8x2         = 0x00000002, 
    	Uint8x4         = 0x00000003, 
    	Sint8           = 0x00000004, 
    	Sint8x2         = 0x00000005, 
    	Sint8x4         = 0x00000006, 
    	Unorm8          = 0x00000007, 
    	Unorm8x2        = 0x00000008, 
    	Unorm8x4        = 0x00000009, 
    	Snorm8          = 0x0000000A, 
    	Snorm8x2        = 0x0000000B, 
    	Snorm8x4        = 0x0000000C, 
    	Uint16          = 0x0000000D, 
    	Uint16x2        = 0x0000000E, 
    	Uint16x4        = 0x0000000F, 
    	Sint16          = 0x00000010, 
    	Sint16x2        = 0x00000011, 
    	Sint16x4        = 0x00000012, 
    	Unorm16         = 0x00000013, 
    	Unorm16x2       = 0x00000014, 
    	Unorm16x4       = 0x00000015, 
    	Snorm16         = 0x00000016, 
    	Snorm16x2       = 0x00000017, 
    	Snorm16x4       = 0x00000018, 
    	Float16         = 0x00000019, 
    	Float16x2       = 0x0000001A, 
    	Float16x4       = 0x0000001B, 
    	Float32         = 0x0000001C, 
    	Float32x2       = 0x0000001D, 
    	Float32x3       = 0x0000001E, 
    	Float32x4       = 0x0000001F, 
    	Uint32          = 0x00000020, 
    	Uint32x2        = 0x00000021, 
    	Uint32x3        = 0x00000022, 
    	Uint32x4        = 0x00000023, 
    	Sint32          = 0x00000024, 
    	Sint32x2        = 0x00000025, 
    	Sint32x3        = 0x00000026, 
    	Sint32x4        = 0x00000027, 
    	Unorm10_10_10_2 = 0x00000028, 
    	Unorm8x4BGRA    = 0x00000029, 
    }

    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 {
    	Undefined = 0x00000000, 
    	Vertex    = 0x00000001, 
    	Instance  = 0x00000002, 
    }

    WGSLLanguageFeatureName ¶

    WGSLLanguageFeatureName :: enum i32 {
    	ReadonlyAndReadwriteStorageTextures = 0x00000001, 
    	Packed4x8IntegerDotProduct          = 0x00000002, 
    	UnrestrictedPointerParameters       = 0x00000003, 
    	PointerCompositeAccess              = 0x00000004, 
    	UniformBufferStandardLayout         = 0x00000005, 
    	SubgroupId                          = 0x00000006, 
    	TextureAndSamplerLet                = 0x00000007, 
    	SubgroupUniformity                  = 0x00000008, 
    	TextureFormatsTier1                 = 0x00000009, 
    	LinearIndexing                      = 0x0000000A, 
    }

    WaitStatus ¶

    WaitStatus :: enum i32 {
    	Success  = 0x00000001, 
    	TimedOut = 0x00000002, 
    	Error    = 0x00000003, 
    }

    WaylandDisplayHandle ¶

    WaylandDisplayHandle :: struct {
    	display: rawptr,
    }

    XcbDisplayHandle ¶

    XcbDisplayHandle :: struct {
    	connection: rawptr,
    	screen:     i32,
    }

    XlibDisplayHandle ¶

    XlibDisplayHandle :: struct {
    	display: rawptr,
    	screen:  i32,
    }

    Constants

    ARRAY_LAYER_COUNT_UNDEFINED ¶

    ARRAY_LAYER_COUNT_UNDEFINED: u32 : max(u32)

    BINDINGS_VERSION ¶

    BINDINGS_VERSION: [4]u8 : [4]u8{29, 0, 1, 1}

    COPY_STRIDE_UNDEFINED ¶

    COPY_STRIDE_UNDEFINED: u32 : max(u32)

    ColorWriteMaskFlags_All ¶

    ColorWriteMaskFlags_All: bit_set[ColorWriteMask; u64] : ColorWriteMaskFlags{.Red, .Green, .Blue, .Alpha}
    External examples wgpu/glfw-triangle · wgpu/microui · wgpu/sdl3-triangle

    DEPTH_SLICE_UNDEFINED ¶

    DEPTH_SLICE_UNDEFINED: u32 : max(u32)
    External examples wgpu/glfw-triangle · wgpu/microui · wgpu/sdl3-triangle

    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}

    InstanceFlags_Empty ¶

    InstanceFlags_Empty: 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 :: #config(WGPU_DEBUG, false)
    -define:WGPU_DEBUG=false

    WGPU_SHARED ¶

    WGPU_SHARED :: #config(WGPU_SHARED, false)
    -define: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 ¶
    C · wgpuAdapterAddRefSource · wgpu.odin:1600

    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 ¶
    C · wgpuAdapterHasFeatureSource · wgpu.odin:1598

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

    AdapterInfoFreeMembers ¶
    C · wgpuAdapterInfoFreeMembersSource · wgpu.odin:1604

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

    Procs of AdapterInfo

    AdapterRelease ¶
    C · wgpuAdapterReleaseSource · wgpu.odin:1601

    AdapterRelease :: proc "c" (adapter: Adapter) ---
    External examples wgpu/glfw-triangle · wgpu/sdl3-triangle

    AdapterRequestDevice ¶
    C · wgpuAdapterRequestDeviceSource · wgpu.odin:1599

    AdapterRequestDevice :: proc "c" (
    	adapter:      Adapter, 
    	descriptor:   ^DeviceDescriptor, 
    	callbackInfo: RequestDeviceCallbackInfo, 
    ) -> Future ---
    External examples wgpu/microui · wgpu/glfw-triangle · wgpu/sdl3-triangle

    BindGroupAddRef ¶
    C · wgpuBindGroupAddRefSource · wgpu.odin:1608

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

    BindGroupLayoutAddRef ¶
    C · wgpuBindGroupLayoutAddRefSource · wgpu.odin:1613

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

    BindGroupLayoutRelease ¶
    C · wgpuBindGroupLayoutReleaseSource · wgpu.odin:1614

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

    BindGroupLayoutSetLabel ¶
    C · wgpuBindGroupLayoutSetLabelSource · wgpu.odin:1612

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

    Methods of BindGroupLayout

    BindGroupRelease ¶
    C · wgpuBindGroupReleaseSource · wgpu.odin:1609

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

    BindGroupSetLabel ¶
    C · wgpuBindGroupSetLabelSource · wgpu.odin:1607

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

    Methods of BindGroup

    BufferAddRef ¶
    C · wgpuBufferAddRefSource · wgpu.odin:1630

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

    BufferDestroy ¶
    C · wgpuBufferDestroySource · wgpu.odin:1617

    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, 
    ) -> []T {…}

    BufferGetConstMappedRangeTyped ¶

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

    BufferGetMapState ¶
    C · wgpuBufferGetMapStateSource · wgpu.odin:1622

    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, 
    ) -> []T {…}

    BufferGetMappedRangeTyped ¶

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

    BufferGetSize ¶
    C · wgpuBufferGetSizeSource · wgpu.odin:1623

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

    BufferGetUsage ¶
    C · wgpuBufferGetUsageSource · wgpu.odin:1624

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

    BufferMapAsync ¶
    C · wgpuBufferMapAsyncSource · wgpu.odin:1625

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

    BufferReadMappedRange ¶
    C · wgpuBufferReadMappedRangeSource · wgpu.odin:1626

    BufferReadMappedRange :: proc "c" (
    	buffer: Buffer, 
    	offset: uint, 
    	data:   rawptr, 
    	size:   uint, 
    ) -> Status ---

    BufferRelease ¶
    C · wgpuBufferReleaseSource · wgpu.odin:1631

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

    BufferSetLabel ¶
    C · wgpuBufferSetLabelSource · wgpu.odin:1627

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

    BufferUnmap ¶
    C · wgpuBufferUnmapSource · wgpu.odin:1628

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

    BufferWriteMappedRange ¶
    C · wgpuBufferWriteMappedRangeSource · wgpu.odin:1629

    BufferWriteMappedRange :: proc "c" (
    	buffer: Buffer, 
    	offset: uint, 
    	data:   rawptr, 
    	size:   uint, 
    ) -> Status ---

    CommandBufferAddRef ¶
    C · wgpuCommandBufferAddRefSource · wgpu.odin:1635

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

    CommandBufferRelease ¶
    C · wgpuCommandBufferReleaseSource · wgpu.odin:1636

    CommandBufferRelease :: proc "c" (commandBuffer: CommandBuffer) ---
    External examples wgpu/glfw-triangle · wgpu/sdl3-triangle · wgpu/microui

    CommandBufferSetLabel ¶
    C · wgpuCommandBufferSetLabelSource · wgpu.odin:1634

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

    Methods of CommandBuffer

    CommandEncoderAddRef ¶
    C · wgpuCommandEncoderAddRefSource · wgpu.odin:1653

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

    CommandEncoderBeginComputePass ¶
    C · wgpuCommandEncoderBeginComputePassSource · wgpu.odin:1639

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

    Methods of CommandEncoder

    CommandEncoderBeginRenderPass ¶
    C · wgpuCommandEncoderBeginRenderPassSource · wgpu.odin:1640

    CommandEncoderBeginRenderPass :: proc "c" (
    	commandEncoder: CommandEncoder, 
    	descriptor:     ^RenderPassDescriptor, 
    ) -> RenderPassEncoder ---
    External examples wgpu/glfw-triangle · wgpu/microui · wgpu/sdl3-triangle

    CommandEncoderClearBuffer ¶
    C · wgpuCommandEncoderClearBufferSource · wgpu.odin:1641

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

    CommandEncoderClearTexture ¶
    C · wgpuCommandEncoderClearTextureSource · wgpu_native.odin:47

    CommandEncoderClearTexture :: proc "c" (
    	commandEncoder: CommandEncoder, 
    	texture:        Texture, 
    	range:          ^ImageSubresourceRange = nil, 
    ) ---

    CommandEncoderCopyBufferToBuffer ¶
    C · wgpuCommandEncoderCopyBufferToBufferSource · wgpu.odin:1642

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

    CommandEncoderCopyBufferToTexture ¶
    C · wgpuCommandEncoderCopyBufferToTextureSource · wgpu.odin:1643

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

    CommandEncoderCopyTextureToBuffer ¶
    C · wgpuCommandEncoderCopyTextureToBufferSource · wgpu.odin:1644

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

    CommandEncoderCopyTextureToTexture ¶
    C · wgpuCommandEncoderCopyTextureToTextureSource · wgpu.odin:1645

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

    CommandEncoderFinish ¶
    C · wgpuCommandEncoderFinishSource · wgpu.odin:1646

    CommandEncoderFinish :: proc "c" (
    	commandEncoder: CommandEncoder, 
    	descriptor:     ^CommandBufferDescriptor = nil, 
    ) -> CommandBuffer ---
    External examples wgpu/glfw-triangle · wgpu/sdl3-triangle · wgpu/microui

    CommandEncoderInsertDebugMarker ¶
    C · wgpuCommandEncoderInsertDebugMarkerSource · wgpu.odin:1647

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

    CommandEncoderPopDebugGroup ¶
    C · wgpuCommandEncoderPopDebugGroupSource · wgpu.odin:1648

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

    CommandEncoderPushDebugGroup ¶
    C · wgpuCommandEncoderPushDebugGroupSource · wgpu.odin:1649

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

    CommandEncoderRelease ¶
    C · wgpuCommandEncoderReleaseSource · wgpu.odin:1654

    CommandEncoderRelease :: proc "c" (commandEncoder: CommandEncoder) ---
    External examples wgpu/glfw-triangle · wgpu/sdl3-triangle · wgpu/microui

    CommandEncoderResolveQuerySet ¶
    C · wgpuCommandEncoderResolveQuerySetSource · wgpu.odin:1650

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

    CommandEncoderSetLabel ¶
    C · wgpuCommandEncoderSetLabelSource · wgpu.odin:1651

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

    CommandEncoderWriteTimestamp ¶
    C · wgpuCommandEncoderWriteTimestampSource · wgpu.odin:1652

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

    ComputePassEncoderAddRef ¶
    C · wgpuComputePassEncoderAddRefSource · wgpu.odin:1668

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

    ComputePassEncoderBeginPipelineStatisticsQuery ¶
    C · wgpuComputePassEncoderBeginPipelineStatisticsQuerySource · wgpu_native.odin:36

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

    ComputePassEncoderDispatchWorkgroups ¶
    C · wgpuComputePassEncoderDispatchWorkgroupsSource · wgpu.odin:1657

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

    Methods of ComputePassEncoder

    ComputePassEncoderDispatchWorkgroupsIndirect ¶
    C · wgpuComputePassEncoderDispatchWorkgroupsIndirectSource · wgpu.odin:1658

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

    ComputePassEncoderEnd ¶
    C · wgpuComputePassEncoderEndSource · wgpu.odin:1659

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

    ComputePassEncoderEndPipelineStatisticsQuery ¶
    C · wgpuComputePassEncoderEndPipelineStatisticsQuerySource · wgpu_native.odin:37

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

    ComputePassEncoderInsertDebugMarker ¶
    C · wgpuComputePassEncoderInsertDebugMarkerSource · wgpu.odin:1660

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

    ComputePassEncoderPopDebugGroup ¶
    C · wgpuComputePassEncoderPopDebugGroupSource · wgpu.odin:1661

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

    ComputePassEncoderPushDebugGroup ¶
    C · wgpuComputePassEncoderPushDebugGroupSource · wgpu.odin:1662

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

    ComputePassEncoderRelease ¶
    C · wgpuComputePassEncoderReleaseSource · wgpu.odin:1669

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

    ComputePassEncoderSetBindGroup ¶

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

    ComputePassEncoderSetImmediates ¶
    C · wgpuComputePassEncoderSetImmediatesSource · wgpu.odin:1665

    ComputePassEncoderSetImmediates :: proc "c" (
    	computePassEncoder: ComputePassEncoder, 
    	offset:             u32, 
    	data:               rawptr, 
    	size:               uint, 
    ) ---

    ComputePassEncoderSetLabel ¶
    C · wgpuComputePassEncoderSetLabelSource · wgpu.odin:1666

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

    ComputePassEncoderSetPipeline ¶
    C · wgpuComputePassEncoderSetPipelineSource · wgpu.odin:1667

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

    ComputePassEncoderWriteTimestamp ¶
    C · wgpuComputePassEncoderWriteTimestampSource · wgpu_native.odin:41

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

    ComputePipelineAddRef ¶
    C · wgpuComputePipelineAddRefSource · wgpu.odin:1674

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

    ComputePipelineGetBindGroupLayout ¶
    C · wgpuComputePipelineGetBindGroupLayoutSource · wgpu.odin:1672

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

    Methods of ComputePipeline

    ComputePipelineRelease ¶
    C · wgpuComputePipelineReleaseSource · wgpu.odin:1675

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

    ComputePipelineSetLabel ¶
    C · wgpuComputePipelineSetLabelSource · wgpu.odin:1673

    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 {…}
    External examples wgpu/microui · wgpu/glfw-triangle · wgpu/sdl3-triangle

    DeviceAddRef ¶
    C · wgpuDeviceAddRefSource · wgpu.odin:1705

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

    DeviceCreateBindGroup ¶
    C · wgpuDeviceCreateBindGroupSource · wgpu.odin:1678

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

    Methods of Device

    External examples wgpu/microui

    DeviceCreateBindGroupLayout ¶
    C · wgpuDeviceCreateBindGroupLayoutSource · wgpu.odin:1679

    DeviceCreateBindGroupLayout :: proc "c" (
    	device:     Device, 
    	descriptor: ^BindGroupLayoutDescriptor, 
    ) -> BindGroupLayout ---
    External examples wgpu/microui

    DeviceCreateBuffer ¶
    C · wgpuDeviceCreateBufferSource · wgpu.odin:1680

    DeviceCreateBuffer :: proc "c" (device: Device, descriptor: ^BufferDescriptor) -> Buffer ---
    External examples wgpu/microui

    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 ¶
    C · wgpuDeviceCreateCommandEncoderSource · wgpu.odin:1681

    DeviceCreateCommandEncoder :: proc "c" (
    	device:     Device, 
    	descriptor: ^CommandEncoderDescriptor = nil, 
    ) -> CommandEncoder ---
    External examples wgpu/glfw-triangle · wgpu/microui · wgpu/sdl3-triangle

    DeviceCreateComputePipeline ¶
    C · wgpuDeviceCreateComputePipelineSource · wgpu.odin:1682

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

    DeviceCreateComputePipelineAsync ¶
    C · wgpuDeviceCreateComputePipelineAsyncSource · wgpu.odin:1683

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

    DeviceCreatePipelineLayout ¶
    C · wgpuDeviceCreatePipelineLayoutSource · wgpu.odin:1684

    DeviceCreatePipelineLayout :: proc "c" (
    	device:     Device, 
    	descriptor: ^PipelineLayoutDescriptor, 
    ) -> PipelineLayout ---
    External examples wgpu/glfw-triangle · wgpu/microui · wgpu/sdl3-triangle

    DeviceCreateQuerySet ¶
    C · wgpuDeviceCreateQuerySetSource · wgpu.odin:1685

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

    DeviceCreateRenderBundleEncoder ¶
    C · wgpuDeviceCreateRenderBundleEncoderSource · wgpu.odin:1686

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

    DeviceCreateRenderPipeline ¶
    C · wgpuDeviceCreateRenderPipelineSource · wgpu.odin:1687

    DeviceCreateRenderPipeline :: proc "c" (
    	device:     Device, 
    	descriptor: ^RenderPipelineDescriptor, 
    ) -> RenderPipeline ---
    External examples wgpu/glfw-triangle · wgpu/microui · wgpu/sdl3-triangle

    DeviceCreateRenderPipelineAsync ¶
    C · wgpuDeviceCreateRenderPipelineAsyncSource · wgpu.odin:1688

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

    DeviceCreateSampler ¶
    C · wgpuDeviceCreateSamplerSource · wgpu.odin:1689

    DeviceCreateSampler :: proc "c" (
    	device:     Device, 
    	descriptor: ^SamplerDescriptor = nil, 
    ) -> Sampler ---
    External examples wgpu/microui

    DeviceCreateShaderModule ¶
    C · wgpuDeviceCreateShaderModuleSource · wgpu.odin:1690

    DeviceCreateShaderModule :: proc "c" (
    	device:     Device, 
    	descriptor: ^ShaderModuleDescriptor, 
    ) -> ShaderModule ---
    External examples wgpu/glfw-triangle · wgpu/microui · wgpu/sdl3-triangle

    DeviceCreateShaderModuleSpirV ¶
    C · wgpuDeviceCreateShaderModuleSpirVSource · wgpu_native.odin:18

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

    DeviceCreateShaderModuleTrusted ¶
    C · wgpuDeviceCreateShaderModuleTrustedSource · wgpu_native.odin:49

    DeviceCreateShaderModuleTrusted :: proc "c" (
    	device:        Device, 
    	descriptor:    ^ShaderModuleDescriptor, 
    	runtimeChecks: bit_set[ShaderRuntimeCheck; u64], 
    ) -> ShaderModule ---

    DeviceCreateTexture ¶
    C · wgpuDeviceCreateTextureSource · wgpu.odin:1691

    DeviceCreateTexture :: proc "c" (device: Device, descriptor: ^TextureDescriptor) -> Texture ---
    External examples wgpu/microui

    DeviceDestroy ¶
    C · wgpuDeviceDestroySource · wgpu.odin:1692

    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 ¶
    C · wgpuDeviceGetLostFutureSource · wgpu.odin:1699

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

    DeviceGetNativeMetalCommandQueue ¶
    C · wgpuDeviceGetNativeMetalCommandQueueSource · wgpu_native.odin:27

    DeviceGetNativeMetalCommandQueue :: proc "c" (device: Device) -> rawptr ---

    DeviceGetNativeMetalDevice ¶
    C · wgpuDeviceGetNativeMetalDeviceSource · wgpu_native.odin:26

    DeviceGetNativeMetalDevice :: proc "c" (device: Device) -> rawptr ---

    DeviceGetNativeMetalTexture ¶
    C · wgpuDeviceGetNativeMetalTextureSource · wgpu_native.odin:28

    DeviceGetNativeMetalTexture :: proc "c" (device: Device) -> rawptr ---

    DeviceGetQueue ¶
    C · wgpuDeviceGetQueueSource · wgpu.odin:1700

    DeviceGetQueue :: proc "c" (device: Device) -> Queue ---
    External examples wgpu/glfw-triangle · wgpu/microui · wgpu/sdl3-triangle

    DeviceHasFeature ¶
    C · wgpuDeviceHasFeatureSource · wgpu.odin:1701

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

    DevicePoll ¶

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

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

    DevicePopErrorScope ¶
    C · wgpuDevicePopErrorScopeSource · wgpu.odin:1702

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

    DevicePushErrorScope ¶
    C · wgpuDevicePushErrorScopeSource · wgpu.odin:1703

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

    DeviceRelease ¶
    C · wgpuDeviceReleaseSource · wgpu.odin:1706

    DeviceRelease :: proc "c" (device: Device) ---
    External examples wgpu/glfw-triangle · wgpu/sdl3-triangle

    DeviceSetLabel ¶
    C · wgpuDeviceSetLabelSource · wgpu.odin:1704

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

    DeviceStartGraphicsDebuggerCapture ¶
    C · wgpuDeviceStartGraphicsDebuggerCaptureSource · wgpu_native.odin:44

    DeviceStartGraphicsDebuggerCapture :: proc "c" (device: Device) -> b32 ---

    DeviceStopGraphicsDebuggerCapture ¶
    C · wgpuDeviceStopGraphicsDebuggerCaptureSource · wgpu_native.odin:45

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

    ExternalTextureAddRef ¶
    C · wgpuExternalTextureAddRefSource · wgpu.odin:1710

    ExternalTextureAddRef :: proc "c" (externalTexture: ExternalTexture) ---

    ExternalTextureRelease ¶
    C · wgpuExternalTextureReleaseSource · wgpu.odin:1711

    ExternalTextureRelease :: proc "c" (externalTexture: ExternalTexture) ---

    ExternalTextureSetLabel ¶
    C · wgpuExternalTextureSetLabelSource · wgpu.odin:1709

    ExternalTextureSetLabel :: proc "c" (externalTexture: ExternalTexture, label: string) ---
     

    Methods of ExternalTexture

    GenerateReport ¶

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

    GetInstanceFeatures ¶
    C · wgpuGetInstanceFeaturesSource · wgpu.odin:1585

    GetInstanceFeatures :: proc "c" (features: ^SupportedInstanceFeatures) ---

    GetInstanceLimits ¶

    GetInstanceLimits :: proc "c" () -> (limits: InstanceLimits, status: Status) {…}

    GetProcAddress ¶
    C · wgpuGetProcAddressSource · wgpu.odin:1589

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

    GetVersion ¶

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

    HasInstanceFeature ¶
    C · wgpuHasInstanceFeatureSource · wgpu.odin:1588

    HasInstanceFeature :: proc "c" (feature: InstanceFeatureName) -> b32 ---

    InstanceAddRef ¶
    C · wgpuInstanceAddRefSource · wgpu.odin:1720

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

    InstanceCreateSurface ¶
    C · wgpuInstanceCreateSurfaceSource · wgpu.odin:1714

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

    Methods of Instance

    External examples wgpu/glfw-triangle · wgpu/microui · wgpu/sdl3-triangle

    InstanceEnumerateAdapters ¶

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

    InstanceGetWGSLLanguageFeatures ¶
    C · wgpuInstanceGetWGSLLanguageFeaturesSource · wgpu.odin:1715

    InstanceGetWGSLLanguageFeatures :: proc "c" (
    	instance: Instance, 
    	features: ^SupportedWGSLLanguageFeatures, 
    ) ---

    InstanceHasWGSLLanguageFeature ¶
    C · wgpuInstanceHasWGSLLanguageFeatureSource · wgpu.odin:1716

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

    InstanceProcessEvents ¶
    C · wgpuInstanceProcessEventsSource · wgpu.odin:1717

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

    InstanceRelease ¶
    C · wgpuInstanceReleaseSource · wgpu.odin:1721

    InstanceRelease :: proc "c" (instance: Instance) ---
    External examples wgpu/glfw-triangle · wgpu/sdl3-triangle

    InstanceRequestAdapter ¶
    C · wgpuInstanceRequestAdapterSource · wgpu.odin:1718

    InstanceRequestAdapter :: proc "c" (
    	instance:     Instance, 
    	options:      ^RequestAdapterOptions, 
    	callbackInfo: RequestAdapterCallbackInfo, 
    ) -> Future ---
    External examples wgpu/microui · wgpu/glfw-triangle · wgpu/sdl3-triangle

    InstanceWaitAny ¶
    C · wgpuInstanceWaitAnySource · wgpu.odin:1719

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

    PipelineLayoutAddRef ¶
    C · wgpuPipelineLayoutAddRefSource · wgpu.odin:1725

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

    PipelineLayoutRelease ¶
    C · wgpuPipelineLayoutReleaseSource · wgpu.odin:1726

    PipelineLayoutRelease :: proc "c" (pipelineLayout: PipelineLayout) ---
    External examples wgpu/glfw-triangle · wgpu/sdl3-triangle

    PipelineLayoutSetLabel ¶
    C · wgpuPipelineLayoutSetLabelSource · wgpu.odin:1724

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

    Methods of PipelineLayout

    QuerySetAddRef ¶
    C · wgpuQuerySetAddRefSource · wgpu.odin:1733

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

    QuerySetDestroy ¶
    C · wgpuQuerySetDestroySource · wgpu.odin:1729

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

    Methods of QuerySet

    QuerySetGetCount ¶
    C · wgpuQuerySetGetCountSource · wgpu.odin:1730

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

    QuerySetGetType ¶
    C · wgpuQuerySetGetTypeSource · wgpu.odin:1731

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

    QuerySetRelease ¶
    C · wgpuQuerySetReleaseSource · wgpu.odin:1734

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

    QuerySetSetLabel ¶
    C · wgpuQuerySetSetLabelSource · wgpu.odin:1732

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

    QueueAddRef ¶
    C · wgpuQueueAddRefSource · wgpu.odin:1743

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

    QueueGetTimestampPeriod ¶
    C · wgpuQueueGetTimestampPeriodSource · wgpu_native.odin:14

    QueueGetTimestampPeriod :: proc "c" (queue: Queue) -> f32 ---

    QueueOnSubmittedWorkDone ¶
    C · wgpuQueueOnSubmittedWorkDoneSource · wgpu.odin:1737

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

    Methods of Queue

    QueueRelease ¶
    C · wgpuQueueReleaseSource · wgpu.odin:1744

    QueueRelease :: proc "c" (queue: Queue) ---
    External examples wgpu/glfw-triangle · wgpu/sdl3-triangle

    QueueSetLabel ¶
    C · wgpuQueueSetLabelSource · wgpu.odin:1738

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

    QueueSubmit ¶

    QueueSubmit :: proc "c" (queue: Queue, commands: []CommandBuffer) {…}
    External examples wgpu/glfw-triangle · wgpu/sdl3-triangle · wgpu/microui

    QueueSubmitForIndex ¶

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

    QueueWriteBuffer ¶
    C · wgpuQueueWriteBufferSource · wgpu.odin:1741

    QueueWriteBuffer :: proc "c" (
    	queue:        Queue, 
    	buffer:       Buffer, 
    	bufferOffset: u64, 
    	data:         rawptr, 
    	size:         uint, 
    ) ---
    External examples wgpu/microui

    QueueWriteTexture ¶
    C · wgpuQueueWriteTextureSource · wgpu.odin:1742

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

    RawAdapterGetFeatures ¶

    @(link_name="wgpuAdapterGetFeatures")
    RawAdapterGetFeatures :: proc "c" (adapter: Adapter, features: ^SupportedFeatures) ---
     

    Methods of Adapter

    RawAdapterGetInfo ¶

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

    RawAdapterGetLimits ¶

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

    RawBufferGetConstMappedRange ¶

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

    RawBufferGetMappedRange ¶

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

    RawComputePassEncoderSetBindGroup ¶

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

    RawCreateInstance ¶

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

    RawDeviceGetAdapterInfo ¶

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

    RawDeviceGetFeatures ¶

    @(link_name="wgpuDeviceGetFeatures")
    RawDeviceGetFeatures :: proc "c" (device: Device, features: ^SupportedFeatures) ---

    RawDeviceGetLimits ¶

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

    RawGenerateReport ¶

    @(link_name="wgpuGenerateReport")
    RawGenerateReport :: proc "c" (instance: Instance, report: ^GlobalReport) ---

    RawGetInstanceLimits ¶

    @(link_name="wgpuGetInstanceLimits")
    RawGetInstanceLimits :: proc "c" (limits: ^InstanceLimits) -> Status ---

    RawInstanceEnumerateAdapters ¶

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

    RawQueueSubmit ¶

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

    RawQueueSubmitForIndex ¶

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

    RawRenderBundleEncoderSetBindGroup ¶

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

    RawRenderPassEncoderExecuteBundles ¶

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

    RawRenderPassEncoderSetBindGroup ¶

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

    RawSurfaceGetCapabilities ¶

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

    RawSurfaceGetCurrentTexture ¶

    @(link_name="wgpuSurfaceGetCurrentTexture")
    RawSurfaceGetCurrentTexture :: proc "c" (surface: Surface, surfaceTexture: ^SurfaceTexture) ---

    RenderBundleAddRef ¶
    C · wgpuRenderBundleAddRefSource · wgpu.odin:1748

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

    RenderBundleEncoderAddRef ¶
    C · wgpuRenderBundleEncoderAddRefSource · wgpu.odin:1767

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

    RenderBundleEncoderDraw ¶
    C · wgpuRenderBundleEncoderDrawSource · wgpu.odin:1752

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

    Methods of RenderBundleEncoder

    RenderBundleEncoderDrawIndexed ¶
    C · wgpuRenderBundleEncoderDrawIndexedSource · wgpu.odin:1753

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

    RenderBundleEncoderDrawIndexedIndirect ¶
    C · wgpuRenderBundleEncoderDrawIndexedIndirectSource · wgpu.odin:1754

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

    RenderBundleEncoderDrawIndirect ¶
    C · wgpuRenderBundleEncoderDrawIndirectSource · wgpu.odin:1755

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

    RenderBundleEncoderFinish ¶
    C · wgpuRenderBundleEncoderFinishSource · wgpu.odin:1756

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

    RenderBundleEncoderInsertDebugMarker ¶
    C · wgpuRenderBundleEncoderInsertDebugMarkerSource · wgpu.odin:1757

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

    RenderBundleEncoderPopDebugGroup ¶
    C · wgpuRenderBundleEncoderPopDebugGroupSource · wgpu.odin:1758

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

    RenderBundleEncoderPushDebugGroup ¶
    C · wgpuRenderBundleEncoderPushDebugGroupSource · wgpu.odin:1759

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

    RenderBundleEncoderRelease ¶
    C · wgpuRenderBundleEncoderReleaseSource · wgpu.odin:1768

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

    RenderBundleEncoderSetBindGroup ¶

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

    RenderBundleEncoderSetImmediates ¶
    C · wgpuRenderBundleEncoderSetImmediatesSource · wgpu.odin:1762

    RenderBundleEncoderSetImmediates :: proc "c" (
    	renderBundleEncoder: RenderBundleEncoder, 
    	offset:              u32, 
    	data:                rawptr, 
    	size:                uint, 
    ) ---

    RenderBundleEncoderSetIndexBuffer ¶
    C · wgpuRenderBundleEncoderSetIndexBufferSource · wgpu.odin:1763

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

    RenderBundleEncoderSetLabel ¶
    C · wgpuRenderBundleEncoderSetLabelSource · wgpu.odin:1764

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

    RenderBundleEncoderSetPipeline ¶
    C · wgpuRenderBundleEncoderSetPipelineSource · wgpu.odin:1765

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

    RenderBundleEncoderSetVertexBuffer ¶
    C · wgpuRenderBundleEncoderSetVertexBufferSource · wgpu.odin:1766

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

    RenderBundleRelease ¶
    C · wgpuRenderBundleReleaseSource · wgpu.odin:1749

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

    RenderBundleSetLabel ¶
    C · wgpuRenderBundleSetLabelSource · wgpu.odin:1747

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

    Methods of RenderBundle

    RenderPassEncoderAddRef ¶
    C · wgpuRenderPassEncoderAddRefSource · wgpu.odin:1794

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

    RenderPassEncoderBeginOcclusionQuery ¶
    C · wgpuRenderPassEncoderBeginOcclusionQuerySource · wgpu.odin:1771

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

    Methods of RenderPassEncoder

    RenderPassEncoderBeginPipelineStatisticsQuery ¶
    C · wgpuRenderPassEncoderBeginPipelineStatisticsQuerySource · wgpu_native.odin:38

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

    RenderPassEncoderDraw ¶
    C · wgpuRenderPassEncoderDrawSource · wgpu.odin:1772

    RenderPassEncoderDraw :: proc "c" (
    	renderPassEncoder: RenderPassEncoder, 
    	vertexCount:       u32, 
    	instanceCount:     u32, 
    	firstVertex:       u32, 
    	firstInstance:     u32, 
    ) ---
    External examples wgpu/glfw-triangle · wgpu/sdl3-triangle

    RenderPassEncoderDrawIndexed ¶
    C · wgpuRenderPassEncoderDrawIndexedSource · wgpu.odin:1773

    RenderPassEncoderDrawIndexed :: proc "c" (
    	renderPassEncoder: RenderPassEncoder, 
    	indexCount:        u32, 
    	instanceCount:     u32, 
    	firstIndex:        u32, 
    	baseVertex:        i32, 
    	firstInstance:     u32, 
    ) ---
    External examples wgpu/microui

    RenderPassEncoderDrawIndexedIndirect ¶
    C · wgpuRenderPassEncoderDrawIndexedIndirectSource · wgpu.odin:1774

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

    RenderPassEncoderDrawIndirect ¶
    C · wgpuRenderPassEncoderDrawIndirectSource · wgpu.odin:1775

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

    RenderPassEncoderEnd ¶
    C · wgpuRenderPassEncoderEndSource · wgpu.odin:1776

    RenderPassEncoderEnd :: proc "c" (renderPassEncoder: RenderPassEncoder) ---
    External examples wgpu/glfw-triangle · wgpu/sdl3-triangle · wgpu/microui

    RenderPassEncoderEndOcclusionQuery ¶
    C · wgpuRenderPassEncoderEndOcclusionQuerySource · wgpu.odin:1777

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

    RenderPassEncoderEndPipelineStatisticsQuery ¶
    C · wgpuRenderPassEncoderEndPipelineStatisticsQuerySource · wgpu_native.odin:39

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

    RenderPassEncoderExecuteBundles ¶

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

    RenderPassEncoderInsertDebugMarker ¶
    C · wgpuRenderPassEncoderInsertDebugMarkerSource · wgpu.odin:1780

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

    RenderPassEncoderMultiDrawIndexedIndirect ¶
    C · wgpuRenderPassEncoderMultiDrawIndexedIndirectSource · wgpu_native.odin:31

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

    RenderPassEncoderMultiDrawIndexedIndirectCount ¶
    C · wgpuRenderPassEncoderMultiDrawIndexedIndirectCountSource · wgpu_native.odin:34

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

    RenderPassEncoderMultiDrawIndirect ¶
    C · wgpuRenderPassEncoderMultiDrawIndirectSource · wgpu_native.odin:30

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

    RenderPassEncoderMultiDrawIndirectCount ¶
    C · wgpuRenderPassEncoderMultiDrawIndirectCountSource · wgpu_native.odin:33

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

    RenderPassEncoderPopDebugGroup ¶
    C · wgpuRenderPassEncoderPopDebugGroupSource · wgpu.odin:1781

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

    RenderPassEncoderPushDebugGroup ¶
    C · wgpuRenderPassEncoderPushDebugGroupSource · wgpu.odin:1782

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

    RenderPassEncoderRelease ¶
    C · wgpuRenderPassEncoderReleaseSource · wgpu.odin:1795

    RenderPassEncoderRelease :: proc "c" (renderPassEncoder: RenderPassEncoder) ---
    External examples wgpu/glfw-triangle · wgpu/sdl3-triangle · wgpu/microui

    RenderPassEncoderSetBindGroup ¶

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

    RenderPassEncoderSetBlendConstant ¶
    C · wgpuRenderPassEncoderSetBlendConstantSource · wgpu.odin:1786

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

    RenderPassEncoderSetImmediates ¶
    C · wgpuRenderPassEncoderSetImmediatesSource · wgpu.odin:1785

    RenderPassEncoderSetImmediates :: proc "c" (
    	renderPassEncoder: RenderPassEncoder, 
    	offset:            u32, 
    	data:              rawptr, 
    	size:              uint, 
    ) ---

    RenderPassEncoderSetIndexBuffer ¶
    C · wgpuRenderPassEncoderSetIndexBufferSource · wgpu.odin:1787

    RenderPassEncoderSetIndexBuffer :: proc "c" (
    	renderPassEncoder: RenderPassEncoder, 
    	buffer:            Buffer, 
    	format:            IndexFormat, 
    	offset:            u64, 
    	size:              u64, 
    ) ---
    External examples wgpu/microui

    RenderPassEncoderSetLabel ¶
    C · wgpuRenderPassEncoderSetLabelSource · wgpu.odin:1788

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

    RenderPassEncoderSetPipeline ¶
    C · wgpuRenderPassEncoderSetPipelineSource · wgpu.odin:1789

    RenderPassEncoderSetPipeline :: proc "c" (
    	renderPassEncoder: RenderPassEncoder, 
    	pipeline:          RenderPipeline, 
    ) ---
    External examples wgpu/microui · wgpu/glfw-triangle · wgpu/sdl3-triangle

    RenderPassEncoderSetScissorRect ¶
    C · wgpuRenderPassEncoderSetScissorRectSource · wgpu.odin:1790

    RenderPassEncoderSetScissorRect :: proc "c" (
    	renderPassEncoder: RenderPassEncoder, 
    	x:                 u32, 
    	y:                 u32, 
    	width:             u32, 
    	height:            u32, 
    ) ---
    External examples wgpu/microui

    RenderPassEncoderSetStencilReference ¶
    C · wgpuRenderPassEncoderSetStencilReferenceSource · wgpu.odin:1791

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

    RenderPassEncoderSetVertexBuffer ¶
    C · wgpuRenderPassEncoderSetVertexBufferSource · wgpu.odin:1792

    RenderPassEncoderSetVertexBuffer :: proc "c" (
    	renderPassEncoder: RenderPassEncoder, 
    	slot:              u32, 
    	buffer:            Buffer, 
    	offset:            u64, 
    	size:              u64, 
    ) ---
    External examples wgpu/microui

    RenderPassEncoderSetViewport ¶
    C · wgpuRenderPassEncoderSetViewportSource · wgpu.odin:1793

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

    RenderPassEncoderWriteTimestamp ¶
    C · wgpuRenderPassEncoderWriteTimestampSource · wgpu_native.odin:42

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

    RenderPipelineAddRef ¶
    C · wgpuRenderPipelineAddRefSource · wgpu.odin:1800

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

    RenderPipelineGetBindGroupLayout ¶
    C · wgpuRenderPipelineGetBindGroupLayoutSource · wgpu.odin:1798

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

    Methods of RenderPipeline

    RenderPipelineRelease ¶
    C · wgpuRenderPipelineReleaseSource · wgpu.odin:1801

    RenderPipelineRelease :: proc "c" (renderPipeline: RenderPipeline) ---
    External examples wgpu/glfw-triangle · wgpu/sdl3-triangle

    RenderPipelineSetLabel ¶
    C · wgpuRenderPipelineSetLabelSource · wgpu.odin:1799

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

    SamplerAddRef ¶
    C · wgpuSamplerAddRefSource · wgpu.odin:1805

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

    SamplerRelease ¶
    C · wgpuSamplerReleaseSource · wgpu.odin:1806

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

    SamplerSetLabel ¶
    C · wgpuSamplerSetLabelSource · wgpu.odin:1804

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

    Methods of Sampler

    SetLogCallback ¶
    C · wgpuSetLogCallbackSource · wgpu_native.odin:20

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

    SetLogLevel ¶
    C · wgpuSetLogLevelSource · wgpu_native.odin:22

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

    ShaderModuleAddRef ¶
    C · wgpuShaderModuleAddRefSource · wgpu.odin:1811

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

    ShaderModuleGetCompilationInfo ¶
    C · wgpuShaderModuleGetCompilationInfoSource · wgpu.odin:1809

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

    Methods of ShaderModule

    ShaderModuleRelease ¶
    C · wgpuShaderModuleReleaseSource · wgpu.odin:1812

    ShaderModuleRelease :: proc "c" (shaderModule: ShaderModule) ---
    External examples wgpu/glfw-triangle · wgpu/sdl3-triangle

    ShaderModuleSetLabel ¶
    C · wgpuShaderModuleSetLabelSource · wgpu.odin:1810

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

    SupportedFeaturesFreeMembers ¶
    C · wgpuSupportedFeaturesFreeMembersSource · wgpu.odin:1815

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

    Methods of SupportedFeatures

    SupportedInstanceFeaturesFreeMembers ¶
    C · wgpuSupportedInstanceFeaturesFreeMembersSource · wgpu.odin:1818

    SupportedInstanceFeaturesFreeMembers :: proc "c" (SupportedInstanceFeatures: SupportedInstanceFeatures) ---
     

    Methods of SupportedInstanceFeatures

    SupportedWGSLLanguageFeaturesFreeMembers ¶
    C · wgpuSupportedWGSLLanguageFeaturesFreeMembersSource · wgpu.odin:1821

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

    Methods of SupportedWGSLLanguageFeatures

    SurfaceAddRef ¶
    C · wgpuSurfaceAddRefSource · wgpu.odin:1832

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

    SurfaceCapabilitiesFreeMembers ¶
    C · wgpuSurfaceCapabilitiesFreeMembersSource · wgpu.odin:1836

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

    Methods of SurfaceCapabilities

    SurfaceConfigure ¶
    C · wgpuSurfaceConfigureSource · wgpu.odin:1824

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

    Methods of Surface

    External examples wgpu/glfw-triangle · wgpu/sdl3-triangle · wgpu/microui

    SurfaceGetCapabilities ¶

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

    SurfaceGetCurrentTexture ¶

    SurfaceGetCurrentTexture :: proc "c" (surface: Surface) -> (surface_texture: SurfaceTexture) {…}
    External examples wgpu/glfw-triangle · wgpu/sdl3-triangle · wgpu/microui

    SurfacePresent ¶
    C · wgpuSurfacePresentSource · wgpu.odin:1829

    SurfacePresent :: proc "c" (surface: Surface) -> Status ---
    External examples wgpu/glfw-triangle · wgpu/sdl3-triangle · wgpu/microui

    SurfaceRelease ¶
    C · wgpuSurfaceReleaseSource · wgpu.odin:1833

    SurfaceRelease :: proc "c" (surface: Surface) ---
    External examples wgpu/glfw-triangle · wgpu/sdl3-triangle

    SurfaceSetLabel ¶
    C · wgpuSurfaceSetLabelSource · wgpu.odin:1830

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

    SurfaceUnconfigure ¶
    C · wgpuSurfaceUnconfigureSource · wgpu.odin:1831

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

    TextureAddRef ¶
    C · wgpuTextureAddRefSource · wgpu.odin:1851

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

    TextureCreateView ¶
    C · wgpuTextureCreateViewSource · wgpu.odin:1839

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

    Methods of Texture

    External examples wgpu/glfw-triangle · wgpu/microui · wgpu/sdl3-triangle

    TextureDestroy ¶
    C · wgpuTextureDestroySource · wgpu.odin:1840

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

    TextureGetDepthOrArrayLayers ¶
    C · wgpuTextureGetDepthOrArrayLayersSource · wgpu.odin:1841

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

    TextureGetDimension ¶
    C · wgpuTextureGetDimensionSource · wgpu.odin:1842

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

    TextureGetFormat ¶
    C · wgpuTextureGetFormatSource · wgpu.odin:1843

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

    TextureGetHeight ¶
    C · wgpuTextureGetHeightSource · wgpu.odin:1844

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

    TextureGetMipLevelCount ¶
    C · wgpuTextureGetMipLevelCountSource · wgpu.odin:1845

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

    TextureGetSampleCount ¶
    C · wgpuTextureGetSampleCountSource · wgpu.odin:1846

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

    TextureGetTextureBindingViewDimension ¶
    C · wgpuTextureGetTextureBindingViewDimensionSource · wgpu.odin:1847

    TextureGetTextureBindingViewDimension :: proc "c" (texture: Texture) -> TextureViewDimension ---

    TextureGetUsage ¶
    C · wgpuTextureGetUsageSource · wgpu.odin:1848

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

    TextureGetWidth ¶
    C · wgpuTextureGetWidthSource · wgpu.odin:1849

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

    TextureRelease ¶
    C · wgpuTextureReleaseSource · wgpu.odin:1852

    TextureRelease :: proc "c" (texture: Texture) ---
    External examples wgpu/microui · wgpu/glfw-triangle · wgpu/sdl3-triangle

    TextureSetLabel ¶
    C · wgpuTextureSetLabelSource · wgpu.odin:1850

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

    TextureViewAddRef ¶
    C · wgpuTextureViewAddRefSource · wgpu.odin:1856

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

    TextureViewRelease ¶
    C · wgpuTextureViewReleaseSource · wgpu.odin:1857

    TextureViewRelease :: proc "c" (textureView: TextureView) ---
    External examples wgpu/microui · wgpu/glfw-triangle · wgpu/sdl3-triangle

    TextureViewSetLabel ¶
    C · wgpuTextureViewSetLabelSource · wgpu.odin:1855

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

    Methods of TextureView

    Procedure Groups

    `#config` values

    Only on JS 1

    Declared only when building for JS; the rest of this page is from a Windows build.

    Source Files

    Generation Information

    Generated with odin version dev-2026-10 (vendor "odin") Windows_amd64 @ 2026-10-24 22:50:18.968251400 +0000 UTC