Documentation
¶
Index ¶
- Constants
- type DescriptorUpdateTemplate
- type DescriptorUpdateTemplateCreateFlags
- type DescriptorUpdateTemplateCreateInfo
- type DescriptorUpdateTemplateEntry
- type DescriptorUpdateTemplateType
- type Extension
- type VulkanDescriptorUpdateTemplate
- func (t *VulkanDescriptorUpdateTemplate) Destroy(allocator *driver.AllocationCallbacks)
- func (t *VulkanDescriptorUpdateTemplate) Handle() khr_descriptor_update_template_driver.VkDescriptorUpdateTemplateKHR
- func (t *VulkanDescriptorUpdateTemplate) UpdateDescriptorSetFromBuffer(descriptorSet core1_0.DescriptorSet, data core1_0.DescriptorBufferInfo)
- func (t *VulkanDescriptorUpdateTemplate) UpdateDescriptorSetFromImage(descriptorSet core1_0.DescriptorSet, data core1_0.DescriptorImageInfo)
- func (t *VulkanDescriptorUpdateTemplate) UpdateDescriptorSetFromObjectHandle(descriptorSet core1_0.DescriptorSet, data driver.VulkanHandle)
- type VulkanExtension
Constants ¶
const ( // ExtensionName is "VK_KHR_descriptor_update_template" 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 {
// Handle is the internal Vulkan object handle for this DescriptorUpdateTemplate
Handle() khr_descriptor_update_template_driver.VkDescriptorUpdateTemplateKHR
// 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
type DescriptorUpdateTemplateCreateFlags ¶ added in v0.2.0
type DescriptorUpdateTemplateCreateFlags int32
DescriptorUpdateTemplateCreateFlags is reserved for future use
func (DescriptorUpdateTemplateCreateFlags) Register ¶ added in v0.2.0
func (f DescriptorUpdateTemplateCreateFlags) Register(str string)
func (DescriptorUpdateTemplateCreateFlags) String ¶ added in v0.2.0
func (f DescriptorUpdateTemplateCreateFlags) String() 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
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
func (DescriptorUpdateTemplateEntry) PopulateCPointer ¶
type DescriptorUpdateTemplateType ¶
type DescriptorUpdateTemplateType int32
DescriptorUpdateTemplateType indicates the valid usage of the DescriptorUpdateTemplate
func (DescriptorUpdateTemplateType) Register ¶
func (e DescriptorUpdateTemplateType) Register(str string)
func (DescriptorUpdateTemplateType) String ¶
func (e DescriptorUpdateTemplateType) String() 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, driver.VkResult, error)
}
type VulkanDescriptorUpdateTemplate ¶ added in v0.2.0
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) Destroy ¶ added in v0.2.0
func (t *VulkanDescriptorUpdateTemplate) Destroy(allocator *driver.AllocationCallbacks)
func (*VulkanDescriptorUpdateTemplate) UpdateDescriptorSetFromBuffer ¶ added in v0.2.0
func (t *VulkanDescriptorUpdateTemplate) UpdateDescriptorSetFromBuffer(descriptorSet core1_0.DescriptorSet, data core1_0.DescriptorBufferInfo)
func (*VulkanDescriptorUpdateTemplate) UpdateDescriptorSetFromImage ¶ added in v0.2.0
func (t *VulkanDescriptorUpdateTemplate) UpdateDescriptorSetFromImage(descriptorSet core1_0.DescriptorSet, data core1_0.DescriptorImageInfo)
func (*VulkanDescriptorUpdateTemplate) UpdateDescriptorSetFromObjectHandle ¶ added in v0.2.0
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
func (*VulkanExtension) CreateDescriptorUpdateTemplate ¶
func (e *VulkanExtension) CreateDescriptorUpdateTemplate(device core1_0.Device, o DescriptorUpdateTemplateCreateInfo, allocator *driver.AllocationCallbacks) (DescriptorUpdateTemplate, common.VkResult, error)