Diligent Engine
 
Loading...
Searching...
No Matches
Diligent::IRenderStateNotationLoader Struct Referenceabstract

Render state notation loader interface. More...

#include <RenderStateNotationLoader.h>

Inheritance diagram for Diligent::IRenderStateNotationLoader:
Diligent.IObject

Public Member Functions

virtual void DILIGENT_CALL_TYPE LoadPipelineState (const LoadPipelineStateInfo &LoadInfo, IPipelineState **ppPSO)=0
 Loads a pipeline state from the render state notation parser.
 
virtual void DILIGENT_CALL_TYPE LoadResourceSignature (const LoadResourceSignatureInfo &LoadInfo, IPipelineResourceSignature **ppSignature)=0
 Loads a resource signature from the render state notation parser.
 
virtual void DILIGENT_CALL_TYPE LoadRenderPass (const LoadRenderPassInfo &LoadInfo, IRenderPass **ppRenderPass)=0
 Loads a render pass from the render state notation parser.
 
virtual void DILIGENT_CALL_TYPE LoadShader (const LoadShaderInfo &LoadInfo, IShader **ppShader)=0
 Loads a shader from the render state notation parser.
 
virtual bool DILIGENT_CALL_TYPE Reload ()=0
 Reloads all states.
 
- Public Member Functions inherited from Diligent.IObject
virtual void DILIGENT_CALL_TYPE QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface.
 
virtual ReferenceCounterValueType DILIGENT_CALL_TYPE AddRef ()=0
 Increments the number of strong references by 1.
 
virtual ReferenceCounterValueType DILIGENT_CALL_TYPE Release ()=0
 
virtual IReferenceCounters *DILIGENT_CALL_TYPE GetReferenceCounters () const =0
 

Detailed Description

Render state notation loader interface.

Member Function Documentation

◆ LoadPipelineState()

virtual void DILIGENT_CALL_TYPE Diligent::IRenderStateNotationLoader::LoadPipelineState ( const LoadPipelineStateInfo & LoadInfo,
IPipelineState ** ppPSO )
pure virtual

Loads a pipeline state from the render state notation parser.

Parameters
[in]LoadInfo- Pipeline state load info, see Diligent::LoadPipelineStateInfo.
[out]ppPSO- Address of the memory location where a pointer to the pipeline state object will be stored.
Remarks
This method must be externally synchronized.

◆ LoadRenderPass()

virtual void DILIGENT_CALL_TYPE Diligent::IRenderStateNotationLoader::LoadRenderPass ( const LoadRenderPassInfo & LoadInfo,
IRenderPass ** ppRenderPass )
pure virtual

Loads a render pass from the render state notation parser.

Parameters
[in]LoadInfo- Render pass load info, see Diligent::LoadRenderPassInfo.
[out]ppRenderPass- Address of the memory location where a pointer to the loaded render pass object will be stored.
Remarks
This method must be externally synchronized.

◆ LoadResourceSignature()

virtual void DILIGENT_CALL_TYPE Diligent::IRenderStateNotationLoader::LoadResourceSignature ( const LoadResourceSignatureInfo & LoadInfo,
IPipelineResourceSignature ** ppSignature )
pure virtual

Loads a resource signature from the render state notation parser.

Parameters
[in]LoadInfo- Render pass load info, see Diligent::LoadResourceSignatureInfo.
[out]ppSignature- Address of the memory location where a pointer to the pipeline resource signature object will be stored.
Remarks
This method must be externally synchronized.

◆ LoadShader()

virtual void DILIGENT_CALL_TYPE Diligent::IRenderStateNotationLoader::LoadShader ( const LoadShaderInfo & LoadInfo,
IShader ** ppShader )
pure virtual

Loads a shader from the render state notation parser.

Parameters
[in]LoadInfo- Shader load info, see Diligent::LoadShaderInfo.
[out]ppShader- Address of the memory location where a pointer to the loaded shader object will be stored.
Remarks
This method must be externally synchronized.

◆ Reload()

virtual bool DILIGENT_CALL_TYPE Diligent::IRenderStateNotationLoader::Reload ( )
pure virtual

Reloads all states.

Returns
true if the states were reloaded successfully, and false otherwise.
Note
This method requires that both render state notation parser as well as the render state cache (if not null) support state reloading.

Most of the states in the render state notation can be reloaded with the following exceptions:

  • Pipeline resource layouts and signatures can't be modified
  • Shaders can be reloaded, but can't be replaced (e.g. a PSO can't use another shader after the reload)