summaryrefslogtreecommitdiffstats
path: root/Graphics/GraphicsEngineOpenGL
diff options
context:
space:
mode:
authorEgor Yusov <egor.yusov@gmail.com>2019-03-07 04:50:24 +0000
committerEgor Yusov <egor.yusov@gmail.com>2019-03-07 04:50:24 +0000
commitb5d6570531da747cbb6ae578b1ded175ec10a1ce (patch)
treec9cc690bd88027018d2eb39b0a7b9fbcf0a49cf7 /Graphics/GraphicsEngineOpenGL
parentFixed issue with GLContextWindows (diff)
downloadDiligentCore-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.h7
-rw-r--r--Graphics/GraphicsEngineOpenGL/src/EngineFactoryOpenGL.cpp9
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,