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, FixedBlockMemoryAllocator > Diligent::DeviceObjectBase< IPipelineStateD3D12, PipelineStateDesc, FixedBlockMemoryAllocator > Diligent::ObjectBase< IPipelineStateD3D12, FixedBlockMemoryAllocator > Diligent::RefCountedObject< IPipelineStateD3D12, FixedBlockMemoryAllocator > Diligent::IPipelineStateD3D12 Diligent::IPipelineState Diligent::IDeviceObject Diligent::IObject

Public Member Functions

virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)
 Queries the specific interface, see IObject::QueryInterface() for details.
 
virtual ID3D12PipelineState * GetD3D12PipelineState () const override final
 Returns a pointer to the ID3D12PipelineState interface of the internal Direct3D12 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, FixedBlockMemoryAllocator >
 PipelineStateBase (FixedBlockMemoryAllocator &ObjAllocator, IRenderDevice *pDevice, const PipelineStateDesc &PSODesc, bool bIsDeviceInternal=false)
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< IPipelineStateD3D12, PipelineStateDesc, FixedBlockMemoryAllocator >
 DeviceObjectBase (FixedBlockMemoryAllocator &ObjAllocator, class IRenderDevice *pDevice, const PipelineStateDesc &ObjDesc, IObject *pOwner=nullptr, bool bIsDeviceInternal=false)
 
virtual const PipelineStateDescGetDesc () const override final
 
UniqueIdentifier GetUniqueID () const
 Returns unique identifier. More...
 
- Public Member Functions inherited from Diligent::RefCountedObject< IPipelineStateD3D12, FixedBlockMemoryAllocator >
virtual IReferenceCountersGetReferenceCounters () const override final
 
virtual Atomics::Long AddRef () override
 
virtual Atomics::Long Release () override
 

Additional Inherited Members

- Protected Attributes inherited from Diligent::PipelineStateBase< IPipelineStateD3D12, IRenderDeviceD3D12, FixedBlockMemoryAllocator >
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, FixedBlockMemoryAllocator >
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

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.

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.

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

Returns a pointer to the ID3D12PipelineState interface of the internal Direct3D12 object.

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

Implements Diligent::IPipelineStateD3D12.

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.