Author: gbrunmar Date: Sun Aug 24 05:15:44 2008 New Revision: 35593
URL: http://svn.reactos.org/svn/reactos?rev=35593&view=rev Log: D3D9: * Replace D3D9BaseObject's dependency on Direct3DDevice9 * More HAL device init stuff
Modified: trunk/reactos/dll/directx/d3d9/d3d9_baseobject.c trunk/reactos/dll/directx/d3d9/d3d9_baseobject.h trunk/reactos/dll/directx/d3d9/d3d9_swapchain.c trunk/reactos/dll/directx/d3d9/device.c
Modified: 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 [iso-8859-1] (original) +++ trunk/reactos/dll/directx/d3d9/d3d9_baseobject.c [iso-8859-1] Sun Aug 24 05:15:44 2008 @@ -25,18 +25,18 @@ D3D9BaseObject_Destroy };
-VOID InitD3D9BaseObject(D3D9BaseObject* pBaseObject, enum REF_TYPE RefType, struct _Direct3DDevice9_INT* pBaseDevice) +VOID InitD3D9BaseObject(D3D9BaseObject* pBaseObject, enum REF_TYPE RefType, IUnknown* pUnknown) { pBaseObject->lpVtbl = &D3D9BaseObject_Vtbl; pBaseObject->RefType = RefType; - pBaseObject->pBaseDevice = pBaseDevice; + pBaseObject->pUnknown = pUnknown; }
ULONG D3D9BaseObject_AddRef(D3D9BaseObject* pBaseObject) { - if (pBaseObject->pBaseDevice) + if (pBaseObject->pUnknown) { - pBaseObject->pBaseDevice->lpVtbl->AddRef((IDirect3DDevice9*)&pBaseObject->pBaseDevice->lpVtbl); + pBaseObject->pUnknown->lpVtbl->AddRef((IUnknown*) &pBaseObject->pUnknown->lpVtbl); }
return InterlockedIncrement(&pBaseObject->lRefCnt); @@ -52,9 +52,9 @@
if (Ref == 0) { - if (pBaseObject->pBaseDevice) + if (pBaseObject->pUnknown) { - pBaseObject->pBaseDevice->lpVtbl->Release((IDirect3DDevice9*)&pBaseObject->pBaseDevice->lpVtbl); + pBaseObject->pUnknown->lpVtbl->Release((IUnknown*) &pBaseObject->pUnknown->lpVtbl); } } }
Modified: 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 [iso-8859-1] (original) +++ trunk/reactos/dll/directx/d3d9/d3d9_baseobject.h [iso-8859-1] Sun Aug 24 05:15:44 2008 @@ -27,14 +27,14 @@ /* 0x0000 */ ID3D9BaseObjectVtbl* lpVtbl; /* 0x0004 */ LONG lRefCnt; /* 0x0008 */ DWORD dwNumUsed; -/* 0x000c */ struct _Direct3DDevice9_INT* pBaseDevice; +/* 0x000c */ IUnknown* pUnknown; /* 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); +VOID InitD3D9BaseObject(D3D9BaseObject* pBaseObject, enum REF_TYPE RefType, IUnknown* pUnknown);
ULONG D3D9BaseObject_AddRef(D3D9BaseObject* pBaseObject); ULONG D3D9BaseObject_Release(D3D9BaseObject* pBaseObject);
Modified: 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 [iso-8859-1] (original) +++ trunk/reactos/dll/directx/d3d9/d3d9_swapchain.c [iso-8859-1] Sun Aug 24 05:15:44 2008 @@ -119,7 +119,7 @@ return NULL; }
- InitD3D9BaseObject((D3D9BaseObject*) &pThisSwapChain->BaseObject.lpVtbl, RefType, pBaseDevice); + InitD3D9BaseObject((D3D9BaseObject*) &pThisSwapChain->BaseObject.lpVtbl, RefType, (IUnknown*) &pBaseDevice->lpVtbl);
pThisSwapChain->lpVtbl = &Direct3DSwapChain9_Vtbl;
@@ -149,6 +149,7 @@ }
pThisSwapChain->PresentParameters = pPresentationParameters[pThisSwapChain->ChainIndex]; + pThisSwapChain->SwapEffect = pPresentationParameters->SwapEffect;
return Direct3DSwapChain9_Reset(pThisSwapChain, pPresentationParameters); }
Modified: 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 [iso-8859-1] (original) +++ trunk/reactos/dll/directx/d3d9/device.c [iso-8859-1] Sun Aug 24 05:15:44 2008 @@ -51,6 +51,10 @@
pThisBaseDevice->lpVtbl = &Direct3DDevice9_Vtbl; pThisBaseDevice->lRefCnt = 1; + pThisBaseDevice->dwProcessId = GetCurrentThreadId(); + pThisBaseDevice->pUnknown = (IUnknown*) &pThisBaseDevice->lpVtbl; + InitializeCriticalSection(&pThisBaseDevice->CriticalSection); + pThisBaseDevice->pDirect3D9 = pDirect3D9; pThisBaseDevice->DeviceType = DeviceType; pThisBaseDevice->hWnd = hFocusWindow;