Diligent Engine
 
Loading...
Searching...
No Matches
Diligent::IRenderDeviceGL Struct Referenceabstract

Exposes OpenGL-specific functionality of a render device. More...

#include <RenderDeviceGL.h>

Inheritance diagram for Diligent::IRenderDeviceGL:
Diligent.IRenderDevice Diligent.IObject Diligent::IRenderDeviceGLES

Public Member Functions

virtual void DILIGENT_CALL_TYPE CreateTextureFromGLHandle (Uint32 GLHandle, Uint32 GLBindTarget, const TextureDesc &TexDesc, RESOURCE_STATE InitialState, ITexture **ppTexture)=0
 Creates a texture from OpenGL handle.
 
virtual void DILIGENT_CALL_TYPE CreateBufferFromGLHandle (Uint32 GLHandle, const BufferDesc &BuffDesc, RESOURCE_STATE InitialState, IBuffer **ppBuffer)=0
 Creates a buffer from OpenGL handle.
 
virtual void DILIGENT_CALL_TYPE CreateDummyTexture (const TextureDesc &TexDesc, RESOURCE_STATE InitialState, ITexture **ppTexture)=0
 Creates a dummy texture with null handle.
 
- Public Member Functions inherited from Diligent.IRenderDevice
virtual void DILIGENT_CALL_TYPE CreateBuffer (const BufferDesc &BuffDesc, const BufferData *pBuffData, IBuffer **ppBuffer)=0
 Creates a new buffer object.
 
virtual void DILIGENT_CALL_TYPE CreateShader (const ShaderCreateInfo &ShaderCI, IShader **ppShader, IDataBlob **ppCompilerOutput=nullptr)=0
 Creates a new shader object.
 
virtual void DILIGENT_CALL_TYPE CreateTexture (const TextureDesc &TexDesc, const TextureData *pData, ITexture **ppTexture)=0
 Creates a new texture object.
 
virtual void DILIGENT_CALL_TYPE CreateSampler (const SamplerDesc &SamDesc, ISampler **ppSampler)=0
 Creates a new sampler object.
 
virtual void DILIGENT_CALL_TYPE CreateResourceMapping (const ResourceMappingCreateInfo &ResMappingCI, IResourceMapping **ppMapping)=0
 Creates a new resource mapping.
 
virtual void DILIGENT_CALL_TYPE CreateGraphicsPipelineState (const GraphicsPipelineStateCreateInfo &PSOCreateInfo, IPipelineState **ppPipelineState)=0
 Creates a new graphics pipeline state object.
 
virtual void DILIGENT_CALL_TYPE CreateComputePipelineState (const ComputePipelineStateCreateInfo &PSOCreateInfo, IPipelineState **ppPipelineState)=0
 Creates a new compute pipeline state object.
 
virtual void DILIGENT_CALL_TYPE CreateRayTracingPipelineState (const RayTracingPipelineStateCreateInfo &PSOCreateInfo, IPipelineState **ppPipelineState)=0
 Creates a new ray tracing pipeline state object.
 
virtual void DILIGENT_CALL_TYPE CreateTilePipelineState (const TilePipelineStateCreateInfo &PSOCreateInfo, IPipelineState **ppPipelineState)=0
 Creates a new tile pipeline state object.
 
virtual void DILIGENT_CALL_TYPE CreateFence (const FenceDesc &Desc, IFence **ppFence)=0
 Creates a new fence object.
 
virtual void DILIGENT_CALL_TYPE CreateQuery (const QueryDesc &Desc, IQuery **ppQuery)=0
 Creates a new query object.
 
virtual void DILIGENT_CALL_TYPE CreateRenderPass (const RenderPassDesc &Desc, IRenderPass **ppRenderPass)=0
 Creates a render pass object.
 
virtual void DILIGENT_CALL_TYPE CreateFramebuffer (const FramebufferDesc &Desc, IFramebuffer **ppFramebuffer)=0
 Creates a framebuffer object.
 
virtual void DILIGENT_CALL_TYPE CreateBLAS (const BottomLevelASDesc &Desc, IBottomLevelAS **ppBLAS)=0
 Creates a bottom-level acceleration structure object (BLAS).
 
virtual void DILIGENT_CALL_TYPE CreateTLAS (const TopLevelASDesc &Desc, ITopLevelAS **ppTLAS)=0
 Creates a top-level acceleration structure object (TLAS).
 
virtual void DILIGENT_CALL_TYPE CreateSBT (const ShaderBindingTableDesc &Desc, IShaderBindingTable **ppSBT)=0
 Creates a shader resource binding table object (SBT).
 
virtual void DILIGENT_CALL_TYPE CreatePipelineResourceSignature (const PipelineResourceSignatureDesc &Desc, IPipelineResourceSignature **ppSignature)=0
 Creates a pipeline resource signature object.
 
virtual void DILIGENT_CALL_TYPE CreateDeviceMemory (const DeviceMemoryCreateInfo &CreateInfo, IDeviceMemory **ppMemory)=0
 Creates a device memory object.
 
virtual void DILIGENT_CALL_TYPE CreatePipelineStateCache (const PipelineStateCacheCreateInfo &CreateInfo, IPipelineStateCache **ppPSOCache)=0
 Creates a pipeline state cache object.
 
virtual void DILIGENT_CALL_TYPE CreateDeferredContext (IDeviceContext **ppContext)=0
 Creates a deferred context.
 
virtual const RenderDeviceInfo &DILIGENT_CALL_TYPE GetDeviceInfo () const =0
 Returns the device information, see Diligent::RenderDeviceInfo for details.
 
virtual const GraphicsAdapterInfo &DILIGENT_CALL_TYPE GetAdapterInfo () const =0
 Returns the graphics adapter information, see Diligent::GraphicsAdapterInfo for details.
 
virtual const TextureFormatInfo &DILIGENT_CALL_TYPE GetTextureFormatInfo (TEXTURE_FORMAT TexFormat) const =0
 Returns the basic texture format information.
 
virtual const TextureFormatInfoExt &DILIGENT_CALL_TYPE GetTextureFormatInfoExt (TEXTURE_FORMAT TexFormat)=0
 Returns the extended texture format information.
 
virtual SparseTextureFormatInfo DILIGENT_CALL_TYPE GetSparseTextureFormatInfo (TEXTURE_FORMAT TexFormat, RESOURCE_DIMENSION Dimension, Uint32 SampleCount) const =0
 Returns the sparse texture format info for the given texture format, resource dimension and sample count.
 
virtual void DILIGENT_CALL_TYPE ReleaseStaleResources (Bool ForceRelease=false)=0
 
virtual void DILIGENT_CALL_TYPE IdleGPU ()=0
 Waits until all outstanding operations on the GPU are complete.
 
virtual IEngineFactory *DILIGENT_CALL_TYPE GetEngineFactory () const =0
 Returns engine factory this device was created from.
 
virtual IThreadPool *DILIGENT_CALL_TYPE GetShaderCompilationThreadPool () const =0
 Returns a pointer to the shader compilation thread pool.
 
void CreatePipelineState (const GraphicsPipelineStateCreateInfo &CI, IPipelineState **ppPipelineState)
 Overloaded alias for CreateGraphicsPipelineState.
 
void CreatePipelineState (const ComputePipelineStateCreateInfo &CI, IPipelineState **ppPipelineState)
 Overloaded alias for CreateComputePipelineState.
 
void CreatePipelineState (const RayTracingPipelineStateCreateInfo &CI, IPipelineState **ppPipelineState)
 Overloaded alias for CreateRayTracingPipelineState.
 
void CreatePipelineState (const TilePipelineStateCreateInfo &CI, IPipelineState **ppPipelineState)
 Overloaded alias for CreateTilePipelineState.
 
- Public Member Functions inherited from Diligent.IObject
virtual void DILIGENT_CALL_TYPE QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface.
 
virtual ReferenceCounterValueType DILIGENT_CALL_TYPE AddRef ()=0
 Increments the number of strong references by 1.
 
virtual ReferenceCounterValueType DILIGENT_CALL_TYPE Release ()=0
 
virtual IReferenceCounters *DILIGENT_CALL_TYPE GetReferenceCounters () const =0
 

Detailed Description

Exposes OpenGL-specific functionality of a render device.

Member Function Documentation

◆ CreateBufferFromGLHandle()

virtual void DILIGENT_CALL_TYPE Diligent::IRenderDeviceGL::CreateBufferFromGLHandle ( Uint32 GLHandle,
const BufferDesc & BuffDesc,
RESOURCE_STATE InitialState,
IBuffer ** ppBuffer )
pure virtual

Creates a buffer from OpenGL handle.

Parameters
[in]GLHandle- OpenGL buffer handle
[in]BuffDesc- Buffer description. The engine can automatically recover buffer size, but the rest of the fields need to be set by the client.
[in]InitialState- Initial buffer state. See Diligent::RESOURCE_STATE.
[out]ppBuffer- Address of the memory location where the pointer to the texture interface will be stored. The function calls AddRef(), so that the new object will contain one reference.
Note
Diligent engine buffer object does not take ownership of the GL resource, and the application must not destroy it while it is in use by the engine.

◆ CreateDummyTexture()

virtual void DILIGENT_CALL_TYPE Diligent::IRenderDeviceGL::CreateDummyTexture ( const TextureDesc & TexDesc,
RESOURCE_STATE InitialState,
ITexture ** ppTexture )
pure virtual

Creates a dummy texture with null handle.

The main usage of dummy textures is to serve as render target and depth buffer proxies in a swap chain. When dummy color buffer is set as render target, the engine binds default FBO provided by the swap chain.

Parameters
[in]TexDesc- Texture description.
[in]InitialState- Initial texture state. See Diligent::RESOURCE_STATE.
[out]ppTexture- Address of the memory location where the pointer to the texture interface will be stored. The function calls AddRef(), so that the new object will contain one reference.
Note
Only RESOURCE_DIM_TEX_2D dummy textures are supported.

◆ CreateTextureFromGLHandle()

virtual void DILIGENT_CALL_TYPE Diligent::IRenderDeviceGL::CreateTextureFromGLHandle ( Uint32 GLHandle,
Uint32 GLBindTarget,
const TextureDesc & TexDesc,
RESOURCE_STATE InitialState,
ITexture ** ppTexture )
pure virtual

Creates a texture from OpenGL handle.

Parameters
[in]GLHandle- OpenGL texture handle.
[in]GLBindTarget- OpenGL bind target. If this parameter is null, the engine will automatically select the target based on texture type (e.g. Diligent::RESOURCE_DIM_TEX_2D will map to GL_TEXTURE_2D). An application should typically use this parameter when the texture has non-standard bind target such as, GL_TEXTURE_EXTERNAL_OES.
[in]TexDesc- Texture description. The engine can automatically set texture width, height, depth, mip levels count, and format. Remaining fields should be set up by the app.
[in]InitialState- Initial texture state. See Diligent::RESOURCE_STATE.
[out]ppTexture- Address of the memory location where the pointer to the texture interface will be stored. The function calls AddRef(), so that the new object will contain one reference.
Note
Diligent engine texture object does not take ownership of the GL resource, and the application must not destroy it while it is in use by the engine.