[vlc-devel] [PATCH 01/29] direct3d11: remove the deprecated USE_DXGI code
Steve Lhomme
robux4 at videolabs.io
Thu Jan 19 11:10:36 CET 2017
---
modules/video_output/win32/direct3d11.c | 112 +-------------------------------
1 file changed, 1 insertion(+), 111 deletions(-)
diff --git a/modules/video_output/win32/direct3d11.c b/modules/video_output/win32/direct3d11.c
index ac0dc00..1834828 100644
--- a/modules/video_output/win32/direct3d11.c
+++ b/modules/video_output/win32/direct3d11.c
@@ -49,11 +49,7 @@
#include "../../video_chroma/dxgi_fmt.h"
#if !VLC_WINSTORE_APP
-# if USE_DXGI
-# define D3D11CreateDeviceAndSwapChain(args...) sys->OurD3D11CreateDeviceAndSwapChain(args)
-# else
-# define D3D11CreateDevice(args...) sys->OurD3D11CreateDevice(args)
-# endif
+# define D3D11CreateDevice(args...) sys->OurD3D11CreateDevice(args)
# define D3DCompile(args...) sys->OurD3DCompile(args)
#endif
@@ -177,14 +173,6 @@ static void UpdateQuadOpacity(vout_display_t *, const d3d_quad_t *, float);
static int Control(vout_display_t *vd, int query, va_list args);
static void Manage(vout_display_t *vd);
-/* All the #if USE_DXGI contain an alternative method to setup dx11
- They both need to be benchmarked to see which performs better */
-#if USE_DXGI
-/* I have no idea why MS decided dxgi headers do not define this
- As they do have prototypes for d3d11 functions */
-typedef HRESULT(WINAPI *PFN_CREATE_DXGI_FACTORY)(REFIID riid, void **ppFactory);
-#endif
-
/* TODO: Move to a direct3d11_shaders header */
static const char* globVertexShaderFlat = "\
struct VS_INPUT\
@@ -360,15 +348,6 @@ static int OpenHwnd(vout_display_t *vd)
return VLC_EGENERIC;
}
-# if USE_DXGI
- HINSTANCE hdxgi_dll = LoadLibrary(TEXT("DXGI.DLL"));
- if (!hdxgi_dll) {
- msg_Warn(vd, "cannot load dxgi.dll, aborting");
- Direct3D11Destroy(vd);
- return VLC_EGENERIC;
- }
-# endif
-
vout_display_sys_t *sys = vd->sys = calloc(1, sizeof(vout_display_sys_t));
if (!sys)
return VLC_ENOMEM;
@@ -383,40 +362,6 @@ static int OpenHwnd(vout_display_t *vd)
return VLC_EGENERIC;
}
-# if USE_DXGI
- sys->hdxgi_dll = hdxgi_dll;
-
- /* TODO : enable all dxgi versions from 1.3 -> 1.1 */
- PFN_CREATE_DXGI_FACTORY OurCreateDXGIFactory =
- (void *)GetProcAddress(hdxgi_dll, "CreateDXGIFactory");
- if (!OurCreateDXGIFactory) {
- msg_Err(vd, "Cannot locate reference to CreateDXGIFactory in dxgi DLL");
- Direct3D11Destroy(vd);
- return VLC_EGENERIC;
- }
-
- UINT i_factory_flags = 0;
-#ifndef NDEBUG
- i_factory_flags |= DXGI_CREATE_FACTORY_DEBUG;
-#endif
-
- /* TODO : detect the directx version supported and use IID_IDXGIFactory3 or 2 */
- HRESULT hr = OurCreateDXGIFactory(&IID_IDXGIFactory2, (void **)&sys->dxgifactory);
- if (FAILED(hr)) {
- msg_Err(vd, "Could not create dxgi factory. (hr=0x%lX)", hr);
- Direct3D11Destroy(vd);
- return VLC_EGENERIC;
- }
-
- sys->OurD3D11CreateDeviceAndSwapChain =
- (void *)GetProcAddress(hd3d11_dll, "D3D11CreateDeviceAndSwapChain");
- if (!sys->OurD3D11CreateDeviceAndSwapChain) {
- msg_Err(vd, "Cannot locate reference to D3D11CreateDeviceAndSwapChain in d3d11 DLL");
- Direct3D11Destroy(vd);
- return VLC_EGENERIC;
- }
-
-# else
sys->OurD3D11CreateDevice =
(void *)GetProcAddress(hd3d11_dll, "D3D11CreateDevice");
if (!sys->OurD3D11CreateDevice) {
@@ -424,7 +369,6 @@ static int OpenHwnd(vout_display_t *vd)
Direct3D11Destroy(vd);
return VLC_EGENERIC;
}
-# endif
return VLC_SUCCESS;
}
#else
@@ -1128,11 +1072,6 @@ static void Direct3D11Destroy(vout_display_t *vd)
#if !VLC_WINSTORE_APP
vout_display_sys_t *sys = vd->sys;
-# if USE_DXGI
- if (sys->hdxgi_dll)
- FreeLibrary(sys->hdxgi_dll);
-# endif
-
if (sys->hd3d11_dll)
FreeLibrary(sys->hd3d11_dll);
if (sys->hd3dcompiler_dll)
@@ -1213,53 +1152,6 @@ static int Direct3D11Open(vout_display_t *vd, video_format_t *fmt)
D3D_FEATURE_LEVEL_9_1,
};
-# if USE_DXGI
- /* TODO : list adapters for the user to choose from */
- hr = IDXGIFactory2_EnumAdapters(sys->dxgifactory, 0, &dxgiadapter);
- if (FAILED(hr)) {
- msg_Err(vd, "Could not create find factory. (hr=0x%lX)", hr);
- return VLC_EGENERIC;
- }
-
- IDXGIOutput* output;
- hr = IDXGIAdapter_EnumOutputs(dxgiadapter, 0, &output);
- if (FAILED(hr)) {
- msg_Err(vd, "Could not Enumerate DXGI Outputs. (hr=0x%lX)", hr);
- IDXGIAdapter_Release(dxgiadapter);
- return VLC_EGENERIC;
- }
-
- DXGI_MODE_DESC md;
- memset(&md, 0, sizeof(md));
- md.Width = fmt->i_visible_width;
- md.Height = fmt->i_visible_height;
- md.Format = scd.BufferDesc.Format;
- md.Scaling = DXGI_MODE_SCALING_UNSPECIFIED;
-
- hr = IDXGIOutput_FindClosestMatchingMode(output, &md, &scd.BufferDesc, NULL);
- if (FAILED(hr)) {
- msg_Err(vd, "Failed to find a supported video mode. (hr=0x%lX)", hr);
- IDXGIAdapter_Release(dxgiadapter);
- return VLC_EGENERIC;
- }
-
- /* mode desc doesn't carry over the width and height*/
- scd.BufferDesc.Width = fmt->i_visible_width;
- scd.BufferDesc.Height = fmt->i_visible_height;
-
- hr = D3D11CreateDeviceAndSwapChain(dxgiadapter,
- D3D_DRIVER_TYPE_UNKNOWN, NULL, creationFlags,
- featureLevels, ARRAYSIZE(featureLevels),
- D3D11_SDK_VERSION, &scd, &sys->dxgiswapChain,
- &sys->d3ddevice, NULL, &sys->d3dcontext);
- IDXGIAdapter_Release(dxgiadapter);
- if (FAILED(hr)) {
- msg_Err(vd, "Could not Create the D3D11 device and SwapChain. (hr=0x%lX)", hr);
- return VLC_EGENERIC;
- }
-
-# else
-
static const D3D_DRIVER_TYPE driverAttempts[] = {
D3D_DRIVER_TYPE_HARDWARE,
D3D_DRIVER_TYPE_WARP,
@@ -1316,8 +1208,6 @@ static int Direct3D11Open(vout_display_t *vd, video_format_t *fmt)
msg_Err(vd, "Could not create the SwapChain. (hr=0x%lX)", hr);
return VLC_EGENERIC;
}
-
-# endif
#endif
vlc_fourcc_t i_src_chroma = fmt->i_chroma;
--
2.10.2
More information about the vlc-devel
mailing list