summaryrefslogtreecommitdiffstats
path: root/Graphics/GraphicsEngineVulkan
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/GraphicsEngineVulkan
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/GraphicsEngineVulkan')
-rw-r--r--Graphics/GraphicsEngineVulkan/interface/EngineFactoryVk.h7
-rw-r--r--Graphics/GraphicsEngineVulkan/src/EngineFactoryVk.cpp8
2 files changed, 13 insertions, 2 deletions
diff --git a/Graphics/GraphicsEngineVulkan/interface/EngineFactoryVk.h b/Graphics/GraphicsEngineVulkan/interface/EngineFactoryVk.h
index 861f5514..4e986054 100644
--- a/Graphics/GraphicsEngineVulkan/interface/EngineFactoryVk.h
+++ b/Graphics/GraphicsEngineVulkan/interface/EngineFactoryVk.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"
@@ -48,7 +49,11 @@
namespace Diligent
{
-class IEngineFactoryVk
+// {F554EEE4-57C2-4637-A508-85BE80DC657C}
+static const INTERFACE_ID IID_EngineFactoryVk =
+{ 0xf554eee4, 0x57c2, 0x4637, { 0xa5, 0x8, 0x85, 0xbe, 0x80, 0xdc, 0x65, 0x7c } };
+
+class IEngineFactoryVk : public IObject
{
public:
virtual void CreateDeviceAndContextsVk(const EngineVkCreateInfo& EngineCI,
diff --git a/Graphics/GraphicsEngineVulkan/src/EngineFactoryVk.cpp b/Graphics/GraphicsEngineVulkan/src/EngineFactoryVk.cpp
index acb6265a..4014e6b6 100644
--- a/Graphics/GraphicsEngineVulkan/src/EngineFactoryVk.cpp
+++ b/Graphics/GraphicsEngineVulkan/src/EngineFactoryVk.cpp
@@ -34,12 +34,13 @@
#include "CommandQueueVkImpl.h"
#include "VulkanUtilities/VulkanInstance.h"
#include "VulkanUtilities/VulkanPhysicalDevice.h"
+#include "EngineFactoryBase.h"
namespace Diligent
{
/// Engine factory for Vk implementation
-class EngineFactoryVkImpl : public IEngineFactoryVk
+class EngineFactoryVkImpl : public EngineFactoryBase<IEngineFactoryVk>
{
public:
static EngineFactoryVkImpl* GetInstance()
@@ -48,6 +49,11 @@ public:
return &TheFactory;
}
+ using TBase = EngineFactoryBase<IEngineFactoryVk>;
+ EngineFactoryVkImpl() :
+ TBase(IID_EngineFactoryVk)
+ {}
+
void CreateDeviceAndContextsVk(const EngineVkCreateInfo& EngineCI,
IRenderDevice** ppDevice,
IDeviceContext** ppContexts,