Author: gbrunmar Date: Sat Aug 23 10:01:19 2008 New Revision: 35563
URL: http://svn.reactos.org/svn/reactos?rev=35563&view=rev Log: * Refactored D3D9 structures a bit * Started implementing IDirect3D9::CreateDevice()
Added: trunk/reactos/dll/directx/d3d9/d3d9_baseobject.c (with props) trunk/reactos/dll/directx/d3d9/d3d9_baseobject.h (with props) trunk/reactos/dll/directx/d3d9/d3d9_surface.h (with props) trunk/reactos/dll/directx/d3d9/d3d9_swapchain.c (with props) trunk/reactos/dll/directx/d3d9/d3d9_swapchain.h (with props) trunk/reactos/dll/directx/d3d9/device.c (with props) trunk/reactos/dll/directx/d3d9/device.h (with props) Modified: trunk/reactos/dll/directx/d3d9/d3d9.rbuild trunk/reactos/dll/directx/d3d9/d3d9_device.h trunk/reactos/dll/directx/d3d9/d3d9_helpers.c trunk/reactos/dll/directx/d3d9/d3d9_impl.c trunk/reactos/dll/directx/d3d9/d3d9_private.h
Modified: trunk/reactos/dll/directx/d3d9/d3d9.rbuild URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/d3d9/d3d9.rbuil... ============================================================================== --- trunk/reactos/dll/directx/d3d9/d3d9.rbuild [iso-8859-1] (original) +++ trunk/reactos/dll/directx/d3d9/d3d9.rbuild [iso-8859-1] Sat Aug 23 10:01:19 2008 @@ -15,10 +15,13 @@ <file>d3d9.c</file> <file>d3d9_helpers.c</file> <file>d3d9_impl.c</file> + <file>d3d9_baseobject.c</file> <file>d3d9_create.c</file> <file>d3d9_caps.c</file> <file>d3d9_device.c</file> + <file>d3d9_swapchain.c</file> <file>adapter.c</file> + <file>device.c</file> <file>format.c</file> <file>d3d9.rc</file> <file>d3d9.spec</file>
Added: trunk/reactos/dll/directx/d3d9/d3d9_baseobject.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/d3d9/d3d9_baseo... ============================================================================== --- trunk/reactos/dll/directx/d3d9/d3d9_baseobject.c (added) +++ trunk/reactos/dll/directx/d3d9/d3d9_baseobject.c [iso-8859-1] Sat Aug 23 10:01:19 2008 @@ -1,0 +1,36 @@ +#include "d3d9_baseobject.h" +#include "d3d9_device.h" + +#include <debug.h> + +VOID D3D9BaseObject_Destroy() +{ +} + +ID3D9BaseObjectVtbl D3D9BaseObject_Vtbl = +{ + /* D3D9BaseObject */ + D3D9BaseObject_Destroy +}; + +VOID InitD3D9BaseObject(D3D9BaseObject* pBaseObject, enum REF_TYPE RefType, struct _Direct3DDevice9_INT* pBaseDevice) +{ + // TODO: Add dtor to vtbl + pBaseObject->lpVtbl = &D3D9BaseObject_Vtbl; + pBaseObject->RefType = RefType; + pBaseObject->pBaseDevice = pBaseDevice; +} + +ULONG D3D9BaseObject_AddRef(D3D9BaseObject* pBaseObject) +{ + // TODO: Implement ref counting + UNIMPLEMENTED + return 1; +} + +ULONG D3D9BaseObject_Release(D3D9BaseObject* pBaseObject) +{ + // TODO: Implement ref counting + UNIMPLEMENTED + return 0; +}
Propchange: trunk/reactos/dll/directx/d3d9/d3d9_baseobject.c ------------------------------------------------------------------------------ svn:eol-style = native
Added: trunk/reactos/dll/directx/d3d9/d3d9_baseobject.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/d3d9/d3d9_baseo... ============================================================================== --- trunk/reactos/dll/directx/d3d9/d3d9_baseobject.h (added) +++ trunk/reactos/dll/directx/d3d9/d3d9_baseobject.h [iso-8859-1] Sat Aug 23 10:01:19 2008 @@ -1,0 +1,35 @@ +#ifndef _D3D9_BASEOBJECT_H_ +#define _D3D9_BASEOBJECT_H_ + +#include "d3d9_common.h" + +enum REF_TYPE +{ + RT_EXTERNAL, + RT_BUILTIN, + RT_INTERNAL, +}; + +typedef struct _D3D9BaseObjectVtbl +{ + VOID (*Destroy)(); +} ID3D9BaseObjectVtbl; + +typedef struct _D3D9BaseObject +{ +/* 0x0000 */ ID3D9BaseObjectVtbl* lpVtbl; +/* 0x0004 */ DWORD dwUnknown0004; +/* 0x0008 */ DWORD dwUnknown0008; +/* 0x000c */ struct _Direct3DDevice9_INT* pBaseDevice; +/* 0x0010 */ DWORD dwUnknown0010; // Index? Unique id? +/* 0x0014 */ HANDLE hKernelHandle; +/* 0x0018 */ LPDWORD dwUnknown0018; +/* 0x001c */ enum REF_TYPE RefType; +} D3D9BaseObject; + +VOID InitD3D9BaseObject(D3D9BaseObject* pBaseObject, enum REF_TYPE RefType, struct _Direct3DDevice9_INT* pBaseDevice); + +ULONG D3D9BaseObject_AddRef(D3D9BaseObject* pBaseObject); +ULONG D3D9BaseObject_Release(D3D9BaseObject* pBaseObject); + +#endif // _D3D9_BASEOBJECT_H_
Propchange: trunk/reactos/dll/directx/d3d9/d3d9_baseobject.h ------------------------------------------------------------------------------ svn:eol-style = native
Modified: trunk/reactos/dll/directx/d3d9/d3d9_device.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/d3d9/d3d9_devic... ============================================================================== --- trunk/reactos/dll/directx/d3d9/d3d9_device.h [iso-8859-1] (original) +++ trunk/reactos/dll/directx/d3d9/d3d9_device.h [iso-8859-1] Sat Aug 23 10:01:19 2008 @@ -11,83 +11,32 @@ #include "d3d9_common.h" #include <d3d9.h> #include "d3d9_private.h" +#include "d3d9_swapchain.h" +#include "d3d9_surface.h"
extern struct IDirect3DDevice9Vtbl Direct3DDevice9_Vtbl;
-enum REF_TYPE +typedef struct _D3D9HeapTexture { - RT_EXTERNAL, - RT_BUILTIN, - RT_INTERNAL, -}; - -typedef struct _tagD3D9BaseObject_ -{ -/* 0x0000 */ LPDWORD lpVtbl; -/* 0x0004 */ DWORD dwUnknown0004; -/* 0x0008 */ DWORD dwUnknown0008; -/* 0x000c */ struct _tagDirect3DDevice9_INT_* pBaseDevice; -/* 0x0010 */ DWORD dwUnknown0010; // Index? Unique id? -/* 0x0014 */ HANDLE hKernelHandle; -/* 0x0018 */ LPDWORD dwUnknown0018; -/* 0x001c */ enum REF_TYPE RefType; -} D3D9BaseObject; - -typedef struct _tagD3D9BaseSurface_ -{ -/* 0x0000 */ LPDWORD lpVtbl; -/* 0x0024 */ D3DFORMAT DisplayFormat2; // Back buffer format? -/* 0x0028 */ DWORD dwUnknown0028; // Constant/ref count? (1) -/* 0x002c */ DWORD dwUnknown002c; // Refresh rate? -/* 0x0030 */ D3DPOOL SurfacePool; -/* 0x0034 */ DWORD dwUnknown0034; -/* 0x0038 */ DWORD dwUnknown0038; -/* 0x003c */ DWORD dwWidth; -/* 0x0040 */ DWORD dwHeight; -/* 0x0044 */ D3DPOOL ResourcePool; -/* 0x0048 */ D3DFORMAT DisplayFormat; -/* 0x004c */ DWORD dwUnknown004c; -/* 0x0050 */ DWORD dwUnknown0050; -/* 0x0054 */ DWORD dwUnknown0054; -/* 0x0058 */ DWORD dwBpp; -} D3D9BaseSurface; - -typedef struct _tagD3D9Surface_ -{ -/* 0x0000 */ D3D9BaseObject BaseObject; -/* 0x0020 */ D3D9BaseSurface BaseSurface; -} D3D9Surface; - -typedef struct _tagD3D9DriverSurface_ -{ -/* 0x0000 */ D3D9Surface BaseD3D9Surface; -/* 0x005c */ DWORD dwUnknown5c; -/* 0x0060 */ DWORD dwUnknown60; -/* 0x0064 */ struct _tagD3D9DriverSurface_* pPreviousDriverSurface; -/* 0x0068 */ struct _tagD3D9DriverSurface_* pNextDriverSurface; -/* 0x006c */ DWORD dwUnknown6c[8]; -} D3D9DriverSurface; - -typedef struct _tagD3D9TextureHeap_ -{ -/* 0x0000 */ DWORD NumTextures; -/* 0x0004 */ LPDWORD pFirstTexture; -} D3D9TextureHeap; - -typedef struct _tagD3D9ResourceManager_ +/* 0x0000 */ DWORD dwUnknown00; +/* 0x0004 */ DWORD dwUnknown04; +/* 0x0008 */ LPDWORD pUnknown08; +} D3D9HeapTexture; + +typedef struct _D3D9ResourceManager { #ifdef D3D_DEBUG_INFO /* N/A - 0x0000 */ DDSURFACEDESC SurfaceDesc[8]; #endif -/* 0x0000 - 0x0160 */ struct _tagDirect3DDevice9_INT_* pBaseDevice; +/* 0x0000 - 0x0160 */ struct _Direct3DDevice9_INT* pBaseDevice; /* 0x0004 - 0x0164 */ DWORD dwUnknown0004; /* 0x0008 - 0x0168 */ DWORD dwUnknown0008; /* 0x000c - 0x016c */ DWORD MaxSimultaneousTextures; /* 0x0010 - 0x0170 */ DWORD dwUnknown0010; -/* 0x0014 - 0x0174 */ LPDWORD pFirstHeapTexture; +/* 0x0014 - 0x0174 */ D3D9HeapTexture* pTextureHeap; } D3D9ResourceManager;
-typedef struct _tagDirect3D9Cursor_ +typedef struct _D3D9Cursor { /* 0x0000 */ DWORD dwUnknown0000; /* 0x0004 */ DWORD dwUnknown0004; @@ -98,71 +47,15 @@ /* 0x0018 */ DWORD dwWidth; /* 0x001c */ DWORD dwHeight; /* 0x0020 */ DWORD dwUnknown0020[18]; -/* 0x0070 */ struct _tagD3D9BaseDevice_* pBaseDevice; -/* 0x0074 */ struct _tagD3D9SwapChain_* pSwapChain; +/* 0x0070 */ struct _Direct3DDevice9_INT* pBaseDevice; +/* 0x0074 */ struct _Direct3DSwapChain9_INT* pSwapChain; /* 0x0078 */ DWORD dwUnknown0078; /* 0x007c */ DWORD dwMonitorVirtualX; /* 0x0080 */ DWORD dwMonitorVirtualY; /* 0x0084 */ DWORD dwUnknown0084; } D3D9Cursor;
-typedef struct _tagDirect3DSwapChain9_INT_ -{ -/* 0x0000 */ D3D9BaseObject BaseObject; -/* 0x0020 */ struct IDirect3DSwapChain9Vtbl* lpVtbl; -/* 0x0024 */ DWORD dwUnknown0024; -/* 0x0028 */ D3D9Surface* pPrimarySurface; -/* 0x002c */ D3D9Surface* pExtendedPrimarySurface; -/* 0x0030 */ DWORD dwUnknown0030; -/* 0x0034 */ D3D9DriverSurface** ppBackBufferList; -/* 0x0038 */ DWORD dwNumBackBuffers; -/* 0x003c */ DWORD ChainIndex; -/* 0x0040 */ DWORD AdapterGroupIndex; -/* 0x0044 */ D3DPRESENT_PARAMETERS PresentParameters; -/* 0x007c */ DWORD dwUnknown007c; -/* 0x0080 */ DWORD dwUnknown0080[2]; /* Extended format? */ -/* 0x0088 */ D3D9Cursor* pCursor; -/* 0x008c */ DWORD dwUnknown008c[4]; -/* 0x009c */ D3D9_Unknown6BC* pUnknown6BC; -/* 0x00a0 */ LPDWORD dwUnknown00a0; -/* 0x00a4 */ DWORD dwUnknown00a4; -/* 0x00a8 */ DWORD dwUnknown00a8; -/* 0x00ac */ DWORD dwWidth; -/* 0x00b0 */ DWORD dwHeight; -/* 0x00b4 */ DWORD dwUnknown00b4; -/* 0x00b8 */ DWORD dwUnknown00b8; -/* 0x00bc */ DWORD dwUnknown00bc; -/* 0x00c0 */ DWORD dwWidth2; -/* 0x00c4 */ DWORD dwHeight2; -/* 0x00c8 */ DWORD dwUnknown00c8; -/* 0x00cc */ DWORD dwUnknown00cc; -/* 0x00d0 */ DWORD dwUnknown00d0; -/* 0x00d4 */ DWORD dwUnknown00d4; -/* 0x00d8 */ DWORD dwUnknown00d8; -/* 0x00dc */ DWORD dwUnknown00dc; -/* 0x00e0 */ DWORD dwDevModeScale; -/* 0x00e4 */ DWORD dwUnknown00e4; -/* 0x00e8 */ DWORD dwUnknown00e8; -/* 0x00ec */ DWORD dwUnknown00ec; -/* 0x00f0 */ DWORD dwUnknown00f0[27]; - -/* 0x015c */ LPDWORD pUnknown015c; -/* 0x0160 */ DWORD dwUnknown0160[4]; -/* 0x0170 */ HRESULT hResult; - -/* 0x0174 */ DWORD dwUnknown0174[26]; - -/* 0x01DC */ DWORD dwUnknownFlags; /* 1 = Show frame rate, 2 = Flip without vsync */ -/* 0x01E0 */ BOOL bForceRefreshRate; -/* 0x01E4 */ DWORD dwUnknown01dc[4]; - -/* 0x01f4 */ D3DSWAPEFFECT SwapEffect; -/* 0x01f8 */ DWORD dwUnknown01f8; -/* 0x01fc */ DWORD dwUnknown01fc; -/* 0x0200 */ DDGAMMARAMP GammaRamp; -} Direct3DSwapChain9_INT, FAR* LPDIRECT3DSWAPCHAIN9_INT; - -typedef struct _tagDirect3DDevice9_INT_ +typedef struct _Direct3DDevice9_INT { /* 0x0000 */ struct IDirect3DDevice9Vtbl* lpVtbl; /* 0x0004 */ CRITICAL_SECTION CriticalSection; @@ -184,7 +77,7 @@ #endif /* 0x001c - 0x0054 */ BOOL bLockDevice; /* 0x0020 - 0x0058 */ DWORD dwProcessId; -/* 0x0024 - 0x005c */ struct _tagD3D9PUREDEVICE_* lpThis; +/* 0x0024 - 0x005c */ struct _D3D9PUREDEVICE* lpThis; /* 0x0028 - 0x0060 */ DWORD dwDXVersion; /* 0x002c - 0x0064 */ DWORD unknown000011; /* 0x0030 - 0x0068 */ LONG lRefCnt; @@ -195,51 +88,7 @@ /* 0x0044 - 0x007c */ DWORD BehaviourFlags; /* 0x0048 - 0x0080 */ D3D9BaseSurface* pUnknown0010; /* 0x004c - 0x0084 */ DWORD NumAdaptersInDevice; -/* 0x0050 - 0x0088 */ D3DDISPLAYMODE CurrentDisplayMode; -/* 0x0060 - 0x0098 */ DWORD unknown000024; -/* 0x0064 - 0x009c */ DWORD unknown000025; -/* 0x0068 - 0x00a0 */ DWORD unknown000026; -/* 0x006c - 0x00a4 */ DWORD unknown000027; -/* 0x0070 - 0x00a8 */ DWORD unknown000028; -/* 0x0074 - 0x00ac */ DWORD unknown000029; -/* 0x0078 - 0x00b0 */ DWORD unknown000030; -/* 0x007c - 0x00b4 */ DWORD unknown000031; -/* 0x0080 - 0x00b8 */ DWORD unknown000032; -/* 0x0084 - 0x00bc */ DWORD unknown000033; -/* 0x0088 - 0x00c0 */ DWORD unknown000034; -/* 0x008c - 0x00c4 */ DWORD unknown000035; -/* 0x0090 - 0x00c8 */ DWORD unknown000036; -/* 0x0094 - 0x00cc */ DWORD unknown000037; -/* 0x0098 - 0x00d0 */ DWORD unknown000038; -/* 0x009c - 0x00d4 */ DWORD unknown000039; -/* 0x00a0 - 0x00d8 */ DWORD unknown000040; -/* 0x00a4 - 0x00dc */ DWORD unknown000041; -/* 0x00a8 - 0x00e0 */ DWORD unknown000042; -/* 0x00ac - 0x00e4 */ DWORD unknown000043; -/* 0x00b0 - 0x00e8 */ DWORD unknown000044; -/* 0x00b4 - 0x00ec */ DWORD unknown000045; -/* 0x00b8 - 0x00f0 */ DWORD unknown000046; -/* 0x00bc - 0x00f4 */ DWORD unknown000047; -/* 0x00c0 - 0x00f8 */ DWORD unknown000048; -/* 0x00c4 - 0x00fc */ DWORD unknown000049; -/* 0x00c8 - 0x0100 */ DWORD unknown000050; -/* 0x00cc - 0x0104 */ DWORD unknown000051; -/* 0x00d0 - 0x0108 */ DWORD unknown000052; -/* 0x00d4 - 0x010c */ DWORD unknown000053; -/* 0x00d8 - 0x0110 */ DWORD unknown000054; -/* 0x00dc - 0x0114 */ DWORD unknown000055; -/* 0x00e0 - 0x0118 */ DWORD unknown000056; -/* 0x00e4 - 0x011c */ DWORD unknown000057; -/* 0x00e8 - 0x0120 */ DWORD unknown000058; -/* 0x00ec - 0x0124 */ DWORD unknown000059; -/* 0x00f0 - 0x0128 */ DWORD unknown000060; -/* 0x00f4 - 0x012c */ DWORD unknown000061; -/* 0x00f8 - 0x0130 */ DWORD unknown000062; -/* 0x00fc - 0x0134 */ DWORD unknown000063; -/* 0x0100 - 0x0138 */ DWORD unknown000064; -/* 0x0104 - 0x013c */ DWORD unknown000065; -/* 0x0108 - 0x0140 */ DWORD unknown000066; -/* 0x010c - 0x0144 */ DWORD unknown000067; +/* 0x0050 - 0x0088 */ D3DDISPLAYMODE CurrentDisplayMode[D3D9_INT_MAX_NUM_ADAPTERS]; /* 0x0110 - 0x0148 */ DWORD AdapterIndexInGroup[D3D9_INT_MAX_NUM_ADAPTERS]; /* 0x0140 - 0x0178 */ D3D9_DEVICEDATA DeviceData[D3D9_INT_MAX_NUM_ADAPTERS]; /* 0x1df0 - 0x1e28 */ LPDIRECT3DSWAPCHAIN9_INT pSwapChains[D3D9_INT_MAX_NUM_ADAPTERS]; @@ -308,7 +157,7 @@ /* 0x1f44 */ DWORD unknown002001; } DIRECT3DDEVICE9_INT, FAR* LPDIRECT3DDEVICE9_INT;
-typedef struct _tagD3D9PUREDEVICE_ +typedef struct _D3D9PUREDEVICE { /* 0x0000 - 0x0000 */ DIRECT3DDEVICE9_INT BaseDevice; /* 0x1f48 */ DWORD unknown002002; @@ -392,7 +241,7 @@ /* 0x2080 */ DWORD unknown002080; /* 0x2084 */ DWORD unknown002081; /* 0x2088 */ DWORD unknown002082; -/* 0x208c */ DWORD unknown002083; +/* 0x208c */ DWORD unknown002083; /* 0x2090 */ DWORD unknown002084; /* 0x2094 */ DWORD unknown002085; /* 0x2098 */ DWORD unknown002086; @@ -409,7 +258,7 @@ /* 0x20c4 */ DWORD unknown002097; /* 0x20c8 */ DWORD unknown002098; /* 0x20cc */ DWORD unknown002099; -/* 0x20d0 */ DWORD unknown002100; +/* 0x20d0 */ DWORD unknown002100; /* 0x20d4 */ DWORD unknown002101; /* 0x20d8 */ DWORD unknown002102; /* 0x20dc */ DWORD unknown002103; @@ -629,7 +478,7 @@ /* 0x2434 */ DWORD unknown002317; } D3D9PUREDEVICE, FAR *LPD3D9PUREDEVICE;
-typedef struct _tagD3D9HALDEVICE_ +typedef struct _D3D9HALDEVICE { /* 0x0000 */ D3D9PUREDEVICE PureDevice; #ifdef D3D_DEBUG_INFO
Modified: trunk/reactos/dll/directx/d3d9/d3d9_helpers.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/d3d9/d3d9_helpe... ============================================================================== --- trunk/reactos/dll/directx/d3d9/d3d9_helpers.c [iso-8859-1] (original) +++ trunk/reactos/dll/directx/d3d9/d3d9_helpers.c [iso-8859-1] Sat Aug 23 10:01:19 2008 @@ -81,7 +81,7 @@
HRESULT SafeAppendString(IN OUT LPSTR Dst, IN DWORD DstSize, IN LPCSTR Src) { - DWORD CurrentDstLength; + size_t CurrentDstLength; if (Dst == NULL || DstSize == 0) return DDERR_INVALIDPARAMS;
Modified: trunk/reactos/dll/directx/d3d9/d3d9_impl.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/d3d9/d3d9_impl.... ============================================================================== --- trunk/reactos/dll/directx/d3d9/d3d9_impl.c [iso-8859-1] (original) +++ trunk/reactos/dll/directx/d3d9/d3d9_impl.c [iso-8859-1] Sat Aug 23 10:01:19 2008 @@ -11,6 +11,7 @@ #include <debug.h> #include "d3d9_helpers.h" #include "adapter.h" +#include "device.h" #include "format.h"
#define LOCK_D3D9() EnterCriticalSection(&This->d3d9_cs); @@ -894,6 +895,7 @@ struct IDirect3DDevice9** ppReturnedDeviceInterface) { DWORD NumAdaptersToCreate; + HRESULT Ret;
LPDIRECT3D9_INT This = impl_from_IDirect3D9(iface); LOCK_D3D9(); @@ -977,9 +979,10 @@
*ppReturnedDeviceInterface = 0;
- UNIMPLEMENTED - - return D3D_OK; + Ret = CreateD3D9HalDevice(This, Adapter, hFocusWindow, BehaviourFlags, pPresentationParameters, NumAdaptersToCreate, ppReturnedDeviceInterface); + + UNLOCK_D3D9(); + return Ret; }
IDirect3D9Vtbl Direct3D9_Vtbl =
Modified: trunk/reactos/dll/directx/d3d9/d3d9_private.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/d3d9/d3d9_priva... ============================================================================== --- trunk/reactos/dll/directx/d3d9/d3d9_private.h [iso-8859-1] (original) +++ trunk/reactos/dll/directx/d3d9/d3d9_private.h [iso-8859-1] Sat Aug 23 10:01:19 2008 @@ -8,7 +8,7 @@ #ifndef _D3D9_PRIVATE_H_ #define _D3D9_PRIVATE_H_
-#include <windows.h> +#include "d3d9_common.h" #include <ddraw.h>
#define D3D9_INT_MAX_NUM_ADAPTERS 12 @@ -25,14 +25,14 @@
typedef struct _D3D9_GETAVAILDRIVERMEMORYDATA { -/* 0x0000 */ struct _D3D9Unknown6BC_* pUnknown6BC; +/* 0x0000 */ struct _D3D9_Unknown6BC* pUnknown6BC; /* 0x0004 */ D3D9_GETAVAILDRIVERMEMORY_TYPE dwMemoryType; /* 0x0008 */ DWORD dwTextureType; /* 0x000c */ DWORD dwFree; } D3D9_GETAVAILDRIVERMEMORYDATA, FAR* LPD3D9_GETAVAILDRIVERMEMORYDATA; typedef BOOL (WINAPI FAR* LPD3D9_GETAVAILDRIVERMEMORY)(LPD3D9_GETAVAILDRIVERMEMORYDATA);
-typedef struct _D3D9Unknown6BC_ +typedef struct _D3D9_Unknown6BC { /* 0x0000 */ HANDLE hDirectDrawLocal; /* 0x0004 */ LPDWORD pUnknown0004; @@ -78,7 +78,7 @@ /* 0x00BC */ DDGAMMARAMP GammaRamp; } D3D9_Unknown6BC;
-typedef struct _tagD3D9_DRIVERCAPS +typedef struct _D3D9_DRIVERCAPS { /* 0x0000 */ D3DCAPS9 DriverCaps9; /* 0x0130 */ DWORD dwDisplayWidth; @@ -147,20 +147,20 @@ /* 0x00a4 */ D3DDEVTYPE DeviceType; } D3D9_CALLBACKS;
-typedef struct _tagD3D9_DEVICEDATA_ +typedef struct _D3D9_DEVICEDATA { /* 0x0000 */ D3D9_DRIVERCAPS DriverCaps; /* 0x0178 */ D3D9_CALLBACKS D3D9Callbacks; /* 0x0220 */ CHAR szDeviceName[CCHDEVICENAME]; /* 0x0240 */ HDC hDC; /* 0x0244 */ GUID DisplayGuid; -/* 0x0254 */ D3D9_Unknown6BC* pUnknown6BC; +/* 0x0254 */ struct _D3D9_Unknown6BC* pUnknown6BC; /* 0x0258 */ D3DDEVTYPE DeviceType; /* 0x025c */ HMODULE hD3DRefDll; /* 0x0260 */ DWORD unknown0152; } D3D9_DEVICEDATA, FAR *LPD3D9_DEVICEDATA;
-typedef struct _tagDIRECT3D9DisplayAdapterInfo_ +typedef struct _Direct3D9DisplayAdapterInfo { /* 0x0000 */ GUID DisplayGuid; /* 0x0010 */ CHAR szDeviceName[MAX_PATH]; @@ -179,13 +179,13 @@ /* 0x02b8 */ DWORD unknown000105; } Direct3D9DisplayAdapterInfo, FAR* LPDIRECT3D9_DISPLAYADAPTER;
-typedef struct _tagDIRECT3D9_INT_ +typedef struct _DIRECT3D9_INT { /* 0x0000 */ struct IDirect3D9Vtbl *lpVtbl; /* LPDIRECTD3D9 function table */ /* 0x0004 */ CRITICAL_SECTION d3d9_cs; /* 0x001c */ DWORD unknown000007; /* 0x00000001 */ /* 0x0020 */ DWORD dwProcessId; -/* 0x0024 */ struct _tagDIRECT3D9_INT_ *lpInt; +/* 0x0024 */ struct _DIRECT3D9_INT *lpInt; /* 0x0028 */ LONG lRefCnt; /* Increases and decreases by AddRef() and Release() */ /* 0x002c */ UINT NumDisplayAdapters; /* 0x0030 */ Direct3D9DisplayAdapterInfo DisplayAdapters[D3D9_INT_MAX_NUM_ADAPTERS];
Added: trunk/reactos/dll/directx/d3d9/d3d9_surface.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/d3d9/d3d9_surfa... ============================================================================== --- trunk/reactos/dll/directx/d3d9/d3d9_surface.h (added) +++ trunk/reactos/dll/directx/d3d9/d3d9_surface.h [iso-8859-1] Sat Aug 23 10:01:19 2008 @@ -1,0 +1,41 @@ +#ifndef _D3D9_SURFACE_H_ +#define _D3D9_SURFACE_H_ + +#include "d3d9_baseobject.h" + +typedef struct _D3D9BaseSurface +{ +/* 0x0000 */ LPDWORD lpVtbl; +/* 0x0024 */ D3DFORMAT DisplayFormat2; // Back buffer format? +/* 0x0028 */ DWORD dwUnknown0028; // Constant/ref count? (1) +/* 0x002c */ DWORD dwUnknown002c; // Refresh rate? +/* 0x0030 */ D3DPOOL SurfacePool; +/* 0x0034 */ DWORD dwUnknown0034; +/* 0x0038 */ DWORD dwUnknown0038; +/* 0x003c */ DWORD dwWidth; +/* 0x0040 */ DWORD dwHeight; +/* 0x0044 */ D3DPOOL ResourcePool; +/* 0x0048 */ D3DFORMAT DisplayFormat; +/* 0x004c */ DWORD dwUnknown004c; +/* 0x0050 */ DWORD dwUnknown0050; +/* 0x0054 */ DWORD dwUnknown0054; +/* 0x0058 */ DWORD dwBpp; +} D3D9BaseSurface; + +typedef struct _D3D9Surface +{ +/* 0x0000 */ D3D9BaseObject BaseObject; +/* 0x0020 */ D3D9BaseSurface BaseSurface; +} D3D9Surface; + +typedef struct _D3D9DriverSurface +{ +/* 0x0000 */ D3D9Surface BaseD3D9Surface; +/* 0x005c */ DWORD dwUnknown5c; +/* 0x0060 */ DWORD dwUnknown60; +/* 0x0064 */ struct _D3D9DriverSurface* pPreviousDriverSurface; +/* 0x0068 */ struct _D3D9DriverSurface* pNextDriverSurface; +/* 0x006c */ DWORD dwUnknown6c[8]; +} D3D9DriverSurface; + +#endif // _D3D9_SURFACE_H_
Propchange: trunk/reactos/dll/directx/d3d9/d3d9_surface.h ------------------------------------------------------------------------------ svn:eol-style = native
Added: trunk/reactos/dll/directx/d3d9/d3d9_swapchain.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/d3d9/d3d9_swapc... ============================================================================== --- trunk/reactos/dll/directx/d3d9/d3d9_swapchain.c (added) +++ trunk/reactos/dll/directx/d3d9/d3d9_swapchain.c [iso-8859-1] Sat Aug 23 10:01:19 2008 @@ -1,0 +1,153 @@ +#include "d3d9_swapchain.h" + +#include <debug.h> +#include <ddraw.h> + +#include "d3d9_helpers.h" +#include "d3d9_device.h" + +/* Convert a IDirect3DSwapChain9 pointer safely to the internal implementation struct */ +static LPDIRECT3DSWAPCHAIN9_INT IDirect3DSwapChain9ToImpl(LPDIRECT3DSWAPCHAIN9 iface) +{ + if (IsBadWritePtr(iface, sizeof(LPDIRECT3DSWAPCHAIN9_INT))) + return NULL; + + return (LPDIRECT3DSWAPCHAIN9_INT)((ULONG_PTR)iface - FIELD_OFFSET(Direct3DSwapChain9_INT, lpVtbl)); +} + +/* IDirect3DSwapChain9: IUnknown implementation */ +static HRESULT WINAPI Direct3DSwapChain9_QueryInterface(LPDIRECT3DSWAPCHAIN9 iface, REFIID riid, void** ppvObject) +{ + LPDIRECT3DSWAPCHAIN9_INT This = IDirect3DSwapChain9ToImpl(iface); + + if (IsEqualGUID(riid, &IID_IUnknown) || IsEqualGUID(riid, &IID_IDirect3DSwapChain9)) + { + IUnknown_AddRef(iface); + *ppvObject = &This->lpVtbl; + return S_OK; + } + + *ppvObject = NULL; + return E_NOINTERFACE; +} + +static ULONG WINAPI Direct3DSwapChain9_AddRef(LPDIRECT3DSWAPCHAIN9 iface) +{ + LPDIRECT3DSWAPCHAIN9_INT This = IDirect3DSwapChain9ToImpl(iface); + D3D9BaseObject* BaseObject = (D3D9BaseObject*)((ULONG_PTR)This - FIELD_OFFSET(Direct3DSwapChain9_INT, lpVtbl) - FIELD_OFFSET(Direct3DSwapChain9_INT, BaseObject)); + return D3D9BaseObject_AddRef(BaseObject); +} + +static ULONG WINAPI Direct3DSwapChain9_Release(LPDIRECT3DSWAPCHAIN9 iface) +{ + LPDIRECT3DSWAPCHAIN9_INT This = IDirect3DSwapChain9ToImpl(iface); + D3D9BaseObject* BaseObject = (D3D9BaseObject*)((ULONG_PTR)This - FIELD_OFFSET(Direct3DSwapChain9_INT, lpVtbl) - FIELD_OFFSET(Direct3DSwapChain9_INT, BaseObject)); + return D3D9BaseObject_Release(BaseObject); +} + +/* IDirect3DSwapChain9 interface */ +static HRESULT WINAPI Direct3DSwapChain9_Present(LPDIRECT3DSWAPCHAIN9 iface, CONST RECT* pSourceRect,CONST RECT* pDestRect,HWND hDestWindowOverride,CONST RGNDATA* pDirtyRegion,DWORD dwFlags) +{ + UNIMPLEMENTED + return D3D_OK; +} + +static HRESULT WINAPI Direct3DSwapChain9_GetFrontBufferData(LPDIRECT3DSWAPCHAIN9 iface, IDirect3DSurface9* pDestSurface) +{ + UNIMPLEMENTED + return D3D_OK; +} + +static HRESULT WINAPI Direct3DSwapChain9_GetBackBuffer(LPDIRECT3DSWAPCHAIN9 iface, UINT iBackBuffer,D3DBACKBUFFER_TYPE Type,IDirect3DSurface9** ppBackBuffer) +{ + UNIMPLEMENTED + return D3D_OK; +} + +static HRESULT WINAPI Direct3DSwapChain9_GetRasterStatus(LPDIRECT3DSWAPCHAIN9 iface, D3DRASTER_STATUS* pRasterStatus) +{ + UNIMPLEMENTED + return D3D_OK; +} + +static HRESULT WINAPI Direct3DSwapChain9_GetDisplayMode(LPDIRECT3DSWAPCHAIN9 iface, D3DDISPLAYMODE* pMode) +{ + UNIMPLEMENTED + return D3D_OK; +} + +static HRESULT WINAPI Direct3DSwapChain9_GetDevice(LPDIRECT3DSWAPCHAIN9 iface, IDirect3DDevice9** ppDevice) +{ + UNIMPLEMENTED + return D3D_OK; +} + +static HRESULT WINAPI Direct3DSwapChain9_GetPresentParameters(LPDIRECT3DSWAPCHAIN9 iface, D3DPRESENT_PARAMETERS* pPresentationParameters) +{ + UNIMPLEMENTED + return D3D_OK; +} + +static IDirect3DSwapChain9Vtbl Direct3DSwapChain9_Vtbl = +{ + /* IUnknown */ + Direct3DSwapChain9_QueryInterface, + Direct3DSwapChain9_AddRef, + Direct3DSwapChain9_Release, + + /* IDirect3DSwapChain9 */ + Direct3DSwapChain9_Present, + Direct3DSwapChain9_GetFrontBufferData, + Direct3DSwapChain9_GetBackBuffer, + Direct3DSwapChain9_GetRasterStatus, + Direct3DSwapChain9_GetDisplayMode, + Direct3DSwapChain9_GetDevice, + Direct3DSwapChain9_GetPresentParameters, +}; + +Direct3DSwapChain9_INT* CreateDirect3DSwapChain9(enum REF_TYPE RefType, struct _Direct3DDevice9_INT* pBaseDevice, DWORD ChainIndex) +{ + Direct3DSwapChain9_INT* pThisSwapChain; + if (FAILED(AlignedAlloc((LPVOID *)&pThisSwapChain, sizeof(Direct3DSwapChain9_INT)))) + { + DPRINT1("Could not create Direct3DSwapChain9_INT"); + return NULL; + } + + InitD3D9BaseObject(&pThisSwapChain->BaseObject, RefType, pBaseDevice); + + pThisSwapChain->lpVtbl = &Direct3DSwapChain9_Vtbl; + + pThisSwapChain->ChainIndex = ChainIndex; + pThisSwapChain->AdapterGroupIndex = ChainIndex; + pThisSwapChain->pUnknown6BC = pBaseDevice->DeviceData[ChainIndex].pUnknown6BC; + pThisSwapChain->pUnknown015c = (LPVOID)0xD3D9D3D9; + + return pThisSwapChain; +} + +VOID Direct3DSwapChain9_SetDisplayMode(Direct3DSwapChain9_INT* pThisSwapChain, D3DDISPLAYMODE* pMode) +{ + pThisSwapChain->dwWidth = pMode->Width; + pThisSwapChain->dwHeight = pMode->Height; +} + +HRESULT Direct3DSwapChain9_Init(Direct3DSwapChain9_INT* pThisSwapChain, D3DPRESENT_PARAMETERS* pPresentationParameters) +{ + int i; + + for (i = 0; i < 256; i++) + { + pThisSwapChain->GammaRamp.red[i] = + pThisSwapChain->GammaRamp.green[i] = + pThisSwapChain->GammaRamp.blue[i] = i; + } + + return Direct3DSwapChain9_Reset(pThisSwapChain, pPresentationParameters); +} + +HRESULT Direct3DSwapChain9_Reset(Direct3DSwapChain9_INT* pThisSwapChain, D3DPRESENT_PARAMETERS* pPresentationParameters) +{ + // TODO: Do all the dirty work... + return D3D_OK; +}
Propchange: trunk/reactos/dll/directx/d3d9/d3d9_swapchain.c ------------------------------------------------------------------------------ svn:eol-style = native
Added: trunk/reactos/dll/directx/d3d9/d3d9_swapchain.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/d3d9/d3d9_swapc... ============================================================================== --- trunk/reactos/dll/directx/d3d9/d3d9_swapchain.h (added) +++ trunk/reactos/dll/directx/d3d9/d3d9_swapchain.h [iso-8859-1] Sat Aug 23 10:01:19 2008 @@ -1,0 +1,72 @@ +#ifndef _D3D9_SWAPCHAIN_H_ +#define _D3D9_SWAPCHAIN_H_ + +#include "d3d9_common.h" +#include <d3d9.h> +#include <ddraw.h> +#include "d3d9_baseobject.h" + +typedef struct _Direct3DSwapChain9_INT +{ +/* 0x0000 */ D3D9BaseObject BaseObject; +/* 0x0020 */ struct IDirect3DSwapChain9Vtbl* lpVtbl; +/* 0x0024 */ DWORD dwUnknown0024; +/* 0x0028 */ struct _D3D9Surface* pPrimarySurface; +/* 0x002c */ struct _D3D9Surface* pExtendedPrimarySurface; +/* 0x0030 */ DWORD dwUnknown0030; +/* 0x0034 */ struct _D3D9DriverSurface** ppBackBufferList; +/* 0x0038 */ DWORD dwNumBackBuffers; +/* 0x003c */ DWORD ChainIndex; +/* 0x0040 */ DWORD AdapterGroupIndex; +/* 0x0044 */ D3DPRESENT_PARAMETERS PresentParameters; +/* 0x007c */ DWORD dwUnknown007c; +/* 0x0080 */ DWORD dwUnknown0080[2]; /* Extended format? */ +/* 0x0088 */ struct _D3D9Cursor* pCursor; +/* 0x008c */ DWORD dwUnknown008c[4]; +/* 0x009c */ struct _D3D9_Unknown6BC* pUnknown6BC; +/* 0x00a0 */ LPDWORD dwUnknown00a0; +/* 0x00a4 */ DWORD dwUnknown00a4; +/* 0x00a8 */ DWORD dwUnknown00a8; +/* 0x00ac */ DWORD dwWidth; +/* 0x00b0 */ DWORD dwHeight; +/* 0x00b4 */ DWORD dwUnknown00b4; +/* 0x00b8 */ DWORD dwUnknown00b8; +/* 0x00bc */ DWORD dwUnknown00bc; +/* 0x00c0 */ DWORD dwWidth2; +/* 0x00c4 */ DWORD dwHeight2; +/* 0x00c8 */ DWORD dwUnknown00c8; +/* 0x00cc */ DWORD dwUnknown00cc; +/* 0x00d0 */ DWORD dwUnknown00d0; +/* 0x00d4 */ DWORD dwUnknown00d4; +/* 0x00d8 */ DWORD dwUnknown00d8; +/* 0x00dc */ DWORD dwUnknown00dc; +/* 0x00e0 */ DWORD dwDevModeScale; +/* 0x00e4 */ DWORD dwUnknown00e4; +/* 0x00e8 */ DWORD dwUnknown00e8; +/* 0x00ec */ DWORD dwUnknown00ec; +/* 0x00f0 */ DWORD dwUnknown00f0[27]; + +/* 0x015c */ LPVOID pUnknown015c; +/* 0x0160 */ DWORD dwUnknown0160[4]; +/* 0x0170 */ HRESULT hResult; + +/* 0x0174 */ DWORD dwUnknown0174[26]; + +/* 0x01DC */ DWORD dwUnknownFlags; /* 1 = Show frame rate, 2 = Flip without vsync */ +/* 0x01E0 */ BOOL bForceRefreshRate; +/* 0x01E4 */ DWORD dwUnknown01dc[4]; + +/* 0x01f4 */ D3DSWAPEFFECT SwapEffect; +/* 0x01f8 */ DWORD dwUnknown01f8; +/* 0x01fc */ DWORD dwUnknown01fc; +/* 0x0200 */ DDGAMMARAMP GammaRamp; +} Direct3DSwapChain9_INT, FAR* LPDIRECT3DSWAPCHAIN9_INT; + + +Direct3DSwapChain9_INT* CreateDirect3DSwapChain9(enum REF_TYPE RefType, struct _Direct3DDevice9_INT* pBaseDevice, DWORD ChainIndex); + +VOID Direct3DSwapChain9_SetDisplayMode(Direct3DSwapChain9_INT* pThisSwapChain, D3DDISPLAYMODE* pMode); +HRESULT Direct3DSwapChain9_Init(Direct3DSwapChain9_INT* pThisSwapChain, D3DPRESENT_PARAMETERS* pPresentationParameters); +HRESULT Direct3DSwapChain9_Reset(Direct3DSwapChain9_INT* pThisSwapChain, D3DPRESENT_PARAMETERS* pPresentationParameters); + +#endif // _D3D9_SWAPCHAIN_H_
Propchange: trunk/reactos/dll/directx/d3d9/d3d9_swapchain.h ------------------------------------------------------------------------------ svn:eol-style = native
Added: trunk/reactos/dll/directx/d3d9/device.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/d3d9/device.c?r... ============================================================================== --- trunk/reactos/dll/directx/d3d9/device.c (added) +++ trunk/reactos/dll/directx/d3d9/device.c [iso-8859-1] Sat Aug 23 10:01:19 2008 @@ -1,0 +1,108 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS ReactX + * FILE: dll/directx/d3d9/device.c + * PURPOSE: Direct3D9's device creation + * PROGRAMERS: Gregor Gullwi <gbrunmar (dot) ros (at) gmail (dot) com> + */ + +#include "device.h" +#include <debug.h> +#include "d3d9_helpers.h" + +static HRESULT InitD3D9ResourceManager(D3D9ResourceManager* pThisResourceManager, LPDIRECT3DDEVICE9_INT pDirect3DDevice9) +{ + DWORD MaxSimultaneousTextures; + + MaxSimultaneousTextures = max(1, pDirect3DDevice9->DeviceData[0].DriverCaps.DriverCaps9.MaxSimultaneousTextures); + + if (FAILED(AlignedAlloc((LPVOID *)&pThisResourceManager->pTextureHeap, sizeof(DWORD) + MaxSimultaneousTextures * sizeof(int) * 3))) + { + DPRINT1("Could not allocate texture heap"); + return DDERR_OUTOFMEMORY; + } + + // TODO: Init texture heap + + pThisResourceManager->MaxSimultaneousTextures = MaxSimultaneousTextures; + pThisResourceManager->pBaseDevice = pDirect3DDevice9; + + return D3D_OK; +} + +HRESULT InitD3D9BaseDevice(LPDIRECT3DDEVICE9_INT pThisBaseDevice, LPDIRECT3D9_INT pDirect3D9, + UINT Adapter, D3DDEVTYPE DeviceType, HWND hFocusWindow, DWORD BehaviourFlags, + D3DPRESENT_PARAMETERS* pPresentationParameters, DWORD NumAdaptersToCreate) +{ + D3D9ResourceManager* pResourceManager; + DWORD i; + D3DDISPLAYMODE DisplayMode; + + // Insert Reset/Ctor here + + if (FAILED(AlignedAlloc((LPVOID *)&pResourceManager, sizeof(D3D9ResourceManager))) || + FAILED(InitD3D9ResourceManager(pResourceManager, pThisBaseDevice))) + { + DPRINT1("Could not create resource manager"); + return DDERR_OUTOFMEMORY; + } + + pThisBaseDevice->pResourceManager = pResourceManager; + + pThisBaseDevice->pDirect3D9 = pDirect3D9; + pThisBaseDevice->DeviceType = DeviceType; + pThisBaseDevice->hWnd = hFocusWindow; + pThisBaseDevice->AdjustedBehaviourFlags = BehaviourFlags; + pThisBaseDevice->BehaviourFlags = BehaviourFlags; + pThisBaseDevice->NumAdaptersInDevice = NumAdaptersToCreate; + + // TODO: Query driver for correct DX version + pThisBaseDevice->dwDXVersion = 9; + + DisplayMode = pThisBaseDevice->CurrentDisplayMode[0]; + for (i = 0; i < NumAdaptersToCreate; i++) + { + pThisBaseDevice->CurrentDisplayMode[i] = pThisBaseDevice->CurrentDisplayMode[0]; + pThisBaseDevice->AdapterIndexInGroup[i] = i; + // TODO: Fill pThisBaseDevice->DeviceData[i] + + pThisBaseDevice->pSwapChains[i] = CreateDirect3DSwapChain9(RT_BUILTIN, pThisBaseDevice, i); + pThisBaseDevice->pSwapChains2[i] = pThisBaseDevice->pSwapChains[i]; + Direct3DSwapChain9_SetDisplayMode(pThisBaseDevice->pSwapChains[i], &DisplayMode); + + if (FAILED(Direct3DSwapChain9_Init(pThisBaseDevice->pSwapChains[i], pPresentationParameters))) + { + DPRINT1("Failed to init swap chain: %d", i); + return DDERR_GENERIC; + } + } + + return D3D_OK; +} + +HRESULT CreateD3D9HalDevice(LPDIRECT3D9_INT pDirect3D9, UINT Adapter, + HWND hFocusWindow, DWORD BehaviourFlags, + D3DPRESENT_PARAMETERS* pPresentationParameters, + DWORD NumAdaptersToCreate, + struct IDirect3DDevice9** ppReturnedDeviceInterface) +{ + HRESULT Ret; + + if (FAILED(AlignedAlloc((LPVOID *)ppReturnedDeviceInterface, sizeof(D3D9HALDEVICE)))) + { + DPRINT1("Not enough memory to create HAL device"); + return DDERR_OUTOFMEMORY; + } + + Ret = InitD3D9BaseDevice((LPDIRECT3DDEVICE9_INT)*ppReturnedDeviceInterface, pDirect3D9, Adapter, + D3DDEVTYPE_HAL, hFocusWindow, BehaviourFlags, + pPresentationParameters, NumAdaptersToCreate); + + if (FAILED(Ret)) + { + AlignedFree((LPVOID)*ppReturnedDeviceInterface); + return Ret; + } + + return D3D_OK; +}
Propchange: trunk/reactos/dll/directx/d3d9/device.c ------------------------------------------------------------------------------ svn:eol-style = native
Added: trunk/reactos/dll/directx/d3d9/device.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/d3d9/device.h?r... ============================================================================== --- trunk/reactos/dll/directx/d3d9/device.h (added) +++ trunk/reactos/dll/directx/d3d9/device.h [iso-8859-1] Sat Aug 23 10:01:19 2008 @@ -1,0 +1,20 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS ReactX + * FILE: dll/directx/d3d9/device.h + * PURPOSE: Direct3D9's device creation + * PROGRAMERS: Gregor Gullwi <gbrunmar (dot) ros (at) gmail (dot) com> + */ + +#ifndef _DEVICE_H_ +#define _DEVICE_H_ + +#include "d3d9_device.h" + +HRESULT CreateD3D9HalDevice(LPDIRECT3D9_INT pDirect3D9, UINT Adapter, + HWND hFocusWindow, DWORD BehaviourFlags, + D3DPRESENT_PARAMETERS* pPresentationParameters, + DWORD NumAdaptersToCreate, + struct IDirect3DDevice9** ppReturnedDeviceInterface); + +#endif // _DEVICE_H_
Propchange: trunk/reactos/dll/directx/d3d9/device.h ------------------------------------------------------------------------------ svn:eol-style = native