Branimir Karadžić 10 years ago
parent
commit
b29ca3cfbb
2 changed files with 87 additions and 87 deletions
  1. 82 82
      src/renderer_d3d11.cpp
  2. 5 5
      src/renderer_d3d11.h

+ 82 - 82
src/renderer_d3d11.cpp

@@ -8,12 +8,12 @@
 #if BGFX_CONFIG_RENDERER_DIRECT3D11
 #if BGFX_CONFIG_RENDERER_DIRECT3D11
 #	include "renderer_d3d11.h"
 #	include "renderer_d3d11.h"
 
 
-#if BX_PLATFORM_XBOXONE || BX_PLATFORM_WINRT
+#if !BX_PLATFORM_WINDOWS
 #	include <inspectable.h>
 #	include <inspectable.h>
 #	if BX_PLATFORM_WINRT
 #	if BX_PLATFORM_WINRT
 #		include <windows.ui.xaml.media.dxinterop.h>
 #		include <windows.ui.xaml.media.dxinterop.h>
 #	endif // BX_PLATFORM_WINRT
 #	endif // BX_PLATFORM_WINRT
-#endif // BX_PLATFORM_XBOXONE || BX_PLATFORM_WINRT
+#endif // !BX_PLATFORM_WINDOWS
 
 
 #if BGFX_CONFIG_PROFILER_REMOTERY
 #if BGFX_CONFIG_PROFILER_REMOTERY
 #	define BGFX_GPU_PROFILER_BIND(_device, _context) rmt_BindD3D11(_device, _context)
 #	define BGFX_GPU_PROFILER_BIND(_device, _context) rmt_BindD3D11(_device, _context)
@@ -791,17 +791,14 @@ namespace bgfx { namespace d3d11
 			}
 			}
 #endif // USE_D3D11_DYNAMIC_LIB
 #endif // USE_D3D11_DYNAMIC_LIB
 
 
-			HRESULT hr;
-			IDXGIFactory* factory;
-#if BX_PLATFORM_XBOXONE
-			hr = S_OK;
-			factory = NULL;
-#elif BX_PLATFORM_WINRT
+			HRESULT hr = S_OK;
+			IDXGIFactory* factory = NULL;
+#if BX_PLATFORM_WINRT
 			// WinRT requires the IDXGIFactory2 interface, which isn't supported on older platforms
 			// WinRT requires the IDXGIFactory2 interface, which isn't supported on older platforms
 			hr = CreateDXGIFactory1(__uuidof(IDXGIFactory2), (void**)&factory);
 			hr = CreateDXGIFactory1(__uuidof(IDXGIFactory2), (void**)&factory);
-#else
+#elif BX_PLATFORM_WINDOWS
 			hr = CreateDXGIFactory(IID_IDXGIFactory, (void**)&factory);
 			hr = CreateDXGIFactory(IID_IDXGIFactory, (void**)&factory);
-#endif // BX_PLATFORM_XBOXONE || BX_PLATFORM_WINRT
+#endif // BX_PLATFORM_*
 			BX_WARN(SUCCEEDED(hr), "Unable to create DXGI factory.");
 			BX_WARN(SUCCEEDED(hr), "Unable to create DXGI factory.");
 			if (FAILED(hr) )
 			if (FAILED(hr) )
 			{
 			{
@@ -820,60 +817,63 @@ namespace bgfx { namespace d3d11
 					: D3D_DRIVER_TYPE_HARDWARE
 					: D3D_DRIVER_TYPE_HARDWARE
 					;
 					;
 
 
-				IDXGIAdapter* adapter;
-				for (uint32_t ii = 0
-					; DXGI_ERROR_NOT_FOUND != factory->EnumAdapters(ii, &adapter) && ii < BX_COUNTOF(g_caps.gpu)
-					; ++ii
-					)
+				if (NULL != factory)
 				{
 				{
-					DXGI_ADAPTER_DESC desc;
-					hr = adapter->GetDesc(&desc);
-					if (SUCCEEDED(hr) )
+					IDXGIAdapter* adapter;
+					for (uint32_t ii = 0
+						; DXGI_ERROR_NOT_FOUND != factory->EnumAdapters(ii, &adapter) && ii < BX_COUNTOF(g_caps.gpu)
+						; ++ii
+						)
 					{
 					{
-						BX_TRACE("Adapter #%d", ii);
-
-						char description[BX_COUNTOF(desc.Description)];
-						wcstombs(description, desc.Description, BX_COUNTOF(desc.Description) );
-						BX_TRACE("\tDescription: %s", description);
-						BX_TRACE("\tVendorId: 0x%08x, DeviceId: 0x%08x, SubSysId: 0x%08x, Revision: 0x%08x"
-							, desc.VendorId
-							, desc.DeviceId
-							, desc.SubSysId
-							, desc.Revision
-							);
-						BX_TRACE("\tMemory: %" PRIi64 " (video), %" PRIi64 " (system), %" PRIi64 " (shared)"
-							, desc.DedicatedVideoMemory
-							, desc.DedicatedSystemMemory
-							, desc.SharedSystemMemory
-							);
+						DXGI_ADAPTER_DESC desc;
+						hr = adapter->GetDesc(&desc);
+						if (SUCCEEDED(hr) )
+						{
+							BX_TRACE("Adapter #%d", ii);
+
+							char description[BX_COUNTOF(desc.Description)];
+							wcstombs(description, desc.Description, BX_COUNTOF(desc.Description) );
+							BX_TRACE("\tDescription: %s", description);
+							BX_TRACE("\tVendorId: 0x%08x, DeviceId: 0x%08x, SubSysId: 0x%08x, Revision: 0x%08x"
+								, desc.VendorId
+								, desc.DeviceId
+								, desc.SubSysId
+								, desc.Revision
+								);
+							BX_TRACE("\tMemory: %" PRIi64 " (video), %" PRIi64 " (system), %" PRIi64 " (shared)"
+								, desc.DedicatedVideoMemory
+								, desc.DedicatedSystemMemory
+								, desc.SharedSystemMemory
+								);
 
 
-						g_caps.gpu[ii].vendorId = (uint16_t)desc.VendorId;
-						g_caps.gpu[ii].deviceId = (uint16_t)desc.DeviceId;
-						++g_caps.numGPUs;
+							g_caps.gpu[ii].vendorId = (uint16_t)desc.VendorId;
+							g_caps.gpu[ii].deviceId = (uint16_t)desc.DeviceId;
+							++g_caps.numGPUs;
 
 
-						if (NULL == m_adapter)
-						{
-							if ( (BGFX_PCI_ID_NONE != g_caps.vendorId ||             0 != g_caps.deviceId)
-							&&   (BGFX_PCI_ID_NONE == g_caps.vendorId || desc.VendorId == g_caps.vendorId)
-							&&   (               0 == g_caps.deviceId || desc.DeviceId == g_caps.deviceId) )
+							if (NULL == m_adapter)
 							{
 							{
-								m_adapter = adapter;
-								m_adapter->AddRef();
-								m_driverType = D3D_DRIVER_TYPE_UNKNOWN;
-							}
+								if ( (BGFX_PCI_ID_NONE != g_caps.vendorId ||             0 != g_caps.deviceId)
+								&&   (BGFX_PCI_ID_NONE == g_caps.vendorId || desc.VendorId == g_caps.vendorId)
+								&&   (               0 == g_caps.deviceId || desc.DeviceId == g_caps.deviceId) )
+								{
+									m_adapter = adapter;
+									m_adapter->AddRef();
+									m_driverType = D3D_DRIVER_TYPE_UNKNOWN;
+								}
 
 
-							if (BX_ENABLED(BGFX_CONFIG_DEBUG_PERFHUD)
-							&&  0 != strstr(description, "PerfHUD") )
-							{
-								m_adapter = adapter;
-								m_driverType = D3D_DRIVER_TYPE_REFERENCE;
+								if (BX_ENABLED(BGFX_CONFIG_DEBUG_PERFHUD)
+								&&  0 != strstr(description, "PerfHUD") )
+								{
+									m_adapter = adapter;
+									m_driverType = D3D_DRIVER_TYPE_REFERENCE;
+								}
 							}
 							}
 						}
 						}
-					}
 
 
-					DX_RELEASE(adapter, adapter == m_adapter ? 1 : 0);
+						DX_RELEASE(adapter, adapter == m_adapter ? 1 : 0);
+					}
+					DX_RELEASE(factory, NULL != m_adapter ? 1 : 0);
 				}
 				}
-				DX_RELEASE(factory, NULL != m_adapter ? 1 : 0);
 
 
 				D3D_FEATURE_LEVEL featureLevel[] =
 				D3D_FEATURE_LEVEL featureLevel[] =
 				{
 				{
@@ -1032,7 +1032,7 @@ BX_PRAGMA_DIAGNOSTIC_POP();
 
 
 				if (NULL == g_platformData.backBuffer)
 				if (NULL == g_platformData.backBuffer)
 				{
 				{
-#if BX_PLATFORM_XBOXONE || BX_PLATFORM_WINRT
+#if !BX_PLATFORM_WINDOWS
 					hr = adapter->GetParent(__uuidof(IDXGIFactory2), (void**)&m_factory);
 					hr = adapter->GetParent(__uuidof(IDXGIFactory2), (void**)&m_factory);
 					BX_WARN(SUCCEEDED(hr), "Unable to create Direct3D11 device.");
 					BX_WARN(SUCCEEDED(hr), "Unable to create Direct3D11 device.");
 					DX_RELEASE(adapter, 2);
 					DX_RELEASE(adapter, 2);
@@ -1123,7 +1123,7 @@ BX_PRAGMA_DIAGNOSTIC_POP();
 						| DXGI_MWA_NO_WINDOW_CHANGES
 						| DXGI_MWA_NO_WINDOW_CHANGES
 						| DXGI_MWA_NO_ALT_ENTER
 						| DXGI_MWA_NO_ALT_ENTER
 						) );
 						) );
-#endif // BX_PLATFORM_XBOXONE || BX_PLATFORM_WINRT
+#endif // BX_PLATFORM_*
 					BX_WARN(SUCCEEDED(hr), "Failed to create swap chain.");
 					BX_WARN(SUCCEEDED(hr), "Failed to create swap chain.");
 					if (FAILED(hr) )
 					if (FAILED(hr) )
 					{
 					{
@@ -2117,7 +2117,7 @@ BX_PRAGMA_DIAGNOSTIC_POP();
 			if (NULL != m_swapChain)
 			if (NULL != m_swapChain)
 			{
 			{
 				HRESULT hr = S_OK;
 				HRESULT hr = S_OK;
-				uint32_t syncInterval = BX_ENABLED(BX_PLATFORM_XBOXONE || BX_PLATFORM_WINRT)
+				uint32_t syncInterval = BX_ENABLED(!BX_PLATFORM_WINDOWS)
 					? 1 // sync interval of 0 is not supported on WinRT
 					? 1 // sync interval of 0 is not supported on WinRT
 					: !!(m_resolution.m_flags & BGFX_RESET_VSYNC)
 					: !!(m_resolution.m_flags & BGFX_RESET_VSYNC)
 					;
 					;
@@ -2285,7 +2285,7 @@ BX_PRAGMA_DIAGNOSTIC_POP();
 							scd = &swapChainScd;
 							scd = &swapChainScd;
 						}
 						}
 
 
-#if BX_PLATFORM_XBOXONE || BX_PLATFORM_WINRT
+#if !BX_PLATFORM_WINDOWS
 						HRESULT hr;
 						HRESULT hr;
 						if (g_platformData.ndt == 0)
 						if (g_platformData.ndt == 0)
 						{
 						{
@@ -2329,7 +2329,7 @@ BX_PRAGMA_DIAGNOSTIC_POP();
 								, scd
 								, scd
 								, &m_swapChain
 								, &m_swapChain
 								);
 								);
-#endif // BX_PLATFORM_XBOXONE || BX_PLATFORM_WINRT
+#endif // !BX_PLATFORM_WINDOWS
 						BGFX_FATAL(SUCCEEDED(hr), bgfx::Fatal::UnableToInitialize, "Failed to create swap chain.");
 						BGFX_FATAL(SUCCEEDED(hr), bgfx::Fatal::UnableToInitialize, "Failed to create swap chain.");
 					}
 					}
 				}
 				}
@@ -2802,39 +2802,39 @@ BX_PRAGMA_DIAGNOSTIC_POP();
 
 
 		DXGI_FORMAT getBufferFormat()
 		DXGI_FORMAT getBufferFormat()
 		{
 		{
-#if BX_PLATFORM_XBOXONE || BX_PLATFORM_WINRT
-			return m_scd.Format;
-#else
+#if BX_PLATFORM_WINDOWS
 			return m_scd.BufferDesc.Format;
 			return m_scd.BufferDesc.Format;
+#else
+			return m_scd.Format;
 #endif
 #endif
 		}
 		}
 
 
 		uint32_t getBufferWidth()
 		uint32_t getBufferWidth()
 		{
 		{
-#if BX_PLATFORM_XBOXONE || BX_PLATFORM_WINRT
-			return m_scd.Width;
-#else
+#if BX_PLATFORM_WINDOWS
 			return m_scd.BufferDesc.Width;
 			return m_scd.BufferDesc.Width;
+#else
+			return m_scd.Width;
 #endif
 #endif
 		}
 		}
 
 
 		uint32_t getBufferHeight()
 		uint32_t getBufferHeight()
 		{
 		{
-#if BX_PLATFORM_XBOXONE || BX_PLATFORM_WINRT
-			return m_scd.Height;
-#else
+#if BX_PLATFORM_WINDOWS
 			return m_scd.BufferDesc.Height;
 			return m_scd.BufferDesc.Height;
+#else
+			return m_scd.Height;
 #endif
 #endif
 		}
 		}
 
 
 		void setBufferSize(uint32_t _width, uint32_t _height)
 		void setBufferSize(uint32_t _width, uint32_t _height)
 		{
 		{
-#if BX_PLATFORM_XBOXONE || BX_PLATFORM_WINRT
-			m_scd.Width  = _width;
-			m_scd.Height = _height;
-#else
+#if BX_PLATFORM_WINDOWS
 			m_scd.BufferDesc.Width  = _width;
 			m_scd.BufferDesc.Width  = _width;
 			m_scd.BufferDesc.Height = _height;
 			m_scd.BufferDesc.Height = _height;
+#else
+			m_scd.Width  = _width;
+			m_scd.Height = _height;
 #endif
 #endif
 		}
 		}
 
 
@@ -3361,13 +3361,13 @@ BX_PRAGMA_DIAGNOSTIC_POP();
 		D3D_FEATURE_LEVEL m_featureLevel;
 		D3D_FEATURE_LEVEL m_featureLevel;
 		IDXGIAdapter*     m_adapter;
 		IDXGIAdapter*     m_adapter;
 		DXGI_ADAPTER_DESC m_adapterDesc;
 		DXGI_ADAPTER_DESC m_adapterDesc;
-#if BX_PLATFORM_XBOXONE || BX_PLATFORM_WINRT
-		IDXGIFactory2*    m_factory;
-		IDXGISwapChain1*  m_swapChain;
-#else
+#if BX_PLATFORM_WINDOWS
 		IDXGIFactory*     m_factory;
 		IDXGIFactory*     m_factory;
 		IDXGISwapChain*   m_swapChain;
 		IDXGISwapChain*   m_swapChain;
-#endif // BX_PLATFORM_XBOXONE || BX_PLATFORM_WINRT
+#else
+		IDXGIFactory2*    m_factory;
+		IDXGISwapChain1*  m_swapChain;
+#endif // BX_PLATFORM_WINDOWS
 
 
 		uint16_t m_lost;
 		uint16_t m_lost;
 		uint16_t m_numWindows;
 		uint16_t m_numWindows;
@@ -3390,11 +3390,11 @@ BX_PRAGMA_DIAGNOSTIC_POP();
 		Resolution m_resolution;
 		Resolution m_resolution;
 		bool m_wireframe;
 		bool m_wireframe;
 
 
-#if BX_PLATFORM_XBOXONE || BX_PLATFORM_WINRT
-		typedef DXGI_SWAP_CHAIN_DESC1 SwapChainDesc;
-#else
+#if BX_PLATFORM_WINDOWS
 		typedef DXGI_SWAP_CHAIN_DESC  SwapChainDesc;
 		typedef DXGI_SWAP_CHAIN_DESC  SwapChainDesc;
-#endif // BX_PLATFORM_XBOXONE || BX_PLATFORM_WINRT
+#else
+		typedef DXGI_SWAP_CHAIN_DESC1 SwapChainDesc;
+#endif // BX_PLATFORM_WINDOWS
 
 
 		SwapChainDesc m_scd;
 		SwapChainDesc m_scd;
 		uint32_t m_maxAnisotropy;
 		uint32_t m_maxAnisotropy;
@@ -3474,7 +3474,7 @@ BX_PRAGMA_DIAGNOSTIC_POP();
 				}
 				}
 			}
 			}
 		}
 		}
-#endif // BX_PLATFORM_XBOXONE || BX_PLATFORM_WINRT
+#endif // BX_PLATFORM_WINRT
 	}
 	}
 
 
 	void stubMultiDrawInstancedIndirect(uint32_t _numDrawIndirect, ID3D11Buffer* _ptr, uint32_t _offset, uint32_t _stride)
 	void stubMultiDrawInstancedIndirect(uint32_t _numDrawIndirect, ID3D11Buffer* _ptr, uint32_t _offset, uint32_t _stride)

+ 5 - 5
src/renderer_d3d11.h

@@ -6,7 +6,7 @@
 #ifndef BGFX_RENDERER_D3D11_H_HEADER_GUARD
 #ifndef BGFX_RENDERER_D3D11_H_HEADER_GUARD
 #define BGFX_RENDERER_D3D11_H_HEADER_GUARD
 #define BGFX_RENDERER_D3D11_H_HEADER_GUARD
 
 
-#define USE_D3D11_DYNAMIC_LIB !(BX_PLATFORM_XBOXONE || BX_PLATFORM_WINRT)
+#define USE_D3D11_DYNAMIC_LIB BX_PLATFORM_WINDOWS
 
 
 #if !USE_D3D11_DYNAMIC_LIB
 #if !USE_D3D11_DYNAMIC_LIB
 #	undef  BGFX_CONFIG_DEBUG_PIX
 #	undef  BGFX_CONFIG_DEBUG_PIX
@@ -19,13 +19,13 @@ BX_PRAGMA_DIAGNOSTIC_IGNORED_GCC("-Wpragmas");
 BX_PRAGMA_DIAGNOSTIC_IGNORED_MSVC(4005) // warning C4005: '' : macro redefinition
 BX_PRAGMA_DIAGNOSTIC_IGNORED_MSVC(4005) // warning C4005: '' : macro redefinition
 #include <sal.h>
 #include <sal.h>
 #define D3D11_NO_HELPERS
 #define D3D11_NO_HELPERS
-#if BX_PLATFORM_XBOXONE
-#	include <d3d11_x.h>
+#if BX_PLATFORM_WINDOWS
+#	include <d3d11.h>
 #elif BX_PLATFORM_WINRT
 #elif BX_PLATFORM_WINRT
 #	include <d3d11_3.h>
 #	include <d3d11_3.h>
 #else
 #else
-#	include <d3d11.h>
-#endif // BX_PLATFORM_XBOXONE || BX_PLATFORM_WINRT
+#	include <d3d11_x.h>
+#endif // BX_PLATFORM_*
 BX_PRAGMA_DIAGNOSTIC_POP()
 BX_PRAGMA_DIAGNOSTIC_POP()
 
 
 #include "renderer.h"
 #include "renderer.h"