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

Implements the Vulkan input assembler state. More...

#include <vulkan.hpp>

Inherits LiteFX::Rendering::InputAssembler< VulkanVertexBufferLayout, VulkanIndexBufferLayout >.

Classes

class  VulkanInputAssemblerImpl
 

Public Member Functions

 VulkanInputAssembler (Array< UniquePtr< VulkanVertexBufferLayout > > &&vertexBufferLayouts, UniquePtr< VulkanIndexBufferLayout > &&indexBufferLayout, const PrimitiveTopology &primitiveTopology=PrimitiveTopology::TriangleList)
 Initializes a new Vulkan input assembler state. More...
 
 VulkanInputAssembler (VulkanInputAssembler &&) noexcept=delete
 
 VulkanInputAssembler (const VulkanInputAssembler &) noexcept=delete
 
virtual ~VulkanInputAssembler () noexcept
 
virtual Array< const VulkanVertexBufferLayout * > vertexBufferLayouts () const noexcept override
 
virtual const VulkanVertexBufferLayoutvertexBufferLayout (const UInt32 &binding) const override
 Returns the vertex buffer layout for binding provided with binding . More...
 
virtual const VulkanIndexBufferLayoutindexBufferLayout () const override
 Returns the index buffer layout. More...
 
virtual const PrimitiveTopology & topology () const noexcept override
 Returns the primitive topology. More...
 
- Public Member Functions inherited from LiteFX::Rendering::InputAssembler< VulkanVertexBufferLayout, VulkanIndexBufferLayout >
virtual ~InputAssembler () noexcept=default
 
virtual Array< const vertex_buffer_layout_type * > vertexBufferLayouts () const noexcept=0
 
virtual const vertex_buffer_layout_typevertexBufferLayout (const UInt32 &binding) const=0
 Returns the vertex buffer layout for binding provided with binding . More...
 
virtual const index_buffer_layout_typeindexBufferLayout () const=0
 Returns the index buffer layout. More...
 
- Public Member Functions inherited from LiteFX::Rendering::IInputAssembler
virtual ~IInputAssembler () noexcept=default
 
Array< const IVertexBufferLayout * > vertexBufferLayouts () const noexcept
 Returns all vertex buffer layouts of the input assembly. More...
 
virtual const IVertexBufferLayoutvertexBufferLayout (const UInt32 &binding) const =0
 Returns the vertex buffer layout for binding provided with binding . More...
 
virtual const IIndexBufferLayoutindexBufferLayout () const =0
 Returns the index buffer layout. More...
 
virtual const PrimitiveTopology & topology () const noexcept=0
 Returns the primitive topology. More...
 

Additional Inherited Members

- Public Types inherited from LiteFX::Rendering::InputAssembler< VulkanVertexBufferLayout, VulkanIndexBufferLayout >
using vertex_buffer_layout_type = VulkanVertexBufferLayout
 
using index_buffer_layout_type = VulkanIndexBufferLayout
 

Detailed Description

Implements the Vulkan input assembler state.

See also
VulkanInputAssemblerBuilder

Constructor & Destructor Documentation

◆ VulkanInputAssembler() [1/3]

VulkanInputAssembler::VulkanInputAssembler ( Array< UniquePtr< VulkanVertexBufferLayout > > &&  vertexBufferLayouts,
UniquePtr< VulkanIndexBufferLayout > &&  indexBufferLayout,
const PrimitiveTopology &  primitiveTopology = PrimitiveTopology::TriangleList 
)
explicit

Initializes a new Vulkan input assembler state.

Parameters
vertexBufferLayoutsThe vertex buffer layouts supported by the input assembler state. Each layout must have a unique binding.
indexBufferLayoutThe index buffer layout.
primitiveTopologyThe primitive topology.

◆ VulkanInputAssembler() [2/3]

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

◆ VulkanInputAssembler() [3/3]

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

◆ ~VulkanInputAssembler()

VulkanInputAssembler::~VulkanInputAssembler ( )
virtualdefaultnoexcept

Member Function Documentation

◆ indexBufferLayout()

const VulkanIndexBufferLayout & VulkanInputAssembler::indexBufferLayout ( ) const
overridevirtual

◆ topology()

const PrimitiveTopology & VulkanInputAssembler::topology ( ) const
overridevirtualnoexcept

Returns the primitive topology.

Implements LiteFX::Rendering::IInputAssembler.

◆ vertexBufferLayout()

const VulkanVertexBufferLayout & VulkanInputAssembler::vertexBufferLayout ( const UInt32 binding) const
overridevirtual

Returns the vertex buffer layout for binding provided with binding .

Implements LiteFX::Rendering::InputAssembler< VulkanVertexBufferLayout, VulkanIndexBufferLayout >.

◆ vertexBufferLayouts()

Array< const VulkanVertexBufferLayout * > VulkanInputAssembler::vertexBufferLayouts ( ) const
overridevirtualnoexcept