From b0b568e32e854a720e97e1085151f54c7e62f047 Mon Sep 17 00:00:00 2001 From: Egor Yusov Date: Thu, 29 Mar 2018 20:05:30 -0700 Subject: Implemented option to specify hardware adapter when initializing the engine in d3d mode --- .../include/EngineFactoryD3DBase.h | 37 +++++++++++----------- 1 file changed, 19 insertions(+), 18 deletions(-) (limited to 'Graphics/GraphicsEngineD3DBase') diff --git a/Graphics/GraphicsEngineD3DBase/include/EngineFactoryD3DBase.h b/Graphics/GraphicsEngineD3DBase/include/EngineFactoryD3DBase.h index 3e91851a..86142c8c 100644 --- a/Graphics/GraphicsEngineD3DBase/include/EngineFactoryD3DBase.h +++ b/Graphics/GraphicsEngineD3DBase/include/EngineFactoryD3DBase.h @@ -147,30 +147,13 @@ public: } } -private: - - template - bool CheckAdapterCompatibility(IDXGIAdapter1 *pDXGIAdapter); - - template<> - bool CheckAdapterCompatibility(IDXGIAdapter1 *pDXGIAdapter) - { - return true; - } - - template<> - bool CheckAdapterCompatibility(IDXGIAdapter1 *pDXGIAdapter) - { - auto hr = D3D12CreateDevice(pDXGIAdapter, D3D_FEATURE_LEVEL_11_0, _uuidof(ID3D12Device), nullptr); - return SUCCEEDED(hr); - } std::vector> FindCompatibleAdapters() { std::vector> DXGIAdapters; CComPtr pFactory; - if (FAILED(CreateDXGIFactory(__uuidof(IDXGIFactory2), (void**)&pFactory))) + if (FAILED(CreateDXGIFactory1(__uuidof(IDXGIFactory2), (void**)&pFactory))) { LOG_ERROR_MESSAGE("Failed to create DXGI Factory"); return std::move(DXGIAdapters); @@ -198,6 +181,24 @@ private: return std::move(DXGIAdapters); } + +private: + + template + bool CheckAdapterCompatibility(IDXGIAdapter1 *pDXGIAdapter); + + template<> + bool CheckAdapterCompatibility(IDXGIAdapter1 *pDXGIAdapter) + { + return true; + } + + template<> + bool CheckAdapterCompatibility(IDXGIAdapter1 *pDXGIAdapter) + { + auto hr = D3D12CreateDevice(pDXGIAdapter, D3D_FEATURE_LEVEL_11_0, _uuidof(ID3D12Device), nullptr); + return SUCCEEDED(hr); + } }; } -- cgit v1.2.3