Diligent Engine API Reference
Public Member Functions | Protected Attributes | List of all members
Diligent::ShaderResourceBindingBase< BaseInterface > Class Template Reference

Template class implementing base functionality for a shader resource binding. More...

Inheritance diagram for Diligent::ShaderResourceBindingBase< BaseInterface >:
Diligent::ObjectBase< BaseInterface > Diligent::RefCountedObject< BaseInterface >

Public Member Functions

 ShaderResourceBindingBase (IReferenceCounters *pRefCounters, IPipelineState *pPSO, bool IsInternal=false)
 
virtual IPipelineStateGetPipelineState () override final
 Implementation of IShaderResourceBinding::GetPipelineState().
 

Protected Attributes

RefCntAutoPtr< IPipelineStatem_spPSO
 Strong reference to PSO. We must use strong reference, because shader resource binding uses PSO's memory allocator to allocate memory for shader resource cache.
 

Detailed Description

template<class BaseInterface>
class Diligent::ShaderResourceBindingBase< BaseInterface >

Template class implementing base functionality for a shader resource binding.

Template Parameters
BaseInterface- base interface that this class will inheret (Diligent::IShaderResourceBindingGL, Diligent::IShaderResourceBindingD3D11, or Diligent::IShaderResourceBindingD3D12).

Constructor & Destructor Documentation

◆ ShaderResourceBindingBase()

template<class BaseInterface>
Diligent::ShaderResourceBindingBase< BaseInterface >::ShaderResourceBindingBase ( IReferenceCounters *  pRefCounters,
IPipelineState pPSO,
bool  IsInternal = false 
)
inline
Parameters
pRefCounters- reference counters object that controls the lifetime of this SRB.
pPSO- pipeline state that this SRB belongs to.
IsInternal- flag indicating if the shader resource binding is an internal PSO object and must not keep a strong reference to the PSO.