Henri Verbeet : d3d10: Add an initial implementation of D3D10CreateDevice() .

Alexandre Julliard julliard at winehq.org
Wed Oct 22 07:59:58 CDT 2008


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

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Tue Oct 21 15:06:58 2008 +0200

d3d10: Add an initial implementation of D3D10CreateDevice().

---

 dlls/d3d10/d3d10.spec   |    2 +-
 dlls/d3d10/d3d10_main.c |   24 ++++++++++++++++++++++++
 include/d3d10misc.h     |    3 +++
 3 files changed, 28 insertions(+), 1 deletions(-)

diff --git a/dlls/d3d10/d3d10.spec b/dlls/d3d10/d3d10.spec
index f15453a..0b59175 100644
--- a/dlls/d3d10/d3d10.spec
+++ b/dlls/d3d10/d3d10.spec
@@ -1,7 +1,7 @@
 @ stub D3D10CompileEffectFromMemory
 @ stub D3D10CompileShader
 @ stub D3D10CreateBlob
-@ stub D3D10CreateDevice
+@ stdcall D3D10CreateDevice(ptr long ptr long long ptr)
 @ stub D3D10CreateDeviceAndSwapChain
 @ stub D3D10CreateEffectFromMemory
 @ stub D3D10CreateEffectPoolFromMemory
diff --git a/dlls/d3d10/d3d10_main.c b/dlls/d3d10/d3d10_main.c
index c0a65f4..6ed1756 100644
--- a/dlls/d3d10/d3d10_main.c
+++ b/dlls/d3d10/d3d10_main.c
@@ -40,3 +40,27 @@ BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpv)
     }
     return TRUE;
 }
+
+HRESULT WINAPI D3D10CreateDevice(IDXGIAdapter *adapter, D3D10_DRIVER_TYPE driver_type,
+        HMODULE swrast, UINT flags, UINT sdk_version, ID3D10Device **device)
+{
+    struct d3d10_device *object;
+
+    FIXME("adapter %p, driver_type %s, swrast %p, flags %#x, sdk_version %d, device %p partial stub!\n",
+            adapter, debug_d3d10_driver_type(driver_type), swrast, flags, sdk_version, device);
+
+    object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*object));
+    if (!object)
+    {
+        ERR("Failed to allocate D3D device object memory\n");
+        return E_OUTOFMEMORY;
+    }
+
+    object->vtbl = &d3d10_device_vtbl;
+    object->refcount = 1;
+    *device = (ID3D10Device *)object;
+
+    TRACE("Created ID3D10Device %p\n", object);
+
+    return S_OK;
+}
diff --git a/include/d3d10misc.h b/include/d3d10misc.h
index 69b8069..00cf153 100644
--- a/include/d3d10misc.h
+++ b/include/d3d10misc.h
@@ -32,6 +32,9 @@ typedef enum D3D10_DRIVER_TYPE {
     D3D10_DRIVER_TYPE_SOFTWARE  = 3,
 } D3D10_DRIVER_TYPE;
 
+HRESULT WINAPI D3D10CreateDevice(IDXGIAdapter *adapter, D3D10_DRIVER_TYPE driver_type,
+        HMODULE swrast, UINT flags, UINT sdk_version, ID3D10Device **device);
+
 #ifdef __cplusplus
 }
 #endif




More information about the wine-cvs mailing list