Diligent::IPipelineResourceSignature struct

Pipeline resource signature interface.

Contents

Base classes

struct IDeviceObject
Base interface for all objects created by the render device Diligent::IRenderDevice.

Public functions

auto GetDesc() const -> const PipelineResourceSignatureDesc&METHOD() override
Returns the pipeline resource signature description, see Diligent::PipelineResourceSignatureDesc.
auto CreateShaderResourceBinding(IShaderResourceBinding** ppShaderResourceBinding, bool InitStaticResources = false) -> void METHOD() virtual
Creates a shader resource binding object.
auto BindStaticResources(Uint32 ShaderFlags, IResourceMapping* pResourceMapping, Uint32 Flags) -> void METHOD() virtual
Binds static resources for the specified shader stages in the pipeline resource signature.
auto GetStaticVariableByName(SHADER_TYPE ShaderType, const Char* Name) -> IShaderResourceVariable*METHOD() virtual
Returns static shader resource variable. If the variable is not found, returns nullptr.
auto GetStaticVariableByIndex(SHADER_TYPE ShaderType, Uint32 Index) -> IShaderResourceVariable*METHOD() virtual
Returns static shader resource variable by its index.
auto GetStaticVariableCount(SHADER_TYPE ShaderType) const -> Uint32 METHOD() virtual
Returns the number of static shader resource variables.
auto InitializeStaticSRBResources(struct IShaderResourceBinding* pShaderResourceBinding) const -> void METHOD() virtual
Initializes static resources in the shader binding object.
auto IsCompatibleWith(const struct IPipelineResourceSignature* pPRS) const -> bool METHOD() virtual
Returns true if the signature is compatible with another one.

Function documentation

void METHOD() Diligent::IPipelineResourceSignature::CreateShaderResourceBinding(IShaderResourceBinding** ppShaderResourceBinding, bool InitStaticResources = false) virtual

Creates a shader resource binding object.

Parameters
ppShaderResourceBinding out - Memory location where pointer to the new shader resource binding object is written.
InitStaticResources in - If set to true, the method will initialize static resources in the created object, which has the exact same effect as calling IPipelineResourceSignature::InitializeStaticSRBResources().

void METHOD() Diligent::IPipelineResourceSignature::BindStaticResources(Uint32 ShaderFlags, IResourceMapping* pResourceMapping, Uint32 Flags) virtual

Binds static resources for the specified shader stages in the pipeline resource signature.

Parameters
ShaderFlags in - Flags that specify shader stages, for which resources will be bound. Any combination of Diligent::SHADER_TYPE may be used.
pResourceMapping in - Pointer to the resource mapping interface.
Flags in - Additional flags. See Diligent::BIND_SHADER_RESOURCES_FLAGS.

IShaderResourceVariable*METHOD() Diligent::IPipelineResourceSignature::GetStaticVariableByName(SHADER_TYPE ShaderType, const Char* Name) virtual

Returns static shader resource variable. If the variable is not found, returns nullptr.

Parameters
ShaderType in - Type of the shader to look up the variable. Must be one of Diligent::SHADER_TYPE.
Name in - Name of the variable.

Only static shader resource variables can be accessed using this method. Mutable and dynamic variables are accessed through Shader Resource Binding object.

The method does not increment the reference counter of the returned interface, and the application must not call Release() unless it explicitly called AddRef().

IShaderResourceVariable*METHOD() Diligent::IPipelineResourceSignature::GetStaticVariableByIndex(SHADER_TYPE ShaderType, Uint32 Index) virtual

Returns static shader resource variable by its index.

Parameters
ShaderType in - Type of the shader to look up the variable. Must be one of Diligent::SHADER_TYPE.
Index in - Shader variable index. The index must be between 0 and the total number of variables returned by GetStaticVariableCount().

Only static shader resource variables can be accessed using this method. Mutable and dynamic variables are accessed through Shader Resource Binding object.

The method does not increment the reference counter of the returned interface, and the application must not call Release() unless it explicitly called AddRef().

Uint32 METHOD() Diligent::IPipelineResourceSignature::GetStaticVariableCount(SHADER_TYPE ShaderType) const virtual

Returns the number of static shader resource variables.

Parameters
ShaderType in - Type of the shader.

void METHOD() Diligent::IPipelineResourceSignature::InitializeStaticSRBResources(struct IShaderResourceBinding* pShaderResourceBinding) const virtual

Initializes static resources in the shader binding object.

Parameters
pShaderResourceBinding in - Shader resource binding object to initialize. The pipeline resource signature must be compatible with the shader resource binding object.

If static shader resources were not initialized when the SRB was created, this method must be called to initialize them before the SRB can be used. The method should be called after all static variables have been initialized in the signature.

bool METHOD() Diligent::IPipelineResourceSignature::IsCompatibleWith(const struct IPipelineResourceSignature* pPRS) const virtual

Returns true if the signature is compatible with another one.