Diligent Engine API Reference
Public Member Functions | Protected Attributes | List of all members
Diligent::PipelineStateBase< BaseInterface, RenderDeviceBaseInterface, PSOAllocator > Class Template Reference

Template class implementing base functionality for a pipeline state object. More...

Inheritance diagram for Diligent::PipelineStateBase< BaseInterface, RenderDeviceBaseInterface, PSOAllocator >:
Diligent::DeviceObjectBase< BaseInterface, PipelineStateDesc, PSOAllocator > Diligent::ObjectBase< BaseInterface, PSOAllocator > Diligent::RefCountedObject< BaseInterface, PSOAllocator >

Public Member Functions

 PipelineStateBase (PSOAllocator &ObjAllocator, IRenderDevice *pDevice, const PipelineStateDesc &PSODesc, bool bIsDeviceInternal=false)
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< BaseInterface, PipelineStateDesc, PSOAllocator >
 DeviceObjectBase (PSOAllocator &ObjAllocator, class IRenderDevice *pDevice, const PipelineStateDesc &ObjDesc, IObject *pOwner=nullptr, bool bIsDeviceInternal=false)
 
UniqueIdentifier GetUniqueID () const
 Returns unique identifier. More...
 

Protected Attributes

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< BaseInterface, PipelineStateDesc, PSOAllocator >
const String m_ObjectNameCopy
 Copy of a device object name. More...
 
PipelineStateDesc m_Desc
 Object description.
 

Detailed Description

template<class BaseInterface, class RenderDeviceBaseInterface, class PSOAllocator>
class Diligent::PipelineStateBase< BaseInterface, RenderDeviceBaseInterface, PSOAllocator >

Template class implementing base functionality for a pipeline state object.

Template Parameters
BaseInterface- base interface that this class will inheret (Diligent::IPipelineStateD3D11, Diligent::IPipelineStateD3D12 or Diligent::IPipelineStateGL).
RenderDeviceBaseInterface- base interface for the render device (Diligent::IRenderDeviceD3D11, Diligent::IRenderDeviceD3D12, Diligent::IRenderDeviceGL, or Diligent::IRenderDeviceGLES).

Constructor & Destructor Documentation

template<class BaseInterface, class RenderDeviceBaseInterface, class PSOAllocator>
Diligent::PipelineStateBase< BaseInterface, RenderDeviceBaseInterface, PSOAllocator >::PipelineStateBase ( PSOAllocator &  ObjAllocator,
IRenderDevice pDevice,
const PipelineStateDesc PSODesc,
bool  bIsDeviceInternal = false 
)
inline
Parameters
ObjAllocator- allocator that was used to allocate memory for this instance of the pipeline state object
pDevice- pointer to the device.
PSODesc- pipeline state description.
bIsDeviceInternal- flag indicating if the blend state is an internal device object and must not keep a strong reference to the device.