26 #include "RenderDeviceBase.h" 27 #include "GLContext.h" 29 #include "BaseInterfacesGL.h" 31 #include "TexRegionRender.h" 45 Vendor( GPU_VENDOR::UNKNOWN )
58 RenderDeviceGLImpl( IReferenceCounters *pRefCounters, IMemoryAllocator &RawMemAllocator,
const ContextInitInfo &InitInfo );
60 virtual void QueryInterface(
const Diligent::INTERFACE_ID &IID, IObject **ppInterface )
override;
77 virtual void CreateTextureFromGLHandle(Uint32 GLHandle,
const TextureDesc &TexDesc,
ITexture **ppTexture)
override final;
79 virtual void CreateBufferFromGLHandle(Uint32 GLHandle,
const BufferDesc &BuffDesc,
IBuffer **ppBuffer)
override final;
81 const GPUInfo& GetGPUInfo(){
return m_GPUInfo; }
83 FBOCache& GetFBOCache(GLContext::NativeGLContextType Context);
84 void OnReleaseTexture(
ITexture *pTexture);
86 VAOCache& GetVAOCache(GLContext::NativeGLContextType Context);
88 void OnDestroyBuffer(
IBuffer *pBuffer);
98 friend class GLContextState;
101 GLContext m_GLContext;
103 std::unordered_set<String> m_ExtensionStrings;
105 ThreadingTools::LockFlag m_VAOCacheLockFlag;
106 std::unordered_map<GLContext::NativeGLContextType, VAOCache> m_VAOCache;
108 ThreadingTools::LockFlag m_FBOCacheLockFlag;
109 std::unordered_map<GLContext::NativeGLContextType, FBOCache> m_FBOCache;
113 TexRegionRender m_TexRegionRender;
116 virtual void TestTextureFormat(
TEXTURE_FORMAT TexFormat )
override;
117 bool CheckExtension(
const Char *ExtensionString);
118 void FlagSupportedTexFormats();
119 void QueryDeviceCaps();
TEXTURE_FORMAT
Texture formats.
Definition: GraphicsTypes.h:244
Base implementation of the Diligent::ITextureGL interface.
Definition: TextureBaseGL.h:41
Texture description.
Definition: Texture.h:82
Implementation of the Diligent::IShaderGL interface.
Definition: ShaderGLImpl.h:67
Shader interface.
Definition: Shader.h:288
Describes the buffer initial data.
Definition: Buffer.h:176
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
Implementation of the Diligent::IDeviceContextGL interface.
Definition: DeviceContextGLImpl.h:35
Implementation of the Diligent::ITextureViewGL interface.
Definition: TextureViewGLImpl.h:37
Implementation of the render device interface in OpenGL.
Definition: RenderDeviceGLImpl.h:53
Implementation of the Diligent::IPipelineStateGL interface.
Definition: PipelineStateGLImpl.h:39
Describes the initial data to store in the texture.
Definition: Texture.h:243
Sampler description.
Definition: Sampler.h:52
Buffer interface.
Definition: Buffer.h:200
Base implementation of a render device.
Definition: DeviceObjectBase.h:36
Buffer description.
Definition: Buffer.h:57
Implementation of the Diligent::IBufferGL interface.
Definition: BufferGLImpl.h:40
Definition: PipelineState.h:209
Texture sampler interface.
Definition: Sampler.h:180
Pipeline state description.
Definition: PipelineState.h:179
Implementation of the Diligent::ISwapChainGL interface.
Definition: SwapChainGLImpl.h:34
Shader creation attributes.
Definition: Shader.h:204
Texture inteface.
Definition: Texture.h:276