vOOlkan
An object oriented approach to Vulkan
Vulkan::Set Class Reference

A Set is a set of bindings which can be read by the shader. More...

#include <Set.h>

Classes

struct  BindingInfo
 A struct containing all of the information of a specific binding. This class must be the base of other classes. More...
 

Public Member Functions

const VkDescriptorSetLayout & operator+ () const
 Returns the underlying VkDescriptorSetLayout object. More...
 
int getAmountOfBindings () const
 Returns the number of bindings in this set. More...
 
const std::vector< std::unique_ptr< BindingInfo > > & getBindingsInfo () const
 Returns the size, offset and buffer of each binding in this set. More...
 
const BindingInfogetBindingInfo (int i) const
 Returns the size, offset and buffer of the binding number i of this set. More...
 

Protected Member Functions

 Set (const LogicalDevice &virtualGpu)
 
 Set (const Set &)=delete
 
Setoperator= (const Set &)=delete
 
 Set (Set &&)=delete
 
Setoperator= (Set &&)=delete
 
 ~Set ()
 
template<std::same_as< std::pair< VkShaderStageFlagBits, VkDescriptorType > >... ShaderStages>
void createDescriptorSetLayout (ShaderStages... shaderStages)
 

Protected Attributes

VkDescriptorSetLayout descriptorSetLayout
 
std::vector< std::unique_ptr< BindingInfo > > bindingsInfo
 
const LogicalDevicevirtualGpu
 

Detailed Description

A Set is a set of bindings which can be read by the shader.

A Set keeps all the information about its bindings, such as their size, their buffer and the offset in such buffer. This way it is possible to instantiate a DescriptorSet starting from a Set only.

Constructor & Destructor Documentation

◆ Set() [1/3]

Vulkan::Set::Set ( const LogicalDevice virtualGpu)
inlineprotected

◆ Set() [2/3]

Vulkan::Set::Set ( const Set )
protecteddelete

◆ Set() [3/3]

Vulkan::Set::Set ( Set &&  )
protecteddelete

◆ ~Set()

Vulkan::Set::~Set ( )
inlineprotected

Member Function Documentation

◆ createDescriptorSetLayout()

template<std::same_as< std::pair< VkShaderStageFlagBits, VkDescriptorType > >... ShaderStages>
void Vulkan::Set::createDescriptorSetLayout ( ShaderStages...  shaderStages)
inlineprotected

◆ getAmountOfBindings()

int Vulkan::Set::getAmountOfBindings ( ) const
inline

Returns the number of bindings in this set.

Returns
The number of bindings in this set..

◆ getBindingInfo()

const BindingInfo & Vulkan::Set::getBindingInfo ( int  i) const
inline

Returns the size, offset and buffer of the binding number i of this set.

◆ getBindingsInfo()

const std::vector< std::unique_ptr< BindingInfo > > & Vulkan::Set::getBindingsInfo ( ) const
inline

Returns the size, offset and buffer of each binding in this set.

◆ operator+()

const VkDescriptorSetLayout & Vulkan::Set::operator+ ( ) const
inline

Returns the underlying VkDescriptorSetLayout object.

Returns
The underlying VkDescriptorSetLayout object.

◆ operator=() [1/2]

Set & Vulkan::Set::operator= ( const Set )
protecteddelete

◆ operator=() [2/2]

Set & Vulkan::Set::operator= ( Set &&  )
protecteddelete

Member Data Documentation

◆ bindingsInfo

std::vector<std::unique_ptr<BindingInfo> > Vulkan::Set::bindingsInfo
protected

◆ descriptorSetLayout

VkDescriptorSetLayout Vulkan::Set::descriptorSetLayout
protected

◆ virtualGpu

const LogicalDevice& Vulkan::Set::virtualGpu
protected

The documentation for this class was generated from the following file: