Diligent Engine API Reference: Diligent::PipelineStateD3D12Impl Class Reference

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:

## 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 PipelineStateDesc & | GetDesc () 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< IShader > | m_pVS
| Strong reference to the vertex shader.
RefCntAutoPtr< IShader > | m_pPS
| Strong reference to the pixel shader.
RefCntAutoPtr< IShader > | m_pGS
| Strong reference to the geometry shader.
RefCntAutoPtr< IShader > | m_pDS
| Strong reference to the domain shader.
RefCntAutoPtr< IShader > | m_pHS
| Strong reference to the hull shader.
RefCntAutoPtr< IShader > | m_pCS
| Strong reference to the compute shader.
IShader * | m_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.