From abc3bddb548e6fa7406d99703260f8099c808d1b Mon Sep 17 00:00:00 2001 From: Matthew Parlane Date: Wed, 13 Nov 2013 17:58:49 +1300 Subject: [PATCH] Revert "D3D: Reintroduce depencency on D3DX11 because it's the most straightforward way to bring back some broken features." This reverts commit a83c239765f8add99a360a29bfba2fdb408075c8. --- Source/Core/VideoBackends/D3D/Src/D3DBase.cpp | 60 ------------------- Source/Core/VideoBackends/D3D/Src/D3DBase.h | 25 +------- 2 files changed, 1 insertion(+), 84 deletions(-) diff --git a/Source/Core/VideoBackends/D3D/Src/D3DBase.cpp b/Source/Core/VideoBackends/D3D/Src/D3DBase.cpp index e9e678d841..5434354f37 100644 --- a/Source/Core/VideoBackends/D3D/Src/D3DBase.cpp +++ b/Source/Core/VideoBackends/D3D/Src/D3DBase.cpp @@ -17,13 +17,6 @@ D3DREFLECT PD3DReflect = NULL; pD3DCompile PD3DCompile = NULL; int d3dcompiler_dll_ref = 0; -HINSTANCE hD3DXDll = NULL; -D3DX11COMPILEFROMMEMORYTYPE PD3DX11CompileFromMemory = NULL; -D3DX11FILTERTEXTURETYPE PD3DX11FilterTexture = NULL; -D3DX11SAVETEXTURETOFILEATYPE PD3DX11SaveTextureToFileA = NULL; -D3DX11SAVETEXTURETOFILEWTYPE PD3DX11SaveTextureToFileW = NULL; -int d3dx_dll_ref = 0; - CREATEDXGIFACTORY PCreateDXGIFactory = NULL; HINSTANCE hDXGIDll = NULL; int dxgi_dll_ref = 0; @@ -98,44 +91,6 @@ HRESULT LoadD3D() return S_OK; } -HRESULT LoadD3DX() -{ - if (d3dx_dll_ref++ > 0) return S_OK; - if (hD3DXDll) return S_OK; - - // try to load D3DX11 first to check whether we have proper runtime support - // try to use the dll the backend was compiled against first - don't bother about debug runtimes - hD3DXDll = LoadLibraryA(D3DX11_DLL_A); - if (!hD3DXDll) - { - // if that fails, use the dll which should be available in every SDK which officially supports DX11. - hD3DXDll = LoadLibraryA("d3dx11_42.dll"); - if (!hD3DXDll) - { - MessageBoxA(NULL, "Failed to load d3dx11_42.dll, update your DX11 runtime, please", "Critical error", MB_OK | MB_ICONERROR); - return E_FAIL; - } - else - { - NOTICE_LOG(VIDEO, "Successfully loaded d3dx11_42.dll. If you're having trouble, try updating your DX runtime first."); - } - } - - PD3DX11CompileFromMemory = (D3DX11COMPILEFROMMEMORYTYPE)GetProcAddress(hD3DXDll, "D3DX11CompileFromMemory"); - if (PD3DX11CompileFromMemory == NULL) MessageBoxA(NULL, "GetProcAddress failed for D3DX11CompileFromMemory!", "Critical error", MB_OK | MB_ICONERROR); - - PD3DX11FilterTexture = (D3DX11FILTERTEXTURETYPE)GetProcAddress(hD3DXDll, "D3DX11FilterTexture"); - if (PD3DX11FilterTexture == NULL) MessageBoxA(NULL, "GetProcAddress failed for D3DX11FilterTexture!", "Critical error", MB_OK | MB_ICONERROR); - - PD3DX11SaveTextureToFileA = (D3DX11SAVETEXTURETOFILEATYPE)GetProcAddress(hD3DXDll, "D3DX11SaveTextureToFileA"); - if (PD3DX11SaveTextureToFileA == NULL) MessageBoxA(NULL, "GetProcAddress failed for D3DX11SaveTextureToFileA!", "Critical error", MB_OK | MB_ICONERROR); - - PD3DX11SaveTextureToFileW = (D3DX11SAVETEXTURETOFILEWTYPE)GetProcAddress(hD3DXDll, "D3DX11SaveTextureToFileW"); - if (PD3DX11SaveTextureToFileW == NULL) MessageBoxA(NULL, "GetProcAddress failed for D3DX11SaveTextureToFileW!", "Critical error", MB_OK | MB_ICONERROR); - - return S_OK; -} - HRESULT LoadD3DCompiler() { if (d3dcompiler_dll_ref++ > 0) return S_OK; @@ -177,18 +132,6 @@ void UnloadDXGI() PCreateDXGIFactory = NULL; } -void UnloadD3DX() -{ - if (!d3dx_dll_ref) return; - if (--d3dx_dll_ref != 0) return; - - if (hD3DXDll) FreeLibrary(hD3DXDll); - hD3DXDll = NULL; - PD3DX11FilterTexture = NULL; - PD3DX11SaveTextureToFileA = NULL; - PD3DX11SaveTextureToFileW = NULL; -} - void UnloadD3D() { if (!d3d_dll_ref) return; @@ -272,13 +215,11 @@ HRESULT Create(HWND wnd) hr = LoadDXGI(); if (SUCCEEDED(hr)) hr = LoadD3D(); - if (SUCCEEDED(hr)) hr = LoadD3DX(); if (SUCCEEDED(hr)) hr = LoadD3DCompiler(); if (FAILED(hr)) { UnloadDXGI(); UnloadD3D(); - UnloadD3DX(); UnloadD3DCompiler(); return hr; } @@ -420,7 +361,6 @@ void Close() // unload DLLs UnloadD3D(); - UnloadD3DX(); UnloadDXGI(); } diff --git a/Source/Core/VideoBackends/D3D/Src/D3DBase.h b/Source/Core/VideoBackends/D3D/Src/D3DBase.h index 6e06de6e90..7f26cbd3cc 100644 --- a/Source/Core/VideoBackends/D3D/Src/D3DBase.h +++ b/Source/Core/VideoBackends/D3D/Src/D3DBase.h @@ -5,7 +5,7 @@ #pragma once #include -#include +#include #include #include "Common.h" #include @@ -25,11 +25,9 @@ namespace D3D HRESULT LoadDXGI(); HRESULT LoadD3D(); -HRESULT LoadD3DX(); HRESULT LoadD3DCompiler(); void UnloadDXGI(); void UnloadD3D(); -void UnloadD3DX(); void UnloadD3DCompiler(); D3D_FEATURE_LEVEL GetFeatureLevel(IDXGIAdapter* adapter); @@ -74,27 +72,6 @@ void SetDebugObjectName(T resource, const char* name) } // namespace D3D -// Used to not require the SDK and runtime versions to match: -// Linking with d3dx11.lib makes the most recent d3dx11_xx.dll of the -// compiler's SDK a requirement, but this backend works with DX11 runtimes -// back to August 2009 even if the backend was built with June 2010. -// Add any d3dx11 functions which you want to use here and load them in Create() -typedef HRESULT(WINAPI* D3DX11COMPILEFROMMEMORYTYPE)(LPCSTR, SIZE_T, LPCSTR, const D3D10_SHADER_MACRO*, LPD3D10INCLUDE, LPCSTR, LPCSTR, UINT, UINT, ID3DX11ThreadPump*, ID3D10Blob**, ID3D10Blob**, HRESULT*); -typedef HRESULT(WINAPI* D3DX11FILTERTEXTURETYPE)(ID3D11DeviceContext*, ID3D11Resource*, UINT, UINT); -typedef HRESULT(WINAPI* D3DX11SAVETEXTURETOFILEATYPE)(ID3D11DeviceContext*, ID3D11Resource*, D3DX11_IMAGE_FILE_FORMAT, LPCSTR); -typedef HRESULT(WINAPI* D3DX11SAVETEXTURETOFILEWTYPE)(ID3D11DeviceContext*, ID3D11Resource*, D3DX11_IMAGE_FILE_FORMAT, LPCWSTR); - -extern D3DX11COMPILEFROMMEMORYTYPE PD3DX11CompileFromMemory; -extern D3DX11FILTERTEXTURETYPE PD3DX11FilterTexture; -extern D3DX11SAVETEXTURETOFILEATYPE PD3DX11SaveTextureToFileA; -extern D3DX11SAVETEXTURETOFILEWTYPE PD3DX11SaveTextureToFileW; - -#ifdef UNICODE -#define PD3DX11SaveTextureToFile PD3DX11SaveTextureToFileW -#else -#define PD3DX11SaveTextureToFile PD3DX11SaveTextureToFileA -#endif - typedef HRESULT (WINAPI *CREATEDXGIFACTORY)(REFIID, void**); extern CREATEDXGIFACTORY PCreateDXGIFactory; typedef HRESULT (WINAPI *D3D11CREATEDEVICE)(IDXGIAdapter*, D3D_DRIVER_TYPE, HMODULE, UINT, CONST D3D_FEATURE_LEVEL*, UINT, UINT, ID3D11Device**, D3D_FEATURE_LEVEL*, ID3D11DeviceContext**);