LiteFX 0.3.1.2022
Computer Graphics Engine
LiteFX::Rendering::Backends::VulkanPipelineLayout Class Reference

Implements a Vulkan PipelineLayout. More...

#include <vulkan.hpp>

Inherits LiteFX::Rendering::PipelineLayout< VulkanDescriptorSetLayout, VulkanPushConstantsLayout >, and LiteFX::Resource< VkPipelineLayout >.

Classes

class  VulkanPipelineLayoutImpl
 

Public Member Functions

 VulkanPipelineLayout (const VulkanDevice &device, Array< UniquePtr< VulkanDescriptorSetLayout > > &&descriptorSetLayouts, UniquePtr< VulkanPushConstantsLayout > &&pushConstantsLayout)
 Initializes a new Vulkan render pipeline layout. More...
 
 VulkanPipelineLayout (VulkanPipelineLayout &&) noexcept=delete
 
 VulkanPipelineLayout (const VulkanPipelineLayout &) noexcept=delete
 
virtual ~VulkanPipelineLayout () noexcept
 
virtual const VulkanDevicedevice () const noexcept
 Returns a reference to the device that provides this layout. More...
 
virtual const VulkanDescriptorSetLayoutdescriptorSet (const UInt32 &space) const override
 Returns the descriptor set layout for the descriptor set that is bound to the space provided by space . More...
 
virtual Array< const VulkanDescriptorSetLayout * > descriptorSets () const noexcept override
 
virtual const VulkanPushConstantsLayoutpushConstants () const noexcept override
 Returns the push constants layout, or nullptr, if the pipeline does not use any push constants. More...
 
- Public Member Functions inherited from LiteFX::Rendering::PipelineLayout< VulkanDescriptorSetLayout, VulkanPushConstantsLayout >
virtual ~PipelineLayout () noexcept=default
 
virtual const descriptor_set_layout_typedescriptorSet (const UInt32 &space) const=0
 Returns the descriptor set layout for the descriptor set that is bound to the space provided by space . More...
 
virtual Array< const descriptor_set_layout_type * > descriptorSets () const noexcept=0
 
virtual const push_constants_layout_typepushConstants () const noexcept=0
 Returns the push constants layout, or nullptr, if the pipeline does not use any push constants. More...
 
- Public Member Functions inherited from LiteFX::Rendering::IPipelineLayout
virtual ~IPipelineLayout () noexcept=default
 
virtual const IDescriptorSetLayoutdescriptorSet (const UInt32 &space) const =0
 Returns the descriptor set layout for the descriptor set that is bound to the space provided by space . More...
 
Array< const IDescriptorSetLayout * > descriptorSets () const noexcept
 Returns all descriptor set layouts, the pipeline has been initialized with. More...
 
virtual const IPushConstantsLayoutpushConstants () const noexcept=0
 Returns the push constants layout, or nullptr, if the pipeline does not use any push constants. More...
 
- Public Member Functions inherited from LiteFX::Resource< VkPipelineLayout >
 Resource (const Resource &)=delete
 
 Resource (Resource &&)=delete
 
virtual ~Resource () noexcept=default
 
const VkPipelineLayout & handle () const noexcept override
 Returns the resource managed by the class. More...
 
- Public Member Functions inherited from LiteFX::IResource< VkPipelineLayout >
virtual ~IResource () noexcept=default
 
virtual const VkPipelineLayout & handle () const noexcept=0
 Returns the resource managed by the class. More...
 

Additional Inherited Members

- Public Types inherited from LiteFX::Rendering::PipelineLayout< VulkanDescriptorSetLayout, VulkanPushConstantsLayout >
using descriptor_set_layout_type = VulkanDescriptorSetLayout
 
using push_constants_layout_type = VulkanPushConstantsLayout
 
- Protected Member Functions inherited from LiteFX::Resource< VkPipelineLayout >
 Resource (const VkPipelineLayout handle) noexcept
 Initializes the managed resource. More...
 
VkPipelineLayout & handle () noexcept override
 Returns the resource managed by the class. More...
 
virtual VkPipelineLayout & handle () noexcept=0
 Returns the resource managed by the class. More...
 

Detailed Description

Implements a Vulkan PipelineLayout.

See also
VulkanPipelineLayoutBuilder

Constructor & Destructor Documentation

◆ VulkanPipelineLayout() [1/3]

VulkanPipelineLayout::VulkanPipelineLayout ( const VulkanDevice device,
Array< UniquePtr< VulkanDescriptorSetLayout > > &&  descriptorSetLayouts,
UniquePtr< VulkanPushConstantsLayout > &&  pushConstantsLayout 
)
explicit

Initializes a new Vulkan render pipeline layout.

Parameters
deviceThe parent device, the layout is created from.
descriptorSetLayoutsThe descriptor set layouts used by the pipeline.
pushConstantsLayoutThe push constants layout used by the pipeline.

◆ VulkanPipelineLayout() [2/3]

LiteFX::Rendering::Backends::VulkanPipelineLayout::VulkanPipelineLayout ( VulkanPipelineLayout &&  )
deletenoexcept

◆ VulkanPipelineLayout() [3/3]

LiteFX::Rendering::Backends::VulkanPipelineLayout::VulkanPipelineLayout ( const VulkanPipelineLayout )
deletenoexcept

◆ ~VulkanPipelineLayout()

VulkanPipelineLayout::~VulkanPipelineLayout ( )
virtualnoexcept

Member Function Documentation

◆ descriptorSet()

const VulkanDescriptorSetLayout & VulkanPipelineLayout::descriptorSet ( const UInt32 space) const
overridevirtual

Returns the descriptor set layout for the descriptor set that is bound to the space provided by space .

Implements LiteFX::Rendering::PipelineLayout< VulkanDescriptorSetLayout, VulkanPushConstantsLayout >.

◆ descriptorSets()

Array< const VulkanDescriptorSetLayout * > VulkanPipelineLayout::descriptorSets ( ) const
overridevirtualnoexcept

◆ device()

const VulkanDevice & VulkanPipelineLayout::device ( ) const
virtualnoexcept

Returns a reference to the device that provides this layout.

Returns
A reference to the layouts parent device.

◆ pushConstants()

const VulkanPushConstantsLayout * VulkanPipelineLayout::pushConstants ( ) const
overridevirtualnoexcept

Returns the push constants layout, or nullptr, if the pipeline does not use any push constants.

Implements LiteFX::Rendering::PipelineLayout< VulkanDescriptorSetLayout, VulkanPushConstantsLayout >.