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_base…
==============================================================================
--- 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_base…
==============================================================================
--- 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_swap…
==============================================================================
--- 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?…
==============================================================================
--- 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;