vkutil

package
v0.0.0-...-06c1dd3 Latest Latest
Warning

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

Go to latest
Published: Dec 30, 2023 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Info

func Info(instance vulkan.Instance) error

Types

type Buffer

type Buffer struct {
	Handle vulkan.Buffer
	Memory Memory
	Device vulkan.Device
}

func NewBuffer

func NewBuffer(device vulkan.Device, allocator MemoryAllocator, usage vulkan.BufferUsageFlags, data interface{}) (*Buffer, error)

func (*Buffer) Buffer

func (b *Buffer) Buffer() vulkan.Buffer

func (*Buffer) Close

func (b *Buffer) Close()

type CPUMemoryAllocator

type CPUMemoryAllocator vulkan.PhysicalDeviceMemoryProperties

func (CPUMemoryAllocator) Allocate

type GPUMemoryAllocator

type GPUMemoryAllocator vulkan.PhysicalDeviceMemoryProperties

func (GPUMemoryAllocator) Allocate

type Image

type Image struct {
	Image        image.Image
	Handle       vulkan.Image
	View         vulkan.ImageView
	Memory       vulkan.DeviceMemory
	Buffer       vulkan.Buffer
	BufferMemory vulkan.DeviceMemory

	vulkan.Extent2D

	Device vulkan.Device
}

func LoadImage

func LoadImage(device vulkan.Device, allocator MemoryAllocator, j image.Image, text *sdl.Surface) (*Image, error)

func OpenImage

func OpenImage(device vulkan.Device, allocator MemoryAllocator, path string, text *sdl.Surface) (*Image, error)

func (*Image) Close

func (i *Image) Close()

type Memory

type Memory struct {
	Type   vulkan.MemoryType
	Memory vulkan.DeviceMemory
	Device vulkan.Device
	// contains filtered or unexported fields
}

func (*Memory) Map

func (m *Memory) Map(offset, size vulkan.DeviceSize, flags vulkan.MemoryMapFlags) (uintptr, error)

func (*Memory) Mapped

func (m *Memory) Mapped(offset, size vulkan.DeviceSize, flags vulkan.MemoryMapFlags, fn func(unsafe.Pointer)) error

func (*Memory) Unmap

func (m *Memory) Unmap() error

type MemoryAllocator

type MemoryAllocator interface {
	Allocate(requirements vulkan.MemoryRequirements) (uint32, vulkan.MemoryType, bool)
}

type Shader

type Shader struct {
	Handle vulkan.ShaderModule
	Flag   vulkan.ShaderStageFlagBits
	// contains filtered or unexported fields
}

func NewShader

func NewShader(device vulkan.Device, path string, flag vulkan.ShaderStageFlagBits) (*Shader, error)

func NewShaderFromReader

func NewShaderFromReader(device vulkan.Device, r io.Reader, flag vulkan.ShaderStageFlagBits) (*Shader, error)

func (Shader) Close

func (s Shader) Close()

func (Shader) Stage

type TransferBuffer

type TransferBuffer struct {
	HandleHost   vulkan.Buffer
	HandleDevice vulkan.Buffer
	MemoryHost   Memory
	MemoryDevice Memory
	Device       vulkan.Device
	// contains filtered or unexported fields
}

func NewTransferBuffer

func NewTransferBuffer(device vulkan.Device, allocatorFrom, allocatorTo MemoryAllocator, fromFamily, toFamily uint32, usage vulkan.BufferUsageFlags, data any) (*TransferBuffer, error)

func (*TransferBuffer) Buffer

func (b *TransferBuffer) Buffer() vulkan.Buffer

func (*TransferBuffer) Close

func (b *TransferBuffer) Close()

func (*TransferBuffer) Transfer

func (b *TransferBuffer) Transfer(queue vulkan.Queue, semaphore vulkan.Semaphore, stageMask vulkan.PipelineStageFlags2, fence vulkan.Fence) error

func (*TransferBuffer) TransferCommandBuffers

func (b *TransferBuffer) TransferCommandBuffers(count uint32) ([]vulkan.CommandBuffer, error)

func (*TransferBuffer) TransferCommands

func (b *TransferBuffer) TransferCommands(commandBuffer vulkan.CommandBuffer) error

func (*TransferBuffer) TransferSubmit

func (b *TransferBuffer) TransferSubmit(queue vulkan.Queue, commandBuffers []vulkan.CommandBuffer, semaphore vulkan.Semaphore, stageMask vulkan.PipelineStageFlags2, fence vulkan.Fence) error

type Transferer

type Transferer interface {
	Transfer(queue vulkan.Queue, semaphore vulkan.Semaphore, stageMask vulkan.PipelineStageFlags2, fence vulkan.Fence) error
	TransferCommandBuffers(count uint32) ([]vulkan.CommandBuffer, error)
	TransferCommands(commandBuffer vulkan.CommandBuffer) error
	TransferSubmit(queue vulkan.Queue, commandBuffers []vulkan.CommandBuffer, semaphore vulkan.Semaphore, stageMask vulkan.PipelineStageFlags2, fence vulkan.Fence) error
}

Jump to

Keyboard shortcuts

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