khr_descriptor_update_template

package
v2.2.0 Latest Latest
Warning

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

Go to latest
Published: Apr 27, 2023 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// ExtensionName is "VK_KHR_descriptor_update_template"
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_descriptor_update_template.html
	ExtensionName string = C.VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME

	// DescriptorUpdateTemplateTypeDescriptorSet indicates the valid usage of the DescriptorUpdateTemplate
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorUpdateTemplateType.html
	DescriptorUpdateTemplateTypeDescriptorSet DescriptorUpdateTemplateType = C.VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR

	// ObjectTypeDescriptorUpdateTemplate specifies a DescriptorUpdateTemplate handle
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkObjectType.html
	ObjectTypeDescriptorUpdateTemplate core1_0.ObjectType = C.VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR
)

Variables

This section is empty.

Functions

This section is empty.

Types

type DescriptorUpdateTemplate

type DescriptorUpdateTemplate interface {
	// DeviceHandle is the internal Vulkan object handle for the Device this DescriptorUpdateTemplate belongs to
	DeviceHandle() driver.VkDevice
	// Driver is the Vulkan wrapper driver used by this DescriptorUpdateTemplate
	Driver() driver.Driver
	// Handle is the internal Vulkan object handle for this DescriptorUpdateTemplate
	Handle() khr_descriptor_update_template_driver.VkDescriptorUpdateTemplateKHR
	// APIVersion is the maximum Vulkan API version supported by this DescriptorUpdateTemplate. If it is at least
	// Vulkan 1.2, core1_2.PromoteDescriptorUpdateTemplate can be used to promote this to a core1_2.DescriptorUpdateTemplate,
	// etc.
	APIVersion() common.APIVersion
	// Destroy destroys the DescriptorUpdateTemplate object and the underlying structures. **Warning** after
	// destruction, this object will continue to exist, but the Vulkan object handle that backs it will
	// be invalid. Do not call further methods on this object.
	//
	// callbacks - Controls host memory deallocation
	//
	// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkDestroyDescriptorUpdateTemplate.html
	Destroy(allocator *driver.AllocationCallbacks)

	// UpdateDescriptorSetFromImage updates the contents of a DescriptorSet object with this template and
	// an Image
	//
	// descriptorSet - The DescriptorSet to update
	//
	// data - Information and an Image used to write the descriptor
	//
	// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkUpdateDescriptorSetWithTemplateKHR.html
	UpdateDescriptorSetFromImage(descriptorSet core1_0.DescriptorSet, data core1_0.DescriptorImageInfo)
	// UpdateDescriptorSetFromBuffer updates the contents of a DescriptorSet object with this template
	// and a Buffer
	//
	// descriptorSet - The DescriptorSet to update
	//
	// data - Information and a Buffer used to write the descriptor
	//
	// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkUpdateDescriptorSetWithTemplateKHR.html
	UpdateDescriptorSetFromBuffer(descriptorSet core1_0.DescriptorSet, data core1_0.DescriptorBufferInfo)
	// UpdateDescriptorSetFromObjectHandle updates the contents of a DescriptorSet object with this template
	// and an arbitrary handle
	//
	// descriptorSet - The DescriptorSet to update
	//
	// data - A Vulkan object handle used to write the descriptor. Can be a BufferView handle or
	// perhaps an acceleration structure.
	//
	// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkUpdateDescriptorSetWithTemplateKHR.html
	UpdateDescriptorSetFromObjectHandle(descriptorSet core1_0.DescriptorSet, data driver.VulkanHandle)
}

DescriptorUpdateTemplate specifies a mapping from descriptor update information in host memory to descriptors in a DescriptorSet

https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDescriptorUpdateTemplate.html

type DescriptorUpdateTemplateCreateFlags

type DescriptorUpdateTemplateCreateFlags int32

DescriptorUpdateTemplateCreateFlags is reserved for future use

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorUpdateTemplateCreateFlags.html

func (DescriptorUpdateTemplateCreateFlags) Register

func (DescriptorUpdateTemplateCreateFlags) String

type DescriptorUpdateTemplateCreateInfo

type DescriptorUpdateTemplateCreateInfo struct {
	// Flags is reserved for future use
	Flags DescriptorUpdateTemplateCreateFlags
	// DescriptorUpdateEntries is a slice of DescriptorUpdateTemplateEntry structures describing
	// the descriptors to be updated by the DescriptorUpdateTEmplate
	DescriptorUpdateEntries []DescriptorUpdateTemplateEntry
	// TemplateType specifies the type of the DescriptorUpdateTemplate
	TemplateType DescriptorUpdateTemplateType

	// DescriptorSetLayout is the DescriptorSetLayout used to build the DescriptorUpdateTemplate
	DescriptorSetLayout core1_0.DescriptorSetLayout

	// PipelineBindPoint indicates the type of the Pipeline that will use the descriptors
	PipelineBindPoint core1_0.PipelineBindPoint
	// PipelineLayout is a PipelineLayout object used to program the bindings
	PipelineLayout core1_0.PipelineLayout
	// Set is the set number of the DescriptorSet in the PipelineLayout that will be updated
	Set int

	common.NextOptions
}

DescriptorUpdateTemplateCreateInfo specifies parameters of a newly-created Descriptor Update Template

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorUpdateTemplateCreateInfo.html

func (DescriptorUpdateTemplateCreateInfo) PopulateCPointer

func (o DescriptorUpdateTemplateCreateInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type DescriptorUpdateTemplateEntry

type DescriptorUpdateTemplateEntry struct {
	// DstBinding is the descriptor binding to update when using this DescriptorUpdateTemplate
	DstBinding int
	// DstArrayElement is the starting element in the array belonging to DstBinding
	DstArrayElement int
	// DescriptorCount is the number of descriptors to update
	DescriptorCount int

	// DescriptorType specifies the type of the descriptor
	DescriptorType core1_0.DescriptorType

	// Offset is the offset in bytes of the first binding in the raw data structure
	Offset int
	// Stride is the stride in bytes between two consecutive array elements of the
	// descriptor update informations in the raw data structure
	Stride int
}

DescriptorUpdateTemplateEntry describes a single descriptor update of the DescriptorUpdateTemplate

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorUpdateTemplateEntry.html

func (DescriptorUpdateTemplateEntry) PopulateCPointer

func (e DescriptorUpdateTemplateEntry) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer) (unsafe.Pointer, error)

type DescriptorUpdateTemplateType

type DescriptorUpdateTemplateType int32

DescriptorUpdateTemplateType indicates the valid usage of the DescriptorUpdateTemplate

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorUpdateTemplateType.html

func (DescriptorUpdateTemplateType) Register

func (e DescriptorUpdateTemplateType) Register(str string)

func (DescriptorUpdateTemplateType) String

type Extension

type Extension interface {
	// CreateDescriptorUpdateTemplate creates a new DescriptorUpdateTemplate
	//
	// device - The Device to create DescriptorUpdateTemplate from
	//
	// o - Specifies the set of descriptors to update with a single call to DescriptorUpdateTemplate.UpdateDescriptorSet...
	//
	// allocator - Controls host allocation behavior
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCreateDescriptorUpdateTemplate.html
	CreateDescriptorUpdateTemplate(device core1_0.Device, o DescriptorUpdateTemplateCreateInfo, allocator *driver.AllocationCallbacks) (DescriptorUpdateTemplate, common.VkResult, error)
}

type VulkanDescriptorUpdateTemplate

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

VulkanDescriptorUpdateTemplate is an implementation of the DescriptorUpdateTemplate interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.

func (*VulkanDescriptorUpdateTemplate) APIVersion added in v2.1.0

func (*VulkanDescriptorUpdateTemplate) Destroy

func (*VulkanDescriptorUpdateTemplate) DeviceHandle added in v2.1.0

func (*VulkanDescriptorUpdateTemplate) Driver added in v2.1.0

func (*VulkanDescriptorUpdateTemplate) UpdateDescriptorSetFromBuffer

func (t *VulkanDescriptorUpdateTemplate) UpdateDescriptorSetFromBuffer(descriptorSet core1_0.DescriptorSet, data core1_0.DescriptorBufferInfo)

func (*VulkanDescriptorUpdateTemplate) UpdateDescriptorSetFromImage

func (t *VulkanDescriptorUpdateTemplate) UpdateDescriptorSetFromImage(descriptorSet core1_0.DescriptorSet, data core1_0.DescriptorImageInfo)

func (*VulkanDescriptorUpdateTemplate) UpdateDescriptorSetFromObjectHandle

func (t *VulkanDescriptorUpdateTemplate) UpdateDescriptorSetFromObjectHandle(descriptorSet core1_0.DescriptorSet, data driver.VulkanHandle)

type VulkanExtension

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

VulkanExtension is an implementation of the Extension interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.

func CreateExtensionFromDevice

func CreateExtensionFromDevice(device core1_0.Device) *VulkanExtension

CreateExtensionFromDevice produces an Extension object from a Device with khr_descriptor_update_template loaded

func CreateExtensionFromDriver

func CreateExtensionFromDriver(driver khr_descriptor_update_template_driver.Driver) *VulkanExtension

CreateExtensionFromDriver generates an Extension from a driver.Driver object- this is usually used in tests to build an Extension from mock drivers

Directories

Path Synopsis
Package mock_descriptor_update_template is a generated GoMock package.
Package mock_descriptor_update_template is a generated GoMock package.

Jump to

Keyboard shortcuts

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