Diligent Engine API Reference: Diligent::PipelineStateD3D11Impl Class Reference

Diligent Engine API Reference

Public Member Functions | List of all members
Diligent::PipelineStateD3D11Impl Class Reference

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

Inheritance diagram for Diligent::PipelineStateD3D11Impl:

## Public Member Functions
virtual ID3D11BlendState * | GetD3D11BlendState () override final
| Implementation of the IPipelineStateD3D11::GetD3D11BlendState() method.
virtual ID3D11RasterizerState * | GetD3D11RasterizerState () override final
| Implementation of the IPipelineStateD3D11::GetD3D11RasterizerState() method.
virtual ID3D11DepthStencilState * | GetD3D11DepthStencilState () override final
| Implementation of the IPipelineStateD3D11::GetD3D11DepthStencilState() method.
virtual ID3D11InputLayout * | GetD3D11InputLayout () override final
| Returns a pointer to the ID3D11InputLayout interface of the internal Direct3D11 object. More...
virtual ID3D11VertexShader * | GetD3D11VertexShader () override final
| Returns a pointer to the ID3D11VertexShader interface of the internal vertex shader object. More...
virtual ID3D11PixelShader * | GetD3D11PixelShader () override final
| Returns a pointer to the ID3D11PixelShader interface of the internal pixel shader object. More...
virtual ID3D11GeometryShader * | GetD3D11GeometryShader () override final
| Returns a pointer to the ID3D11GeometryShader interface of the internal geometry shader object. More...
virtual ID3D11DomainShader * | GetD3D11DomainShader () override final
| Returns a pointer to the ID3D11DomainShader interface of the internal domain shader object. More...
virtual ID3D11HullShader * | GetD3D11HullShader () override final
| Returns a pointer to the ID3D11HullShader interface of the internal hull shader object. More...
virtual ID3D11ComputeShader * | GetD3D11ComputeShader () override final
| Returns a pointer to the ID3D11ComputeShader interface of the internal compute shader object. More...
virtual void | BindShaderResources (IResourceMapping *pResourceMapping, Uint32 Flags) override final
| Binds resources for all shaders in the pipeline state. More...
virtual void | CreateShaderResourceBinding (IShaderResourceBinding **ppShaderResourceBinding) override final
| Creates a shader resource binding object. More...
Public Member Functions inherited from Diligent::PipelineStateBase< IPipelineStateD3D11, IRenderDeviceD3D11 >
| PipelineStateBase (IReferenceCounters *pRefCounters, IRenderDevice *pDevice, const PipelineStateDesc &PSODesc, bool bIsDeviceInternal=false)
Public Member Functions inherited from Diligent::DeviceObjectBase< IPipelineStateD3D11, 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< IPipelineStateD3D11, IRenderDeviceD3D11 >
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< IPipelineStateD3D11, PipelineStateDesc >
const String | m_ObjectNameCopy
| Copy of a device object name. More...
PipelineStateDesc | m_Desc
| Object description.

## Detailed Description

Implementation of the Diligent::IPipelineStateD3D11 interface.

## Member Function Documentation

## ◆ BindShaderResources()

void Diligent::PipelineStateD3D11Impl::BindShaderResources | ( | IResourceMapping * | pResourceMapping,
|  | Uint32 | Flags
| ) |  |
| finaloverridevirtual

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::PipelineStateD3D11Impl::CreateShaderResourceBinding | ( | IShaderResourceBinding ** | ppShaderResourceBinding | ) |
| finaloverridevirtual

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.

## ◆ GetD3D11ComputeShader()

ID3D11ComputeShader * Diligent::PipelineStateD3D11Impl::GetD3D11ComputeShader | ( |  | ) |
| finaloverridevirtual

Returns a pointer to the ID3D11ComputeShader interface of the internal compute shader object.

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

Implements Diligent::IPipelineStateD3D11.

## ◆ GetD3D11DomainShader()

ID3D11DomainShader * Diligent::PipelineStateD3D11Impl::GetD3D11DomainShader | ( |  | ) |
| finaloverridevirtual

Returns a pointer to the ID3D11DomainShader interface of the internal domain shader object.

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

Implements Diligent::IPipelineStateD3D11.

## ◆ GetD3D11GeometryShader()

ID3D11GeometryShader * Diligent::PipelineStateD3D11Impl::GetD3D11GeometryShader | ( |  | ) |
| finaloverridevirtual

Returns a pointer to the ID3D11GeometryShader interface of the internal geometry shader object.

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

Implements Diligent::IPipelineStateD3D11.

## ◆ GetD3D11HullShader()

ID3D11HullShader * Diligent::PipelineStateD3D11Impl::GetD3D11HullShader | ( |  | ) |
| finaloverridevirtual

Returns a pointer to the ID3D11HullShader interface of the internal hull shader object.

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

Implements Diligent::IPipelineStateD3D11.

## ◆ GetD3D11InputLayout()

ID3D11InputLayout * Diligent::PipelineStateD3D11Impl::GetD3D11InputLayout | ( |  | ) |
| finaloverridevirtual

Returns a pointer to the ID3D11InputLayout interface of the internal Direct3D11 object.

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

Implements Diligent::IPipelineStateD3D11.

## ◆ GetD3D11PixelShader()

ID3D11PixelShader * Diligent::PipelineStateD3D11Impl::GetD3D11PixelShader | ( |  | ) |
| finaloverridevirtual

Returns a pointer to the ID3D11PixelShader interface of the internal pixel shader object.

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

Implements Diligent::IPipelineStateD3D11.

## ◆ GetD3D11VertexShader()

ID3D11VertexShader * Diligent::PipelineStateD3D11Impl::GetD3D11VertexShader | ( |  | ) |
| finaloverridevirtual

Returns a pointer to the ID3D11VertexShader interface of the internal vertex shader object.

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

Implements Diligent::IPipelineStateD3D11.