summaryrefslogtreecommitdiffstats
path: root/Graphics/GraphicsEngineMetal
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/GraphicsEngineMetal
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/GraphicsEngineMetal')
-rw-r--r--Graphics/GraphicsEngineMetal/interface/EngineFactoryMtl.h7
-rw-r--r--Graphics/GraphicsEngineMetal/src/EngineFactoryMtl.mm8
2 files changed, 13 insertions, 2 deletions
diff --git a/Graphics/GraphicsEngineMetal/interface/EngineFactoryMtl.h b/Graphics/GraphicsEngineMetal/interface/EngineFactoryMtl.h
index ca6088b6..225d1152 100644
--- a/Graphics/GraphicsEngineMetal/interface/EngineFactoryMtl.h
+++ b/Graphics/GraphicsEngineMetal/interface/EngineFactoryMtl.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"
@@ -38,7 +39,11 @@
namespace Diligent
{
-class IEngineFactoryMtl
+// {CF4A590D-2E40-4F48-9579-0D25991F963B}
+static const INTERFACE_ID IID_EngineFactoryMtl =
+{ 0xcf4a590d, 0x2e40, 0x4f48, { 0x95, 0x79, 0xd, 0x25, 0x99, 0x1f, 0x96, 0x3b } };
+
+class IEngineFactoryMtl : public IObject
{
public:
virtual void CreateDeviceAndContextsMtl(const EngineMtlCreateInfo& Attribs,
diff --git a/Graphics/GraphicsEngineMetal/src/EngineFactoryMtl.mm b/Graphics/GraphicsEngineMetal/src/EngineFactoryMtl.mm
index 7516d45e..0aa1edf7 100644
--- a/Graphics/GraphicsEngineMetal/src/EngineFactoryMtl.mm
+++ b/Graphics/GraphicsEngineMetal/src/EngineFactoryMtl.mm
@@ -30,12 +30,13 @@
#include "SwapChainMtlImpl.h"
#include "MtlTypeConversions.h"
#include "EngineMemory.h"
+#include "EngineFactoryBase.h"
namespace Diligent
{
/// Engine factory for Mtl implementation
-class EngineFactoryMtlImpl : public IEngineFactoryMtl
+class EngineFactoryMtlImpl : public EngineFactoryBase<IEngineFactoryMtl>
{
public:
static EngineFactoryMtlImpl* GetInstance()
@@ -44,6 +45,11 @@ public:
return &TheFactory;
}
+ using TBase = EngineFactoryBase<IEngineFactoryMtl>;
+ EngineFactoryMtlImpl() :
+ TBase(IID_EngineFactoryMtl)
+ {}
+
void CreateDeviceAndContextsMtl(const EngineMtlCreateInfo& EngineAttribs,
IRenderDevice** ppDevice,
IDeviceContext** ppContexts,