LiteFX 0.3.1.2022
Computer Graphics Engine
LiteFX::Rendering::InputAssembler< TVertexBufferLayout, TIndexBufferLayout > Class Template Referenceabstract

Represents a the input assembler state of a RenderPipeline. More...

#include <rendering.hpp>

Inherits LiteFX::Rendering::IInputAssembler.

Public Types

using vertex_buffer_layout_type = TVertexBufferLayout
 
using index_buffer_layout_type = TIndexBufferLayout
 

Public Member Functions

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...
 

Detailed Description

template<typename TVertexBufferLayout, typename TIndexBufferLayout>
requires rtti::implements<TVertexBufferLayout, IVertexBufferLayout> && rtti::implements<TIndexBufferLayout, IIndexBufferLayout>
class LiteFX::Rendering::InputAssembler< TVertexBufferLayout, TIndexBufferLayout >

Represents a the input assembler state of a RenderPipeline.

Template Parameters
TVertexBufferLayoutThe type of the vertex buffer layout. Must implement IVertexBufferLayout.
TIndexBufferLayoutThe type of the index buffer layout. Must implement IIndexBufferLayout.

Member Typedef Documentation

◆ index_buffer_layout_type

template<typename TVertexBufferLayout , typename TIndexBufferLayout >
using LiteFX::Rendering::InputAssembler< TVertexBufferLayout, TIndexBufferLayout >::index_buffer_layout_type = TIndexBufferLayout

◆ vertex_buffer_layout_type

template<typename TVertexBufferLayout , typename TIndexBufferLayout >
using LiteFX::Rendering::InputAssembler< TVertexBufferLayout, TIndexBufferLayout >::vertex_buffer_layout_type = TVertexBufferLayout

Constructor & Destructor Documentation

◆ ~InputAssembler()

template<typename TVertexBufferLayout , typename TIndexBufferLayout >
virtual LiteFX::Rendering::InputAssembler< TVertexBufferLayout, TIndexBufferLayout >::~InputAssembler ( )
virtualdefaultnoexcept

Member Function Documentation

◆ indexBufferLayout()

template<typename TVertexBufferLayout , typename TIndexBufferLayout >
virtual const index_buffer_layout_type & LiteFX::Rendering::InputAssembler< TVertexBufferLayout, TIndexBufferLayout >::indexBufferLayout ( ) const
pure virtual

◆ vertexBufferLayout()

template<typename TVertexBufferLayout , typename TIndexBufferLayout >
virtual const vertex_buffer_layout_type & LiteFX::Rendering::InputAssembler< TVertexBufferLayout, TIndexBufferLayout >::vertexBufferLayout ( const UInt32 binding) const
pure virtual

Returns the vertex buffer layout for binding provided with binding .

Implements LiteFX::Rendering::IInputAssembler.

Implemented in LiteFX::Rendering::Backends::DirectX12InputAssembler, and LiteFX::Rendering::Backends::VulkanInputAssembler.

◆ vertexBufferLayouts()

template<typename TVertexBufferLayout , typename TIndexBufferLayout >
virtual Array< const vertex_buffer_layout_type * > LiteFX::Rendering::InputAssembler< TVertexBufferLayout, TIndexBufferLayout >::vertexBufferLayouts ( ) const
pure virtualnoexcept