IPipelineResourceSignature struct
Pipeline resource signature interface.
Contents
- Reference
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:: |
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:: |
| pResourceMapping in | - Pointer to the resource mapping interface. |
| Flags in | - Additional flags. See Diligent:: |
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:: |
| 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:: |
| 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.