Go to the documentation of this file.
63 bool bIsDeviceInternal);
66 IBuffer** ppBuffer) override final;
71 bool bIsDeviceInternal);
73 IShader** ppShader) override final;
79 bool bIsDeviceInternal);
82 ITexture** ppTexture) override final;
87 bool bIsDeviceInternal);
89 ISampler** ppSampler) override final;
105 bool bIsDeviceInternal);
108 bool bIsDeviceInternal);
142 bool IsDeviceInternal);
149 ITexture** ppTexture) override final;
155 IBuffer** ppBuffer) override final;
160 ITexture** ppTexture) override final;
205 std::unordered_map<GLContext::NativeGLContextType, VAOCache>
m_VAOCache;
208 std::unordered_map<GLContext::NativeGLContextType, FBOCache>
m_FBOCache;
214 bool CheckExtension(
const Char* ExtensionString);
215 void FlagSupportedTexFormats();
217 int m_ShowDebugGLOutput = 1;
virtual void CreatePipelineResourceSignature(const PipelineResourceSignatureDesc &Desc, IPipelineResourceSignature **ppSignature) override final
Implementation of IRenderDevice::CreatePipelineResourceSignature() in OpenGL backend.
Definition: RenderDeviceGLImpl.cpp:773
Base interface for a reference counter object that stores the number of strong and weak references an...
Definition: ReferenceCounters.h:44
Shader object implementation in OpenGL backend.
Definition: ShaderGLImpl.hpp:39
Graphics pipeline state creation attributes.
Definition: PipelineState.h:397
char Char
Definition: BasicTypes.h:64
std::unordered_set< String > m_ExtensionStrings
Definition: RenderDeviceGLImpl.hpp:202
Sampler description.
Definition: Sampler.h:58
virtual void CreateComputePipelineState(const ComputePipelineStateCreateInfo &PSOCreateInfo, IPipelineState **ppPipelineState) override final
Implementation of IRenderDevice::CreateComputePipelineState() in OpenGL backend.
Definition: RenderDeviceGLImpl.cpp:738
Texture sampler interface.
Definition: Sampler.h:192
Ray tracing pipeline state description.
Definition: PipelineState.h:443
Pipeline resource signature interface.
Definition: PipelineResourceSignature.h:226
VAOCache & GetVAOCache(GLContext::NativeGLContextType Context)
Definition: RenderDeviceGLImpl.cpp:1278
Pipeline resource signature description.
Definition: PipelineResourceSignature.h:166
Shader binding table interface.
Definition: ShaderBindingTable.h:93
Top-level AS description.
Definition: TopLevelAS.h:49
Pipeline state interface.
Definition: PipelineState.h:505
Query description.
Definition: Query.h:150
virtual void CreateBLAS(const BottomLevelASDesc &Desc, IBottomLevelAS **ppBLAS) override final
Implementation of IRenderDevice::CreateBLAS() in OpenGL backend.
Definition: RenderDeviceGLImpl.cpp:786
GLint MaxUniformBlocks
Definition: RenderDeviceGLImpl.hpp:182
Texture view implementation in OpenGL backend.
Definition: TextureViewGLImpl.hpp:38
Shader interface.
Definition: Shader.h:428
virtual void CreateFence(const FenceDesc &Desc, IFence **ppFence) override final
Implementation of IRenderDevice::CreateFence() in OpenGL backend.
Definition: RenderDeviceGLImpl.cpp:749
Base interface for all dynamic objects in the engine.
Definition: Object.h:41
uint64_t Uint64
64-bit unsigned integer
Definition: BasicTypes.h:50
Device context implementation in OpenGL backend.
Definition: DeviceContextGLImpl.hpp:51
Definition: FBOCache.hpp:42
virtual void TestTextureFormat(TEXTURE_FORMAT TexFormat) override final
Definition: RenderDeviceGLImpl.cpp:1037
Top-level AS interface.
Definition: TopLevelAS.h:151
ThreadingTools::LockFlag m_FBOCacheLockFlag
Definition: RenderDeviceGLImpl.hpp:207
virtual void CreateRayTracingPipelineState(const RayTracingPipelineStateCreateInfo &PSOCreateInfo, IPipelineState **ppPipelineState) override final
Implementation of IRenderDevice::CreateRayTracingPipelineState() in OpenGL backend.
Definition: RenderDeviceGLImpl.cpp:743
Framebuffer interface.
Definition: Framebuffer.h:73
const DeviceLimits & GetDeviceLimits() const
Definition: RenderDeviceGLImpl.hpp:187
void CreateTexture(const TextureDesc &TexDesc, const TextureData *pData, ITexture **ppTexture, bool bIsDeviceInternal)
Implementation of IRenderDevice::CreateTexture() in OpenGL backend.
Definition: RenderDeviceGLImpl.cpp:575
Render pass description.
Definition: RenderPass.h:341
Uint64 GetCommandQueueMask() const
Definition: RenderDeviceGLImpl.hpp:176
FBOCache & GetFBOCache(GLContext::NativeGLContextType Context)
Definition: RenderDeviceGLImpl.cpp:1265
virtual void CreateTLAS(const TopLevelASDesc &Desc, ITopLevelAS **ppTLAS) override final
Implementation of IRenderDevice::CreateTLAS() in OpenGL backend.
Definition: RenderDeviceGLImpl.cpp:793
GLContext m_GLContext
Definition: RenderDeviceGLImpl.hpp:200
virtual void ReleaseStaleResources(bool ForceRelease=false) override final
Implementation of IRenderDevice::ReleaseStaleResources() in OpenGL backend.
Definition: RenderDeviceGLImpl.hpp:163
Shader creation attributes.
Definition: Shader.h:241
virtual void CreateGraphicsPipelineState(const GraphicsPipelineStateCreateInfo &PSOCreateInfo, IPipelineState **ppPipelineState) override final
Implementation of IRenderDevice::CreateGraphicsPipelineState() in OpenGL backend.
Definition: RenderDeviceGLImpl.cpp:733
Unique interface identifier.
Definition: InterfaceID.h:37
Buffer interface.
Definition: Buffer.h:187
ThreadingTools::LockFlag m_VAOCacheLockFlag
Definition: RenderDeviceGLImpl.hpp:204
virtual void QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface) override
Shader binding table description.
Definition: ShaderBindingTable.h:50
Definition: VAOCache.hpp:47
void CreateBuffer(const BufferDesc &BuffDesc, const BufferData *pBuffData, IBuffer **ppBuffer, bool bIsDeviceInternal)
Implementation of IRenderDevice::CreateBuffer() in OpenGL backend.
Definition: RenderDeviceGLImpl.cpp:541
virtual void CreateDummyTexture(const TextureDesc &TexDesc, RESOURCE_STATE InitialState, ITexture **ppTexture) override final
Implementation of IRenderDeviceGL::CreateDummyTexture().
Definition: RenderDeviceGLImpl.cpp:691
Texture description.
Definition: Texture.h:47
virtual void CreateQuery(const QueryDesc &Desc, IQuery **ppQuery) override final
Implementation of IRenderDevice::CreateQuery() in OpenGL backend.
Definition: RenderDeviceGLImpl.cpp:754
GLint MaxTextureUnits
Definition: RenderDeviceGLImpl.hpp:183
virtual void CreateRenderPass(const RenderPassDesc &Desc, IRenderPass **ppRenderPass) override final
Implementation of IRenderDevice::CreateRenderPass() in OpenGL backend.
Definition: RenderDeviceGLImpl.cpp:759
virtual void CreateTextureFromGLHandle(Uint32 GLHandle, Uint32 GLBindTarget, const TextureDesc &TexDesc, RESOURCE_STATE InitialState, ITexture **ppTexture) override final
Implementation of IRenderDeviceGL::CreateTextureFromGLHandle().
Definition: RenderDeviceGLImpl.cpp:636
void OnReleaseTexture(ITexture *pTexture)
Definition: RenderDeviceGLImpl.cpp:1271
std::unique_ptr< TexRegionRender > m_pTexRegionRender
Definition: RenderDeviceGLImpl.hpp:210
#define DILIGENT_CALL_TYPE
Definition: CommonDefinitions.h:45
Describes the initial data to store in the texture.
Definition: Texture.h:221
void OnDestroyBuffer(BufferGLImpl &Buffer)
Definition: RenderDeviceGLImpl.cpp:1291
Compute pipeline state description.
Definition: PipelineState.h:427
Pipeline state object implementation in OpenGL backend.
Definition: PipelineStateGLImpl.hpp:45
Base implementation of a texture object in OpenGL backend.
Definition: TextureBaseGL.hpp:41
Swap chain description.
Definition: GraphicsTypes.h:1347
uint32_t Uint32
32-bit unsigned integer
Definition: BasicTypes.h:51
void CreateSampler(const SamplerDesc &SamplerDesc, ISampler **ppSampler, bool bIsDeviceInternal)
Implementation of IRenderDevice::CreateSampler() in OpenGL backend.
Definition: RenderDeviceGLImpl.cpp:713
size_t GetCommandQueueCount() const
Definition: RenderDeviceGLImpl.hpp:175
virtual void CreateBufferFromGLHandle(Uint32 GLHandle, const BufferDesc &BuffDesc, RESOURCE_STATE InitialState, IBuffer **ppBuffer) override final
Implementation of IRenderDeviceGL::CreateBufferFromGLHandle().
Definition: RenderDeviceGLImpl.cpp:554
Definition: GLContextAndroid.hpp:36
Attributes of the OpenGL-based engine implementation.
Definition: GraphicsTypes.h:2015
Swap chain implementation in OpenGL backend.
Definition: SwapChainGLImpl.hpp:38
virtual void CreateSBT(const ShaderBindingTableDesc &Desc, IShaderBindingTable **ppSBT) override final
Implementation of IRenderDevice::CreateSBT() in OpenGL backend.
Definition: RenderDeviceGLImpl.cpp:800
Render device implementation in OpenGL backend.
Definition: RenderDeviceGLImpl.hpp:45
void OnDestroyPSO(PipelineStateGLImpl &PSO)
Definition: RenderDeviceGLImpl.cpp:1284
Buffer object implementation in OpenGL backend.
Definition: BufferGLImpl.hpp:41
Definition: RenderDeviceGLImpl.hpp:180
TEXTURE_FORMAT
Texture formats.
Definition: GraphicsTypes.h:328
virtual void IdleGPU() override final
Implementation of IRenderDevice::IdleGPU() in OpenGL backend.
Definition: RenderDeviceGLImpl.cpp:1298
Buffer description.
Definition: Buffer.h:74
RenderDeviceGLImpl(IReferenceCounters *pRefCounters, IMemoryAllocator &RawMemAllocator, IEngineFactory *pEngineFactory, const EngineGLCreateInfo &InitAttribs, const SwapChainDesc *pSCDesc=nullptr) noexcept(false)
Definition: RenderDeviceGLImpl.cpp:136
Base interface for a raw memory allocator.
Definition: MemoryAllocator.h:41
void InitTexRegionRender()
Definition: RenderDeviceGLImpl.cpp:536
Fence interface.
Definition: Fence.h:62
void CreateShader(const ShaderCreateInfo &ShaderCreateInfo, IShader **ppShader, bool bIsDeviceInternal)
Implementation of IRenderDevice::CreateShader() in OpenGL backend.
Definition: RenderDeviceGLImpl.cpp:565
GLint MaxStorageBlock
Definition: RenderDeviceGLImpl.hpp:184
Query interface.
Definition: Query.h:177
Framebuffer description.
Definition: Framebuffer.h:46
Definition: GLContextState.hpp:39
Bottom-level AS interface.
Definition: BottomLevelAS.h:207
GLint MaxImagesUnits
Definition: RenderDeviceGLImpl.hpp:185
std::unordered_map< GLContext::NativeGLContextType, VAOCache > m_VAOCache
Definition: RenderDeviceGLImpl.hpp:205
RESOURCE_STATE
Resource usage state.
Definition: GraphicsTypes.h:2814
Describes the buffer initial data.
Definition: Buffer.h:155
Bottom-level AS description.
Definition: BottomLevelAS.h:145
virtual void CreateFramebuffer(const FramebufferDesc &Desc, IFramebuffer **ppFramebuffer) override final
Implementation of IRenderDevice::CreateFramebuffer() in OpenGL backend.
Definition: RenderDeviceGLImpl.cpp:764
Engine factory base interface.
Definition: EngineFactory.h:60
Fence description.
Definition: Fence.h:43
std::unordered_map< GLContext::NativeGLContextType, FBOCache > m_FBOCache
Definition: RenderDeviceGLImpl.hpp:208
Texture inteface.
Definition: Texture.h:273
Render pass interface.
Definition: RenderPass.h:369
Base implementation of a render device.
Definition: RenderDeviceBase.hpp:185
The library uses Direct3D-style math:
Definition: AdvancedMath.hpp:37