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

The interface for a push constants layout. More...

#include <rendering_api.hpp>

Inherited by LiteFX::Rendering::PushConstantsLayout< DirectX12PushConstantsRange >, LiteFX::Rendering::PushConstantsLayout< VulkanPushConstantsRange >, and LiteFX::Rendering::PushConstantsLayout< TPushConstantsRange >.

Public Member Functions

virtual ~IPushConstantsLayout () noexcept=default
 
virtual UInt32 size () const noexcept=0
 Returns the size (in bytes) of the push constants backing memory.
 
virtual const IPushConstantsRangerange (ShaderStage stage) const =0
 Returns the push constant range associated with the shader stage provided in stage .
 
Enumerable< const IPushConstantsRange & > ranges () const
 Returns all push constant ranges.
 

Protected Member Functions

 IPushConstantsLayout () noexcept=default
 
 IPushConstantsLayout (const IPushConstantsLayout &)=default
 
 IPushConstantsLayout (IPushConstantsLayout &&) noexcept=default
 
IPushConstantsLayoutoperator= (const IPushConstantsLayout &)=default
 
IPushConstantsLayoutoperator= (IPushConstantsLayout &&) noexcept=default
 

Detailed Description

The interface for a push constants layout.

Constructor & Destructor Documentation

◆ IPushConstantsLayout() [1/3]

LiteFX::Rendering::IPushConstantsLayout::IPushConstantsLayout ( )
protecteddefaultnoexcept

◆ IPushConstantsLayout() [2/3]

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

◆ IPushConstantsLayout() [3/3]

LiteFX::Rendering::IPushConstantsLayout::IPushConstantsLayout ( IPushConstantsLayout && )
protecteddefaultnoexcept

◆ ~IPushConstantsLayout()

virtual LiteFX::Rendering::IPushConstantsLayout::~IPushConstantsLayout ( )
virtualdefaultnoexcept

Member Function Documentation

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

◆ range()

virtual const IPushConstantsRange & LiteFX::Rendering::IPushConstantsLayout::range ( ShaderStage stage) const
pure virtual

Returns the push constant range associated with the shader stage provided in stage .

Parameters
stageThe shader stage to request the associated push constant range for. Specifying multiple stages is not supported and will raise an exception.
Returns
The push constant range associated with the provided shader stage.
Exceptions
ArgumentOutOfRangeExceptionThrown, if no range is mapped to the provided shader stage.
InvalidArgumentExceptionThrown, if stage contains multiple shader stages.
See also
ranges

Implemented in LiteFX::Rendering::Backends::DirectX12PushConstantsLayout, and LiteFX::Rendering::Backends::VulkanPushConstantsLayout.

◆ ranges()

Enumerable< const IPushConstantsRange & > LiteFX::Rendering::IPushConstantsLayout::ranges ( ) const
inline

Returns all push constant ranges.

Returns
All push constant ranges.
See also
range

◆ size()

virtual UInt32 LiteFX::Rendering::IPushConstantsLayout::size ( ) const
pure virtualnoexcept

Returns the size (in bytes) of the push constants backing memory.

Returns
The size (in bytes) of the push constants backing memory.

Implemented in LiteFX::Rendering::Backends::DirectX12PushConstantsLayout, and LiteFX::Rendering::Backends::VulkanPushConstantsLayout.