Additional .exe check for Witcher 3 (GoG version)

This commit is contained in:
Richard Stanway 2015-07-01 15:15:29 +02:00
parent dc3445b8b7
commit c9bca49da4

View File

@ -165,6 +165,8 @@ IDXGISwapChain* CreateDummySwap()
IDXGISwapChain *swap = NULL; IDXGISwapChain *swap = NULL;
IUnknown *device = NULL; IUnknown *device = NULL;
D3D_DRIVER_TYPE driverType = D3D_DRIVER_TYPE_NULL;
D3D10_DRIVER_TYPE driverType10 = D3D10_DRIVER_TYPE_NULL;
HRESULT hErr; HRESULT hErr;
@ -174,9 +176,16 @@ IDXGISwapChain* CreateDummySwap()
//------------------------------------------------------ //------------------------------------------------------
// d3d10 // d3d10
if (_strcmpi(processName, "witcher3.exe") == 0)
{
driverType = D3D_DRIVER_TYPE_HARDWARE;
driverType10 = D3D10_DRIVER_TYPE_HARDWARE;
}
/* CoD: ghosts hack because apparently on nvidia GPUs it has some d3d10 context open */ /* CoD: ghosts hack because apparently on nvidia GPUs it has some d3d10 context open */
if (_strcmpi(processName, "iw6sp64_ship.exe") == 0 || if (_strcmpi(processName, "iw6sp64_ship.exe") == 0 ||
_strcmpi(processName, "iw6mp64_ship.exe") == 0) _strcmpi(processName, "iw6mp64_ship.exe") == 0 ||
_strcmpi(processName, "witcher3.exe") == 0)
goto d3d11_only; goto d3d11_only;
SHGetFolderPath(NULL, CSIDL_SYSTEM, NULL, SHGFP_TYPE_CURRENT, lpDllPath); SHGetFolderPath(NULL, CSIDL_SYSTEM, NULL, SHGFP_TYPE_CURRENT, lpDllPath);
@ -189,7 +198,7 @@ IDXGISwapChain* CreateDummySwap()
if(d3d10Create) if(d3d10Create)
{ {
hErr = (*d3d10Create)(NULL, D3D10_DRIVER_TYPE_NULL, NULL, 0, D3D10_SDK_VERSION, &swapDesc, &swap, &device); hErr = (*d3d10Create)(NULL, driverType10, NULL, 0, D3D10_SDK_VERSION, &swapDesc, &swap, &device);
if(SUCCEEDED(hErr)) if(SUCCEEDED(hErr))
{ {
@ -217,7 +226,7 @@ IDXGISwapChain* CreateDummySwap()
D3D101CREATEPROC d3d101Create = (D3D101CREATEPROC)GetProcAddress(hDll, "D3D10CreateDeviceAndSwapChain1"); D3D101CREATEPROC d3d101Create = (D3D101CREATEPROC)GetProcAddress(hDll, "D3D10CreateDeviceAndSwapChain1");
if(d3d101Create) if(d3d101Create)
{ {
hErr = (*d3d101Create)(NULL, D3D10_DRIVER_TYPE_NULL, NULL, 0, D3D10_FEATURE_LEVEL_10_1, D3D10_1_SDK_VERSION, &swapDesc, &swap, &device); hErr = (*d3d101Create)(NULL, driverType10, NULL, 0, D3D10_FEATURE_LEVEL_10_1, D3D10_1_SDK_VERSION, &swapDesc, &swap, &device);
if(SUCCEEDED(hErr)) if(SUCCEEDED(hErr))
{ {
@ -259,7 +268,7 @@ d3d11_only:
D3D_FEATURE_LEVEL receivedLevel; D3D_FEATURE_LEVEL receivedLevel;
IUnknown *context; IUnknown *context;
hErr = (*d3d11Create)(NULL, D3D_DRIVER_TYPE_NULL, NULL, 0, desiredLevels, 6, D3D11_SDK_VERSION, &swapDesc, &swap, &device, &receivedLevel, &context); hErr = (*d3d11Create)(NULL, driverType, NULL, 0, desiredLevels, 6, D3D11_SDK_VERSION, &swapDesc, &swap, &device, &receivedLevel, &context);
if(SUCCEEDED(hErr)) if(SUCCEEDED(hErr))
{ {
context->Release(); context->Release();