Henri Verbeet : d3d10core: Implement D3D10CoreCreateDevice().

Alexandre Julliard julliard at winehq.org
Fri Nov 14 07:55:12 CST 2008


Module: wine
Branch: master
Commit: 3505b5cf17c402dc8e6f9c2455f287c53ccfce81
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=3505b5cf17c402dc8e6f9c2455f287c53ccfce81

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Fri Nov 14 13:57:06 2008 +0100

d3d10core: Implement D3D10CoreCreateDevice().

---

 dlls/d3d10core/d3d10core.spec      |    1 +
 dlls/d3d10core/d3d10core_main.c    |   21 +++++++++++++++++++++
 dlls/d3d10core/d3d10core_private.h |    2 ++
 3 files changed, 24 insertions(+), 0 deletions(-)

diff --git a/dlls/d3d10core/d3d10core.spec b/dlls/d3d10core/d3d10core.spec
index 26c4ab3..9bf25b5 100644
--- a/dlls/d3d10core/d3d10core.spec
+++ b/dlls/d3d10core/d3d10core.spec
@@ -1 +1,2 @@
+@ stdcall D3D10CoreCreateDevice(ptr ptr long long ptr)
 @ stdcall D3D10CoreRegisterLayers()
diff --git a/dlls/d3d10core/d3d10core_main.c b/dlls/d3d10core/d3d10core_main.c
index e0b1eb6..6bc14c6 100644
--- a/dlls/d3d10core/d3d10core_main.c
+++ b/dlls/d3d10core/d3d10core_main.c
@@ -104,3 +104,24 @@ HRESULT WINAPI D3D10CoreRegisterLayers(void)
 
     return S_OK;
 }
+
+HRESULT WINAPI D3D10CoreCreateDevice(IDXGIFactory *factory, IDXGIAdapter *adapter,
+        UINT flags, DWORD unknown0, ID3D10Device **device)
+{
+    IUnknown *dxgi_device;
+    HMODULE d3d10core;
+    HRESULT hr;
+
+    d3d10core = GetModuleHandleA("d3d10core.dll");
+    hr = DXGID3D10CreateDevice(d3d10core, factory, adapter, flags, unknown0, (void **)&dxgi_device);
+    if (FAILED(hr))
+    {
+        WARN("Failed to create device, returning %#x\n", hr);
+        return hr;
+    }
+
+    hr = IUnknown_QueryInterface(dxgi_device, &IID_ID3D10Device, (void **)device);
+    IUnknown_Release(dxgi_device);
+
+    return hr;
+}
diff --git a/dlls/d3d10core/d3d10core_private.h b/dlls/d3d10core/d3d10core_private.h
index 16a4e71..b33845c 100644
--- a/dlls/d3d10core/d3d10core_private.h
+++ b/dlls/d3d10core/d3d10core_private.h
@@ -75,6 +75,8 @@ struct dxgi_device_layer
             void *device_object, REFIID riid, void **device_layer);
 };
 
+HRESULT WINAPI DXGID3D10CreateDevice(HMODULE d3d10core, IDXGIFactory *factory, IDXGIAdapter *adapter,
+        UINT flags, DWORD unknown0, void **device);
 HRESULT WINAPI DXGID3D10RegisterLayers(const struct dxgi_device_layer *layers, UINT layer_count);
 
 #endif /* __WINE_D3D10CORE_PRIVATE_H */




More information about the wine-cvs mailing list