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

Public Member Functions

virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override final
 Queries the specific interface, see IObject::QueryInterface() for details.
 
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 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, FixedBlockMemoryAllocator >
 PipelineStateBase (FixedBlockMemoryAllocator &ObjAllocator, IRenderDevice *pDevice, const PipelineStateDesc &PSODesc, bool bIsDeviceInternal=false)
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< IPipelineStateD3D11, 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< IPipelineStateD3D11, 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< IPipelineStateD3D11, IRenderDeviceD3D11, 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< IPipelineStateD3D11, PipelineStateDesc, FixedBlockMemoryAllocator >
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

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.

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.

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.

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.

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.

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.

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.

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

Returns a pointer to the 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.

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.