template<typename EngineImplTraits>
Diligent::ShaderResourceBindingBase class

Template class implementing base functionality of the shader resource binding.

Template parameters
EngineImplTraits - Engine implementation type traits.

Base classes

template<typename BaseInterface>
class ObjectBase<EngineImplTraits::ShaderResourceBindingInterface>
Template class implementing base functionality for an object.

Constructors, destructors, conversion operators

ShaderResourceBindingBase(IReferenceCounters* pRefCounters, ResourceSignatureType* pPRS)

Public functions

auto GetPipelineResourceSignature() const -> IPipelineResourceSignature* final
Implementation of IShaderResourceBinding::GetPipelineResourceSignature().
auto GetVariableByName(SHADER_TYPE ShaderType, const char* Name) -> IShaderResourceVariable* final
Implementation of IShaderResourceBinding::GetVariableByName().
auto GetVariableCount(SHADER_TYPE ShaderType) const -> Uint32 final
Implementation of IShaderResourceBinding::GetVariableCount().
auto GetVariableByIndex(SHADER_TYPE ShaderType, Uint32 Index) -> IShaderResourceVariable* final
Implementation of IShaderResourceBinding::GetVariableByIndex().
void BindResources(Uint32 ShaderFlags, IResourceMapping* pResMapping, Uint32 Flags) final
Implementation of IShaderResourceBinding::BindResources().

Protected variables

RefCntAutoPtr<ResourceSignatureType> m_pPRS
Strong reference to pipeline resource signature. We must use strong reference, because shader resource binding uses pipeline resource signature's memory allocator to allocate memory for shader resource cache.

Function documentation

template<typename EngineImplTraits>
Diligent::ShaderResourceBindingBase<EngineImplTraits>::ShaderResourceBindingBase(IReferenceCounters* pRefCounters, ResourceSignatureType* pPRS)

Parameters
pRefCounters - Reference counters object that controls the lifetime of this SRB.
pPRS - Pipeline resource signature that this SRB belongs to.