Diligent Engine
 
Loading...
Searching...
No Matches
Diligent::PipelineStateBase< EngineImplTraits > Class Template Reference

Template class implementing base functionality of the pipeline state object. More...

#include <PipelineStateBase.hpp>

Inheritance diagram for Diligent::PipelineStateBase< EngineImplTraits >:
Diligent::DeviceObjectBase< EngineImplTraits::PipelineStateInterface, EngineImplTraits::RenderDeviceImplType, PipelineStateDesc > Diligent::ObjectBase< EngineImplTraits::PipelineStateInterface > Diligent::RefCountedObject< EngineImplTraits::PipelineStateInterface >

Public Member Functions

template<typename PSOCreateInfoType>
 PipelineStateBase (IReferenceCounters *pRefCounters, RenderDeviceImplType *pDevice, const PSOCreateInfoType &CreateInfo, bool bIsDeviceInternal=false)
 Initializes the object as a specific pipeline.
 
virtual Uint32 DILIGENT_CALL_TYPE GetResourceSignatureCount () const override final
 Implementation of IPipelineState::GetResourceSignatureCount().
 
virtual PipelineResourceSignatureImplType *DILIGENT_CALL_TYPE GetResourceSignature (Uint32 Index) const override final
 Implementation of IPipelineState::GetResourceSignature().
 
virtual bool DILIGENT_CALL_TYPE IsCompatibleWith (const IPipelineState *pPSO) const override
 Implementation of IPipelineState::IsCompatibleWith().
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< EngineImplTraits::PipelineStateInterface, EngineImplTraits::RenderDeviceImplType, PipelineStateDesc >
 DeviceObjectBase (IReferenceCounters *pRefCounters, RenderDeviceImplType *pDevice, const PipelineStateDesc &ObjDesc, bool bIsDeviceInternal=false)
 
virtual Int32 DILIGENT_CALL_TYPE GetUniqueID () const override final
 Returns unique identifier.
 
virtual void DILIGENT_CALL_TYPE SetUserData (IObject *pUserData) override final
 Implementation of IDeviceObject::SetUserData.
 
virtual IObject *DILIGENT_CALL_TYPE GetUserData () const override final
 Implementation of IDeviceObject::GetUserData.
 

Protected Types

using SignatureAutoPtrType = RefCntAutoPtr<PipelineResourceSignatureImplType>
 Resource signatures arranged by their binding indices.
 

Protected Attributes

SHADER_TYPE m_ActiveShaderStages = SHADER_TYPE_UNKNOWN
 Shader stages that are active in this PSO.
 
const bool m_UsingImplicitSignature
 True if the pipeline was created using implicit root signature.
 
Uint8 m_SignatureCount = 0
 
- Protected Attributes inherited from Diligent::DeviceObjectBase< EngineImplTraits::PipelineStateInterface, EngineImplTraits::RenderDeviceImplType, PipelineStateDesc >
RenderDeviceImplType *const m_pDevice
 Pointer to the device.
 
PipelineStateDesc m_Desc
 Object description.
 

Detailed Description

template<typename EngineImplTraits>
class Diligent::PipelineStateBase< EngineImplTraits >

Template class implementing base functionality of the pipeline state object.

Template Parameters
EngineImplTraits- Engine implementation type traits.

Constructor & Destructor Documentation

◆ PipelineStateBase()

template<typename EngineImplTraits>
template<typename PSOCreateInfoType>
Diligent::PipelineStateBase< EngineImplTraits >::PipelineStateBase ( IReferenceCounters * pRefCounters,
RenderDeviceImplType * pDevice,
const PSOCreateInfoType & CreateInfo,
bool bIsDeviceInternal = false )
inline

Initializes the object as a specific pipeline.

Template Parameters
PSOCreateInfoType- Pipeline state create info type (GraphicsPipelineStateCreateInfo, ComputePipelineStateCreateInfo, etc.)
Parameters
pRefCounters- Reference counters object that controls the lifetime of this PSO
pDevice- Pointer to the device.
CreateInfo- Pipeline state create info.
bIsDeviceInternal- Flag indicating if the pipeline state is an internal device object and must not keep a strong reference to the device.

Member Data Documentation

◆ m_SignatureCount

template<typename EngineImplTraits>
Uint8 Diligent::PipelineStateBase< EngineImplTraits >::m_SignatureCount = 0
protected

The number of signatures in m_Signatures array. Note that this is not necessarily the same as the number of signatures that were used to create the pipeline, because signatures are arranged by their binding index.