Diligent Engine  v.2.4.g
Public Member Functions | List of all members
Diligent::RenderDeviceGLESImpl Class Referencefinal

#include <RenderDeviceGLESImpl.hpp>

Inheritance diagram for Diligent::RenderDeviceGLESImpl:
Diligent::RenderDeviceGLImpl Diligent::RenderDeviceBase< EngineGLImplTraits > Diligent::ObjectBase< EngineGLImplTraits ::RenderDeviceInterface > Diligent::RefCountedObject< EngineGLImplTraits ::RenderDeviceInterface >

Public Member Functions

 RenderDeviceGLESImpl (IReferenceCounters *pRefCounters, IMemoryAllocator &RawMemAllocator, IEngineFactory *pEngineFactory, const EngineGLCreateInfo &InitAttribs, const SwapChainDesc *pSCDesc=nullptr)
 
virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)
 
virtual bool Invalidate ()
 
virtual void Suspend ()
 
virtual EGLint Resume (ANativeWindow *window)
 
- Public Member Functions inherited from Diligent::RenderDeviceGLImpl
 RenderDeviceGLImpl (IReferenceCounters *pRefCounters, IMemoryAllocator &RawMemAllocator, IEngineFactory *pEngineFactory, const EngineGLCreateInfo &InitAttribs, const SwapChainDesc *pSCDesc=nullptr) noexcept(false)
 
 ~RenderDeviceGLImpl ()
 
void CreateBuffer (const BufferDesc &BuffDesc, const BufferData *pBuffData, IBuffer **ppBuffer, bool bIsDeviceInternal)
 Implementation of IRenderDevice::CreateBuffer() in OpenGL backend. More...
 
virtual void CreateBuffer (const BufferDesc &BuffDesc, const BufferData *BuffData, IBuffer **ppBuffer) override final
 
void CreateShader (const ShaderCreateInfo &ShaderCreateInfo, IShader **ppShader, bool bIsDeviceInternal)
 Implementation of IRenderDevice::CreateShader() in OpenGL backend. More...
 
virtual void CreateShader (const ShaderCreateInfo &ShaderCreateInfo, IShader **ppShader) override final
 
void CreateTexture (const TextureDesc &TexDesc, const TextureData *pData, ITexture **ppTexture, bool bIsDeviceInternal)
 Implementation of IRenderDevice::CreateTexture() in OpenGL backend. More...
 
virtual void CreateTexture (const TextureDesc &TexDesc, const TextureData *Data, ITexture **ppTexture) override final
 
void CreateSampler (const SamplerDesc &SamplerDesc, ISampler **ppSampler, bool bIsDeviceInternal)
 Implementation of IRenderDevice::CreateSampler() in OpenGL backend. More...
 
virtual void CreateSampler (const SamplerDesc &SamplerDesc, ISampler **ppSampler) override final
 
virtual void CreateGraphicsPipelineState (const GraphicsPipelineStateCreateInfo &PSOCreateInfo, IPipelineState **ppPipelineState) override final
 Implementation of IRenderDevice::CreateGraphicsPipelineState() in OpenGL backend. More...
 
virtual void CreateComputePipelineState (const ComputePipelineStateCreateInfo &PSOCreateInfo, IPipelineState **ppPipelineState) override final
 Implementation of IRenderDevice::CreateComputePipelineState() in OpenGL backend. More...
 
virtual void CreateRayTracingPipelineState (const RayTracingPipelineStateCreateInfo &PSOCreateInfo, IPipelineState **ppPipelineState) override final
 Implementation of IRenderDevice::CreateRayTracingPipelineState() in OpenGL backend. More...
 
void CreateGraphicsPipelineState (const GraphicsPipelineStateCreateInfo &PSOCreateInfo, IPipelineState **ppPipelineState, bool bIsDeviceInternal)
 
void CreateComputePipelineState (const ComputePipelineStateCreateInfo &PSOCreateInfo, IPipelineState **ppPipelineState, bool bIsDeviceInternal)
 
virtual void CreateFence (const FenceDesc &Desc, IFence **ppFence) override final
 Implementation of IRenderDevice::CreateFence() in OpenGL backend. More...
 
virtual void CreateQuery (const QueryDesc &Desc, IQuery **ppQuery) override final
 Implementation of IRenderDevice::CreateQuery() in OpenGL backend. More...
 
virtual void CreateRenderPass (const RenderPassDesc &Desc, IRenderPass **ppRenderPass) override final
 Implementation of IRenderDevice::CreateRenderPass() in OpenGL backend. More...
 
virtual void CreateFramebuffer (const FramebufferDesc &Desc, IFramebuffer **ppFramebuffer) override final
 Implementation of IRenderDevice::CreateFramebuffer() in OpenGL backend. More...
 
virtual void CreateBLAS (const BottomLevelASDesc &Desc, IBottomLevelAS **ppBLAS) override final
 Implementation of IRenderDevice::CreateBLAS() in OpenGL backend. More...
 
virtual void CreateTLAS (const TopLevelASDesc &Desc, ITopLevelAS **ppTLAS) override final
 Implementation of IRenderDevice::CreateTLAS() in OpenGL backend. More...
 
virtual void CreateSBT (const ShaderBindingTableDesc &Desc, IShaderBindingTable **ppSBT) override final
 Implementation of IRenderDevice::CreateSBT() in OpenGL backend. More...
 
virtual void CreatePipelineResourceSignature (const PipelineResourceSignatureDesc &Desc, IPipelineResourceSignature **ppSignature) override final
 Implementation of IRenderDevice::CreatePipelineResourceSignature() in OpenGL backend. More...
 
void CreatePipelineResourceSignature (const PipelineResourceSignatureDesc &Desc, IPipelineResourceSignature **ppSignature, bool IsDeviceInternal)
 
virtual void CreateTextureFromGLHandle (Uint32 GLHandle, Uint32 GLBindTarget, const TextureDesc &TexDesc, RESOURCE_STATE InitialState, ITexture **ppTexture) override final
 Implementation of IRenderDeviceGL::CreateTextureFromGLHandle(). More...
 
virtual void CreateBufferFromGLHandle (Uint32 GLHandle, const BufferDesc &BuffDesc, RESOURCE_STATE InitialState, IBuffer **ppBuffer) override final
 Implementation of IRenderDeviceGL::CreateBufferFromGLHandle(). More...
 
virtual void CreateDummyTexture (const TextureDesc &TexDesc, RESOURCE_STATE InitialState, ITexture **ppTexture) override final
 Implementation of IRenderDeviceGL::CreateDummyTexture(). More...
 
virtual void ReleaseStaleResources (bool ForceRelease=false) override final
 Implementation of IRenderDevice::ReleaseStaleResources() in OpenGL backend. More...
 
virtual void IdleGPU () override final
 Implementation of IRenderDevice::IdleGPU() in OpenGL backend. More...
 
FBOCacheGetFBOCache (GLContext::NativeGLContextType Context)
 
void OnReleaseTexture (ITexture *pTexture)
 
VAOCacheGetVAOCache (GLContext::NativeGLContextType Context)
 
void OnDestroyPSO (PipelineStateGLImpl &PSO)
 
void OnDestroyBuffer (BufferGLImpl &Buffer)
 
size_t GetCommandQueueCount () const
 
Uint64 GetCommandQueueMask () const
 
void InitTexRegionRender ()
 
const DeviceLimitsGetDeviceLimits () const
 
- Public Member Functions inherited from Diligent::RenderDeviceBase< EngineGLImplTraits >
 RenderDeviceBase (IReferenceCounters *pRefCounters, IMemoryAllocator &RawMemAllocator, IEngineFactory *pEngineFactory, Uint32 NumDeferredContexts)
 
 ~RenderDeviceBase ()
 
virtual ReferenceCounterValueType Release () override final
 
virtual void CreateResourceMapping (const ResourceMappingDesc &MappingDesc, IResourceMapping **ppMapping) override final
 Implementation of IRenderDevice::CreateResourceMapping(). More...
 
virtual const DeviceCapsGetDeviceCaps () const override final
 Implementation of IRenderDevice::GetDeviceCaps(). More...
 
virtual const DevicePropertiesGetDeviceProperties () const override final
 Implementation of IRenderDevice::GetDeviceProperties(). More...
 
virtual const TextureFormatInfoGetTextureFormatInfo (TEXTURE_FORMAT TexFormat) override final
 Implementation of IRenderDevice::GetTextureFormatInfo(). More...
 
virtual const TextureFormatInfoExtGetTextureFormatInfoExt (TEXTURE_FORMAT TexFormat) override final
 Implementation of IRenderDevice::GetTextureFormatInfoExt(). More...
 
virtual IEngineFactoryGetEngineFactory () const override final
 
StateObjectsRegistry< SamplerDesc > & GetSamplerRegistry ()
 
void SetImmediateContext (IDeviceContext *pImmediateContext)
 Set weak reference to the immediate context. More...
 
void SetDeferredContext (size_t Ctx, IDeviceContext *pDeferredCtx)
 Set weak reference to the deferred context. More...
 
size_t GetNumDeferredContexts () const
 Returns number of deferred contexts. More...
 
RefCntAutoPtr< IDeviceContextGetImmediateContext ()
 
RefCntAutoPtr< IDeviceContextGetDeferredContext (size_t Ctx)
 
FixedBlockMemoryAllocatorGetTexViewObjAllocator ()
 
FixedBlockMemoryAllocatorGetBuffViewObjAllocator ()
 
FixedBlockMemoryAllocatorGetSRBAllocator ()
 
- Public Member Functions inherited from Diligent::ObjectBase< EngineGLImplTraits ::RenderDeviceInterface >
 ObjectBase (IReferenceCounters *pRefCounters)
 
- Public Member Functions inherited from Diligent::RefCountedObject< EngineGLImplTraits ::RenderDeviceInterface >
 RefCountedObject (IReferenceCounters *pRefCounters, BaseCtorArgTypes &&... BaseCtorArgs) noexcept
 
virtual ~RefCountedObject ()
 
virtual IReferenceCountersGetReferenceCounters () const override final
 
virtual ReferenceCounterValueType AddRef () override final
 
ReferenceCounterValueType Release (TPreObjectDestroy PreObjectDestroy)
 

Additional Inherited Members

- Public Types inherited from Diligent::RenderDeviceGLImpl
using TRenderDeviceBase = RenderDeviceBase< EngineGLImplTraits >
 
- Public Types inherited from Diligent::RenderDeviceBase< EngineGLImplTraits >
using BaseInterface = typename EngineGLImplTraits ::RenderDeviceInterface
 
using TObjectBase = ObjectBase< BaseInterface >
 
using RenderDeviceImplType = typename EngineGLImplTraits ::RenderDeviceImplType
 
using PipelineStateImplType = typename EngineGLImplTraits ::PipelineStateImplType
 
using ShaderResourceBindingImplType = typename EngineGLImplTraits ::ShaderResourceBindingImplType
 
using BufferImplType = typename EngineGLImplTraits ::BufferImplType
 
using BufferViewImplType = typename EngineGLImplTraits ::BufferViewImplType
 
using TextureImplType = typename EngineGLImplTraits ::TextureImplType
 
using TextureViewImplType = typename EngineGLImplTraits ::TextureViewImplType
 
using ShaderImplType = typename EngineGLImplTraits ::ShaderImplType
 
using SamplerImplType = typename EngineGLImplTraits ::SamplerImplType
 
using FenceImplType = typename EngineGLImplTraits ::FenceImplType
 
using QueryImplType = typename EngineGLImplTraits ::QueryImplType
 
using RenderPassImplType = typename EngineGLImplTraits ::RenderPassImplType
 
using FramebufferImplType = typename EngineGLImplTraits ::FramebufferImplType
 
using BottomLevelASImplType = typename EngineGLImplTraits ::BottomLevelASImplType
 
using TopLevelASImplType = typename EngineGLImplTraits ::TopLevelASImplType
 
using ShaderBindingTableImplType = typename EngineGLImplTraits ::ShaderBindingTableImplType
 
using PipelineResourceSignatureImplType = typename EngineGLImplTraits ::PipelineResourceSignatureImplType
 
- Protected Member Functions inherited from Diligent::RenderDeviceBase< EngineGLImplTraits >
void CreateDeviceObject (const Char *ObjectTypeName, const ObjectDescType &Desc, ObjectType **ppObject, ObjectConstructorType ConstructObject)
 Helper template function to facilitate device object creation. More...
 
void CreatePipelineStateImpl (IPipelineState **ppPipelineState, const PSOCreateInfoType &PSOCreateInfo, const ExtraArgsType &... ExtraArgs)
 
void CreateBufferImpl (IBuffer **ppBuffer, const BufferDesc &BuffDesc, const ExtraArgsType &... ExtraArgs)
 
void CreateTextureImpl (ITexture **ppTexture, const TextureDesc &TexDesc, const ExtraArgsType &... ExtraArgs)
 
void CreateShaderImpl (IShader **ppShader, const ShaderCreateInfo &ShaderCI, const ExtraArgsType &... ExtraArgs)
 
void CreateSamplerImpl (ISampler **ppSampler, const SamplerDesc &SamplerDesc, const ExtraArgsType &... ExtraArgs)
 
void CreateFenceImpl (IFence **ppFence, const FenceDesc &Desc)
 
void CreateQueryImpl (IQuery **ppQuery, const QueryDesc &Desc)
 
void CreateRenderPassImpl (IRenderPass **ppRenderPass, const RenderPassDesc &Desc, const ExtraArgsType &... ExtraArgs)
 
void CreateFramebufferImpl (IFramebuffer **ppFramebuffer, const FramebufferDesc &Desc, const ExtraArgsType &... ExtraArgs)
 
void CreateBLASImpl (IBottomLevelAS **ppBLAS, const BottomLevelASDesc &Desc, const ExtraArgsType &... ExtraArgs)
 
void CreateTLASImpl (ITopLevelAS **ppTLAS, const TopLevelASDesc &Desc, const ExtraArgsType &... ExtraArgs)
 
void CreateSBTImpl (IShaderBindingTable **ppSBT, const ShaderBindingTableDesc &Desc)
 
void CreatePipelineResourceSignatureImpl (IPipelineResourceSignature **ppSignature, const PipelineResourceSignatureDesc &Desc, const ExtraArgsType &... ExtraArgs)
 
- Protected Member Functions inherited from Diligent::RefCountedObject< EngineGLImplTraits ::RenderDeviceInterface >
void operator delete (void *ptr)
 
void operator delete (void *ptr, ObjectAllocatorType &Allocator, const Char *dbgDescription, const char *dbgFileName, const Int32 dbgLineNumber)
 
- Protected Attributes inherited from Diligent::RenderDeviceGLImpl
GLContext m_GLContext
 
std::unordered_set< Stringm_ExtensionStrings
 
ThreadingTools::LockFlag m_VAOCacheLockFlag
 
std::unordered_map< GLContext::NativeGLContextType, VAOCachem_VAOCache
 
ThreadingTools::LockFlag m_FBOCacheLockFlag
 
std::unordered_map< GLContext::NativeGLContextType, FBOCachem_FBOCache
 
std::unique_ptr< TexRegionRenderm_pTexRegionRender
 
- Protected Attributes inherited from Diligent::RenderDeviceBase< EngineGLImplTraits >
RefCntAutoPtr< IEngineFactorym_pEngineFactory
 
DeviceCaps m_DeviceCaps
 
DeviceProperties m_DeviceProperties
 
StateObjectsRegistry< SamplerDescm_SamplersRegistry
 Sampler state registry. More...
 
std::vector< TextureFormatInfoExt, STDAllocatorRawMem< TextureFormatInfoExt > > m_TextureFormatsInfo
 
std::vector< bool, STDAllocatorRawMem< bool > > m_TexFmtInfoInitFlags
 
RefCntWeakPtr< IDeviceContextm_wpImmediateContext
 Weak reference to the immediate context. Immediate context holds strong reference to the device, so we must use weak reference to avoid circular dependencies. More...
 
std::vector< RefCntWeakPtr< IDeviceContext >, STDAllocatorRawMem< RefCntWeakPtr< IDeviceContext > > > m_wpDeferredContexts
 Weak references to deferred contexts. More...
 
IMemoryAllocatorm_RawMemAllocator
 Raw memory allocator. More...
 
FixedBlockMemoryAllocator m_TexObjAllocator
 Allocator for texture objects. More...
 
FixedBlockMemoryAllocator m_TexViewObjAllocator
 Allocator for texture view objects. More...
 
FixedBlockMemoryAllocator m_BufObjAllocator
 Allocator for buffer objects. More...
 
FixedBlockMemoryAllocator m_BuffViewObjAllocator
 Allocator for buffer view objects. More...
 
FixedBlockMemoryAllocator m_ShaderObjAllocator
 Allocator for shader objects. More...
 
FixedBlockMemoryAllocator m_SamplerObjAllocator
 Allocator for sampler objects. More...
 
FixedBlockMemoryAllocator m_PSOAllocator
 Allocator for pipeline state objects. More...
 
FixedBlockMemoryAllocator m_SRBAllocator
 Allocator for shader resource binding objects. More...
 
FixedBlockMemoryAllocator m_ResMappingAllocator
 Allocator for resource mapping objects. More...
 
FixedBlockMemoryAllocator m_FenceAllocator
 Allocator for fence objects. More...
 
FixedBlockMemoryAllocator m_QueryAllocator
 Allocator for query objects. More...
 
FixedBlockMemoryAllocator m_RenderPassAllocator
 Allocator for render pass objects. More...
 
FixedBlockMemoryAllocator m_FramebufferAllocator
 Allocator for framebuffer objects. More...
 
FixedBlockMemoryAllocator m_BLASAllocator
 Allocator for bottom-level acceleration structure objects. More...
 
FixedBlockMemoryAllocator m_TLASAllocator
 Allocator for top-level acceleration structure objects. More...
 
FixedBlockMemoryAllocator m_SBTAllocator
 Allocator for shader binding table objects. More...
 
FixedBlockMemoryAllocator m_PipeResSignAllocator
 Allocator for pipeline resource signature objects. More...
 

Constructor & Destructor Documentation

◆ RenderDeviceGLESImpl()

Diligent::RenderDeviceGLESImpl::RenderDeviceGLESImpl ( IReferenceCounters pRefCounters,
IMemoryAllocator RawMemAllocator,
IEngineFactory pEngineFactory,
const EngineGLCreateInfo InitAttribs,
const SwapChainDesc pSCDesc = nullptr 
)

Member Function Documentation

◆ Invalidate()

bool Diligent::RenderDeviceGLESImpl::Invalidate ( )
virtual

◆ QueryInterface()

virtual void Diligent::RenderDeviceGLESImpl::QueryInterface ( const INTERFACE_ID IID,
IObject **  ppInterface 
)
virtual

Reimplemented from Diligent::RenderDeviceGLImpl.

◆ Resume()

EGLint Diligent::RenderDeviceGLESImpl::Resume ( ANativeWindow *  window)
virtual

◆ Suspend()

void Diligent::RenderDeviceGLESImpl::Suspend ( )
virtual

The documentation for this class was generated from the following files: