Diligent Engine API Reference
Public Member Functions | List of all members
Diligent::PipelineStateD3D12Impl Class Reference

Implementation of the Diligent::IRenderDeviceD3D12 interface. More...

Inheritance diagram for Diligent::PipelineStateD3D12Impl:
Diligent::PipelineStateBase< IPipelineStateD3D12, IRenderDeviceD3D12 > Diligent::DeviceObjectBase< IPipelineStateD3D12, PipelineStateDesc > Diligent::ObjectBase< IPipelineStateD3D12 > Diligent::RefCountedObject< IPipelineStateD3D12 > Diligent::IPipelineStateD3D12 Diligent::IPipelineState Diligent::IDeviceObject

Public Member Functions

virtual ID3D12PipelineState * GetD3D12PipelineState () const override final
 Returns ID3D12PipelineState interface of the internal D3D12 pipeline state object object. More...
 
virtual void BindShaderResources (IResourceMapping *pResourceMapping, Uint32 Flags) override
 Binds resources for all shaders in the pipeline state. More...
 
virtual void CreateShaderResourceBinding (IShaderResourceBinding **ppShaderResourceBinding) override
 Creates a shader resource binding object. More...
 
virtual ID3D12RootSignature * GetD3D12RootSignature () const override final
 Returns a pointer to the root signature object associated with this pipeline state. More...
 
- Public Member Functions inherited from Diligent::PipelineStateBase< IPipelineStateD3D12, IRenderDeviceD3D12 >
 PipelineStateBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const PipelineStateDesc &PSODesc, bool bIsDeviceInternal=false)
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< IPipelineStateD3D12, PipelineStateDesc >
 DeviceObjectBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const PipelineStateDesc &ObjDesc, bool bIsDeviceInternal=false)
 
virtual const PipelineStateDescGetDesc () const override final
 
UniqueIdentifier GetUniqueID () const
 Returns unique identifier. More...
 
- Public Member Functions inherited from Diligent::IPipelineState
virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 

Additional Inherited Members

- Protected Attributes inherited from Diligent::PipelineStateBase< IPipelineStateD3D12, IRenderDeviceD3D12 >
RefCntAutoPtr< IShaderm_pVS
 Strong reference to the vertex shader.
 
RefCntAutoPtr< IShaderm_pPS
 Strong reference to the pixel shader.
 
RefCntAutoPtr< IShaderm_pGS
 Strong reference to the geometry shader.
 
RefCntAutoPtr< IShaderm_pDS
 Strong reference to the domain shader.
 
RefCntAutoPtr< IShaderm_pHS
 Strong reference to the hull shader.
 
RefCntAutoPtr< IShaderm_pCS
 Strong reference to the compute shader.
 
IShaderm_ppShaders [5]
 Array of pointers to shaders that this PSO uses.
 
Uint32 m_NumShaders
 Number of shaders that this PSO uses.
 
- Protected Attributes inherited from Diligent::DeviceObjectBase< IPipelineStateD3D12, PipelineStateDesc >
const String m_ObjectNameCopy
 Copy of a device object name. More...
 
PipelineStateDesc m_Desc
 Object description.
 

Detailed Description

Implementation of the Diligent::IRenderDeviceD3D12 interface.

Member Function Documentation

◆ BindShaderResources()

void Diligent::PipelineStateD3D12Impl::BindShaderResources ( IResourceMapping pResourceMapping,
Uint32  Flags 
)
overridevirtual

Binds resources for all shaders in the pipeline state.

Parameters
[in]pResourceMapping- Pointer to the resource mapping interface.
[in]Flags- Additional flags. See Diligent::BIND_SHADER_RESOURCES_FLAGS.
Remarks
For older OpenGL devices that do not support program pipelines (OpenGL4.1-, OpenGLES3.0-). This function is the only way to bind shader resources.

Implements Diligent::IPipelineState.

◆ CreateShaderResourceBinding()

void Diligent::PipelineStateD3D12Impl::CreateShaderResourceBinding ( IShaderResourceBinding **  ppShaderResourceBinding)
overridevirtual

Creates a shader resource binding object.

Parameters
[out]ppShaderResourceBinding- memory location where pointer to the new shader resource binding object is written.

Implements Diligent::IPipelineState.

◆ GetD3D12PipelineState()

virtual ID3D12PipelineState* Diligent::PipelineStateD3D12Impl::GetD3D12PipelineState ( ) const
inlinefinaloverridevirtual

Returns ID3D12PipelineState interface of the internal D3D12 pipeline state object object.

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

Implements Diligent::IPipelineStateD3D12.

◆ GetD3D12RootSignature()

virtual ID3D12RootSignature* Diligent::PipelineStateD3D12Impl::GetD3D12RootSignature ( ) const
inlinefinaloverridevirtual

Returns a pointer to the root signature object associated with this pipeline state.

The method does NOT call AddRef() on the returned interface, so Release() must not be called.

Implements Diligent::IPipelineStateD3D12.