diff options
| author | Egor Yusov <egor.yusov@gmail.com> | 2019-03-07 04:50:24 +0000 |
|---|---|---|
| committer | Egor Yusov <egor.yusov@gmail.com> | 2019-03-07 04:50:24 +0000 |
| commit | b5d6570531da747cbb6ae578b1ded175ec10a1ce (patch) | |
| tree | c9cc690bd88027018d2eb39b0a7b9fbcf0a49cf7 /Graphics/GraphicsEngineOpenGL | |
| parent | Fixed issue with GLContextWindows (diff) | |
| download | DiligentCore-b5d6570531da747cbb6ae578b1ded175ec10a1ce.tar.gz DiligentCore-b5d6570531da747cbb6ae578b1ded175ec10a1ce.zip | |
Made engine factory interfaces derived from IObject (fixed https://github.com/DiligentGraphics/DiligentCore/issues/72)
Diffstat (limited to 'Graphics/GraphicsEngineOpenGL')
| -rw-r--r-- | Graphics/GraphicsEngineOpenGL/interface/EngineFactoryOpenGL.h | 7 | ||||
| -rw-r--r-- | Graphics/GraphicsEngineOpenGL/src/EngineFactoryOpenGL.cpp | 9 |
2 files changed, 14 insertions, 2 deletions
diff --git a/Graphics/GraphicsEngineOpenGL/interface/EngineFactoryOpenGL.h b/Graphics/GraphicsEngineOpenGL/interface/EngineFactoryOpenGL.h index 63627856..2ad18b7a 100644 --- a/Graphics/GraphicsEngineOpenGL/interface/EngineFactoryOpenGL.h +++ b/Graphics/GraphicsEngineOpenGL/interface/EngineFactoryOpenGL.h @@ -28,6 +28,7 @@ #include <sstream> +#include "../../Primitives/interface/Object.h" #include "../../GraphicsEngine/interface/RenderDevice.h" #include "../../GraphicsEngine/interface/DeviceContext.h" #include "../../GraphicsEngine/interface/SwapChain.h" @@ -51,7 +52,11 @@ namespace Diligent { -class IEngineFactoryOpenGL +// {9BAAC767-02CC-4FFA-9E4B-E1340F572C49} +static const INTERFACE_ID IID_EngineFactoryOpenGL = +{ 0x9baac767, 0x2cc, 0x4ffa, { 0x9e, 0x4b, 0xe1, 0x34, 0xf, 0x57, 0x2c, 0x49 } }; + +class IEngineFactoryOpenGL : public IObject { public: virtual void CreateDeviceAndSwapChainGL(const EngineGLCreateInfo& EngineCI, diff --git a/Graphics/GraphicsEngineOpenGL/src/EngineFactoryOpenGL.cpp b/Graphics/GraphicsEngineOpenGL/src/EngineFactoryOpenGL.cpp index 0b376f0c..18f08312 100644 --- a/Graphics/GraphicsEngineOpenGL/src/EngineFactoryOpenGL.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/EngineFactoryOpenGL.cpp @@ -30,6 +30,7 @@ #include "DeviceContextGLImpl.h" #include "EngineMemory.h" #include "HLSL2GLSLConverterObject.h" +#include "EngineFactoryBase.h" #if PLATFORM_IOS # include "SwapChainGLIOS.h" @@ -58,15 +59,21 @@ namespace Diligent #endif /// Engine factory for OpenGL implementation -class EngineFactoryOpenGLImpl : public IEngineFactoryOpenGL +class EngineFactoryOpenGLImpl : public EngineFactoryBase<IEngineFactoryOpenGL> { public: + static EngineFactoryOpenGLImpl* GetInstance() { static EngineFactoryOpenGLImpl TheFactory; return &TheFactory; } + using TBase = EngineFactoryBase<IEngineFactoryOpenGL>; + EngineFactoryOpenGLImpl() : + TBase(IID_EngineFactoryOpenGL) + {} + virtual void CreateDeviceAndSwapChainGL(const EngineGLCreateInfo& EngineCI, IRenderDevice** ppDevice, IDeviceContext** ppImmediateContext, |
