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

Interface to the device context object implemented in OpenGL. More...

Inheritance diagram for Diligent::IDeviceContextGL:
Diligent::IDeviceContext Diligent::RefCountedObject< IDeviceContextGL > Diligent::ObjectBase< IDeviceContextGL > Diligent::DeviceContextBase< IDeviceContextGL > Diligent::DeviceContextGLImpl

Public Member Functions

virtual bool UpdateCurrentGLContext ()=0
 Attaches to the active GL context in the thread. More...
 
- Public Member Functions inherited from Diligent::IDeviceContext
virtual void QueryInterface (const Diligent::INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface, see IObject::QueryInterface() for details.
 
virtual void SetPipelineState (IPipelineState *pPipelineState)=0
 Sets the pipeline state. More...
 
virtual void TransitionShaderResources (IPipelineState *pPipelineState, IShaderResourceBinding *pShaderResourceBinding)=0
 Transitions shader resources to the require states. More...
 
virtual void CommitShaderResources (IShaderResourceBinding *pShaderResourceBinding, Uint32 Flags)=0
 Commits shader resources to the device context. More...
 
virtual void SetStencilRef (Uint32 StencilRef)=0
 Sets the stencil reference value. More...
 
virtual void SetBlendFactors (const float *pBlendFactors=nullptr)=0
 
virtual void SetVertexBuffers (Uint32 StartSlot, Uint32 NumBuffersSet, IBuffer **ppBuffers, Uint32 *pStrides, Uint32 *pOffsets, Uint32 Flags)=0
 Binds vertex buffers to the pipeline. More...
 
virtual void InvalidateState ()=0
 Invalidates the cached context state. More...
 
virtual void SetIndexBuffer (IBuffer *pIndexBuffer, Uint32 ByteOffset)=0
 Binds an index buffer to the pipeline. More...
 
virtual void SetViewports (Uint32 NumViewports, const Viewport *pViewports, Uint32 RTWidth, Uint32 RTHeight)=0
 Sets an array of viewports. More...
 
virtual void SetScissorRects (Uint32 NumRects, const Rect *pRects, Uint32 RTWidth, Uint32 RTHeight)=0
 Sets active scissor rects. More...
 
virtual void SetRenderTargets (Uint32 NumRenderTargets, ITextureView *ppRenderTargets[], ITextureView *pDepthStencil)=0
 Binds one or more render targets and the depth-stencil buffer to the pipeline. It also sets the viewport to match the first non-null render target or depth-stencil buffer. More...
 
virtual void Draw (DrawAttribs &DrawAttribs)=0
 Executes a draw command. More...
 
virtual void DispatchCompute (const DispatchComputeAttribs &DispatchAttrs)=0
 Executes a dispatch compute command. More...
 
virtual void ClearDepthStencil (ITextureView *pView, Uint32 ClearFlags=CLEAR_DEPTH_FLAG, float fDepth=1.f, Uint8 Stencil=0)=0
 Clears a depth-stencil view. More...
 
virtual void ClearRenderTarget (ITextureView *pView, const float *RGBA=nullptr)=0
 Clears a render target view. More...
 
virtual void FinishCommandList (ICommandList **ppCommandList)=0
 Finishes recording commands and generates a command list. More...
 
virtual void ExecuteCommandList (ICommandList *pCommandList)=0
 Executes recorded commands in a command list. More...
 
virtual void Flush ()=0
 Flushes the command buffer.
 
virtual void SetSwapChain (ISwapChain *pSwapChain)=0
 Sets the swap chain in the device context. More...
 

Detailed Description

Interface to the device context object implemented in OpenGL.

Member Function Documentation

◆ UpdateCurrentGLContext()

virtual bool Diligent::IDeviceContextGL::UpdateCurrentGLContext ( )
pure virtual

Attaches to the active GL context in the thread.

If an application uses multiple GL contexts, this method must be called before any other command to let the engine update active context every time when control flow is passed over from the main application

Returns
false if there is no active GL context, and true otherwise

Implemented in Diligent::DeviceContextGLImpl.