wgpu

package module
v0.0.0-...-5d24363 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 19, 2024 License: MIT Imports: 14 Imported by: 1

README

wgpu Go bindings

API stability

WebGPU, webgpu.h, and wgpu are still in development and change regularly. Our bindings works with specific versions of webgpu.h and wgpu only, and will regularly be updated to track changes, which means our API might change as well.

Documentation

Overview

API stability

WebGPU, webgpu.h, and wgpu are still in development and change regularly. Our bindings works with specific versions of webgpu.h and wgpu only, and will regularly be updated to track changes, which means our API might change as well.

Error handling

Error handling in WebGPU, webgpu.h and wgpu is still in flux and incomplete, making it impossible to handle some errors cleanly, as they will panic in Rust and cause SIGABRT. The errors that _can_ be handled fall into one of the following categories:

Failure to acquire an adapter or device will return a Go error.

By default, all validation errors, out-of-memory errors, and internal errors will panic in Go.

Using Device.PushErrorScope and Device.PopErrorScope, validation errors, out-of-memory errors, and internal errors can be caught and turned into Go errors. This allows, for example, to handle fallible memory allocations.

The alternative to explicit use of error scopes would've been to return Go errors from most functions in this package. However, the vast majority of validation errors are programmer mistakes, which should panic, not return errors. Similarly, a lot of out of memory situations are fatal. Furthermore, instead of checking the error for every function call, it often suffices to check them for a sequence of function calls, for example to check that rendering a full frame succeeded. This can be accomplished much easier with error scopes. Finally, fine-grained use of error scopes may lead to unnecessary synchronisation between the CPU and GPU.

Some functions are internally implemented using callbacks, such as Surface.CurrentTexture. Errors that occur in such functions do not use error scopes and are instead passed to the callbacks, and we turn them into Go errors.

Device loss will invoke a callback. WebGPU intends that most API continues to work, by becoming no-ops, after a device has been lost, so that device loss can be handled reliably via the callback. This hasn't been fully implemented yet, and handling device loss reliably is error-prone, no pun intended.

Due to a combination of the designs of webgpu.h and wgpu, some errors related to resources that do not belong to a device cannot be handled, as they cause panics inside Rust. This applies to surface creation and configuration, for example.

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrCurrentTextureTimeout     = errors.New("timeout")
	ErrCurrentTextureOutdated    = errors.New("outdated")
	ErrCurrentTextureLost        = errors.New("lost")
	ErrCurrentTextureOutOfMemory = errors.New("out of memory")
	ErrCurrentTextureDeviceLost  = errors.New("device lost")
)
View Source
var (
	ErrMapValidationError         = errors.New("validation error")
	ErrMapUnknown                 = errors.New("unknown error")
	ErrMapDeviceLost              = errors.New("device lost")
	ErrMapDestroyedBeforeCallback = errors.New("destroyed before callback")
	ErrMapUnmappedBeforeCallback  = errors.New("unmapped before callback")
	ErrMapMappingAlreadyPending   = errors.New("mapping already pending")
	ErrMapOffsetOutOfRange        = errors.New("offset out of range")
	ErrMapSizeOutOfRange          = errors.New("size out of range")
)
View Source
var DefaultLimits = Limits{

	MaxTextureDimension1D:                     8192,
	MaxTextureDimension2D:                     8192,
	MaxTextureDimension3D:                     2048,
	MaxTextureArrayLayers:                     256,
	MaxBindGroups:                             4,
	MaxBindGroupsPlusVertexBuffers:            24,
	MaxBindingsPerBindGroup:                   1000,
	MaxDynamicUniformBuffersPerPipelineLayout: 8,
	MaxDynamicStorageBuffersPerPipelineLayout: 4,
	MaxSampledTexturesPerShaderStage:          16,
	MaxSamplersPerShaderStage:                 16,
	MaxStorageBuffersPerShaderStage:           8,
	MaxStorageTexturesPerShaderStage:          4,
	MaxUniformBuffersPerShaderStage:           12,
	MaxUniformBufferBindingSize:               65536,
	MaxStorageBufferBindingSize:               134217728,
	MinUniformBufferOffsetAlignment:           256,
	MinStorageBufferOffsetAlignment:           256,
	MaxVertexBuffers:                          8,
	MaxBufferSize:                             268435456,
	MaxVertexAttributes:                       16,
	MaxVertexBufferArrayStride:                2048,
	MaxInterStageShaderComponents:             64,
	MaxInterStageShaderVariables:              16,
	MaxColorAttachments:                       8,
	MaxColorAttachmentBytesPerSample:          32,
	MaxComputeWorkgroupStorageSize:            16384,
	MaxComputeInvocationsPerWorkgroup:         256,
	MaxComputeWorkgroupSizeX:                  256,
	MaxComputeWorkgroupSizeY:                  256,
	MaxComputeWorkgroupSizeZ:                  64,
	MaxComputeWorkgroupsPerDimension:          65535,
}
View Source
var DefaultMultisampleState = &MultisampleState{
	Count:                  1,
	Mask:                   0xFFFFFFFF,
	AlphaToCoverageEnabled: false,
}
View Source
var DefaultNativeLimits = NativeLimits{
	MaxPushConstantSize:   ^uint32(0),
	MaxNonSamplerBindings: ^uint32(0),
}
View Source
var DefaultTextureViewDescriptor = &TextureViewDescriptor{
	ArrayLayerCount: ^uint32(0),
	MipLevelCount:   ^uint32(0),
}
View Source
var ErrAdapterUnavailable = errors.New("no adapter available")

Functions

func SetLogLevel

func SetLogLevel(level LogLevel)

func Version

func Version() string

Types

type Adapter

type Adapter C.struct_WGPUAdapterImpl

func (*Adapter) Features

func (adp *Adapter) Features() []FeatureName

func (*Adapter) HasFeature

func (adp *Adapter) HasFeature(name FeatureName) bool

func (*Adapter) Limits

func (adp *Adapter) Limits() AllLimits

func (*Adapter) Properties

func (adp *Adapter) Properties() AdapterProperties

func (*Adapter) Release

func (ptr *Adapter) Release()

func (*Adapter) RequestDevice

func (adp *Adapter) RequestDevice(desc *DeviceDescriptor) (*Device, error)

type AdapterProperties

type AdapterProperties struct {
	VendorID          uint32
	VendorName        string
	Architecture      string
	DeviceID          uint32
	Name              string
	DriverDescription string
	AdapterType       AdapterType
	BackendType       BackendType
}

type AdapterType

type AdapterType uint32
const (
	AdapterTypeDiscreteGPU   AdapterType = C.WGPUAdapterType_DiscreteGPU   // DiscreteGPU
	AdapterTypeIntegratedGPU AdapterType = C.WGPUAdapterType_IntegratedGPU // IntegratedGPU
	AdapterTypeCPU           AdapterType = C.WGPUAdapterType_CPU           // CPU
	AdapterTypeUnknown       AdapterType = C.WGPUAdapterType_Unknown       // Unknown
)

func (AdapterType) String

func (i AdapterType) String() string

type AddressMode

type AddressMode uint32
const (
	AddressModeRepeat       AddressMode = C.WGPUAddressMode_Repeat       // Repeat
	AddressModeMirrorRepeat AddressMode = C.WGPUAddressMode_MirrorRepeat // MirrorRepeat
	AddressModeClampToEdge  AddressMode = C.WGPUAddressMode_ClampToEdge  // ClampToEdge
)

func (AddressMode) String

func (i AddressMode) String() string

type AllLimits

type AllLimits struct {
	Limits
	NativeLimits
}

type AndroidNativeWindow

type AndroidNativeWindow struct {
	Window unsafe.Pointer
}

type BackendType

type BackendType uint32
const (
	BackendTypeUndefined BackendType = C.WGPUBackendType_Undefined // Undefined
	BackendTypeNull      BackendType = C.WGPUBackendType_Null      // Null
	BackendTypeWebGPU    BackendType = C.WGPUBackendType_WebGPU    // WebGPU
	BackendTypeD3D11     BackendType = C.WGPUBackendType_D3D11     // D3D11
	BackendTypeD3D12     BackendType = C.WGPUBackendType_D3D12     // D3D12
	BackendTypeMetal     BackendType = C.WGPUBackendType_Metal     // Metal
	BackendTypeVulkan    BackendType = C.WGPUBackendType_Vulkan    // Vulkan
	BackendTypeOpenGL    BackendType = C.WGPUBackendType_OpenGL    // OpenGL
	BackendTypeOpenGLES  BackendType = C.WGPUBackendType_OpenGLES  // OpenGLES
)

func (BackendType) String

func (i BackendType) String() string

type BindGroup

type BindGroup C.struct_WGPUBindGroupImpl

func (*BindGroup) Release

func (ptr *BindGroup) Release()

type BindGroupDescriptor

type BindGroupDescriptor struct {
	Label   string
	Layout  *BindGroupLayout
	Entries []BindGroupEntry
}

type BindGroupEntry

type BindGroupEntry struct {
	Binding     uint32
	Buffer      *Buffer // nullable
	Offset      uint64
	Size        uint64
	Sampler     *Sampler     // nullable
	TextureView *TextureView // nullable

	Buffers      []*Buffer
	Samplers     []*Sampler
	TextureViews []*TextureView
}

type BindGroupLayout

type BindGroupLayout C.struct_WGPUBindGroupLayoutImpl

func (*BindGroupLayout) Release

func (ptr *BindGroupLayout) Release()

type BindGroupLayoutDescriptor

type BindGroupLayoutDescriptor struct {
	Label   string
	Entries []BindGroupLayoutEntry
}

type BindGroupLayoutEntry

type BindGroupLayoutEntry struct {
	Binding        uint32
	Visibility     ShaderStage
	Buffer         *BufferBindingLayout
	Sampler        *SamplerBindingLayout
	Texture        *TextureBindingLayout
	StorageTexture *StorageTextureBindingLayout

	Count uint32
}

type BlendComponent

type BlendComponent struct {
	Operation BlendOperation
	SrcFactor BlendFactor
	DstFactor BlendFactor
}

type BlendFactor

type BlendFactor uint32
const (
	BlendFactorZero              BlendFactor = C.WGPUBlendFactor_Zero              // Zero
	BlendFactorOne               BlendFactor = C.WGPUBlendFactor_One               // One
	BlendFactorSrc               BlendFactor = C.WGPUBlendFactor_Src               // Src
	BlendFactorOneMinusSrc       BlendFactor = C.WGPUBlendFactor_OneMinusSrc       // OneMinusSrc
	BlendFactorSrcAlpha          BlendFactor = C.WGPUBlendFactor_SrcAlpha          // SrcAlpha
	BlendFactorOneMinusSrcAlpha  BlendFactor = C.WGPUBlendFactor_OneMinusSrcAlpha  // OneMinusSrcAlpha
	BlendFactorDst               BlendFactor = C.WGPUBlendFactor_Dst               // Dst
	BlendFactorOneMinusDst       BlendFactor = C.WGPUBlendFactor_OneMinusDst       // OneMinusDst
	BlendFactorDstAlpha          BlendFactor = C.WGPUBlendFactor_DstAlpha          // DstAlpha
	BlendFactorOneMinusDstAlpha  BlendFactor = C.WGPUBlendFactor_OneMinusDstAlpha  // OneMinusDstAlpha
	BlendFactorSrcAlphaSaturated BlendFactor = C.WGPUBlendFactor_SrcAlphaSaturated // SrcAlphaSaturated
	BlendFactorConstant          BlendFactor = C.WGPUBlendFactor_Constant          // Constant
	BlendFactorOneMinusConstant  BlendFactor = C.WGPUBlendFactor_OneMinusConstant  // OneMinusConstant
)

func (BlendFactor) String

func (i BlendFactor) String() string

type BlendOperation

type BlendOperation uint32
const (
	BlendOperationAdd             BlendOperation = C.WGPUBlendOperation_Add             // Add
	BlendOperationSubtract        BlendOperation = C.WGPUBlendOperation_Subtract        // Subtract
	BlendOperationReverseSubtract BlendOperation = C.WGPUBlendOperation_ReverseSubtract // ReverseSubtract
	BlendOperationMin             BlendOperation = C.WGPUBlendOperation_Min             // Min
	BlendOperationMax             BlendOperation = C.WGPUBlendOperation_Max             // Max
)

func (BlendOperation) String

func (i BlendOperation) String() string

type BlendState

type BlendState struct {
	Color BlendComponent
	Alpha BlendComponent
	// contains filtered or unexported fields
}

type Buffer

type Buffer C.struct_WGPUBufferImpl

func (*Buffer) Destroy

func (buf *Buffer) Destroy()

func (*Buffer) Map

func (buf *Buffer) Map(dev *Device, mode MapMode, offset int, size int) <-chan error

func (*Buffer) MappedRange

func (buf *Buffer) MappedRange(offset, size int) []byte

func (*Buffer) ReadOnlyMappedRange

func (buf *Buffer) ReadOnlyMappedRange(offset, size int) []byte

func (*Buffer) Release

func (ptr *Buffer) Release()

func (*Buffer) Size

func (buf *Buffer) Size() uint64

func (*Buffer) Unmap

func (buf *Buffer) Unmap()

func (*Buffer) Usage

func (buf *Buffer) Usage() BufferUsage

type BufferBindingLayout

type BufferBindingLayout struct {
	Type             BufferBindingType
	HasDynamicOffset bool
	MinBindingSize   uint64
}

type BufferBindingType

type BufferBindingType uint32
const (
	BufferBindingTypeUndefined       BufferBindingType = C.WGPUBufferBindingType_Undefined       // Undefined
	BufferBindingTypeUniform         BufferBindingType = C.WGPUBufferBindingType_Uniform         // Uniform
	BufferBindingTypeStorage         BufferBindingType = C.WGPUBufferBindingType_Storage         // Storage
	BufferBindingTypeReadOnlyStorage BufferBindingType = C.WGPUBufferBindingType_ReadOnlyStorage // ReadOnlyStorage
)

func (BufferBindingType) String

func (i BufferBindingType) String() string

type BufferDescriptor

type BufferDescriptor struct {
	Label            string
	Usage            BufferUsage
	Size             uint64
	MappedAtCreation bool
}

type BufferMapState

type BufferMapState uint32
const (
	BufferMapStateUnmapped BufferMapState = C.WGPUBufferMapState_Unmapped // Unmapped
	BufferMapStatePending  BufferMapState = C.WGPUBufferMapState_Pending  // Pending
	BufferMapStateMapped   BufferMapState = C.WGPUBufferMapState_Mapped   // Mapped
)

func (BufferMapState) String

func (i BufferMapState) String() string

type BufferUsage

type BufferUsage uint32
const (
	BufferUsageNone         BufferUsage = C.WGPUBufferUsage_None         // None
	BufferUsageMapRead      BufferUsage = C.WGPUBufferUsage_MapRead      // MapRead
	BufferUsageMapWrite     BufferUsage = C.WGPUBufferUsage_MapWrite     // MapWrite
	BufferUsageCopySrc      BufferUsage = C.WGPUBufferUsage_CopySrc      // CopySrc
	BufferUsageCopyDst      BufferUsage = C.WGPUBufferUsage_CopyDst      // CopyDst
	BufferUsageIndex        BufferUsage = C.WGPUBufferUsage_Index        // Index
	BufferUsageVertex       BufferUsage = C.WGPUBufferUsage_Vertex       // Vertex
	BufferUsageUniform      BufferUsage = C.WGPUBufferUsage_Uniform      // Uniform
	BufferUsageStorage      BufferUsage = C.WGPUBufferUsage_Storage      // Storage
	BufferUsageIndirect     BufferUsage = C.WGPUBufferUsage_Indirect     // Indirect
	BufferUsageQueryResolve BufferUsage = C.WGPUBufferUsage_QueryResolve // QueryResolve
)

func (BufferUsage) String

func (i BufferUsage) String() string

type Color

type Color struct {
	R, G, B, A float64
	// contains filtered or unexported fields
}

type ColorTargetState

type ColorTargetState struct {
	Format    TextureFormat
	Blend     *BlendState
	WriteMask ColorWriteMask
}

type ColorWriteMask

type ColorWriteMask uint32
const (
	ColorWriteMaskNone  ColorWriteMask = C.WGPUColorWriteMask_None  // None
	ColorWriteMaskRed   ColorWriteMask = C.WGPUColorWriteMask_Red   // Red
	ColorWriteMaskGreen ColorWriteMask = C.WGPUColorWriteMask_Green // Green
	ColorWriteMaskBlue  ColorWriteMask = C.WGPUColorWriteMask_Blue  // Blue
	ColorWriteMaskAlpha ColorWriteMask = C.WGPUColorWriteMask_Alpha // Alpha
	ColorWriteMaskAll   ColorWriteMask = C.WGPUColorWriteMask_All   // All
)

func (ColorWriteMask) String

func (i ColorWriteMask) String() string

type CommandBuffer

type CommandBuffer C.struct_WGPUCommandBufferImpl

func (*CommandBuffer) Release

func (ptr *CommandBuffer) Release()

type CommandBufferDescriptor

type CommandBufferDescriptor struct {
	Label string
}

type CommandEncoder

type CommandEncoder C.struct_WGPUCommandEncoderImpl

func (*CommandEncoder) BeginComputePass

func (enc *CommandEncoder) BeginComputePass(desc *ComputePassDescriptor) *ComputePassEncoder

func (*CommandEncoder) BeginRenderPass

func (enc *CommandEncoder) BeginRenderPass(desc *RenderPassDescriptor) *RenderPassEncoder

func (*CommandEncoder) ClearBuffer

func (enc *CommandEncoder) ClearBuffer(buf *Buffer, offset, size uint64)

func (*CommandEncoder) CopyBufferToBuffer

func (enc *CommandEncoder) CopyBufferToBuffer(
	source *Buffer,
	sourceOffset uint64,
	destination *Buffer,
	destinationOffset uint64,
	size uint64,
)

func (*CommandEncoder) CopyBufferToTexture

func (enc *CommandEncoder) CopyBufferToTexture(source *ImageCopyBuffer, destination *ImageCopyTexture, copySize *Extent3D)

func (*CommandEncoder) CopyTextureToBuffer

func (enc *CommandEncoder) CopyTextureToBuffer(source *ImageCopyTexture, destination *ImageCopyBuffer, copySize *Extent3D)

func (*CommandEncoder) CopyTextureToTexture

func (enc *CommandEncoder) CopyTextureToTexture(source *ImageCopyTexture, destination *ImageCopyTexture, copySize *Extent3D)

func (*CommandEncoder) Finish

func (*CommandEncoder) InsertDebugMarker

func (enc *CommandEncoder) InsertDebugMarker(label string)

func (*CommandEncoder) PopDebugGroup

func (enc *CommandEncoder) PopDebugGroup()

func (*CommandEncoder) PushDebugGroup

func (enc *CommandEncoder) PushDebugGroup(label string)

func (*CommandEncoder) Release

func (ptr *CommandEncoder) Release()

func (*CommandEncoder) ResolveQuerySet

func (enc *CommandEncoder) ResolveQuerySet(querySet *QuerySet, firstQuery uint32, queryCount uint32, destination *Buffer, destinationOffset uint64)

func (*CommandEncoder) WriteTimestamp

func (enc *CommandEncoder) WriteTimestamp(q *QuerySet, queryIndex uint32)

type CommandEncoderDescriptor

type CommandEncoderDescriptor struct {
	Label string
}

type CompareFunction

type CompareFunction uint32
const (
	CompareFunctionUndefined    CompareFunction = C.WGPUCompareFunction_Undefined    // Undefined
	CompareFunctionNever        CompareFunction = C.WGPUCompareFunction_Never        // Never
	CompareFunctionLess         CompareFunction = C.WGPUCompareFunction_Less         // Less
	CompareFunctionLessEqual    CompareFunction = C.WGPUCompareFunction_LessEqual    // LessEqual
	CompareFunctionGreater      CompareFunction = C.WGPUCompareFunction_Greater      // Greater
	CompareFunctionGreaterEqual CompareFunction = C.WGPUCompareFunction_GreaterEqual // GreaterEqual
	CompareFunctionEqual        CompareFunction = C.WGPUCompareFunction_Equal        // Equal
	CompareFunctionNotEqual     CompareFunction = C.WGPUCompareFunction_NotEqual     // NotEqual
	CompareFunctionAlways       CompareFunction = C.WGPUCompareFunction_Always       // Always
)

func (CompareFunction) String

func (i CompareFunction) String() string

type CompositeAlphaMode

type CompositeAlphaMode uint32
const (
	CompositeAlphaModeAuto            CompositeAlphaMode = C.WGPUCompositeAlphaMode_Auto            // Auto
	CompositeAlphaModeOpaque          CompositeAlphaMode = C.WGPUCompositeAlphaMode_Opaque          // Opaque
	CompositeAlphaModePremultiplied   CompositeAlphaMode = C.WGPUCompositeAlphaMode_Premultiplied   // Premultiplied
	CompositeAlphaModeUnpremultiplied CompositeAlphaMode = C.WGPUCompositeAlphaMode_Unpremultiplied // Unpremultiplied
	CompositeAlphaModeInherit         CompositeAlphaMode = C.WGPUCompositeAlphaMode_Inherit         // Inherit
)

func (CompositeAlphaMode) String

func (i CompositeAlphaMode) String() string

type ComputePassDescriptor

type ComputePassDescriptor struct {
	Label           string
	TimestampWrites *ComputePassTimestampWrites // nullable
}

type ComputePassEncoder

type ComputePassEncoder C.struct_WGPUComputePassEncoderImpl

func (*ComputePassEncoder) DispatchWorkgroups

func (enc *ComputePassEncoder) DispatchWorkgroups(countX, countY, countZ uint32)

func (*ComputePassEncoder) DispatchWorkgroupsIndirect

func (enc *ComputePassEncoder) DispatchWorkgroupsIndirect(indirectBuffer *Buffer, indirectOffset uint64)

func (*ComputePassEncoder) End

func (enc *ComputePassEncoder) End()

func (*ComputePassEncoder) InsertDebugMarker

func (enc *ComputePassEncoder) InsertDebugMarker(label string)

func (*ComputePassEncoder) PopDebugGroup

func (enc *ComputePassEncoder) PopDebugGroup()

func (*ComputePassEncoder) PushDebugGroup

func (enc *ComputePassEncoder) PushDebugGroup(label string)

func (*ComputePassEncoder) Release

func (ptr *ComputePassEncoder) Release()

func (*ComputePassEncoder) SetBindGroup

func (enc *ComputePassEncoder) SetBindGroup(groupIndex uint32, group *BindGroup, dynamicOffsets []uint32)

func (*ComputePassEncoder) SetPipeline

func (enc *ComputePassEncoder) SetPipeline(p *ComputePipeline)

type ComputePassTimestampWrites

type ComputePassTimestampWrites struct {
	QuerySet                  *QuerySet
	BeginningOfPassWriteIndex uint32
	EndOfPassWriteIndex       uint32
}

type ComputePipeline

type ComputePipeline C.struct_WGPUComputePipelineImpl

func (*ComputePipeline) BindGroupLayout

func (p *ComputePipeline) BindGroupLayout(groupIndex uint32) *BindGroupLayout

func (*ComputePipeline) Release

func (ptr *ComputePipeline) Release()

type ComputePipelineDescriptor

type ComputePipelineDescriptor struct {
	Label   string
	Layout  *PipelineLayout // nullable
	Compute ProgrammableStageDescriptor
}

type ConstantEntry

type ConstantEntry struct {
	Key   string
	Value float64
}

type CullMode

type CullMode uint32
const (
	CullModeNone  CullMode = C.WGPUCullMode_None  // None
	CullModeFront CullMode = C.WGPUCullMode_Front // Front
	CullModeBack  CullMode = C.WGPUCullMode_Back  // Back
)

func (CullMode) String

func (i CullMode) String() string

type DX12Compiler

type DX12Compiler uint32
const (
	DX12CompilerUndefined DX12Compiler = C.WGPUDx12Compiler_Undefined // Undefined
	DX12CompilerFxc       DX12Compiler = C.WGPUDx12Compiler_Fxc       // Fxc
	DX12CompilerDxc       DX12Compiler = C.WGPUDx12Compiler_Dxc       // Dxc
)

func (DX12Compiler) String

func (i DX12Compiler) String() string

type DepthStencilState

type DepthStencilState struct {
	Format              TextureFormat
	DepthWriteEnabled   bool
	DepthCompare        CompareFunction
	StencilFront        StencilFaceState
	StencilBack         StencilFaceState
	StencilReadMask     uint32
	StencilWriteMask    uint32
	DepthBias           int32
	DepthBiasSlopeScale float32
	DepthBiasClamp      float32
}

type Device

type Device struct {
	// contains filtered or unexported fields
}

func (*Device) CreateBindGroup

func (dev *Device) CreateBindGroup(desc *BindGroupDescriptor) *BindGroup

func (*Device) CreateBindGroupLayout

func (dev *Device) CreateBindGroupLayout(desc *BindGroupLayoutDescriptor) *BindGroupLayout

func (*Device) CreateBuffer

func (dev *Device) CreateBuffer(desc *BufferDescriptor) *Buffer

func (*Device) CreateCommandEncoder

func (dev *Device) CreateCommandEncoder(desc *CommandEncoderDescriptor) *CommandEncoder

func (*Device) CreateComputePipeline

func (dev *Device) CreateComputePipeline(desc *ComputePipelineDescriptor) *ComputePipeline

func (*Device) CreatePipelineLayout

func (dev *Device) CreatePipelineLayout(desc *PipelineLayoutDescriptor) *PipelineLayout

func (*Device) CreateQuerySet

func (dev *Device) CreateQuerySet(desc *QuerySetDescriptor) *QuerySet

func (*Device) CreateRenderPipeline

func (dev *Device) CreateRenderPipeline(desc *RenderPipelineDescriptor) *RenderPipeline

func (*Device) CreateSampler

func (dev *Device) CreateSampler(desc *SamplerDescriptor) *Sampler

func (*Device) CreateShaderModule

func (dev *Device) CreateShaderModule(desc ShaderModuleDescriptor) *ShaderModule

func (*Device) CreateTexture

func (dev *Device) CreateTexture(desc *TextureDescriptor) *Texture

func (*Device) Destroy

func (dev *Device) Destroy()

Destroy forcibly destroys the device handle, invalidating any resources that reference it, such as bind groups.

Note: it doesn't currently do anything because wgpu doesn't implement it yet

func (*Device) Features

func (dev *Device) Features() []FeatureName

func (*Device) HasFeature

func (dev *Device) HasFeature(name FeatureName) bool

func (*Device) Limits

func (dev *Device) Limits() AllLimits

func (*Device) Lost

func (dev *Device) Lost() <-chan DeviceLost

Lost returns a channel that will be signaled when the device is lost. Repeated calls to Lost return the same channel.

func (*Device) Poll

func (dev *Device) Poll(wait bool) bool

func (*Device) PopErrorScope

func (dev *Device) PopErrorScope() error

func (*Device) PushErrorScope

func (dev *Device) PushErrorScope(filter ErrorFilter)

func (*Device) Queue

func (dev *Device) Queue() *Queue

func (*Device) Release

func (ptr *Device) Release()

type DeviceDescriptor

type DeviceDescriptor struct {
	Label            string
	RequiredFeatures []FeatureName
	RequiredLimits   *RequiredLimits
	DefaultQueue     QueueDescriptor
}

type DeviceLost

type DeviceLost struct {
	Device  *Device
	Reason  DeviceLostReason
	Message string
}

type DeviceLostError

type DeviceLostError struct {
	// contains filtered or unexported fields
}

func (DeviceLostError) Error

func (err DeviceLostError) Error() string

type DeviceLostReason

type DeviceLostReason uint32
const (
	DeviceLostReasonUndefined DeviceLostReason = C.WGPUDeviceLostReason_Undefined // Undefined
	DeviceLostReasonDestroyed DeviceLostReason = C.WGPUDeviceLostReason_Destroyed // Destroyed
)

func (DeviceLostReason) String

func (i DeviceLostReason) String() string

type ErrorFilter

type ErrorFilter uint32
const (
	ErrorFilterValidation  ErrorFilter = C.WGPUErrorFilter_Validation  // Validation
	ErrorFilterOutOfMemory ErrorFilter = C.WGPUErrorFilter_OutOfMemory // OutOfMemory
	ErrorFilterInternal    ErrorFilter = C.WGPUErrorFilter_Internal    // Internal
)

func (ErrorFilter) String

func (i ErrorFilter) String() string

type Extent3D

type Extent3D struct {
	Width              uint32
	Height             uint32
	DepthOrArrayLayers uint32
	// contains filtered or unexported fields
}

type FeatureName

type FeatureName uint32
const (
	FeatureNameUndefined               FeatureName = C.WGPUFeatureName_Undefined               // Undefined
	FeatureNameDepthClipControl        FeatureName = C.WGPUFeatureName_DepthClipControl        // DepthClipControl
	FeatureNameDepth32FloatStencil8    FeatureName = C.WGPUFeatureName_Depth32FloatStencil8    // Depth32FloatStencil8
	FeatureNameTimestampQuery          FeatureName = C.WGPUFeatureName_TimestampQuery          // TimestampQuery
	FeatureNameTextureCompressionBC    FeatureName = C.WGPUFeatureName_TextureCompressionBC    // TextureCompressionBC
	FeatureNameTextureCompressionETC2  FeatureName = C.WGPUFeatureName_TextureCompressionETC2  // TextureCompressionETC2
	FeatureNameTextureCompressionASTC  FeatureName = C.WGPUFeatureName_TextureCompressionASTC  // TextureCompressionASTC
	FeatureNameIndirectFirstInstance   FeatureName = C.WGPUFeatureName_IndirectFirstInstance   // IndirectFirstInstance
	FeatureNameShaderF16               FeatureName = C.WGPUFeatureName_ShaderF16               // ShaderF16
	FeatureNameRG11B10UfloatRenderable FeatureName = C.WGPUFeatureName_RG11B10UfloatRenderable // RG11B10UfloatRenderable
	FeatureNameBGRA8UnormStorage       FeatureName = C.WGPUFeatureName_BGRA8UnormStorage       // BGRA8UnormStorage
	FeatureNameFloat32Filterable       FeatureName = C.WGPUFeatureName_Float32Filterable       // Float32Filterable
)
const (
	NativeFeatureNamePushConstants                                         FeatureName = C.WGPUNativeFeature_PushConstants                                         // PushConstants
	NativeFeatureNameTextureAdapterSpecificFormatFeatures                  FeatureName = C.WGPUNativeFeature_TextureAdapterSpecificFormatFeatures                  // TextureAdapterSpecificFormatFeatures
	NativeFeatureNameMultiDrawIndirect                                     FeatureName = C.WGPUNativeFeature_MultiDrawIndirect                                     // MultiDrawIndirect
	NativeFeatureNameMultiDrawIndirectCount                                FeatureName = C.WGPUNativeFeature_MultiDrawIndirectCount                                // MultiDrawIndirectCount
	NativeFeatureNameVertexWritableStorage                                 FeatureName = C.WGPUNativeFeature_VertexWritableStorage                                 // VertexWritableStorage
	NativeFeatureNameTextureBindingArray                                   FeatureName = C.WGPUNativeFeature_TextureBindingArray                                   // TextureBindingArray
	NativeFeatureNameSampledTextureAndStorageBufferArrayNonUniformIndexing FeatureName = C.WGPUNativeFeature_SampledTextureAndStorageBufferArrayNonUniformIndexing // SampledTextureAndStorageBufferArrayNonUniformIndexing
	NativeFeatureNamePipelineStatisticsQuery                               FeatureName = C.WGPUNativeFeature_PipelineStatisticsQuery                               // PipelineStatisticsQuery
	NativeFeatureNameStorageResourceBindingArray                           FeatureName = C.WGPUNativeFeature_StorageResourceBindingArray                           // StorageResourceBindingArray
	NativeFeatureNamePartiallyBoundBindingArray                            FeatureName = C.WGPUNativeFeature_PartiallyBoundBindingArray                            // PartiallyBoundBindingArray
)

func (FeatureName) String

func (i FeatureName) String() string

type FilterMode

type FilterMode uint32
const (
	FilterModeNearest FilterMode = C.WGPUFilterMode_Nearest // Nearest
	FilterModeLinear  FilterMode = C.WGPUFilterMode_Linear  // Linear
)

func (FilterMode) String

func (i FilterMode) String() string

type FragmentState

type FragmentState struct {
	Module     *ShaderModule
	EntryPoint string
	Constants  []ConstantEntry
	Targets    []ColorTargetState
}

type FrontFace

type FrontFace uint32
const (
	FrontFaceCCW FrontFace = C.WGPUFrontFace_CCW // CCW
	FrontFaceCW  FrontFace = C.WGPUFrontFace_CW  // CW
)

func (FrontFace) String

func (i FrontFace) String() string

type GLES3MinorVersion

type GLES3MinorVersion uint32
const (
	GLES3MinorVersionAutomatic GLES3MinorVersion = C.WGPUGles3MinorVersion_Automatic // Automatic
	GLES3MinorVersionVersion0  GLES3MinorVersion = C.WGPUGles3MinorVersion_Version0  // Version0
	GLES3MinorVersionVersion1  GLES3MinorVersion = C.WGPUGles3MinorVersion_Version1  // Version1
	GLES3MinorVersionVersion2  GLES3MinorVersion = C.WGPUGles3MinorVersion_Version2  // Version2
)

func (GLES3MinorVersion) String

func (i GLES3MinorVersion) String() string

type GlobalReport

type GlobalReport struct {
	Surfaces    RegistryReport
	BackendType BackendType
	Vulkan      HubReport
	Metal       HubReport
	DX12        HubReport
	GL          HubReport
	// contains filtered or unexported fields
}

type HubReport

type HubReport struct {
	Adapters         RegistryReport
	Devices          RegistryReport
	Queues           RegistryReport
	PipelineLayouts  RegistryReport
	ShaderModules    RegistryReport
	BindGroupLayouts RegistryReport
	BindGroups       RegistryReport
	CommandBuffers   RegistryReport
	RenderBundles    RegistryReport
	RenderPipelines  RegistryReport
	ComputePipelines RegistryReport
	QuerySets        RegistryReport
	Buffers          RegistryReport
	Textures         RegistryReport
	TextureViews     RegistryReport
	Samplers         RegistryReport
	// contains filtered or unexported fields
}

type ImageCopyBuffer

type ImageCopyBuffer struct {
	Layout TextureDataLayout
	Buffer *Buffer
	// contains filtered or unexported fields
}

type ImageCopyTexture

type ImageCopyTexture struct {
	Texture  *Texture
	MipLevel uint32
	Origin   Origin3D
	Aspect   TextureAspect
	// contains filtered or unexported fields
}

type IndexFormat

type IndexFormat uint32
const (
	IndexFormatUndefined IndexFormat = C.WGPUIndexFormat_Undefined // Undefined
	IndexFormatUint16    IndexFormat = C.WGPUIndexFormat_Uint16    // Uint16
	IndexFormatUint32    IndexFormat = C.WGPUIndexFormat_Uint32    // Uint32
)

func (IndexFormat) String

func (i IndexFormat) String() string

type Instance

type Instance C.struct_WGPUInstanceImpl

func CreateInstance

func CreateInstance(desc InstanceDescriptor) *Instance

func (*Instance) Adapters

func (ins *Instance) Adapters(opts InstanceEnumerateAdapterOptions) []*Adapter

Adapters returns all adapters available on this instance. The returned adapters are ready to use. You should call Adapter.Release on unneeded adapters.

func (*Instance) CreateSurface

func (ins *Instance) CreateSurface(desc SurfaceDescriptor) *Surface

func (*Instance) Release

func (ptr *Instance) Release()

func (*Instance) Report

func (ins *Instance) Report(out *GlobalReport)

func (*Instance) RequestAdapter

func (ins *Instance) RequestAdapter(desc RequestAdapterOptions) (*Adapter, error)

type InstanceBackend

type InstanceBackend uint32
const (
	InstanceBackendAll           InstanceBackend = C.WGPUInstanceBackend_All           // All
	InstanceBackendVulkan        InstanceBackend = C.WGPUInstanceBackend_Vulkan        // Vulkan
	InstanceBackendGL            InstanceBackend = C.WGPUInstanceBackend_GL            // GL
	InstanceBackendMetal         InstanceBackend = C.WGPUInstanceBackend_Metal         // Metal
	InstanceBackendDX12          InstanceBackend = C.WGPUInstanceBackend_DX12          // DX12
	InstanceBackendDX11          InstanceBackend = C.WGPUInstanceBackend_DX11          // DX11
	InstanceBackendBrowserWebGPU InstanceBackend = C.WGPUInstanceBackend_BrowserWebGPU // BrowserWebGPU
	InstanceBackendPrimary       InstanceBackend = C.WGPUInstanceBackend_Primary       // Primary
	InstanceBackendSecondary     InstanceBackend = C.WGPUInstanceBackend_Secondary     // Secondary
)

func (InstanceBackend) String

func (i InstanceBackend) String() string

type InstanceBackendFlags

type InstanceBackendFlags = InstanceBackend

type InstanceDescriptor

type InstanceDescriptor struct {
	Extras *InstanceExtras
}

type InstanceEnumerateAdapterOptions

type InstanceEnumerateAdapterOptions struct {
	Backends InstanceBackendFlags
}

type InstanceExtras

type InstanceExtras struct {
	Backends           InstanceBackendFlags
	Flags              InstanceFlags
	DX12ShaderCompiler DX12Compiler
	GLES3MinorVersion  GLES3MinorVersion
	DXILPath           string
	DXCPath            string
}

type InstanceFlag

type InstanceFlag uint32
const (
	InstanceFlagDefault          InstanceFlag = C.WGPUInstanceFlag_Default          // Default
	InstanceFlagDebug            InstanceFlag = C.WGPUInstanceFlag_Debug            // Debug
	InstanceFlagValidation       InstanceFlag = C.WGPUInstanceFlag_Validation       // Validation
	InstanceFlagDiscardHalLabels InstanceFlag = C.WGPUInstanceFlag_DiscardHalLabels // DiscardHalLabels
)

func (InstanceFlag) String

func (i InstanceFlag) String() string

type InstanceFlags

type InstanceFlags = InstanceFlag

type InternalError

type InternalError struct {
	// contains filtered or unexported fields
}

func (InternalError) Error

func (err InternalError) Error() string

type Limits

type Limits struct {
	MaxTextureDimension1D                     uint32
	MaxTextureDimension2D                     uint32
	MaxTextureDimension3D                     uint32
	MaxTextureArrayLayers                     uint32
	MaxBindGroups                             uint32
	MaxBindGroupsPlusVertexBuffers            uint32
	MaxBindingsPerBindGroup                   uint32
	MaxDynamicUniformBuffersPerPipelineLayout uint32
	MaxDynamicStorageBuffersPerPipelineLayout uint32
	MaxSampledTexturesPerShaderStage          uint32
	MaxSamplersPerShaderStage                 uint32
	MaxStorageBuffersPerShaderStage           uint32
	MaxStorageTexturesPerShaderStage          uint32
	MaxUniformBuffersPerShaderStage           uint32
	MaxUniformBufferBindingSize               uint64
	MaxStorageBufferBindingSize               uint64
	MinUniformBufferOffsetAlignment           uint32
	MinStorageBufferOffsetAlignment           uint32
	MaxVertexBuffers                          uint32
	MaxBufferSize                             uint64
	MaxVertexAttributes                       uint32
	MaxVertexBufferArrayStride                uint32
	MaxInterStageShaderComponents             uint32
	MaxInterStageShaderVariables              uint32
	MaxColorAttachments                       uint32
	MaxColorAttachmentBytesPerSample          uint32
	MaxComputeWorkgroupStorageSize            uint32
	MaxComputeInvocationsPerWorkgroup         uint32
	MaxComputeWorkgroupSizeX                  uint32
	MaxComputeWorkgroupSizeY                  uint32
	MaxComputeWorkgroupSizeZ                  uint32
	MaxComputeWorkgroupsPerDimension          uint32
	// contains filtered or unexported fields
}

type LoadOp

type LoadOp uint32
const (
	LoadOpUndefined LoadOp = C.WGPULoadOp_Undefined // Undefined
	LoadOpClear     LoadOp = C.WGPULoadOp_Clear     // Clear
	LoadOpLoad      LoadOp = C.WGPULoadOp_Load      // Load
)

func (LoadOp) String

func (i LoadOp) String() string

type LogLevel

type LogLevel uint32
const (
	LogLevelOff   LogLevel = C.WGPULogLevel_Off   // Off
	LogLevelError LogLevel = C.WGPULogLevel_Error // Error
	LogLevelWarn  LogLevel = C.WGPULogLevel_Warn  // Warn
	LogLevelInfo  LogLevel = C.WGPULogLevel_Info  // Info
	LogLevelDebug LogLevel = C.WGPULogLevel_Debug // Debug
	LogLevelTrace LogLevel = C.WGPULogLevel_Trace // Trace
)

func (LogLevel) String

func (i LogLevel) String() string

type MapMode

type MapMode uint32
const (
	MapModeNone  MapMode = C.WGPUMapMode_None  // None
	MapModeRead  MapMode = C.WGPUMapMode_Read  // Read
	MapModeWrite MapMode = C.WGPUMapMode_Write // Write
)

func (MapMode) String

func (i MapMode) String() string

type MetalLayer

type MetalLayer struct {
	Layer unsafe.Pointer
}

type MipmapFilterMode

type MipmapFilterMode uint32
const (
	MipmapFilterModeNearest MipmapFilterMode = C.WGPUMipmapFilterMode_Nearest // Nearest
	MipmapFilterModeLinear  MipmapFilterMode = C.WGPUMipmapFilterMode_Linear  // Linear
)

func (MipmapFilterMode) String

func (i MipmapFilterMode) String() string

type MultisampleState

type MultisampleState struct {
	Count                  uint32
	Mask                   uint32
	AlphaToCoverageEnabled bool
}

type NativeLimits

type NativeLimits struct {
	MaxPushConstantSize   uint32
	MaxNonSamplerBindings uint32
	// contains filtered or unexported fields
}

type NativeSurface

type NativeSurface interface {
	// contains filtered or unexported methods
}

One of AndroidNativeWindow, MetalLayer, WaylandSurface, WindowsHWND, XCBWindow, or XlibWindow.

type Origin3D

type Origin3D struct {
	X uint32
	Y uint32
	Z uint32
	// contains filtered or unexported fields
}

type OutOfMemoryError

type OutOfMemoryError struct {
	// contains filtered or unexported fields
}

func (OutOfMemoryError) Error

func (err OutOfMemoryError) Error() string

type PipelineLayout

type PipelineLayout C.struct_WGPUPipelineLayoutImpl

func (*PipelineLayout) Release

func (ptr *PipelineLayout) Release()

type PipelineLayoutDescriptor

type PipelineLayoutDescriptor struct {
	Label            string
	BindGroupLayouts []*BindGroupLayout
}

type PowerPreference

type PowerPreference uint32
const (
	PowerPreferenceUndefined       PowerPreference = C.WGPUPowerPreference_Undefined       // Undefined
	PowerPreferenceLowPower        PowerPreference = C.WGPUPowerPreference_LowPower        // LowPower
	PowerPreferenceHighPerformance PowerPreference = C.WGPUPowerPreference_HighPerformance // HighPerformance
)

func (PowerPreference) String

func (i PowerPreference) String() string

type PresentMode

type PresentMode uint32
const (
	PresentModeFifo        PresentMode = C.WGPUPresentMode_Fifo        // Fifo
	PresentModeFifoRelaxed PresentMode = C.WGPUPresentMode_FifoRelaxed // FifoRelaxed
	PresentModeImmediate   PresentMode = C.WGPUPresentMode_Immediate   // Immediate
	PresentModeMailbox     PresentMode = C.WGPUPresentMode_Mailbox     // Mailbox
)

func (PresentMode) String

func (i PresentMode) String() string

type PrimitiveDepthClipControl

type PrimitiveDepthClipControl struct {
	UnclippedDepth bool
}

type PrimitiveState

type PrimitiveState struct {
	Topology         PrimitiveTopology
	StripIndexFormat IndexFormat
	FrontFace        FrontFace
	CullMode         CullMode

	DepthClipControl *PrimitiveDepthClipControl
}

type PrimitiveTopology

type PrimitiveTopology uint32
const (
	PrimitiveTopologyPointList     PrimitiveTopology = C.WGPUPrimitiveTopology_PointList     // PointList
	PrimitiveTopologyLineList      PrimitiveTopology = C.WGPUPrimitiveTopology_LineList      // LineList
	PrimitiveTopologyLineStrip     PrimitiveTopology = C.WGPUPrimitiveTopology_LineStrip     // LineStrip
	PrimitiveTopologyTriangleList  PrimitiveTopology = C.WGPUPrimitiveTopology_TriangleList  // TriangleList
	PrimitiveTopologyTriangleStrip PrimitiveTopology = C.WGPUPrimitiveTopology_TriangleStrip // TriangleStrip
)

func (PrimitiveTopology) String

func (i PrimitiveTopology) String() string

type ProgrammableStageDescriptor

type ProgrammableStageDescriptor struct {
	Module     *ShaderModule
	EntryPoint string
	Constants  []ConstantEntry
}

type QuerySet

type QuerySet C.struct_WGPUQuerySetImpl

func (*QuerySet) Count

func (q *QuerySet) Count() uint32

func (*QuerySet) Destroy

func (q *QuerySet) Destroy()

func (*QuerySet) Release

func (ptr *QuerySet) Release()

func (*QuerySet) Type

func (q *QuerySet) Type() QueryType

type QuerySetDescriptor

type QuerySetDescriptor struct {
	Label string
	Type  QueryType
	Count uint32
}

type QueryType

type QueryType uint32
const (
	QueryTypeOcclusion QueryType = C.WGPUQueryType_Occlusion // Occlusion
	QueryTypeTimestamp QueryType = C.WGPUQueryType_Timestamp // Timestamp
)

func (QueryType) String

func (i QueryType) String() string

type Queue

type Queue C.struct_WGPUQueueImpl

func (*Queue) Release

func (ptr *Queue) Release()

func (*Queue) Submit

func (queue *Queue) Submit(commands ...*CommandBuffer)

func (*Queue) WriteBuffer

func (q *Queue) WriteBuffer(buffer *Buffer, offset uint64, data []byte)

func (*Queue) WriteTexture

func (q *Queue) WriteTexture(
	destination *ImageCopyTexture,
	data []byte,
	dataLayout *TextureDataLayout,
	writeSize *Extent3D,
)

type QueueDescriptor

type QueueDescriptor struct {
	Label string
}

type RegistryReport

type RegistryReport struct {
	NumAllocated        int
	NumKeptFromUser     int
	NumReleasedFromUser int
	NumError            int
	ElementSize         int
	// contains filtered or unexported fields
}

type RenderBundle

type RenderBundle C.struct_WGPURenderBundleImpl

func (*RenderBundle) Release

func (ptr *RenderBundle) Release()

type RenderBundleEncoder

type RenderBundleEncoder C.struct_WGPURenderBundleEncoderImpl

func (*RenderBundleEncoder) Release

func (ptr *RenderBundleEncoder) Release()

type RenderPassColorAttachment

type RenderPassColorAttachment struct {
	View          *TextureView // nullable
	ResolveTarget *TextureView // nullable
	LoadOp        LoadOp
	StoreOp       StoreOp
	ClearValue    Color
}

type RenderPassDepthStencilAttachment

type RenderPassDepthStencilAttachment struct {
	View              *TextureView
	DepthLoadOp       LoadOp
	DepthStoreOp      StoreOp
	DepthClearValue   float32
	DepthReadOnly     bool
	StencilLoadOp     LoadOp
	StencilStoreOp    StoreOp
	StencilClearValue uint32
	StencilReadOnly   bool
}

type RenderPassDescriptor

type RenderPassDescriptor struct {
	Label                  string
	ColorAttachments       []RenderPassColorAttachment
	DepthStencilAttachment *RenderPassDepthStencilAttachment // nullable
	OcclusionQuerySet      *QuerySet                         // nullable
	TimestampWrites        *RenderPassTimestampWrites        //nullable

}

type RenderPassEncoder

type RenderPassEncoder C.struct_WGPURenderPassEncoderImpl

func (*RenderPassEncoder) BeginOcclusionQuery

func (enc *RenderPassEncoder) BeginOcclusionQuery(queryIndex uint32)

func (*RenderPassEncoder) Draw

func (enc *RenderPassEncoder) Draw(vertexCount, instanceCount, firstVertex, firstInstance uint32)

func (*RenderPassEncoder) DrawIndexed

func (enc *RenderPassEncoder) DrawIndexed(indexCount, instanceCount, firstIndex uint32, baseVertex int32, firstInstance uint32)

func (*RenderPassEncoder) DrawIndexedIndirect

func (enc *RenderPassEncoder) DrawIndexedIndirect(indirectBuffer *Buffer, indirectOffset uint64)

func (*RenderPassEncoder) DrawIndirect

func (enc *RenderPassEncoder) DrawIndirect(indirectBuffer *Buffer, indirectOffset uint64)

func (*RenderPassEncoder) End

func (enc *RenderPassEncoder) End()

func (*RenderPassEncoder) EndOcclusionQuery

func (enc *RenderPassEncoder) EndOcclusionQuery()

func (*RenderPassEncoder) ExecuteBundles

func (enc *RenderPassEncoder) ExecuteBundles(bundles ...*RenderBundle)

func (*RenderPassEncoder) InsertDebugMarker

func (enc *RenderPassEncoder) InsertDebugMarker(markerLabel string)

func (*RenderPassEncoder) PopDebugGroup

func (enc *RenderPassEncoder) PopDebugGroup()

func (*RenderPassEncoder) PushDebugGroup

func (enc *RenderPassEncoder) PushDebugGroup(groupLabel string)

func (*RenderPassEncoder) Release

func (ptr *RenderPassEncoder) Release()

func (*RenderPassEncoder) SetBindGroup

func (enc *RenderPassEncoder) SetBindGroup(
	groupIndex uint32,
	group *BindGroup,
	dynamicOffsets []uint32,
)

func (*RenderPassEncoder) SetBlendConstant

func (enc *RenderPassEncoder) SetBlendConstant(color *Color)

func (*RenderPassEncoder) SetIndexBuffer

func (enc *RenderPassEncoder) SetIndexBuffer(buffer *Buffer, format IndexFormat, offset, size uint64)

func (*RenderPassEncoder) SetPipeline

func (enc *RenderPassEncoder) SetPipeline(p *RenderPipeline)

func (*RenderPassEncoder) SetScissorRect

func (enc *RenderPassEncoder) SetScissorRect(x, y, width, height uint32)

func (*RenderPassEncoder) SetStencilReference

func (enc *RenderPassEncoder) SetStencilReference(reference uint32)

func (*RenderPassEncoder) SetVertexBuffer

func (enc *RenderPassEncoder) SetVertexBuffer(slot uint32, buffer *Buffer, offset, size uint64)

func (*RenderPassEncoder) SetViewport

func (enc *RenderPassEncoder) SetViewport(x, y, width, height, minDepth, maxDepth float32)

type RenderPassTimestampWrites

type RenderPassTimestampWrites struct {
	QuerySet                  *QuerySet
	BeginningOfPassWriteIndex uint32
	EndOfPassWriteIndex       uint32
}

type RenderPipeline

type RenderPipeline C.struct_WGPURenderPipelineImpl

func (*RenderPipeline) BindGroupLayout

func (p *RenderPipeline) BindGroupLayout(groupIndex uint32) *BindGroupLayout

func (*RenderPipeline) Release

func (ptr *RenderPipeline) Release()

type RenderPipelineDescriptor

type RenderPipelineDescriptor struct {
	Label        string          // optional
	Layout       *PipelineLayout // optional
	Vertex       *VertexState
	Primitive    *PrimitiveState
	DepthStencil *DepthStencilState // optional
	Multisample  *MultisampleState
	Fragment     *FragmentState // optional
}

type RequestAdapterError

type RequestAdapterError struct {
	Message string
}

func (RequestAdapterError) Error

func (err RequestAdapterError) Error() string

type RequestAdapterOptions

type RequestAdapterOptions struct {
	CompatibleSurface    *Surface
	PowerPreference      PowerPreference
	ForceFallbackAdapter bool
}

type RequestDeviceError

type RequestDeviceError struct {
	Message string
}

func (RequestDeviceError) Error

func (err RequestDeviceError) Error() string

type RequiredLimits

type RequiredLimits struct {
	Limits       Limits
	NativeLimits NativeLimits
}

type Sampler

type Sampler C.struct_WGPUSamplerImpl

func (*Sampler) Release

func (ptr *Sampler) Release()

type SamplerBindingLayout

type SamplerBindingLayout struct {
	Type SamplerBindingType
}

type SamplerBindingType

type SamplerBindingType uint32
const (
	SamplerBindingTypeUndefined    SamplerBindingType = C.WGPUSamplerBindingType_Undefined    // Undefined
	SamplerBindingTypeFiltering    SamplerBindingType = C.WGPUSamplerBindingType_Filtering    // Filtering
	SamplerBindingTypeNonFiltering SamplerBindingType = C.WGPUSamplerBindingType_NonFiltering // NonFiltering
	SamplerBindingTypeComparison   SamplerBindingType = C.WGPUSamplerBindingType_Comparison   // Comparison
)

func (SamplerBindingType) String

func (i SamplerBindingType) String() string

type SamplerDescriptor

type SamplerDescriptor struct {
	Label         string
	AddressModeU  AddressMode
	AddressModeV  AddressMode
	AddressModeW  AddressMode
	MagFilter     FilterMode
	MinFilter     FilterMode
	MipmapFilter  MipmapFilterMode
	LODMinClamp   float32
	LODMaxClamp   float32
	Compare       CompareFunction
	MaxAnisotropy uint16
}

type ShaderModule

type ShaderModule C.struct_WGPUShaderModuleImpl

func (*ShaderModule) Release

func (ptr *ShaderModule) Release()

type ShaderModuleCompilationHint

type ShaderModuleCompilationHint struct {
	EntryPoint string
	Layout     *PipelineLayout
}

type ShaderModuleDescriptor

type ShaderModuleDescriptor struct {
	Label  string
	Hints  []ShaderModuleCompilationHint
	Source ShaderSource
}

type ShaderSource

type ShaderSource interface {
	// contains filtered or unexported methods
}

One of ShaderSourceWGSL.

type ShaderSourceWGSL

type ShaderSourceWGSL []byte

type ShaderStage

type ShaderStage uint32
const (
	ShaderStageNone     ShaderStage = C.WGPUShaderStage_None     // None
	ShaderStageVertex   ShaderStage = C.WGPUShaderStage_Vertex   // Vertex
	ShaderStageFragment ShaderStage = C.WGPUShaderStage_Fragment // Fragment
	ShaderStageCompute  ShaderStage = C.WGPUShaderStage_Compute  // Compute
)

func (ShaderStage) String

func (i ShaderStage) String() string

type StencilFaceState

type StencilFaceState struct {
	Compare     CompareFunction
	FailOp      StencilOperation
	DepthFailOp StencilOperation
	PassOp      StencilOperation
	// contains filtered or unexported fields
}

type StencilOperation

type StencilOperation uint32
const (
	StencilOperationKeep           StencilOperation = C.WGPUStencilOperation_Keep           // Keep
	StencilOperationZero           StencilOperation = C.WGPUStencilOperation_Zero           // Zero
	StencilOperationReplace        StencilOperation = C.WGPUStencilOperation_Replace        // Replace
	StencilOperationInvert         StencilOperation = C.WGPUStencilOperation_Invert         // Invert
	StencilOperationIncrementClamp StencilOperation = C.WGPUStencilOperation_IncrementClamp // IncrementClamp
	StencilOperationDecrementClamp StencilOperation = C.WGPUStencilOperation_DecrementClamp // DecrementClamp
	StencilOperationIncrementWrap  StencilOperation = C.WGPUStencilOperation_IncrementWrap  // IncrementWrap
	StencilOperationDecrementWrap  StencilOperation = C.WGPUStencilOperation_DecrementWrap  // DecrementWrap
)

func (StencilOperation) String

func (i StencilOperation) String() string

type StorageTextureAccess

type StorageTextureAccess uint32
const (
	StorageTextureAccessUndefined StorageTextureAccess = C.WGPUStorageTextureAccess_Undefined // Undefined
	StorageTextureAccessWriteOnly StorageTextureAccess = C.WGPUStorageTextureAccess_WriteOnly // WriteOnly
	StorageTextureAccessReadOnly  StorageTextureAccess = C.WGPUStorageTextureAccess_ReadOnly  // ReadOnly
	StorageTextureAccessReadWrite StorageTextureAccess = C.WGPUStorageTextureAccess_ReadWrite // ReadWrite
)

func (StorageTextureAccess) String

func (i StorageTextureAccess) String() string

type StorageTextureBindingLayout

type StorageTextureBindingLayout struct {
	Access        StorageTextureAccess
	Format        TextureFormat
	ViewDimension TextureViewDimension
}

type StoreOp

type StoreOp uint32
const (
	StoreOpUndefined StoreOp = C.WGPUStoreOp_Undefined // Undefined
	StoreOpStore     StoreOp = C.WGPUStoreOp_Store     // Store
	StoreOpDiscard   StoreOp = C.WGPUStoreOp_Discard   // Discard
)

func (StoreOp) String

func (i StoreOp) String() string

type Surface

type Surface C.struct_WGPUSurfaceImpl

func (*Surface) Capabilities

func (s *Surface) Capabilities(adapter *Adapter) SurfaceCapabilities

func (*Surface) Configure

func (s *Surface) Configure(dev *Device, config *SurfaceConfiguration)

func (*Surface) CurrentTexture

func (s *Surface) CurrentTexture() (SurfaceTexture, error)

func (*Surface) PreferredFormat

func (s *Surface) PreferredFormat(adapter *Adapter) TextureFormat

func (*Surface) Present

func (s *Surface) Present()

func (*Surface) Release

func (ptr *Surface) Release()

func (*Surface) Unconfigure

func (s *Surface) Unconfigure()

type SurfaceCapabilities

type SurfaceCapabilities struct {
	Formats      []TextureFormat
	PresentModes []PresentMode
	AlphaModes   []CompositeAlphaMode
}

type SurfaceConfiguration

type SurfaceConfiguration struct {
	Format      TextureFormat
	Usage       TextureUsage
	ViewFormats []TextureFormat
	AlphaMode   CompositeAlphaMode
	Width       uint32
	Height      uint32
	PresentMode PresentMode
}

type SurfaceDescriptor

type SurfaceDescriptor struct {
	Label  string
	Native NativeSurface
}

type SurfaceTexture

type SurfaceTexture struct {
	Texture    *Texture
	Suboptimal bool
}

type Texture

type Texture C.struct_WGPUTextureImpl

func (*Texture) CreateView

func (tex *Texture) CreateView(desc *TextureViewDescriptor) *TextureView

func (*Texture) DepthOrArrayLayers

func (tex *Texture) DepthOrArrayLayers() uint32

func (*Texture) Destroy

func (tex *Texture) Destroy()

func (*Texture) Dimension

func (tex *Texture) Dimension() TextureDimension

func (*Texture) Format

func (tex *Texture) Format() TextureFormat

func (*Texture) Height

func (tex *Texture) Height() uint32

func (*Texture) MipLevelCount

func (tex *Texture) MipLevelCount() uint32

func (*Texture) Release

func (ptr *Texture) Release()

func (*Texture) SampleCount

func (tex *Texture) SampleCount() uint32

func (*Texture) Usage

func (tex *Texture) Usage() TextureUsage

func (*Texture) Width

func (tex *Texture) Width() uint32

type TextureAspect

type TextureAspect uint32
const (
	TextureAspectAll         TextureAspect = C.WGPUTextureAspect_All         // All
	TextureAspectStencilOnly TextureAspect = C.WGPUTextureAspect_StencilOnly // StencilOnly
	TextureAspectDepthOnly   TextureAspect = C.WGPUTextureAspect_DepthOnly   // DepthOnly
)

func (TextureAspect) String

func (i TextureAspect) String() string

type TextureBindingLayout

type TextureBindingLayout struct {
	SampleType    TextureSampleType
	ViewDimension TextureViewDimension
	Multisampled  bool
}

type TextureDataLayout

type TextureDataLayout struct {
	Offset       uint64
	BytesPerRow  uint32
	RowsPerImage uint32
	// contains filtered or unexported fields
}

type TextureDescriptor

type TextureDescriptor struct {
	Label         string
	Usage         TextureUsage
	Dimension     TextureDimension
	Size          Extent3D
	Format        TextureFormat
	MipLevelCount uint32
	SampleCount   uint32
	ViewFormats   []TextureFormat
}

type TextureDimension

type TextureDimension uint32
const (
	TextureDimension1D TextureDimension = C.WGPUTextureDimension_1D // 1D
	TextureDimension2D TextureDimension = C.WGPUTextureDimension_2D // 2D
	TextureDimension3D TextureDimension = C.WGPUTextureDimension_3D // 3D
)

func (TextureDimension) String

func (i TextureDimension) String() string

type TextureFormat

type TextureFormat uint32
const (
	TextureFormatUndefined            TextureFormat = C.WGPUTextureFormat_Undefined            // Undefined
	TextureFormatR8Unorm              TextureFormat = C.WGPUTextureFormat_R8Unorm              // R8Unorm
	TextureFormatR8Snorm              TextureFormat = C.WGPUTextureFormat_R8Snorm              // R8Snorm
	TextureFormatR8Uint               TextureFormat = C.WGPUTextureFormat_R8Uint               // R8Uint
	TextureFormatR8Sint               TextureFormat = C.WGPUTextureFormat_R8Sint               // R8Sint
	TextureFormatR16Uint              TextureFormat = C.WGPUTextureFormat_R16Uint              // R16Uint
	TextureFormatR16Sint              TextureFormat = C.WGPUTextureFormat_R16Sint              // R16Sint
	TextureFormatR16Float             TextureFormat = C.WGPUTextureFormat_R16Float             // R16Float
	TextureFormatRG8Unorm             TextureFormat = C.WGPUTextureFormat_RG8Unorm             // RG8Unorm
	TextureFormatRG8Snorm             TextureFormat = C.WGPUTextureFormat_RG8Snorm             // RG8Snorm
	TextureFormatRG8Uint              TextureFormat = C.WGPUTextureFormat_RG8Uint              // RG8Uint
	TextureFormatRG8Sint              TextureFormat = C.WGPUTextureFormat_RG8Sint              // RG8Sint
	TextureFormatR32Float             TextureFormat = C.WGPUTextureFormat_R32Float             // R32Float
	TextureFormatR32Uint              TextureFormat = C.WGPUTextureFormat_R32Uint              // R32Uint
	TextureFormatR32Sint              TextureFormat = C.WGPUTextureFormat_R32Sint              // R32Sint
	TextureFormatRG16Uint             TextureFormat = C.WGPUTextureFormat_RG16Uint             // RG16Uint
	TextureFormatRG16Sint             TextureFormat = C.WGPUTextureFormat_RG16Sint             // RG16Sint
	TextureFormatRG16Float            TextureFormat = C.WGPUTextureFormat_RG16Float            // RG16Float
	TextureFormatRGBA8Unorm           TextureFormat = C.WGPUTextureFormat_RGBA8Unorm           // RGBA8Unorm
	TextureFormatRGBA8UnormSrgb       TextureFormat = C.WGPUTextureFormat_RGBA8UnormSrgb       // RGBA8UnormSrgb
	TextureFormatRGBA8Snorm           TextureFormat = C.WGPUTextureFormat_RGBA8Snorm           // RGBA8Snorm
	TextureFormatRGBA8Uint            TextureFormat = C.WGPUTextureFormat_RGBA8Uint            // RGBA8Uint
	TextureFormatRGBA8Sint            TextureFormat = C.WGPUTextureFormat_RGBA8Sint            // RGBA8Sint
	TextureFormatBGRA8Unorm           TextureFormat = C.WGPUTextureFormat_BGRA8Unorm           // BGRA8Unorm
	TextureFormatBGRA8UnormSrgb       TextureFormat = C.WGPUTextureFormat_BGRA8UnormSrgb       // BGRA8UnormSrgb
	TextureFormatRGB10A2Uint          TextureFormat = C.WGPUTextureFormat_RGB10A2Uint          // RGB10A2Uint
	TextureFormatRGB10A2Unorm         TextureFormat = C.WGPUTextureFormat_RGB10A2Unorm         // RGB10A2Unorm
	TextureFormatRG11B10Ufloat        TextureFormat = C.WGPUTextureFormat_RG11B10Ufloat        // RG11B10Ufloat
	TextureFormatRGB9E5Ufloat         TextureFormat = C.WGPUTextureFormat_RGB9E5Ufloat         // RGB9E5Ufloat
	TextureFormatRG32Float            TextureFormat = C.WGPUTextureFormat_RG32Float            // RG32Float
	TextureFormatRG32Uint             TextureFormat = C.WGPUTextureFormat_RG32Uint             // RG32Uint
	TextureFormatRG32Sint             TextureFormat = C.WGPUTextureFormat_RG32Sint             // RG32Sint
	TextureFormatRGBA16Uint           TextureFormat = C.WGPUTextureFormat_RGBA16Uint           // RGBA16Uint
	TextureFormatRGBA16Sint           TextureFormat = C.WGPUTextureFormat_RGBA16Sint           // RGBA16Sint
	TextureFormatRGBA16Float          TextureFormat = C.WGPUTextureFormat_RGBA16Float          // RGBA16Float
	TextureFormatRGBA32Float          TextureFormat = C.WGPUTextureFormat_RGBA32Float          // RGBA32Float
	TextureFormatRGBA32Uint           TextureFormat = C.WGPUTextureFormat_RGBA32Uint           // RGBA32Uint
	TextureFormatRGBA32Sint           TextureFormat = C.WGPUTextureFormat_RGBA32Sint           // RGBA32Sint
	TextureFormatStencil8             TextureFormat = C.WGPUTextureFormat_Stencil8             // Stencil8
	TextureFormatDepth16Unorm         TextureFormat = C.WGPUTextureFormat_Depth16Unorm         // Depth16Unorm
	TextureFormatDepth24Plus          TextureFormat = C.WGPUTextureFormat_Depth24Plus          // Depth24Plus
	TextureFormatDepth24PlusStencil8  TextureFormat = C.WGPUTextureFormat_Depth24PlusStencil8  // Depth24PlusStencil8
	TextureFormatDepth32Float         TextureFormat = C.WGPUTextureFormat_Depth32Float         // Depth32Float
	TextureFormatDepth32FloatStencil8 TextureFormat = C.WGPUTextureFormat_Depth32FloatStencil8 // Depth32FloatStencil8
	TextureFormatBC1RGBAUnorm         TextureFormat = C.WGPUTextureFormat_BC1RGBAUnorm         // BC1RGBAUnorm
	TextureFormatBC1RGBAUnormSrgb     TextureFormat = C.WGPUTextureFormat_BC1RGBAUnormSrgb     // BC1RGBAUnormSrgb
	TextureFormatBC2RGBAUnorm         TextureFormat = C.WGPUTextureFormat_BC2RGBAUnorm         // BC2RGBAUnorm
	TextureFormatBC2RGBAUnormSrgb     TextureFormat = C.WGPUTextureFormat_BC2RGBAUnormSrgb     // BC2RGBAUnormSrgb
	TextureFormatBC3RGBAUnorm         TextureFormat = C.WGPUTextureFormat_BC3RGBAUnorm         // BC3RGBAUnorm
	TextureFormatBC3RGBAUnormSrgb     TextureFormat = C.WGPUTextureFormat_BC3RGBAUnormSrgb     // BC3RGBAUnormSrgb
	TextureFormatBC4RUnorm            TextureFormat = C.WGPUTextureFormat_BC4RUnorm            // BC4RUnorm
	TextureFormatBC4RSnorm            TextureFormat = C.WGPUTextureFormat_BC4RSnorm            // BC4RSnorm
	TextureFormatBC5RGUnorm           TextureFormat = C.WGPUTextureFormat_BC5RGUnorm           // BC5RGUnorm
	TextureFormatBC5RGSnorm           TextureFormat = C.WGPUTextureFormat_BC5RGSnorm           // BC5RGSnorm
	TextureFormatBC6HRGBUfloat        TextureFormat = C.WGPUTextureFormat_BC6HRGBUfloat        // BC6HRGBUfloat
	TextureFormatBC6HRGBFloat         TextureFormat = C.WGPUTextureFormat_BC6HRGBFloat         // BC6HRGBFloat
	TextureFormatBC7RGBAUnorm         TextureFormat = C.WGPUTextureFormat_BC7RGBAUnorm         // BC7RGBAUnorm
	TextureFormatBC7RGBAUnormSrgb     TextureFormat = C.WGPUTextureFormat_BC7RGBAUnormSrgb     // BC7RGBAUnormSrgb
	TextureFormatETC2RGB8Unorm        TextureFormat = C.WGPUTextureFormat_ETC2RGB8Unorm        // ETC2RGB8Unorm
	TextureFormatETC2RGB8UnormSrgb    TextureFormat = C.WGPUTextureFormat_ETC2RGB8UnormSrgb    // ETC2RGB8UnormSrgb
	TextureFormatETC2RGB8A1Unorm      TextureFormat = C.WGPUTextureFormat_ETC2RGB8A1Unorm      // ETC2RGB8A1Unorm
	TextureFormatETC2RGB8A1UnormSrgb  TextureFormat = C.WGPUTextureFormat_ETC2RGB8A1UnormSrgb  // ETC2RGB8A1UnormSrgb
	TextureFormatETC2RGBA8Unorm       TextureFormat = C.WGPUTextureFormat_ETC2RGBA8Unorm       // ETC2RGBA8Unorm
	TextureFormatETC2RGBA8UnormSrgb   TextureFormat = C.WGPUTextureFormat_ETC2RGBA8UnormSrgb   // ETC2RGBA8UnormSrgb
	TextureFormatEACR11Unorm          TextureFormat = C.WGPUTextureFormat_EACR11Unorm          // EACR11Unorm
	TextureFormatEACR11Snorm          TextureFormat = C.WGPUTextureFormat_EACR11Snorm          // EACR11Snorm
	TextureFormatEACRG11Unorm         TextureFormat = C.WGPUTextureFormat_EACRG11Unorm         // EACRG11Unorm
	TextureFormatEACRG11Snorm         TextureFormat = C.WGPUTextureFormat_EACRG11Snorm         // EACRG11Snorm
	TextureFormatASTC4x4Unorm         TextureFormat = C.WGPUTextureFormat_ASTC4x4Unorm         // ASTC4x4Unorm
	TextureFormatASTC4x4UnormSrgb     TextureFormat = C.WGPUTextureFormat_ASTC4x4UnormSrgb     // ASTC4x4UnormSrgb
	TextureFormatASTC5x4Unorm         TextureFormat = C.WGPUTextureFormat_ASTC5x4Unorm         // ASTC5x4Unorm
	TextureFormatASTC5x4UnormSrgb     TextureFormat = C.WGPUTextureFormat_ASTC5x4UnormSrgb     // ASTC5x4UnormSrgb
	TextureFormatASTC5x5Unorm         TextureFormat = C.WGPUTextureFormat_ASTC5x5Unorm         // ASTC5x5Unorm
	TextureFormatASTC5x5UnormSrgb     TextureFormat = C.WGPUTextureFormat_ASTC5x5UnormSrgb     // ASTC5x5UnormSrgb
	TextureFormatASTC6x5Unorm         TextureFormat = C.WGPUTextureFormat_ASTC6x5Unorm         // ASTC6x5Unorm
	TextureFormatASTC6x5UnormSrgb     TextureFormat = C.WGPUTextureFormat_ASTC6x5UnormSrgb     // ASTC6x5UnormSrgb
	TextureFormatASTC6x6Unorm         TextureFormat = C.WGPUTextureFormat_ASTC6x6Unorm         // ASTC6x6Unorm
	TextureFormatASTC6x6UnormSrgb     TextureFormat = C.WGPUTextureFormat_ASTC6x6UnormSrgb     // ASTC6x6UnormSrgb
	TextureFormatASTC8x5Unorm         TextureFormat = C.WGPUTextureFormat_ASTC8x5Unorm         // ASTC8x5Unorm
	TextureFormatASTC8x5UnormSrgb     TextureFormat = C.WGPUTextureFormat_ASTC8x5UnormSrgb     // ASTC8x5UnormSrgb
	TextureFormatASTC8x6Unorm         TextureFormat = C.WGPUTextureFormat_ASTC8x6Unorm         // ASTC8x6Unorm
	TextureFormatASTC8x6UnormSrgb     TextureFormat = C.WGPUTextureFormat_ASTC8x6UnormSrgb     // ASTC8x6UnormSrgb
	TextureFormatASTC8x8Unorm         TextureFormat = C.WGPUTextureFormat_ASTC8x8Unorm         // ASTC8x8Unorm
	TextureFormatASTC8x8UnormSrgb     TextureFormat = C.WGPUTextureFormat_ASTC8x8UnormSrgb     // ASTC8x8UnormSrgb
	TextureFormatASTC10x5Unorm        TextureFormat = C.WGPUTextureFormat_ASTC10x5Unorm        // ASTC10x5Unorm
	TextureFormatASTC10x5UnormSrgb    TextureFormat = C.WGPUTextureFormat_ASTC10x5UnormSrgb    // ASTC10x5UnormSrgb
	TextureFormatASTC10x6Unorm        TextureFormat = C.WGPUTextureFormat_ASTC10x6Unorm        // ASTC10x6Unorm
	TextureFormatASTC10x6UnormSrgb    TextureFormat = C.WGPUTextureFormat_ASTC10x6UnormSrgb    // ASTC10x6UnormSrgb
	TextureFormatASTC10x8Unorm        TextureFormat = C.WGPUTextureFormat_ASTC10x8Unorm        // ASTC10x8Unorm
	TextureFormatASTC10x8UnormSrgb    TextureFormat = C.WGPUTextureFormat_ASTC10x8UnormSrgb    // ASTC10x8UnormSrgb
	TextureFormatASTC10x10Unorm       TextureFormat = C.WGPUTextureFormat_ASTC10x10Unorm       // ASTC10x10Unorm
	TextureFormatASTC10x10UnormSrgb   TextureFormat = C.WGPUTextureFormat_ASTC10x10UnormSrgb   // ASTC10x10UnormSrgb
	TextureFormatASTC12x10Unorm       TextureFormat = C.WGPUTextureFormat_ASTC12x10Unorm       // ASTC12x10Unorm
	TextureFormatASTC12x10UnormSrgb   TextureFormat = C.WGPUTextureFormat_ASTC12x10UnormSrgb   // ASTC12x10UnormSrgb
	TextureFormatASTC12x12Unorm       TextureFormat = C.WGPUTextureFormat_ASTC12x12Unorm       // ASTC12x12Unorm
	TextureFormatASTC12x12UnormSrgb   TextureFormat = C.WGPUTextureFormat_ASTC12x12UnormSrgb   // ASTC12x12UnormSrgb
)

func (TextureFormat) BlockCopySize

func (tf TextureFormat) BlockCopySize(aspect TextureAspect) (uint32, bool)

func (TextureFormat) String

func (i TextureFormat) String() string

type TextureSampleType

type TextureSampleType uint32
const (
	TextureSampleTypeUndefined         TextureSampleType = C.WGPUTextureSampleType_Undefined         // Undefined
	TextureSampleTypeFloat             TextureSampleType = C.WGPUTextureSampleType_Float             // Float
	TextureSampleTypeUnfilterableFloat TextureSampleType = C.WGPUTextureSampleType_UnfilterableFloat // UnfilterableFloat
	TextureSampleTypeDepth             TextureSampleType = C.WGPUTextureSampleType_Depth             // Depth
	TextureSampleTypeSint              TextureSampleType = C.WGPUTextureSampleType_Sint              // Sint
	TextureSampleTypeUint              TextureSampleType = C.WGPUTextureSampleType_Uint              // Uint
)

func (TextureSampleType) String

func (i TextureSampleType) String() string

type TextureUsage

type TextureUsage uint32
const (
	TextureUsageNone             TextureUsage = C.WGPUTextureUsage_None             // None
	TextureUsageCopySrc          TextureUsage = C.WGPUTextureUsage_CopySrc          // CopySrc
	TextureUsageCopyDst          TextureUsage = C.WGPUTextureUsage_CopyDst          // CopyDst
	TextureUsageTextureBinding   TextureUsage = C.WGPUTextureUsage_TextureBinding   // TextureBinding
	TextureUsageStorageBinding   TextureUsage = C.WGPUTextureUsage_StorageBinding   // StorageBinding
	TextureUsageRenderAttachment TextureUsage = C.WGPUTextureUsage_RenderAttachment // RenderAttachment
)

func (TextureUsage) String

func (i TextureUsage) String() string

type TextureView

type TextureView C.struct_WGPUTextureViewImpl

func (*TextureView) Release

func (ptr *TextureView) Release()

type TextureViewDescriptor

type TextureViewDescriptor struct {
	Label           string
	Format          TextureFormat
	Dimension       TextureViewDimension
	BaseMipLevel    uint32
	MipLevelCount   uint32
	BaseArrayLayer  uint32
	ArrayLayerCount uint32
	Aspect          TextureAspect
}

type TextureViewDimension

type TextureViewDimension uint32
const (
	TextureViewDimensionUndefined TextureViewDimension = C.WGPUTextureViewDimension_Undefined // undefined
	TextureViewDimension1D        TextureViewDimension = C.WGPUTextureViewDimension_1D        // 1D
	TextureViewDimension2D        TextureViewDimension = C.WGPUTextureViewDimension_2D        // 2D
	TextureViewDimension2DArray   TextureViewDimension = C.WGPUTextureViewDimension_2DArray   // 2DArray
	TextureViewDimensionCube      TextureViewDimension = C.WGPUTextureViewDimension_Cube      // Cube
	TextureViewDimensionCubeArray TextureViewDimension = C.WGPUTextureViewDimension_CubeArray // CubeArray
	TextureViewDimension3D        TextureViewDimension = C.WGPUTextureViewDimension_3D        // 3D
)

func (TextureViewDimension) String

func (i TextureViewDimension) String() string

type UnknownError

type UnknownError struct {
	// contains filtered or unexported fields
}

func (UnknownError) Error

func (err UnknownError) Error() string

type ValidationError

type ValidationError struct {
	// contains filtered or unexported fields
}

func (ValidationError) Error

func (err ValidationError) Error() string

type VertexAttribute

type VertexAttribute struct {
	Format         VertexFormat
	Offset         uint64
	ShaderLocation uint32
}

type VertexBufferLayout

type VertexBufferLayout struct {
	ArrayStride uint64
	StepMode    VertexStepMode
	Attributes  []VertexAttribute
}

type VertexFormat

type VertexFormat uint32
const (
	VertexFormatUndefined VertexFormat = C.WGPUVertexFormat_Undefined // Undefined
	VertexFormatUint8x2   VertexFormat = C.WGPUVertexFormat_Uint8x2   // Uint8x2
	VertexFormatUint8x4   VertexFormat = C.WGPUVertexFormat_Uint8x4   // Uint8x4
	VertexFormatSint8x2   VertexFormat = C.WGPUVertexFormat_Sint8x2   // Sint8x2
	VertexFormatSint8x4   VertexFormat = C.WGPUVertexFormat_Sint8x4   // Sint8x4
	VertexFormatUnorm8x2  VertexFormat = C.WGPUVertexFormat_Unorm8x2  // Unorm8x2
	VertexFormatUnorm8x4  VertexFormat = C.WGPUVertexFormat_Unorm8x4  // Unorm8x4
	VertexFormatSnorm8x2  VertexFormat = C.WGPUVertexFormat_Snorm8x2  // Snorm8x2
	VertexFormatSnorm8x4  VertexFormat = C.WGPUVertexFormat_Snorm8x4  // Snorm8x4
	VertexFormatUint16x2  VertexFormat = C.WGPUVertexFormat_Uint16x2  // Uint16x2
	VertexFormatUint16x4  VertexFormat = C.WGPUVertexFormat_Uint16x4  // Uint16x4
	VertexFormatSint16x2  VertexFormat = C.WGPUVertexFormat_Sint16x2  // Sint16x2
	VertexFormatSint16x4  VertexFormat = C.WGPUVertexFormat_Sint16x4  // Sint16x4
	VertexFormatUnorm16x2 VertexFormat = C.WGPUVertexFormat_Unorm16x2 // Unorm16x2
	VertexFormatUnorm16x4 VertexFormat = C.WGPUVertexFormat_Unorm16x4 // Unorm16x4
	VertexFormatSnorm16x2 VertexFormat = C.WGPUVertexFormat_Snorm16x2 // Snorm16x2
	VertexFormatSnorm16x4 VertexFormat = C.WGPUVertexFormat_Snorm16x4 // Snorm16x4
	VertexFormatFloat16x2 VertexFormat = C.WGPUVertexFormat_Float16x2 // Float16x2
	VertexFormatFloat16x4 VertexFormat = C.WGPUVertexFormat_Float16x4 // Float16x4
	VertexFormatFloat32   VertexFormat = C.WGPUVertexFormat_Float32   // Float32
	VertexFormatFloat32x2 VertexFormat = C.WGPUVertexFormat_Float32x2 // Float32x2
	VertexFormatFloat32x3 VertexFormat = C.WGPUVertexFormat_Float32x3 // Float32x3
	VertexFormatFloat32x4 VertexFormat = C.WGPUVertexFormat_Float32x4 // Float32x4
	VertexFormatUint32    VertexFormat = C.WGPUVertexFormat_Uint32    // Uint32
	VertexFormatUint32x2  VertexFormat = C.WGPUVertexFormat_Uint32x2  // Uint32x2
	VertexFormatUint32x3  VertexFormat = C.WGPUVertexFormat_Uint32x3  // Uint32x3
	VertexFormatUint32x4  VertexFormat = C.WGPUVertexFormat_Uint32x4  // Uint32x4
	VertexFormatSint32    VertexFormat = C.WGPUVertexFormat_Sint32    // Sint32
	VertexFormatSint32x2  VertexFormat = C.WGPUVertexFormat_Sint32x2  // Sint32x2
	VertexFormatSint32x3  VertexFormat = C.WGPUVertexFormat_Sint32x3  // Sint32x3
	VertexFormatSint32x4  VertexFormat = C.WGPUVertexFormat_Sint32x4  // Sint32x4
)

func (VertexFormat) String

func (i VertexFormat) String() string

type VertexState

type VertexState struct {
	Module     *ShaderModule
	EntryPoint string
	Constants  []ConstantEntry
	Buffers    []VertexBufferLayout
}

type VertexStepMode

type VertexStepMode uint32
const (
	VertexStepModeVertex              VertexStepMode = C.WGPUVertexStepMode_Vertex              // Vertex
	VertexStepModeInstance            VertexStepMode = C.WGPUVertexStepMode_Instance            // Instance
	VertexStepModeVertexBufferNotUsed VertexStepMode = C.WGPUVertexStepMode_VertexBufferNotUsed // VertexBufferNotUsed
)

func (VertexStepMode) String

func (i VertexStepMode) String() string

type WaylandSurface

type WaylandSurface struct {
	Label   string
	Display unsafe.Pointer
	Surface unsafe.Pointer
}

type WindowsHWND

type WindowsHWND struct {
	HINSTANCE unsafe.Pointer
	HWND      unsafe.Pointer
}

type XCBWindow

type XCBWindow struct {
	Connection unsafe.Pointer
	Window     uint32
}

type XlibWindow

type XlibWindow struct {
	Display unsafe.Pointer
	Window  uint64
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL