Diligent Engine API Reference
Public Member Functions | List of all members
Diligent::PipelineStateGLImpl Class Reference

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

Inheritance diagram for Diligent::PipelineStateGLImpl:
Diligent::PipelineStateBase< IPipelineStateGL, IGLDeviceBaseInterface, FixedBlockMemoryAllocator > Diligent::DeviceObjectBase< IPipelineStateGL, PipelineStateDesc, FixedBlockMemoryAllocator > Diligent::ObjectBase< IPipelineStateGL, FixedBlockMemoryAllocator > Diligent::RefCountedObject< IPipelineStateGL, FixedBlockMemoryAllocator > Diligent::IPipelineStateGL Diligent::IPipelineState Diligent::IDeviceObject Diligent::IObject

Public Member Functions

virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override
 Queries the specific interface, see IObject::QueryInterface() for details.
 
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...
 
- Public Member Functions inherited from Diligent::PipelineStateBase< IPipelineStateGL, IGLDeviceBaseInterface, FixedBlockMemoryAllocator >
 PipelineStateBase (FixedBlockMemoryAllocator &ObjAllocator, IRenderDevice *pDevice, const PipelineStateDesc &PSODesc, bool bIsDeviceInternal=false)
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< IPipelineStateGL, 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< IPipelineStateGL, 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< IPipelineStateGL, IGLDeviceBaseInterface, 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< IPipelineStateGL, PipelineStateDesc, FixedBlockMemoryAllocator >
const String m_ObjectNameCopy
 Copy of a device object name. More...
 
PipelineStateDesc m_Desc
 Object description.
 

Detailed Description

Implementation of the Diligent::IPipelineStateGL interface.

Member Function Documentation

void Diligent::PipelineStateGLImpl::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::PipelineStateGLImpl::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.