From 757a9c08dec8800c001c020ad139c445eedeed15 Mon Sep 17 00:00:00 2001 From: aliaspider Date: Tue, 6 Feb 2018 18:00:11 +0100 Subject: [PATCH] (D3D) refactors. --- gfx/common/d3d10_common.c | 2 +- gfx/common/d3d11_common.c | 2 +- gfx/common/d3dcompiler_common.c | 33 +++++++++++++++------------------ gfx/common/dxgi_common.c | 2 +- gfx/drivers/d3d11.c | 9 ++------- 5 files changed, 20 insertions(+), 28 deletions(-) diff --git a/gfx/common/d3d10_common.c b/gfx/common/d3d10_common.c index c54028ffa8..45d364d08f 100644 --- a/gfx/common/d3d10_common.c +++ b/gfx/common/d3d10_common.c @@ -57,7 +57,7 @@ HRESULT WINAPI D3D10CreateDeviceAndSwapChain( d3d10_dll, "D3D10CreateDeviceAndSwapChain"); if (!fp) - return TYPE_E_CANTLOADLIBRARY; + return TYPE_E_DLLFUNCTIONNOTFOUND; return fp( pAdapter, DriverType, Software, Flags, SDKVersion, diff --git a/gfx/common/d3d11_common.c b/gfx/common/d3d11_common.c index 3a2c043405..8198db080e 100644 --- a/gfx/common/d3d11_common.c +++ b/gfx/common/d3d11_common.c @@ -51,7 +51,7 @@ HRESULT WINAPI D3D11CreateDeviceAndSwapChain( d3d11_dll, "D3D11CreateDeviceAndSwapChain"); if (!fp) - return TYPE_E_CANTLOADLIBRARY; + return TYPE_E_DLLFUNCTIONNOTFOUND; return fp( pAdapter, DriverType, Software, Flags, pFeatureLevels, FeatureLevels, SDKVersion, diff --git a/gfx/common/d3dcompiler_common.c b/gfx/common/d3dcompiler_common.c index 45e3f7bbb5..42e28886ee 100644 --- a/gfx/common/d3dcompiler_common.c +++ b/gfx/common/d3dcompiler_common.c @@ -59,12 +59,12 @@ HRESULT WINAPI D3DCompile( if (!fp) fp = (pD3DCompile)dylib_proc(d3dcompiler_dll, "D3DCompile"); - if (fp) - return fp( - pSrcData, SrcDataSize, pSourceName, pDefines, pInclude, pEntrypoint, pTarget, Flags1, - Flags2, ppCode, ppErrorMsgs); + if (!fp) + return TYPE_E_DLLFUNCTIONNOTFOUND; - return TYPE_E_CANTLOADLIBRARY; + return fp( + pSrcData, SrcDataSize, pSourceName, pDefines, pInclude, pEntrypoint, pTarget, Flags1, + Flags2, ppCode, ppErrorMsgs); } HRESULT WINAPI D3DCompileFromFile( @@ -79,9 +79,8 @@ HRESULT WINAPI D3DCompileFromFile( ID3DBlob** ppErrorMsgs) { typedef HRESULT(WINAPI * pD3DCompileFromFile)( - LPCWSTR pFileName, const D3D_SHADER_MACRO* pDefines, ID3DInclude* pInclude, - LPCSTR pEntrypoint, LPCSTR pTarget, UINT Flags1, UINT Flags2, ID3DBlob** ppCode, - ID3DBlob** ppErrorMsgs); + LPCWSTR, const D3D_SHADER_MACRO*, ID3DInclude*, LPCSTR, LPCSTR, UINT, UINT, ID3DBlob**, + ID3DBlob**); static pD3DCompileFromFile fp; const char** dll_name = d3dcompiler_dll_list; while (!d3dcompiler_dll && *dll_name) @@ -93,19 +92,17 @@ HRESULT WINAPI D3DCompileFromFile( if (!fp) fp = (pD3DCompileFromFile)dylib_proc(d3dcompiler_dll, "D3DCompileFromFile"); - if (fp) - return fp( - pFileName, pDefines, pInclude, pEntrypoint, pTarget, Flags1, Flags2, ppCode, - ppErrorMsgs); + if (!fp) + return TYPE_E_DLLFUNCTIONNOTFOUND; - return TYPE_E_CANTLOADLIBRARY; + return fp( + pFileName, pDefines, pInclude, pEntrypoint, pTarget, Flags1, Flags2, ppCode, ppErrorMsgs); } HRESULT WINAPI D3DReflect(LPCVOID pSrcData, SIZE_T SrcDataSize, REFIID pInterface, void** ppReflector) { - typedef HRESULT(WINAPI * pD3DCompileFromFile)( - LPCVOID pSrcData, SIZE_T SrcDataSize, REFIID pInterface, void** ppReflector); + typedef HRESULT(WINAPI * pD3DCompileFromFile)(LPCVOID, SIZE_T, REFIID, void**); static pD3DCompileFromFile fp; const char** dll_name = d3dcompiler_dll_list; @@ -118,10 +115,10 @@ HRESULT WINAPI if (!fp) fp = (pD3DCompileFromFile)dylib_proc(d3dcompiler_dll, "D3DReflect"); - if (fp) - return fp(pSrcData, SrcDataSize, pInterface, ppReflector); + if (!fp) + return TYPE_E_DLLFUNCTIONNOTFOUND; - return TYPE_E_CANTLOADLIBRARY; + return fp(pSrcData, SrcDataSize, pInterface, ppReflector); } #endif diff --git a/gfx/common/dxgi_common.c b/gfx/common/dxgi_common.c index b1fdda3c9a..3ab17dbe64 100644 --- a/gfx/common/dxgi_common.c +++ b/gfx/common/dxgi_common.c @@ -47,7 +47,7 @@ HRESULT WINAPI CreateDXGIFactory1(REFIID riid, void** ppFactory) fp = (HRESULT(WINAPI*)(REFIID, void**))dylib_proc(dxgi_dll, "CreateDXGIFactory1"); if (!fp) - return TYPE_E_CANTLOADLIBRARY; + return TYPE_E_DLLFUNCTIONNOTFOUND; return fp(riid, ppFactory); } diff --git a/gfx/drivers/d3d11.c b/gfx/drivers/d3d11.c index 1546a32a18..b06dbdd8e9 100644 --- a/gfx/drivers/d3d11.c +++ b/gfx/drivers/d3d11.c @@ -364,13 +364,8 @@ static void d3d11_gfx_free(void* data) d3d11_release_shader(&d3d11->sprites.shader_font); Release(d3d11->sprites.vbo); - d3d11_release_shader(&d3d11->shaders[VIDEO_SHADER_STOCK_BLEND]); - d3d11_release_shader(&d3d11->shaders[VIDEO_SHADER_MENU]); - d3d11_release_shader(&d3d11->shaders[VIDEO_SHADER_MENU_2]); - d3d11_release_shader(&d3d11->shaders[VIDEO_SHADER_MENU_3]); - d3d11_release_shader(&d3d11->shaders[VIDEO_SHADER_MENU_4]); - d3d11_release_shader(&d3d11->shaders[VIDEO_SHADER_MENU_5]); - d3d11_release_shader(&d3d11->shaders[VIDEO_SHADER_MENU_6]); + for (i = 0; i < GFX_MAX_SHADERS; i++) + d3d11_release_shader(&d3d11->shaders[i]); Release(d3d11->menu_pipeline_vbo); Release(d3d11->blend_pipeline);