Module: wine Branch: master Commit: 8622cdac40471c9be4c26d1d12d7bb066d92ebc6 URL: http://source.winehq.org/git/wine.git/?a=commit;h=8622cdac40471c9be4c26d1d12...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Wed Apr 20 17:42:30 2016 +0200
d3dx10: Implement D3DX10CreateDevice().
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com Signed-off-by: Matteo Bruni mbruni@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/d3dx10_43/Makefile.in | 1 + dlls/d3dx10_43/d3dx10_43.spec | 2 +- dlls/d3dx10_43/d3dx10_43_main.c | 21 ++++++++++++++++++++- include/d3dx10core.idl | 2 ++ 4 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/dlls/d3dx10_43/Makefile.in b/dlls/d3dx10_43/Makefile.in index cb48f0d..6e67a6b 100644 --- a/dlls/d3dx10_43/Makefile.in +++ b/dlls/d3dx10_43/Makefile.in @@ -1,5 +1,6 @@ MODULE = d3dx10_43.dll IMPORTLIB = d3dx10 +IMPORTS = d3d10_1
C_SRCS = \ d3dx10_43_main.c diff --git a/dlls/d3dx10_43/d3dx10_43.spec b/dlls/d3dx10_43/d3dx10_43.spec index 0673f6a..53059bf 100644 --- a/dlls/d3dx10_43/d3dx10_43.spec +++ b/dlls/d3dx10_43/d3dx10_43.spec @@ -18,7 +18,7 @@ @ stub D3DX10CreateAsyncShaderResourceViewProcessor(ptr ptr ptr) @ stub D3DX10CreateAsyncTextureInfoProcessor(ptr ptr) @ stub D3DX10CreateAsyncTextureProcessor(ptr ptr ptr) -@ stub D3DX10CreateDevice(ptr long long long ptr) +@ stdcall D3DX10CreateDevice(ptr long long long ptr) @ stub D3DX10CreateDeviceAndSwapChain(ptr long long long ptr ptr ptr) @ stdcall D3DX10CreateEffectFromFileA(str ptr ptr str long long ptr ptr ptr ptr ptr ptr) @ stdcall D3DX10CreateEffectFromFileW(wstr ptr ptr str long long ptr ptr ptr ptr ptr ptr) diff --git a/dlls/d3dx10_43/d3dx10_43_main.c b/dlls/d3dx10_43/d3dx10_43_main.c index fa4fa79..1b60fc5 100644 --- a/dlls/d3dx10_43/d3dx10_43_main.c +++ b/dlls/d3dx10_43/d3dx10_43_main.c @@ -33,7 +33,7 @@ #include "winuser.h" #include "objbase.h"
-#include "d3d10.h" +#include "d3d10_1.h" #include "d3dx10core.h"
WINE_DEFAULT_DEBUG_CHANNEL(d3dx); @@ -123,3 +123,22 @@ HRESULT WINAPI D3DX10UnsetAllDeviceObjects(ID3D10Device *device)
return E_NOTIMPL; } + +HRESULT WINAPI D3DX10CreateDevice(IDXGIAdapter *adapter, D3D10_DRIVER_TYPE driver_type, + HMODULE swrast, unsigned int flags, ID3D10Device **device) +{ + HRESULT hr; + + TRACE("adapter %p, driver_type %d, swrast %p, flags %#x, device %p.\n", adapter, driver_type, + swrast, flags, device); + + if (SUCCEEDED(hr = D3D10CreateDevice1(adapter, driver_type, swrast, flags, D3D10_FEATURE_LEVEL_10_1, + D3D10_SDK_VERSION, (ID3D10Device1 **)device))) + return hr; + + if (SUCCEEDED(hr = D3D10CreateDevice1(adapter, driver_type, swrast, flags, D3D10_FEATURE_LEVEL_10_0, + D3D10_SDK_VERSION, (ID3D10Device1 **)device))) + return hr; + + return hr; +} diff --git a/include/d3dx10core.idl b/include/d3dx10core.idl index 0e2bf31..6d9927e 100644 --- a/include/d3dx10core.idl +++ b/include/d3dx10core.idl @@ -66,3 +66,5 @@ interface ID3DX10ThreadPump : IUnknown };
cpp_quote("HRESULT WINAPI D3DX10UnsetAllDeviceObjects(ID3D10Device *device);") +cpp_quote("HRESULT WINAPI D3DX10CreateDevice(IDXGIAdapter *adapter, D3D10_DRIVER_TYPE driver_type,") +cpp_quote(" HMODULE swrast, unsigned int flags, ID3D10Device **device);")