LiteFX 0.4.1.2025
Computer Graphics Engine
Loading...
Searching...
No Matches
LiteFX::Rendering::IInputAssembler Class Referenceabstract

The interface for an input assembler state. More...

#include <rendering_api.hpp>

Inherits LiteFX::SharedObject.

Inherited by LiteFX::Rendering::InputAssembler< DirectX12VertexBufferLayout, DirectX12IndexBufferLayout >, LiteFX::Rendering::InputAssembler< VulkanVertexBufferLayout, VulkanIndexBufferLayout >, and LiteFX::Rendering::InputAssembler< TVertexBufferLayout, TIndexBufferLayout >.

Public Member Functions

 ~IInputAssembler () noexcept override=default
 
Enumerable< const IVertexBufferLayout & > vertexBufferLayouts () const
 Returns all vertex buffer layouts of the input assembly.
 
virtual const IVertexBufferLayoutvertexBufferLayout (UInt32 binding) const =0
 Returns a pointer the vertex buffer layout for binding provided with binding .
 
virtual const IIndexBufferLayoutindexBufferLayout () const noexcept=0
 Returns a pointer to the index buffer layout, or nullptr if the input assembler does not handle indices.
 
virtual PrimitiveTopology topology () const noexcept=0
 Returns the primitive topology.
 
- Public Member Functions inherited from LiteFX::SharedObject
virtual ~SharedObject () noexcept=default
 Destroys the shared object.
 
template<typename TSelf >
auto shared_from_this (this TSelf &&self) noexcept
 Returns a shared pointer to the current object instance.
 
template<typename TSelf >
auto weak_from_this (this TSelf &&self) noexcept -> WeakPtr< std::remove_reference_t< TSelf > >
 Returns a weak pointer to the current object instance.
 

Protected Member Functions

 IInputAssembler () noexcept=default
 
 IInputAssembler (const IInputAssembler &)=default
 
 IInputAssembler (IInputAssembler &&) noexcept=default
 
IInputAssembleroperator= (const IInputAssembler &)=default
 
IInputAssembleroperator= (IInputAssembler &&) noexcept=default
 
- Protected Member Functions inherited from LiteFX::SharedObject
 SharedObject () noexcept=default
 Initializes a new shared object.
 
 SharedObject (SharedObject &&) noexcept=default
 
 SharedObject (const SharedObject &)=default
 
SharedObjectoperator= (SharedObject &&) noexcept=default
 
SharedObjectoperator= (const SharedObject &)=default
 

Additional Inherited Members

- Static Protected Member Functions inherited from LiteFX::SharedObject
template<typename T , typename... TArgs>
static auto create (TArgs &&... args) -> SharedPtr< T >
 Generic factory method used to create instances of the shared object.
 

Detailed Description

The interface for an input assembler state.

Constructor & Destructor Documentation

◆ IInputAssembler() [1/3]

LiteFX::Rendering::IInputAssembler::IInputAssembler ( )
protecteddefaultnoexcept

◆ IInputAssembler() [2/3]

LiteFX::Rendering::IInputAssembler::IInputAssembler ( const IInputAssembler & )
protecteddefault

◆ IInputAssembler() [3/3]

LiteFX::Rendering::IInputAssembler::IInputAssembler ( IInputAssembler && )
protecteddefaultnoexcept

◆ ~IInputAssembler()

LiteFX::Rendering::IInputAssembler::~IInputAssembler ( )
overridedefaultnoexcept

Member Function Documentation

◆ indexBufferLayout()

virtual const IIndexBufferLayout * LiteFX::Rendering::IInputAssembler::indexBufferLayout ( ) const
pure virtualnoexcept

◆ operator=() [1/2]

IInputAssembler & LiteFX::Rendering::IInputAssembler::operator= ( const IInputAssembler & )
protecteddefault

◆ operator=() [2/2]

IInputAssembler & LiteFX::Rendering::IInputAssembler::operator= ( IInputAssembler && )
protecteddefaultnoexcept

◆ topology()

virtual PrimitiveTopology LiteFX::Rendering::IInputAssembler::topology ( ) const
pure virtualnoexcept

Returns the primitive topology.

Returns
The primitive topology.

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

◆ vertexBufferLayout()

virtual const IVertexBufferLayout & LiteFX::Rendering::IInputAssembler::vertexBufferLayout ( UInt32 binding) const
pure virtual

Returns a pointer the vertex buffer layout for binding provided with binding .

Parameters
bindingThe binding point of the vertex buffer layout.
Returns
The vertex buffer layout for binding provided with binding .
Exceptions
ArgumentOutOfRangeExceptionThrown, if no vertex buffer layout is bound to binding .

Implemented in LiteFX::Rendering::Backends::DirectX12InputAssembler, LiteFX::Rendering::Backends::VulkanInputAssembler, LiteFX::Rendering::InputAssembler< TVertexBufferLayout, TIndexBufferLayout >, LiteFX::Rendering::InputAssembler< DirectX12VertexBufferLayout, DirectX12IndexBufferLayout >, and LiteFX::Rendering::InputAssembler< VulkanVertexBufferLayout, VulkanIndexBufferLayout >.

◆ vertexBufferLayouts()

Enumerable< const IVertexBufferLayout & > LiteFX::Rendering::IInputAssembler::vertexBufferLayouts ( ) const
inline

Returns all vertex buffer layouts of the input assembly.

Returns
All vertex buffer layouts of the input assembly.