From e72db8de9568bc9dfd38f92fe9fd0737b37edefb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B3zef=20Kucia?= Date: Fri, 19 Jan 2018 13:30:17 +0100 Subject: [PATCH] dxgi: Implement CreateDXGIFactory2(). MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Józef Kucia Signed-off-by: Henri Verbeet Signed-off-by: Alexandre Julliard --- dlls/dxgi/dxgi.spec | 1 + dlls/dxgi/dxgi_main.c | 22 ++++++++++++++++------ include/dxgi1_3.idl | 6 ++++++ 3 files changed, 23 insertions(+), 6 deletions(-) diff --git a/dlls/dxgi/dxgi.spec b/dlls/dxgi/dxgi.spec index 3270a532cbb..801e6a4283c 100644 --- a/dlls/dxgi/dxgi.spec +++ b/dlls/dxgi/dxgi.spec @@ -1,4 +1,5 @@ @ stdcall CreateDXGIFactory(ptr ptr) @ stdcall CreateDXGIFactory1(ptr ptr) +@ stdcall CreateDXGIFactory2(long ptr ptr) @ stdcall DXGID3D10CreateDevice(ptr ptr ptr long ptr long ptr) @ stdcall DXGID3D10RegisterLayers(ptr long) diff --git a/dlls/dxgi/dxgi_main.c b/dlls/dxgi/dxgi_main.c index 60ff3c1260b..36cf73bfeca 100644 --- a/dlls/dxgi/dxgi_main.c +++ b/dlls/dxgi/dxgi_main.c @@ -56,18 +56,28 @@ BOOL WINAPI DllMain(HINSTANCE inst, DWORD reason, void *reserved) return TRUE; } -HRESULT WINAPI CreateDXGIFactory1(REFIID riid, void **factory) +HRESULT WINAPI CreateDXGIFactory2(UINT flags, REFIID iid, void **factory) { - TRACE("riid %s, factory %p\n", debugstr_guid(riid), factory); + TRACE("flags %#x, iid %s, factory %p.\n", flags, debugstr_guid(iid), factory); - return dxgi_factory_create(riid, factory, TRUE); + if (flags) + FIXME("Ignoring flags %#x.\n", flags); + + return dxgi_factory_create(iid, factory, TRUE); } -HRESULT WINAPI CreateDXGIFactory(REFIID riid, void **factory) +HRESULT WINAPI CreateDXGIFactory1(REFIID iid, void **factory) { - TRACE("riid %s, factory %p\n", debugstr_guid(riid), factory); + TRACE("iid %s, factory %p.\n", debugstr_guid(iid), factory); - return dxgi_factory_create(riid, factory, FALSE); + return dxgi_factory_create(iid, factory, TRUE); +} + +HRESULT WINAPI CreateDXGIFactory(REFIID iid, void **factory) +{ + TRACE("iid %s, factory %p.\n", debugstr_guid(iid), factory); + + return dxgi_factory_create(iid, factory, FALSE); } static BOOL get_layer(enum dxgi_device_layer_id id, struct dxgi_device_layer *layer) diff --git a/include/dxgi1_3.idl b/include/dxgi1_3.idl index 5ea20ddb776..b43ca23b96e 100644 --- a/include/dxgi1_3.idl +++ b/include/dxgi1_3.idl @@ -223,3 +223,9 @@ interface IDXGIOutput3 : IDXGIOutput2 [out] UINT *flags ); } + +const UINT DXGI_CREATE_FACTORY_DEBUG = 0x1; + +[local] HRESULT __stdcall CreateDXGIFactory2(UINT flags, REFIID iid, void **factory); + +[local] HRESULT __stdcall DXGIGetDebugInterface1(UINT flags, REFIID iid, void **debug);