diff --git a/reactos/dll/directx/d3d9/d3d9.rbuild b/reactos/dll/directx/d3d9/d3d9.rbuild index a908ac4c1ac..913f0742f19 100644 --- a/reactos/dll/directx/d3d9/d3d9.rbuild +++ b/reactos/dll/directx/d3d9/d3d9.rbuild @@ -20,6 +20,8 @@ d3d9_caps.c d3d9_device.c d3d9_swapchain.c + d3d9_puredevice.c + d3d9_haldevice.c adapter.c device.c format.c diff --git a/reactos/dll/directx/d3d9/d3d9_device.c b/reactos/dll/directx/d3d9/d3d9_device.c index 376658eedbb..c763724ce0a 100644 --- a/reactos/dll/directx/d3d9/d3d9_device.c +++ b/reactos/dll/directx/d3d9/d3d9_device.c @@ -15,18 +15,18 @@ #define UNLOCK_D3DDEVICE9() if (This->bLockDevice) LeaveCriticalSection(&This->CriticalSection); /* Convert a IDirect3D9 pointer safely to the internal implementation struct */ -LPDIRECT3DDEVICE9_INT impl_from_IDirect3DDevice9(LPDIRECT3DDEVICE9 iface) +static LPDIRECT3DDEVICE9_INT IDirect3DDevice9ToImpl(LPDIRECT3DDEVICE9 iface) { - if (IsBadWritePtr(iface, sizeof(LPDIRECT3DDEVICE9_INT))) + if (NULL == iface) return NULL; return (LPDIRECT3DDEVICE9_INT)((ULONG_PTR)iface - FIELD_OFFSET(DIRECT3DDEVICE9_INT, lpVtbl)); } /* IDirect3DDevice9: IUnknown implementation */ -static HRESULT WINAPI IDirect3DDevice9Impl_QueryInterface(LPDIRECT3DDEVICE9 iface, REFIID riid, void** ppvObject) +HRESULT WINAPI IDirect3DDevice9Base_QueryInterface(LPDIRECT3DDEVICE9 iface, REFIID riid, void** ppvObject) { - LPDIRECT3DDEVICE9_INT This = impl_from_IDirect3DDevice9(iface); + LPDIRECT3DDEVICE9_INT This = IDirect3DDevice9ToImpl(iface); if (IsEqualGUID(riid, &IID_IUnknown) || IsEqualGUID(riid, &IID_IDirect3DDevice9)) { @@ -39,17 +39,17 @@ static HRESULT WINAPI IDirect3DDevice9Impl_QueryInterface(LPDIRECT3DDEVICE9 ifac return E_NOINTERFACE; } -static ULONG WINAPI IDirect3DDevice9Impl_AddRef(LPDIRECT3DDEVICE9 iface) +ULONG WINAPI IDirect3DDevice9Base_AddRef(LPDIRECT3DDEVICE9 iface) { - LPDIRECT3DDEVICE9_INT This = impl_from_IDirect3DDevice9(iface); + LPDIRECT3DDEVICE9_INT This = IDirect3DDevice9ToImpl(iface); ULONG ref = InterlockedIncrement(&This->lRefCnt); return ref; } -static ULONG WINAPI IDirect3DDevice9Impl_Release(LPDIRECT3DDEVICE9 iface) +ULONG WINAPI IDirect3DDevice9Base_Release(LPDIRECT3DDEVICE9 iface) { - LPDIRECT3DDEVICE9_INT This = impl_from_IDirect3DDevice9(iface); + LPDIRECT3DDEVICE9_INT This = IDirect3DDevice9ToImpl(iface); ULONG ref = InterlockedDecrement(&This->lRefCnt); if (ref == 0) @@ -72,7 +72,7 @@ static ULONG WINAPI IDirect3DDevice9Impl_Release(LPDIRECT3DDEVICE9 iface) } /* IDirect3D9Device interface */ -static HRESULT WINAPI IDirect3DDevice9Impl_TestCooperativeLevel(LPDIRECT3DDEVICE9 iface) +HRESULT WINAPI IDirect3DDevice9Base_TestCooperativeLevel(LPDIRECT3DDEVICE9 iface) { UNIMPLEMENTED @@ -83,7 +83,7 @@ static HRESULT WINAPI IDirect3DDevice9Impl_TestCooperativeLevel(LPDIRECT3DDEVICE * @name IDirect3DDevice9::GetAvailableTextureMem * @implemented * -* The function IDirect3DDevice9Impl_GetAvailableTextureMem returns a pointer to the IDirect3D9 object +* The function IDirect3DDevice9Base_GetAvailableTextureMem returns a pointer to the IDirect3D9 object * that created this device. * * @param LPDIRECT3D iface @@ -94,12 +94,12 @@ static HRESULT WINAPI IDirect3DDevice9Impl_TestCooperativeLevel(LPDIRECT3DDEVICE * to the nearest MB. Applications should NOT use this as an exact number. * */ -static UINT WINAPI IDirect3DDevice9Impl_GetAvailableTextureMem(LPDIRECT3DDEVICE9 iface) +UINT WINAPI IDirect3DDevice9Base_GetAvailableTextureMem(LPDIRECT3DDEVICE9 iface) { UINT AvailableTextureMemory = 0; D3D9_GETAVAILDRIVERMEMORYDATA d3d9GetAvailDriverMemoryData; - LPDIRECT3DDEVICE9_INT This = impl_from_IDirect3DDevice9(iface); + LPDIRECT3DDEVICE9_INT This = IDirect3DDevice9ToImpl(iface); LOCK_D3DDEVICE9(); memset(&d3d9GetAvailDriverMemoryData, 0, sizeof(d3d9GetAvailDriverMemoryData)); @@ -116,7 +116,7 @@ static UINT WINAPI IDirect3DDevice9Impl_GetAvailableTextureMem(LPDIRECT3DDEVICE9 return AvailableTextureMemory; } -static HRESULT WINAPI IDirect3DDevice9Impl_EvictManagedResources(LPDIRECT3DDEVICE9 iface) +HRESULT WINAPI IDirect3DDevice9Base_EvictManagedResources(LPDIRECT3DDEVICE9 iface) { UNIMPLEMENTED @@ -127,7 +127,7 @@ static HRESULT WINAPI IDirect3DDevice9Impl_EvictManagedResources(LPDIRECT3DDEVIC * @name IDirect3DDevice9::GetDirect3D * @implemented * -* The function IDirect3DDevice9Impl_GetDirect3D returns a pointer to the IDirect3D9 object +* The function IDirect3DDevice9Base_GetDirect3D returns a pointer to the IDirect3D9 object * that created this device. * * @param LPDIRECT3D iface @@ -141,13 +141,13 @@ static HRESULT WINAPI IDirect3DDevice9Impl_EvictManagedResources(LPDIRECT3DDEVIC * If ppD3D9 is a bad pointer, the return value will be D3DERR_INVALIDCALL. * */ -static HRESULT WINAPI IDirect3DDevice9Impl_GetDirect3D(LPDIRECT3DDEVICE9 iface, IDirect3D9** ppD3D9) +HRESULT WINAPI IDirect3DDevice9Base_GetDirect3D(LPDIRECT3DDEVICE9 iface, IDirect3D9** ppD3D9) { IDirect3D9* pDirect3D9; - LPDIRECT3DDEVICE9_INT This = impl_from_IDirect3DDevice9(iface); + LPDIRECT3DDEVICE9_INT This = IDirect3DDevice9ToImpl(iface); LOCK_D3DDEVICE9(); - if (IsBadWritePtr(ppD3D9, sizeof(IDirect3D9*))) + if (NULL == ppD3D9) { DPRINT1("Invalid ppD3D9 parameter specified"); UNLOCK_D3DDEVICE9(); @@ -166,7 +166,7 @@ static HRESULT WINAPI IDirect3DDevice9Impl_GetDirect3D(LPDIRECT3DDEVICE9 iface, * @name IDirect3DDevice9::GetDeviceCaps * @implemented * -* The function IDirect3DDevice9Impl_GetDeviceCaps fills the pCaps argument with the +* The function IDirect3DDevice9Base_GetDeviceCaps fills the pCaps argument with the * capabilities of the device. * * @param LPDIRECT3D iface @@ -180,12 +180,12 @@ static HRESULT WINAPI IDirect3DDevice9Impl_GetDirect3D(LPDIRECT3DDEVICE9 iface, * If pCaps is a bad pointer the return value will be D3DERR_INVALIDCALL. * */ -static HRESULT WINAPI IDirect3DDevice9Impl_GetDeviceCaps(LPDIRECT3DDEVICE9 iface, D3DCAPS9* pCaps) +HRESULT WINAPI IDirect3DDevice9Base_GetDeviceCaps(LPDIRECT3DDEVICE9 iface, D3DCAPS9* pCaps) { - LPDIRECT3DDEVICE9_INT This = impl_from_IDirect3DDevice9(iface); + LPDIRECT3DDEVICE9_INT This = IDirect3DDevice9ToImpl(iface); LOCK_D3DDEVICE9(); - if (IsBadWritePtr(pCaps, sizeof(D3DCAPS9))) + if (NULL == pCaps) { DPRINT1("Invalid pCaps parameter specified"); UNLOCK_D3DDEVICE9(); @@ -202,7 +202,7 @@ static HRESULT WINAPI IDirect3DDevice9Impl_GetDeviceCaps(LPDIRECT3DDEVICE9 iface * @name IDirect3DDevice9::GetDisplayMode * @implemented * -* The function IDirect3DDevice9Impl_GetDisplayMode fills the pMode argument with the +* The function IDirect3DDevice9Base_GetDisplayMode fills the pMode argument with the * display mode for the specified swap chain. * * @param LPDIRECT3D iface @@ -220,9 +220,9 @@ static HRESULT WINAPI IDirect3DDevice9Impl_GetDeviceCaps(LPDIRECT3DDEVICE9 iface * If iSwapChain is out of range or pMode is a bad pointer, the return value will be D3DERR_INVALIDCALL. * */ -static HRESULT WINAPI IDirect3DDevice9Impl_GetDisplayMode(LPDIRECT3DDEVICE9 iface, UINT iSwapChain, D3DDISPLAYMODE* pMode) +HRESULT WINAPI IDirect3DDevice9Base_GetDisplayMode(LPDIRECT3DDEVICE9 iface, UINT iSwapChain, D3DDISPLAYMODE* pMode) { - LPDIRECT3DDEVICE9_INT This = impl_from_IDirect3DDevice9(iface); + LPDIRECT3DDEVICE9_INT This = IDirect3DDevice9ToImpl(iface); LOCK_D3DDEVICE9(); if (iSwapChain >= IDirect3DDevice9_GetNumberOfSwapChains(iface)) @@ -232,7 +232,7 @@ static HRESULT WINAPI IDirect3DDevice9Impl_GetDisplayMode(LPDIRECT3DDEVICE9 ifac return D3DERR_INVALIDCALL; } - if (IsBadWritePtr(pMode, sizeof(D3DDISPLAYMODE))) + if (NULL == pMode) { DPRINT1("Invalid pMode parameter specified"); UNLOCK_D3DDEVICE9(); @@ -252,7 +252,7 @@ static HRESULT WINAPI IDirect3DDevice9Impl_GetDisplayMode(LPDIRECT3DDEVICE9 ifac * @name IDirect3DDevice9::GetCreationParameters * @implemented * -* The function IDirect3DDevice9Impl_GetCreationParameters fills the pParameters argument with the +* The function IDirect3DDevice9Base_GetCreationParameters fills the pParameters argument with the * parameters the device was created with. * * @param LPDIRECT3D iface @@ -267,12 +267,12 @@ static HRESULT WINAPI IDirect3DDevice9Impl_GetDisplayMode(LPDIRECT3DDEVICE9 ifac * If pParameters is a bad pointer, the return value will be D3DERR_INVALIDCALL. * */ -static HRESULT WINAPI IDirect3DDevice9Impl_GetCreationParameters(LPDIRECT3DDEVICE9 iface, D3DDEVICE_CREATION_PARAMETERS* pParameters) +HRESULT WINAPI IDirect3DDevice9Base_GetCreationParameters(LPDIRECT3DDEVICE9 iface, D3DDEVICE_CREATION_PARAMETERS* pParameters) { - LPDIRECT3DDEVICE9_INT This = impl_from_IDirect3DDevice9(iface); + LPDIRECT3DDEVICE9_INT This = IDirect3DDevice9ToImpl(iface); LOCK_D3DDEVICE9(); - if (IsBadWritePtr(pParameters, sizeof(D3DDEVICE_CREATION_PARAMETERS))) + if (NULL == pParameters) { DPRINT1("Invalid pParameters parameter specified"); UNLOCK_D3DDEVICE9(); @@ -288,26 +288,26 @@ static HRESULT WINAPI IDirect3DDevice9Impl_GetCreationParameters(LPDIRECT3DDEVIC return D3D_OK; } -static HRESULT WINAPI IDirect3DDevice9Impl_SetCursorProperties(LPDIRECT3DDEVICE9 iface, UINT XHotSpot, UINT YHotSpot, IDirect3DSurface9* pCursorBitmap) +HRESULT WINAPI IDirect3DDevice9Base_SetCursorProperties(LPDIRECT3DDEVICE9 iface, UINT XHotSpot, UINT YHotSpot, IDirect3DSurface9* pCursorBitmap) { UNIMPLEMENTED return D3D_OK; } -static void WINAPI IDirect3DDevice9Impl_SetCursorPosition(LPDIRECT3DDEVICE9 iface, int X, int Y, DWORD Flags) +VOID WINAPI IDirect3DDevice9Base_SetCursorPosition(LPDIRECT3DDEVICE9 iface, int X, int Y, DWORD Flags) { UNIMPLEMENTED } -static BOOL WINAPI IDirect3DDevice9Impl_ShowCursor(LPDIRECT3DDEVICE9 iface, BOOL bShow) +BOOL WINAPI IDirect3DDevice9Base_ShowCursor(LPDIRECT3DDEVICE9 iface, BOOL bShow) { UNIMPLEMENTED return TRUE; } -static HRESULT WINAPI IDirect3DDevice9Impl_CreateAdditionalSwapChain(LPDIRECT3DDEVICE9 iface, D3DPRESENT_PARAMETERS* pPresentationParameters, IDirect3DSwapChain9** ppSwapChain) +HRESULT WINAPI IDirect3DDevice9Base_CreateAdditionalSwapChain(LPDIRECT3DDEVICE9 iface, D3DPRESENT_PARAMETERS* pPresentationParameters, IDirect3DSwapChain9** ppSwapChain) { UNIMPLEMENTED @@ -318,7 +318,7 @@ static HRESULT WINAPI IDirect3DDevice9Impl_CreateAdditionalSwapChain(LPDIRECT3DD * @name IDirect3DDevice9::GetSwapChain * @implemented * -* The function IDirect3DDevice9Impl_GetSwapChain returns a pointer to a swap chain object. +* The function IDirect3DDevice9Base_GetSwapChain returns a pointer to a swap chain object. * * @param LPDIRECT3D iface * Pointer to the IDirect3DDevice9 object returned from IDirect3D9::CreateDevice() @@ -336,12 +336,12 @@ static HRESULT WINAPI IDirect3DDevice9Impl_CreateAdditionalSwapChain(LPDIRECT3DD * will be D3DERR_INVALIDCALL. * */ -static HRESULT WINAPI IDirect3DDevice9Impl_GetSwapChain(LPDIRECT3DDEVICE9 iface, UINT iSwapChain, IDirect3DSwapChain9** ppSwapChain) +HRESULT WINAPI IDirect3DDevice9Base_GetSwapChain(LPDIRECT3DDEVICE9 iface, UINT iSwapChain, IDirect3DSwapChain9** ppSwapChain) { - LPDIRECT3DDEVICE9_INT This = impl_from_IDirect3DDevice9(iface); + LPDIRECT3DDEVICE9_INT This = IDirect3DDevice9ToImpl(iface); LOCK_D3DDEVICE9(); - if (IsBadWritePtr(ppSwapChain, sizeof(IDirect3DSwapChain9*))) + if (NULL == ppSwapChain) { DPRINT1("Invalid ppSwapChain parameter specified"); UNLOCK_D3DDEVICE9(); @@ -376,7 +376,7 @@ static HRESULT WINAPI IDirect3DDevice9Impl_GetSwapChain(LPDIRECT3DDEVICE9 iface, * @name IDirect3DDevice9::GetNumberOfSwapChains * @implemented * -* The function IDirect3DDevice9Impl_GetNumberOfSwapChains returns the number of swap chains +* The function IDirect3DDevice9Base_GetNumberOfSwapChains returns the number of swap chains * created by IDirect3D9::CreateDevice(). * * @param LPDIRECT3D iface @@ -389,11 +389,11 @@ static HRESULT WINAPI IDirect3DDevice9Impl_GetSwapChain(LPDIRECT3DDEVICE9 iface, * IDirect3DDevice9::CreateAdditionalSwapChain() method. * */ -static UINT WINAPI IDirect3DDevice9Impl_GetNumberOfSwapChains(LPDIRECT3DDEVICE9 iface) +UINT WINAPI IDirect3DDevice9Base_GetNumberOfSwapChains(LPDIRECT3DDEVICE9 iface) { UINT NumSwapChains; - LPDIRECT3DDEVICE9_INT This = impl_from_IDirect3DDevice9(iface); + LPDIRECT3DDEVICE9_INT This = IDirect3DDevice9ToImpl(iface); LOCK_D3DDEVICE9(); NumSwapChains = This->NumAdaptersInDevice; @@ -402,846 +402,145 @@ static UINT WINAPI IDirect3DDevice9Impl_GetNumberOfSwapChains(LPDIRECT3DDEVICE9 return NumSwapChains; } -static HRESULT WINAPI IDirect3DDevice9Impl_Reset(LPDIRECT3DDEVICE9 iface, D3DPRESENT_PARAMETERS* pPresentationParameters) +HRESULT WINAPI IDirect3DDevice9Base_Reset(LPDIRECT3DDEVICE9 iface, D3DPRESENT_PARAMETERS* pPresentationParameters) { UNIMPLEMENTED return D3D_OK; } -static HRESULT WINAPI IDirect3DDevice9Impl_Present(LPDIRECT3DDEVICE9 iface, CONST RECT* pSourceRect, CONST RECT* pDestRect, HWND hDestWindowOverride, CONST RGNDATA* pDirtyRegion) +HRESULT WINAPI IDirect3DDevice9Base_Present(LPDIRECT3DDEVICE9 iface, CONST RECT* pSourceRect, CONST RECT* pDestRect, HWND hDestWindowOverride, CONST RGNDATA* pDirtyRegion) { UNIMPLEMENTED return D3D_OK; } -static HRESULT WINAPI IDirect3DDevice9Impl_GetBackBuffer(LPDIRECT3DDEVICE9 iface, UINT iSwapChain, UINT iBackBuffer, D3DBACKBUFFER_TYPE Type, IDirect3DSurface9** ppBackBuffer) +HRESULT WINAPI IDirect3DDevice9Base_GetBackBuffer(LPDIRECT3DDEVICE9 iface, UINT iSwapChain, UINT iBackBuffer, D3DBACKBUFFER_TYPE Type, IDirect3DSurface9** ppBackBuffer) { UNIMPLEMENTED return D3D_OK; } -static HRESULT WINAPI IDirect3DDevice9Impl_GetRasterStatus(LPDIRECT3DDEVICE9 iface, UINT iSwapChain, D3DRASTER_STATUS* pRasterStatus) +HRESULT WINAPI IDirect3DDevice9Base_GetRasterStatus(LPDIRECT3DDEVICE9 iface, UINT iSwapChain, D3DRASTER_STATUS* pRasterStatus) { UNIMPLEMENTED return D3D_OK; } -static HRESULT WINAPI IDirect3DDevice9Impl_SetDialogBoxMode(LPDIRECT3DDEVICE9 iface, BOOL bEnableDialogs) +HRESULT WINAPI IDirect3DDevice9Base_SetDialogBoxMode(LPDIRECT3DDEVICE9 iface, BOOL bEnableDialogs) { UNIMPLEMENTED return D3D_OK; } -static void WINAPI IDirect3DDevice9Impl_SetGammaRamp(LPDIRECT3DDEVICE9 iface, UINT iSwapChain, DWORD Flags, CONST D3DGAMMARAMP* pRamp) +VOID WINAPI IDirect3DDevice9Base_SetGammaRamp(LPDIRECT3DDEVICE9 iface, UINT iSwapChain, DWORD Flags, CONST D3DGAMMARAMP* pRamp) { UNIMPLEMENTED } -static void WINAPI IDirect3DDevice9Impl_GetGammaRamp(LPDIRECT3DDEVICE9 iface, UINT iSwapChain, D3DGAMMARAMP* pRamp) +VOID WINAPI IDirect3DDevice9Base_GetGammaRamp(LPDIRECT3DDEVICE9 iface, UINT iSwapChain, D3DGAMMARAMP* pRamp) { UNIMPLEMENTED } -static HRESULT WINAPI IDirect3DDevice9Impl_CreateTexture(LPDIRECT3DDEVICE9 iface, UINT Width, UINT Height, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DTexture9** ppTexture, HANDLE* pSharedHandle) +HRESULT WINAPI IDirect3DDevice9Base_CreateTexture(LPDIRECT3DDEVICE9 iface, UINT Width, UINT Height, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DTexture9** ppTexture, HANDLE* pSharedHandle) { UNIMPLEMENTED return D3D_OK; } -static HRESULT WINAPI IDirect3DDevice9Impl_CreateVolumeTexture(LPDIRECT3DDEVICE9 iface, UINT Width, UINT Height, UINT Depth, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DVolumeTexture9** ppVolumeTexture, HANDLE* pSharedHandle) +HRESULT WINAPI IDirect3DDevice9Base_CreateVolumeTexture(LPDIRECT3DDEVICE9 iface, UINT Width, UINT Height, UINT Depth, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DVolumeTexture9** ppVolumeTexture, HANDLE* pSharedHandle) { UNIMPLEMENTED return D3D_OK; } -static HRESULT WINAPI IDirect3DDevice9Impl_CreateCubeTexture(LPDIRECT3DDEVICE9 iface, UINT EdgeLength, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DCubeTexture9** ppCubeTexture, HANDLE* pSharedHandle) +HRESULT WINAPI IDirect3DDevice9Base_CreateCubeTexture(LPDIRECT3DDEVICE9 iface, UINT EdgeLength, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DCubeTexture9** ppCubeTexture, HANDLE* pSharedHandle) { UNIMPLEMENTED return D3D_OK; } -static HRESULT WINAPI IDirect3DDevice9Impl_CreateVertexBuffer(LPDIRECT3DDEVICE9 iface, UINT Length, DWORD Usage, DWORD FVF, D3DPOOL Pool, IDirect3DVertexBuffer9** ppVertexBuffer, HANDLE* pSharedHandle) +HRESULT WINAPI IDirect3DDevice9Base_CreateVertexBuffer(LPDIRECT3DDEVICE9 iface, UINT Length, DWORD Usage, DWORD FVF, D3DPOOL Pool, IDirect3DVertexBuffer9** ppVertexBuffer, HANDLE* pSharedHandle) { UNIMPLEMENTED return D3D_OK; } -static HRESULT WINAPI IDirect3DDevice9Impl_CreateIndexBuffer(LPDIRECT3DDEVICE9 iface, UINT Length, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DIndexBuffer9** ppIndexBuffer, HANDLE* pSharedHandle) +HRESULT WINAPI IDirect3DDevice9Base_CreateIndexBuffer(LPDIRECT3DDEVICE9 iface, UINT Length, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DIndexBuffer9** ppIndexBuffer, HANDLE* pSharedHandle) { UNIMPLEMENTED return D3D_OK; } -static HRESULT WINAPI IDirect3DDevice9Impl_CreateRenderTarget(LPDIRECT3DDEVICE9 iface, UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, BOOL Lockable, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) +HRESULT WINAPI IDirect3DDevice9Base_CreateRenderTarget(LPDIRECT3DDEVICE9 iface, UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, BOOL Lockable, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) { UNIMPLEMENTED return D3D_OK; } -static HRESULT WINAPI IDirect3DDevice9Impl_CreateDepthStencilSurface(LPDIRECT3DDEVICE9 iface, UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, BOOL Discard, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) +HRESULT WINAPI IDirect3DDevice9Base_CreateDepthStencilSurface(LPDIRECT3DDEVICE9 iface, UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, BOOL Discard, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) { UNIMPLEMENTED return D3D_OK; } -static HRESULT WINAPI IDirect3DDevice9Impl_UpdateSurface(LPDIRECT3DDEVICE9 iface, IDirect3DSurface9* pSourceSurface, CONST RECT* pSourceRect, IDirect3DSurface9* pDestinationSurface, CONST POINT* pDestPoint) +HRESULT WINAPI IDirect3DDevice9Base_UpdateSurface(LPDIRECT3DDEVICE9 iface, IDirect3DSurface9* pSourceSurface, CONST RECT* pSourceRect, IDirect3DSurface9* pDestinationSurface, CONST POINT* pDestPoint) { UNIMPLEMENTED return D3D_OK; } -static HRESULT WINAPI IDirect3DDevice9Impl_UpdateTexture(LPDIRECT3DDEVICE9 iface, IDirect3DBaseTexture9* pSourceTexture, IDirect3DBaseTexture9* pDestinationTexture) +HRESULT WINAPI IDirect3DDevice9Base_UpdateTexture(LPDIRECT3DDEVICE9 iface, IDirect3DBaseTexture9* pSourceTexture, IDirect3DBaseTexture9* pDestinationTexture) { UNIMPLEMENTED return D3D_OK; } -static HRESULT WINAPI IDirect3DDevice9Impl_GetRenderTargetData(LPDIRECT3DDEVICE9 iface, IDirect3DSurface9* pRenderTarget, IDirect3DSurface9* pDestSurface) +HRESULT WINAPI IDirect3DDevice9Base_GetRenderTargetData(LPDIRECT3DDEVICE9 iface, IDirect3DSurface9* pRenderTarget, IDirect3DSurface9* pDestSurface) { UNIMPLEMENTED return D3D_OK; } -static HRESULT WINAPI IDirect3DDevice9Impl_GetFrontBufferData(LPDIRECT3DDEVICE9 iface, UINT iSwapChain, IDirect3DSurface9* pDestSurface) +HRESULT WINAPI IDirect3DDevice9Base_GetFrontBufferData(LPDIRECT3DDEVICE9 iface, UINT iSwapChain, IDirect3DSurface9* pDestSurface) { UNIMPLEMENTED return D3D_OK; } -static HRESULT WINAPI IDirect3DDevice9Impl_StretchRect(LPDIRECT3DDEVICE9 iface, IDirect3DSurface9* pSourceSurface, CONST RECT* pSourceRect, IDirect3DSurface9* pDestSurface, CONST RECT* pDestRect, D3DTEXTUREFILTERTYPE Filter) +HRESULT WINAPI IDirect3DDevice9Base_StretchRect(LPDIRECT3DDEVICE9 iface, IDirect3DSurface9* pSourceSurface, CONST RECT* pSourceRect, IDirect3DSurface9* pDestSurface, CONST RECT* pDestRect, D3DTEXTUREFILTERTYPE Filter) { UNIMPLEMENTED return D3D_OK; } -static HRESULT WINAPI IDirect3DDevice9Impl_ColorFill(LPDIRECT3DDEVICE9 iface, IDirect3DSurface9* pSurface, CONST RECT* pRect, D3DCOLOR color) +HRESULT WINAPI IDirect3DDevice9Base_ColorFill(LPDIRECT3DDEVICE9 iface, IDirect3DSurface9* pSurface, CONST RECT* pRect, D3DCOLOR color) { UNIMPLEMENTED return D3D_OK; } -static HRESULT WINAPI IDirect3DDevice9Impl_CreateOffscreenPlainSurface(LPDIRECT3DDEVICE9 iface, UINT Width, UINT Height, D3DFORMAT Format, D3DPOOL Pool, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) +HRESULT WINAPI IDirect3DDevice9Base_CreateOffscreenPlainSurface(LPDIRECT3DDEVICE9 iface, UINT Width, UINT Height, D3DFORMAT Format, D3DPOOL Pool, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) { UNIMPLEMENTED return D3D_OK; } - -static HRESULT WINAPI IDirect3DDevice9Impl_SetRenderTarget(LPDIRECT3DDEVICE9 iface, DWORD RenderTargetIndex, IDirect3DSurface9* pRenderTarget) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_GetRenderTarget(LPDIRECT3DDEVICE9 iface, DWORD RenderTargetIndex,IDirect3DSurface9** ppRenderTarget) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_SetDepthStencilSurface(LPDIRECT3DDEVICE9 iface, IDirect3DSurface9* pNewZStencil) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_GetDepthStencilSurface(LPDIRECT3DDEVICE9 iface, IDirect3DSurface9** ppZStencilSurface) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_BeginScene(LPDIRECT3DDEVICE9 iface) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_EndScene(LPDIRECT3DDEVICE9 iface) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_Clear(LPDIRECT3DDEVICE9 iface, DWORD Count, CONST D3DRECT* pRects, DWORD Flags, D3DCOLOR Color, float Z, DWORD Stencil) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_SetTransform(LPDIRECT3DDEVICE9 iface, D3DTRANSFORMSTATETYPE State, CONST D3DMATRIX* pMatrix) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_GetTransform(LPDIRECT3DDEVICE9 iface, D3DTRANSFORMSTATETYPE State, D3DMATRIX* pMatrix) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_MultiplyTransform(LPDIRECT3DDEVICE9 iface, D3DTRANSFORMSTATETYPE State, CONST D3DMATRIX* pMatrix) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_SetViewport(LPDIRECT3DDEVICE9 iface, CONST D3DVIEWPORT9* pViewport) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_GetViewport(LPDIRECT3DDEVICE9 iface, D3DVIEWPORT9* pViewport) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_SetMaterial(LPDIRECT3DDEVICE9 iface, CONST D3DMATERIAL9* pMaterial) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_GetMaterial(LPDIRECT3DDEVICE9 iface, D3DMATERIAL9* pMaterial) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_SetLight(LPDIRECT3DDEVICE9 iface, DWORD Index, CONST D3DLIGHT9* pLight) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_GetLight(LPDIRECT3DDEVICE9 iface, DWORD Index, D3DLIGHT9* pLight) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_LightEnable(LPDIRECT3DDEVICE9 iface, DWORD Index, BOOL Enable) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_GetLightEnable(LPDIRECT3DDEVICE9 iface, DWORD Index, BOOL* pEnable) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_SetClipPlane(LPDIRECT3DDEVICE9 iface, DWORD Index, CONST float* pPlane) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_GetClipPlane(LPDIRECT3DDEVICE9 iface, DWORD Index, float* pPlane) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_SetRenderState(LPDIRECT3DDEVICE9 iface, D3DRENDERSTATETYPE State, DWORD Value) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_GetRenderState(LPDIRECT3DDEVICE9 iface, D3DRENDERSTATETYPE State, DWORD* pValue) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_CreateStateBlock(LPDIRECT3DDEVICE9 iface, D3DSTATEBLOCKTYPE Type, IDirect3DStateBlock9** ppSB) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_BeginStateBlock(LPDIRECT3DDEVICE9 iface) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_EndStateBlock(LPDIRECT3DDEVICE9 iface, IDirect3DStateBlock9** ppSB) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_SetClipStatus(LPDIRECT3DDEVICE9 iface, CONST D3DCLIPSTATUS9* pClipStatus) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_GetClipStatus(LPDIRECT3DDEVICE9 iface, D3DCLIPSTATUS9* pClipStatus) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_GetTexture(LPDIRECT3DDEVICE9 iface, DWORD Stage, IDirect3DBaseTexture9** ppTexture) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_SetTexture(LPDIRECT3DDEVICE9 iface, DWORD Stage, IDirect3DBaseTexture9* pTexture) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_GetTextureStageState(LPDIRECT3DDEVICE9 iface, DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD* pValue) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_SetTextureStageState(LPDIRECT3DDEVICE9 iface, DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD Value) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_GetSamplerState(LPDIRECT3DDEVICE9 iface, DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD* pValue) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_SetSamplerState(LPDIRECT3DDEVICE9 iface, DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD Value) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_ValidateDevice(LPDIRECT3DDEVICE9 iface, DWORD* pNumPasses) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_SetPaletteEntries(LPDIRECT3DDEVICE9 iface, UINT PaletteNumber, CONST PALETTEENTRY* pEntries) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_GetPaletteEntries(LPDIRECT3DDEVICE9 iface, UINT PaletteNumber, PALETTEENTRY* pEntries) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_SetCurrentTexturePalette(LPDIRECT3DDEVICE9 iface, UINT PaletteNumber) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_GetCurrentTexturePalette(LPDIRECT3DDEVICE9 iface, UINT* pPaletteNumber) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_SetScissorRect(LPDIRECT3DDEVICE9 iface, CONST RECT* pRect) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_GetScissorRect(LPDIRECT3DDEVICE9 iface, RECT* pRect) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_SetSoftwareVertexProcessing(LPDIRECT3DDEVICE9 iface, BOOL bSoftware) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static BOOL WINAPI IDirect3DDevice9Impl_GetSoftwareVertexProcessing(LPDIRECT3DDEVICE9 iface) -{ - UNIMPLEMENTED - - return TRUE; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_SetNPatchMode(LPDIRECT3DDEVICE9 iface, float nSegments) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static float WINAPI IDirect3DDevice9Impl_GetNPatchMode(LPDIRECT3DDEVICE9 iface) -{ - UNIMPLEMENTED - - return 0.0f; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_DrawPrimitive(LPDIRECT3DDEVICE9 iface, D3DPRIMITIVETYPE PrimitiveType, UINT StartVertex, UINT PrimitiveCount) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_DrawIndexedPrimitive(LPDIRECT3DDEVICE9 iface, D3DPRIMITIVETYPE PrimitiveType, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT primCount) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_DrawPrimitiveUP(LPDIRECT3DDEVICE9 iface, D3DPRIMITIVETYPE PrimitiveType, UINT PrimitiveCount, CONST void* pVertexStreamZeroData, UINT VertexStreamZeroStride) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_DrawIndexedPrimitiveUP(LPDIRECT3DDEVICE9 iface, D3DPRIMITIVETYPE PrimitiveType, UINT MinVertexIndex, UINT NumVertices, UINT PrimitiveCount, CONST void* pIndexData, D3DFORMAT IndexDataFormat, CONST void* pVertexStreamZeroData, UINT VertexStreamZeroStride) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_ProcessVertices(LPDIRECT3DDEVICE9 iface, UINT SrcStartIndex, UINT DestIndex, UINT VertexCount, IDirect3DVertexBuffer9* pDestBuffer, IDirect3DVertexDeclaration9* pVertexDecl, DWORD Flags) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_CreateVertexDeclaration(LPDIRECT3DDEVICE9 iface, CONST D3DVERTEXELEMENT9* pVertexElements, IDirect3DVertexDeclaration9** ppDecl) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_SetVertexDeclaration(LPDIRECT3DDEVICE9 iface, IDirect3DVertexDeclaration9* pDecl) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_GetVertexDeclaration(LPDIRECT3DDEVICE9 iface, IDirect3DVertexDeclaration9** ppDecl) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_SetFVF(LPDIRECT3DDEVICE9 iface, DWORD FVF) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_GetFVF(LPDIRECT3DDEVICE9 iface, DWORD* pFVF) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_CreateVertexShader(LPDIRECT3DDEVICE9 iface, CONST DWORD* pFunction, IDirect3DVertexShader9** ppShader) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_SetVertexShader(LPDIRECT3DDEVICE9 iface, IDirect3DVertexShader9* pShader) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_GetVertexShader(LPDIRECT3DDEVICE9 iface, IDirect3DVertexShader9** ppShader) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_SetVertexShaderConstantF(LPDIRECT3DDEVICE9 iface, UINT StartRegister, CONST float* pConstantData, UINT Vector4fCount) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_GetVertexShaderConstantF(LPDIRECT3DDEVICE9 iface, UINT StartRegister, float* pConstantData, UINT Vector4fCount) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_SetVertexShaderConstantI(LPDIRECT3DDEVICE9 iface, UINT StartRegister, CONST int* pConstantData, UINT Vector4iCount) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_GetVertexShaderConstantI(LPDIRECT3DDEVICE9 iface, UINT StartRegister, int* pConstantData, UINT Vector4iCount) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_SetVertexShaderConstantB(LPDIRECT3DDEVICE9 iface, UINT StartRegister, CONST BOOL* pConstantData, UINT BoolCount) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_GetVertexShaderConstantB(LPDIRECT3DDEVICE9 iface, UINT StartRegister, BOOL* pConstantData, UINT BoolCount) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_SetStreamSource(LPDIRECT3DDEVICE9 iface, UINT StreamNumber, IDirect3DVertexBuffer9* pStreamData, UINT OffsetInBytes, UINT Stride) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_GetStreamSource(LPDIRECT3DDEVICE9 iface, UINT StreamNumber, IDirect3DVertexBuffer9** ppStreamData, UINT* pOffsetInBytes, UINT* pStride) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_SetStreamSourceFreq(LPDIRECT3DDEVICE9 iface, UINT StreamNumber,UINT Setting) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_GetStreamSourceFreq(LPDIRECT3DDEVICE9 iface, UINT StreamNumber, UINT* pSetting) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_SetIndices(LPDIRECT3DDEVICE9 iface, IDirect3DIndexBuffer9* pIndexData) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_GetIndices(LPDIRECT3DDEVICE9 iface, IDirect3DIndexBuffer9** ppIndexData) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_CreatePixelShader(LPDIRECT3DDEVICE9 iface, CONST DWORD* pFunction, IDirect3DPixelShader9** ppShader) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_SetPixelShader(LPDIRECT3DDEVICE9 iface, IDirect3DPixelShader9* pShader) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_GetPixelShader(LPDIRECT3DDEVICE9 iface, IDirect3DPixelShader9** ppShader) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_SetPixelShaderConstantF(LPDIRECT3DDEVICE9 iface, UINT StartRegister, CONST float* pConstantData, UINT Vector4fCount) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_GetPixelShaderConstantF(LPDIRECT3DDEVICE9 iface, UINT StartRegister, float* pConstantData, UINT Vector4fCount) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_SetPixelShaderConstantI(LPDIRECT3DDEVICE9 iface, UINT StartRegister, CONST int* pConstantData, UINT Vector4iCount) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_GetPixelShaderConstantI(LPDIRECT3DDEVICE9 iface, UINT StartRegister, int* pConstantData, UINT Vector4iCount) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_SetPixelShaderConstantB(LPDIRECT3DDEVICE9 iface, UINT StartRegister, CONST BOOL* pConstantData, UINT BoolCount) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_GetPixelShaderConstantB(LPDIRECT3DDEVICE9 iface, UINT StartRegister, BOOL* pConstantData, UINT BoolCount) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_DrawRectPatch(LPDIRECT3DDEVICE9 iface, UINT Handle, CONST float* pNumSegs, CONST D3DRECTPATCH_INFO* pRectPatchInfo) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_DrawTriPatch(LPDIRECT3DDEVICE9 iface, UINT Handle, CONST float* pNumSegs, CONST D3DTRIPATCH_INFO* pTriPatchInfo) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_DeletePatch(LPDIRECT3DDEVICE9 iface, UINT Handle) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -static HRESULT WINAPI IDirect3DDevice9Impl_CreateQuery(LPDIRECT3DDEVICE9 iface, D3DQUERYTYPE Type, IDirect3DQuery9** ppQuery) -{ - UNIMPLEMENTED - - return D3D_OK; -} - -IDirect3DDevice9Vtbl Direct3DDevice9_Vtbl = -{ - /* IUnknown */ - IDirect3DDevice9Impl_QueryInterface, - IDirect3DDevice9Impl_AddRef, - IDirect3DDevice9Impl_Release, - - /* IDirect3D9Device */ - IDirect3DDevice9Impl_TestCooperativeLevel, - IDirect3DDevice9Impl_GetAvailableTextureMem, - IDirect3DDevice9Impl_EvictManagedResources, - IDirect3DDevice9Impl_GetDirect3D, - IDirect3DDevice9Impl_GetDeviceCaps, - IDirect3DDevice9Impl_GetDisplayMode, - IDirect3DDevice9Impl_GetCreationParameters, - IDirect3DDevice9Impl_SetCursorProperties, - IDirect3DDevice9Impl_SetCursorPosition, - IDirect3DDevice9Impl_ShowCursor, - IDirect3DDevice9Impl_CreateAdditionalSwapChain, - IDirect3DDevice9Impl_GetSwapChain, - IDirect3DDevice9Impl_GetNumberOfSwapChains, - IDirect3DDevice9Impl_Reset, - IDirect3DDevice9Impl_Present, - IDirect3DDevice9Impl_GetBackBuffer, - IDirect3DDevice9Impl_GetRasterStatus, - IDirect3DDevice9Impl_SetDialogBoxMode, - IDirect3DDevice9Impl_SetGammaRamp, - IDirect3DDevice9Impl_GetGammaRamp, - IDirect3DDevice9Impl_CreateTexture, - IDirect3DDevice9Impl_CreateVolumeTexture, - IDirect3DDevice9Impl_CreateCubeTexture, - IDirect3DDevice9Impl_CreateVertexBuffer, - IDirect3DDevice9Impl_CreateIndexBuffer, - IDirect3DDevice9Impl_CreateRenderTarget, - IDirect3DDevice9Impl_CreateDepthStencilSurface, - IDirect3DDevice9Impl_UpdateSurface, - IDirect3DDevice9Impl_UpdateTexture, - IDirect3DDevice9Impl_GetRenderTargetData, - IDirect3DDevice9Impl_GetFrontBufferData, - IDirect3DDevice9Impl_StretchRect, - IDirect3DDevice9Impl_ColorFill, - IDirect3DDevice9Impl_CreateOffscreenPlainSurface, - IDirect3DDevice9Impl_SetRenderTarget, - IDirect3DDevice9Impl_GetRenderTarget, - IDirect3DDevice9Impl_SetDepthStencilSurface, - IDirect3DDevice9Impl_GetDepthStencilSurface, - IDirect3DDevice9Impl_BeginScene, - IDirect3DDevice9Impl_EndScene, - IDirect3DDevice9Impl_Clear, - IDirect3DDevice9Impl_SetTransform, - IDirect3DDevice9Impl_GetTransform, - IDirect3DDevice9Impl_MultiplyTransform, - IDirect3DDevice9Impl_SetViewport, - IDirect3DDevice9Impl_GetViewport, - IDirect3DDevice9Impl_SetMaterial, - IDirect3DDevice9Impl_GetMaterial, - IDirect3DDevice9Impl_SetLight, - IDirect3DDevice9Impl_GetLight, - IDirect3DDevice9Impl_LightEnable, - IDirect3DDevice9Impl_GetLightEnable, - IDirect3DDevice9Impl_SetClipPlane, - IDirect3DDevice9Impl_GetClipPlane, - IDirect3DDevice9Impl_SetRenderState, - IDirect3DDevice9Impl_GetRenderState, - IDirect3DDevice9Impl_CreateStateBlock, - IDirect3DDevice9Impl_BeginStateBlock, - IDirect3DDevice9Impl_EndStateBlock, - IDirect3DDevice9Impl_SetClipStatus, - IDirect3DDevice9Impl_GetClipStatus, - IDirect3DDevice9Impl_GetTexture, - IDirect3DDevice9Impl_SetTexture, - IDirect3DDevice9Impl_GetTextureStageState, - IDirect3DDevice9Impl_SetTextureStageState, - IDirect3DDevice9Impl_GetSamplerState, - IDirect3DDevice9Impl_SetSamplerState, - IDirect3DDevice9Impl_ValidateDevice, - IDirect3DDevice9Impl_SetPaletteEntries, - IDirect3DDevice9Impl_GetPaletteEntries, - IDirect3DDevice9Impl_SetCurrentTexturePalette, - IDirect3DDevice9Impl_GetCurrentTexturePalette, - IDirect3DDevice9Impl_SetScissorRect, - IDirect3DDevice9Impl_GetScissorRect, - IDirect3DDevice9Impl_SetSoftwareVertexProcessing, - IDirect3DDevice9Impl_GetSoftwareVertexProcessing, - IDirect3DDevice9Impl_SetNPatchMode, - IDirect3DDevice9Impl_GetNPatchMode, - IDirect3DDevice9Impl_DrawPrimitive, - IDirect3DDevice9Impl_DrawIndexedPrimitive, - IDirect3DDevice9Impl_DrawPrimitiveUP, - IDirect3DDevice9Impl_DrawIndexedPrimitiveUP, - IDirect3DDevice9Impl_ProcessVertices, - IDirect3DDevice9Impl_CreateVertexDeclaration, - IDirect3DDevice9Impl_SetVertexDeclaration, - IDirect3DDevice9Impl_GetVertexDeclaration, - IDirect3DDevice9Impl_SetFVF, - IDirect3DDevice9Impl_GetFVF, - IDirect3DDevice9Impl_CreateVertexShader, - IDirect3DDevice9Impl_SetVertexShader, - IDirect3DDevice9Impl_GetVertexShader, - IDirect3DDevice9Impl_SetVertexShaderConstantF, - IDirect3DDevice9Impl_GetVertexShaderConstantF, - IDirect3DDevice9Impl_SetVertexShaderConstantI, - IDirect3DDevice9Impl_GetVertexShaderConstantI, - IDirect3DDevice9Impl_SetVertexShaderConstantB, - IDirect3DDevice9Impl_GetVertexShaderConstantB, - IDirect3DDevice9Impl_SetStreamSource, - IDirect3DDevice9Impl_GetStreamSource, - IDirect3DDevice9Impl_SetStreamSourceFreq, - IDirect3DDevice9Impl_GetStreamSourceFreq, - IDirect3DDevice9Impl_SetIndices, - IDirect3DDevice9Impl_GetIndices, - IDirect3DDevice9Impl_CreatePixelShader, - IDirect3DDevice9Impl_SetPixelShader, - IDirect3DDevice9Impl_GetPixelShader, - IDirect3DDevice9Impl_SetPixelShaderConstantF, - IDirect3DDevice9Impl_GetPixelShaderConstantF, - IDirect3DDevice9Impl_SetPixelShaderConstantI, - IDirect3DDevice9Impl_GetPixelShaderConstantI, - IDirect3DDevice9Impl_SetPixelShaderConstantB, - IDirect3DDevice9Impl_GetPixelShaderConstantB, - IDirect3DDevice9Impl_DrawRectPatch, - IDirect3DDevice9Impl_DrawTriPatch, - IDirect3DDevice9Impl_DeletePatch, - IDirect3DDevice9Impl_CreateQuery, -}; - diff --git a/reactos/dll/directx/d3d9/d3d9_device.h b/reactos/dll/directx/d3d9/d3d9_device.h index 5dd82327cba..2eca346cab9 100644 --- a/reactos/dll/directx/d3d9/d3d9_device.h +++ b/reactos/dll/directx/d3d9/d3d9_device.h @@ -10,17 +10,64 @@ #include "d3d9_common.h" #include +#include #include "d3d9_private.h" #include "d3d9_swapchain.h" #include "d3d9_surface.h" -extern struct IDirect3DDevice9Vtbl Direct3DDevice9_Vtbl; +#if !defined(__cplusplus) || defined(CINTERFACE) +typedef struct _IDirect3DDevice9Vtbl_INT +{ + struct IDirect3DDevice9Vtbl PublicInterface; + + HRESULT (WINAPI *SetRenderStateWorker)(LPDIRECT3DDEVICE9 iface, D3DRENDERSTATETYPE State, DWORD Value); // Value = D3DDEGREETYPE Degree ); + HRESULT (WINAPI *SetTextureStageStateI)(LPDIRECT3DDEVICE9 iface, DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD Value); + HRESULT (WINAPI *SetSamplerStateI)(LPDIRECT3DDEVICE9 iface, DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD Value); + HRESULT (WINAPI *SetMaterial)(LPDIRECT3DDEVICE9 iface, CONST D3DMATERIAL9* pMaterial); + HRESULT (WINAPI *SetVertexShader)(LPDIRECT3DDEVICE9 iface, IDirect3DVertexShader9* pShader); + HRESULT (WINAPI *SetVertexShaderConstantF)(LPDIRECT3DDEVICE9 iface, UINT StartRegister,CONST float* pConstantData,UINT Vector4fCount); + HRESULT (WINAPI *SetVertexShaderConstantI)(LPDIRECT3DDEVICE9 iface, UINT StartRegister,CONST int* pConstantData,UINT Vector4iCount); + HRESULT (WINAPI *SetVertexShaderConstantB)(LPDIRECT3DDEVICE9 iface, UINT StartRegister,CONST BOOL* pConstantData,UINT BoolCount); + HRESULT (WINAPI *SetPixelShader)(LPDIRECT3DDEVICE9 iface, IDirect3DPixelShader9* pShader); + HRESULT (WINAPI *SetPixelShaderConstantF)(LPDIRECT3DDEVICE9 iface, UINT StartRegister,CONST float* pConstantData,UINT Vector4fCount); + HRESULT (WINAPI *SetPixelShaderConstantI)(LPDIRECT3DDEVICE9 iface, UINT StartRegister,CONST int* pConstantData,UINT Vector4iCount); + HRESULT (WINAPI *SetPixelShaderConstantB)(LPDIRECT3DDEVICE9 iface, UINT StartRegister,CONST BOOL* pConstantData,UINT BoolCount); + HRESULT (WINAPI *SetFVF)(LPDIRECT3DDEVICE9 iface, DWORD FVF); + HRESULT (WINAPI *SetTexture)(LPDIRECT3DDEVICE9 iface, DWORD Stage,IDirect3DBaseTexture9* pTexture); + HRESULT (WINAPI *SetIndices)(LPDIRECT3DDEVICE9 iface, IDirect3DIndexBuffer9* pIndexData); + HRESULT (WINAPI *SetStreamSource)(LPDIRECT3DDEVICE9 iface, UINT StreamNumber,IDirect3DVertexBuffer9* pStreamData,UINT OffsetInBytes,UINT Stride); + HRESULT (WINAPI *SetStreamSourceFreq)(LPDIRECT3DDEVICE9 iface, UINT StreamNumber,UINT Setting); + VOID (WINAPI *UpdateRenderState)(LPDIRECT3DDEVICE9 iface, DWORD Unknown1, DWORD Unknown2); + HRESULT (WINAPI *SetTransform)(LPDIRECT3DDEVICE9 iface, D3DTRANSFORMSTATETYPE State,CONST D3DMATRIX* pMatrix); + HRESULT (WINAPI *MultiplyTransform)(LPDIRECT3DDEVICE9 iface, D3DTRANSFORMSTATETYPE,CONST D3DMATRIX*); + HRESULT (WINAPI *SetClipPlane)(LPDIRECT3DDEVICE9 iface, DWORD Index,CONST float* pPlane); + VOID (WINAPI *UpdateDriverState)(LPDIRECT3DDEVICE9 iface); + HRESULT (WINAPI *SetViewport)(LPDIRECT3DDEVICE9 iface, CONST D3DVIEWPORT9* pViewport); + VOID (WINAPI *SetStreamSourceInt)(LPDIRECT3DDEVICE9 iface, LPVOID UnknownStreamData); + HRESULT (WINAPI *SetPixelShaderConstantFWorker)(LPDIRECT3DDEVICE9 iface, UINT StartRegister,CONST float* pConstantData,UINT Vector4fCount); + HRESULT (WINAPI *SetPixelShaderConstantIWorker)(LPDIRECT3DDEVICE9 iface, UINT StartRegister,CONST int* pConstantData,UINT Vector4iCount); + HRESULT (WINAPI *SetPixelShaderConstantBWorker)(LPDIRECT3DDEVICE9 iface, UINT StartRegister,CONST BOOL* pConstantData,UINT BoolCount); + VOID (WINAPI *DrawPrimitiveWorker)(LPDIRECT3DDEVICE9 iface, D3DPRIMITIVETYPE PrimitiveType,UINT StartVertex,UINT PrimitiveCount); + HRESULT (WINAPI *SetLight)(LPDIRECT3DDEVICE9 iface, DWORD Index,CONST D3DLIGHT9*); + HRESULT (WINAPI *LightEnable)(LPDIRECT3DDEVICE9 iface, DWORD Index,BOOL Enable); + HRESULT (WINAPI *SetRenderStateInt)(LPDIRECT3DDEVICE9 iface, D3DRENDERSTATETYPE State, DWORD Value ); // Value = D3DDEGREETYPE Degree ); + HRESULT (WINAPI *DrawPrimitiveUPInt)(LPDIRECT3DDEVICE9 iface, D3DPRIMITIVETYPE PrimitiveType, UINT PrimitiveCount); + HRESULT (WINAPI *Clear)(LPDIRECT3DDEVICE9 iface, DWORD Count,CONST D3DRECT* pRects,DWORD Flags,D3DCOLOR Color,float Z,DWORD Stencil); + VOID (WINAPI *DrawPrimitivesWorker)(LPDIRECT3DDEVICE9 iface); + VOID (WINAPI *UpdateVertexShader)(LPDIRECT3DDEVICE9 iface); + HRESULT (WINAPI *ValidateDrawCall)(LPDIRECT3DDEVICE9 iface, D3DPRIMITIVETYPE PrimitiveType, UINT Unknown1, UINT Unknown2, UINT Unknown3, INT Unknown4, UINT Unknown5, INT Unknown6); + HRESULT (WINAPI *Init)(LPDIRECT3DDEVICE9 iface); + VOID (WINAPI *InitState)(LPDIRECT3DDEVICE9 iface, INT State); + VOID (WINAPI *Destroy)(LPDIRECT3DDEVICE9 iface); + VOID (WINAPI *VirtualDestructor)(LPDIRECT3DDEVICE9 iface); +} IDirect3DDevice9Vtbl_INT; +#endif typedef struct _D3D9HeapTexture { /* 0x0000 */ DWORD dwUnknown00; -/* 0x0004 */ DWORD dwUnknown04; -/* 0x0008 */ LPDWORD pUnknown08; +/* 0x0004 */ DWORD dwUnknown04; // 0x400 +/* 0x0008 */ LPDWORD pUnknown08; // malloc(dwUnknown04 * 2) } D3D9HeapTexture; typedef struct _D3D9ResourceManager @@ -57,7 +104,7 @@ typedef struct _D3D9Cursor typedef struct _Direct3DDevice9_INT { -/* 0x0000 */ struct IDirect3DDevice9Vtbl* lpVtbl; +/* 0x0000 */ struct _IDirect3DDevice9Vtbl_INT* lpVtbl; /* 0x0004 */ CRITICAL_SECTION CriticalSection; #ifdef D3D_DEBUG_INFO /* N/A - 0x001c */ DWORD dbg0004; @@ -77,7 +124,7 @@ typedef struct _Direct3DDevice9_INT #endif /* 0x001c - 0x0054 */ BOOL bLockDevice; /* 0x0020 - 0x0058 */ DWORD dwProcessId; -/* 0x0024 - 0x005c */ struct _D3D9PUREDEVICE* lpThis; +/* 0x0024 - 0x005c */ IUnknown* pUnknown; /* 0x0028 - 0x0060 */ DWORD dwDXVersion; /* 0x002c - 0x0064 */ DWORD unknown000011; /* 0x0030 - 0x0068 */ LONG lRefCnt; @@ -91,8 +138,8 @@ typedef struct _Direct3DDevice9_INT /* 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]; -/* 0x1e20 */ LPDIRECT3DSWAPCHAIN9_INT pSwapChains2[D3D9_INT_MAX_NUM_ADAPTERS]; +/* 0x1df0 - 0x1e28 */ LPDIRECT3DSWAPCHAIN9_INT pSwapChains[D3D9_INT_MAX_NUM_ADAPTERS]; +/* 0x1e20 - 0x1e58 */ LPDIRECT3DSWAPCHAIN9_INT pSwapChains2[D3D9_INT_MAX_NUM_ADAPTERS]; /* 0x1e50 */ D3D9BaseSurface* pRenderTargetList; /* 0x1e54 */ DWORD unknown001941; /* 0x1e58 */ DWORD unknown001942; @@ -157,1318 +204,45 @@ typedef struct _Direct3DDevice9_INT /* 0x1f44 */ DWORD unknown002001; } DIRECT3DDEVICE9_INT, FAR* LPDIRECT3DDEVICE9_INT; -typedef struct _D3D9PUREDEVICE -{ -/* 0x0000 - 0x0000 */ DIRECT3DDEVICE9_INT BaseDevice; -/* 0x1f48 */ DWORD unknown002002; -/* 0x1f4c */ DWORD unknown002003; -/* 0x1f50 */ DWORD unknown002004; -/* 0x1f54 */ DWORD unknown002005; -/* 0x1f58 */ DWORD unknown002006; -/* 0x1f5c */ DWORD unknown002007; -/* 0x1f60 */ DWORD unknown002008; -/* 0x1f64 */ DWORD unknown002009; -/* 0x1f68 */ DWORD unknown002010; -/* 0x1f6c */ DWORD unknown002011; -/* 0x1f70 */ DWORD unknown002012; -/* 0x1f74 */ DWORD unknown002013; -/* 0x1f78 */ DWORD unknown002014; -/* 0x1f7c */ DWORD unknown002015; -/* 0x1f80 */ DWORD unknown002016; -/* 0x1f84 */ DWORD unknown002017; -/* 0x1f88 */ DWORD unknown002018; -/* 0x1f8c */ DWORD unknown002019; -/* 0x1f90 */ DWORD unknown002020; -/* 0x1f94 */ DWORD unknown002021; -/* 0x1f98 */ DWORD unknown002022; -/* 0x1f9c */ DWORD unknown002023; -/* 0x1fa0 */ DWORD unknown002024; -/* 0x1fa4 */ DWORD unknown002025; -/* 0x1fa8 - 0x1fe0 */ DWORD unknown002026; -/* 0x1fac */ DWORD unknown002027; -/* 0x1fb0 */ DWORD unknown002028; -/* 0x1fb4 */ DWORD unknown002029; -/* 0x1fb8 */ DWORD unknown002030; -/* 0x1fbc */ DWORD unknown002031; -/* 0x1fc0 */ DWORD unknown002032; -/* 0x1fc4 */ DWORD unknown002033; -/* 0x1fc8 */ DWORD unknown002034; -/* 0x1fcc */ DWORD unknown002035; -/* 0x1fd0 */ DWORD unknown002036; -/* 0x1fd4 */ DWORD unknown002037; -/* 0x1fd8 */ DWORD unknown002038; -/* 0x1fdc */ DWORD unknown002039; -/* 0x1fe0 */ DWORD unknown002040; -/* 0x1fe4 */ DWORD unknown002041; -/* 0x1fe8 */ DWORD unknown002042; -/* 0x1fec */ DWORD unknown002043; -/* 0x1ff0 */ DWORD unknown002044; -/* 0x1ff4 */ DWORD unknown002045; -/* 0x1ff8 */ DWORD unknown002046; -/* 0x1ffc */ DWORD unknown002047; -/* 0x2000 */ DWORD unknown002048; -/* 0x2004 */ DWORD unknown002049; -/* 0x2008 */ DWORD unknown002050; -/* 0x200c */ DWORD unknown002051; -/* 0x2010 */ DWORD unknown002052; -/* 0x2014 */ DWORD unknown002053; -/* 0x2018 */ DWORD unknown002054; -/* 0x201c */ DWORD unknown002055; -/* 0x2020 */ DWORD unknown002056; -/* 0x2024 */ DWORD unknown002057; -/* 0x2028 */ DWORD unknown002058; -/* 0x202c */ DWORD unknown002059; -/* 0x2030 */ DWORD unknown002060; -/* 0x2034 */ DWORD unknown002061; -/* 0x2038 */ DWORD unknown002062; -/* 0x203c */ DWORD unknown002063; -/* 0x2040 */ DWORD unknown002064; -/* 0x2044 */ DWORD unknown002065; -/* 0x2048 */ DWORD unknown002066; -/* 0x204c */ DWORD unknown002067; -/* 0x2050 */ DWORD unknown002068; -/* 0x2054 */ DWORD unknown002069; -/* 0x2058 */ DWORD unknown002070; -/* 0x205c */ DWORD unknown002071; -/* 0x2060 */ DWORD unknown002072; -/* 0x2064 */ DWORD unknown002073; -/* 0x2068 */ DWORD unknown002074; -/* 0x206c */ DWORD unknown002075; -/* 0x2070 */ DWORD unknown002076; -/* 0x2074 */ DWORD unknown002077; -/* 0x2078 */ DWORD unknown002078; -/* 0x207c */ DWORD unknown002079; -/* 0x2080 */ DWORD unknown002080; -/* 0x2084 */ DWORD unknown002081; -/* 0x2088 */ DWORD unknown002082; -/* 0x208c */ DWORD unknown002083; -/* 0x2090 */ DWORD unknown002084; -/* 0x2094 */ DWORD unknown002085; -/* 0x2098 */ DWORD unknown002086; -/* 0x209c */ DWORD unknown002087; -/* 0x20a0 */ DWORD unknown002088; -/* 0x20a4 */ DWORD unknown002089; -/* 0x20a8 */ DWORD unknown002090; -/* 0x20ac */ DWORD unknown002091; -/* 0x20b0 */ DWORD unknown002092; -/* 0x20b4 */ DWORD unknown002093; -/* 0x20b8 */ DWORD unknown002094; -/* 0x20bc */ DWORD unknown002095; -/* 0x20c0 */ DWORD unknown002096; -/* 0x20c4 */ DWORD unknown002097; -/* 0x20c8 */ DWORD unknown002098; -/* 0x20cc */ DWORD unknown002099; -/* 0x20d0 */ DWORD unknown002100; -/* 0x20d4 */ DWORD unknown002101; -/* 0x20d8 */ DWORD unknown002102; -/* 0x20dc */ DWORD unknown002103; -/* 0x20e0 */ DWORD unknown002104; -/* 0x20e4 */ DWORD unknown002105; -/* 0x20e8 */ DWORD unknown002106; -/* 0x20ec */ DWORD unknown002107; -/* 0x20f0 */ DWORD unknown002108; -/* 0x20f4 */ DWORD unknown002109; -/* 0x20f8 */ DWORD unknown002110; -/* 0x20fc */ DWORD unknown002111; -/* 0x2100 */ DWORD unknown002112; -/* 0x2104 */ DWORD unknown002113; -/* 0x2108 */ DWORD unknown002114; -/* 0x210c */ DWORD unknown002115; -/* 0x2110 */ DWORD unknown002116; -/* 0x2114 */ DWORD unknown002117; -/* 0x2118 */ DWORD unknown002118; -/* 0x211c */ DWORD unknown002119; -/* 0x2120 */ DWORD unknown002120; -/* 0x2124 */ DWORD unknown002121; -/* 0x2128 */ DWORD unknown002122; -/* 0x212c */ DWORD unknown002123; -/* 0x2130 */ DWORD unknown002124; -/* 0x2134 */ DWORD unknown002125; -/* 0x2138 */ DWORD unknown002126; -/* 0x213c */ DWORD unknown002127; -/* 0x2140 */ DWORD unknown002128; -/* 0x2144 */ DWORD unknown002129; -/* 0x2148 */ DWORD unknown002130; -/* 0x214c */ DWORD unknown002131; -/* 0x2150 */ DWORD unknown002132; -/* 0x2154 */ DWORD unknown002133; -/* 0x2158 */ DWORD unknown002134; -/* 0x215c */ DWORD unknown002135; -/* 0x2160 */ DWORD unknown002136; -/* 0x2164 */ DWORD unknown002137; -/* 0x2168 */ DWORD unknown002138; -/* 0x216c */ DWORD unknown002139; -/* 0x2170 */ DWORD unknown002140; -/* 0x2174 */ DWORD unknown002141; -/* 0x2178 */ DWORD unknown002142; -/* 0x217c */ DWORD unknown002143; -/* 0x2180 */ DWORD unknown002144; -/* 0x2184 */ DWORD unknown002145; -/* 0x2188 */ DWORD unknown002146; -/* 0x218c */ DWORD unknown002147; -/* 0x2190 */ DWORD unknown002148; -/* 0x2194 */ DWORD unknown002149; -/* 0x2198 */ DWORD unknown002150; -/* 0x219c */ DWORD unknown002151; -/* 0x21a0 */ DWORD unknown002152; -/* 0x21a4 */ DWORD unknown002153; -/* 0x21a8 */ DWORD unknown002154; -/* 0x21ac */ DWORD unknown002155; -/* 0x21b0 */ DWORD unknown002156; -/* 0x21b4 */ DWORD unknown002157; -/* 0x21b8 */ DWORD unknown002158; -/* 0x21bc */ DWORD unknown002159; -/* 0x21c0 */ DWORD unknown002160; -/* 0x21c4 */ DWORD unknown002161; -/* 0x21c8 */ DWORD unknown002162; -/* 0x21cc */ DWORD unknown002163; -/* 0x21d0 */ DWORD unknown002164; -/* 0x21d4 */ DWORD unknown002165; -/* 0x21d8 */ DWORD unknown002166; -/* 0x21dc */ DWORD unknown002167; -/* 0x21e0 */ DWORD unknown002168; -/* 0x21e4 */ DWORD unknown002169; -/* 0x21e8 */ DWORD unknown002170; -/* 0x21ec */ DWORD unknown002171; -/* 0x21f0 */ DWORD unknown002172; -/* 0x21f4 */ DWORD unknown002173; -/* 0x21f8 */ DWORD unknown002174; -/* 0x21fc */ DWORD unknown002175; -/* 0x2200 */ DWORD unknown002176; -/* 0x2204 */ DWORD unknown002177; -/* 0x2208 */ DWORD unknown002178; -/* 0x220c */ DWORD unknown002179; -/* 0x2210 */ DWORD unknown002180; -/* 0x2214 */ DWORD unknown002181; -/* 0x2218 */ DWORD unknown002182; -/* 0x221c */ DWORD unknown002183; -/* 0x2220 */ DWORD unknown002184; -/* 0x2224 */ DWORD unknown002185; -/* 0x2228 */ DWORD unknown002186; -/* 0x222c */ DWORD unknown002187; -/* 0x2230 */ DWORD unknown002188; -/* 0x2234 */ DWORD unknown002189; -/* 0x2238 */ DWORD unknown002190; -/* 0x223c */ DWORD unknown002191; -/* 0x2240 */ DWORD unknown002192; -/* 0x2244 */ DWORD unknown002193; -/* 0x2248 */ DWORD unknown002194; -/* 0x224c */ DWORD unknown002195; -/* 0x2250 */ DWORD unknown002196; -/* 0x2254 */ DWORD unknown002197; -/* 0x2258 */ DWORD unknown002198; -/* 0x225c */ DWORD unknown002199; -/* 0x2260 */ DWORD unknown002200; -/* 0x2264 */ DWORD unknown002201; -/* 0x2268 */ DWORD unknown002202; -/* 0x226c */ DWORD unknown002203; -/* 0x2270 */ DWORD unknown002204; -/* 0x2274 */ DWORD unknown002205; -/* 0x2278 */ DWORD unknown002206; -/* 0x227c */ DWORD unknown002207; -/* 0x2280 */ DWORD unknown002208; -/* 0x2284 */ DWORD unknown002209; -/* 0x2288 */ DWORD unknown002210; -/* 0x228c */ DWORD unknown002211; -/* 0x2290 */ DWORD unknown002212; -/* 0x2294 */ DWORD unknown002213; -/* 0x2298 */ DWORD unknown002214; -/* 0x229c */ DWORD unknown002215; -/* 0x22a0 */ DWORD unknown002216; -/* 0x22a4 */ DWORD unknown002217; -/* 0x22a8 */ DWORD unknown002218; -/* 0x22ac */ DWORD unknown002219; -/* 0x22b0 */ DWORD unknown002220; -/* 0x22b4 */ DWORD unknown002221; -/* 0x22b8 */ DWORD unknown002222; -/* 0x22bc */ DWORD unknown002223; -/* 0x22c0 */ DWORD unknown002224; -/* 0x22c4 */ DWORD unknown002225; -/* 0x22c8 */ DWORD unknown002226; -/* 0x22cc */ DWORD unknown002227; -/* 0x22d0 */ DWORD unknown002228; -/* 0x22d4 */ DWORD unknown002229; -/* 0x22d8 */ DWORD unknown002230; -/* 0x22dc */ DWORD unknown002231; -/* 0x22e0 */ DWORD unknown002232; -/* 0x22e4 */ DWORD unknown002233; -/* 0x22e8 */ DWORD unknown002234; -/* 0x22ec */ DWORD unknown002235; -/* 0x22f0 */ DWORD unknown002236; -/* 0x22f4 */ DWORD unknown002237; -/* 0x22f8 */ DWORD unknown002238; -/* 0x22fc */ DWORD unknown002239; -/* 0x2300 */ DWORD unknown002240; -/* 0x2304 */ DWORD unknown002241; -/* 0x2308 */ DWORD unknown002242; -/* 0x230c */ DWORD unknown002243; -/* 0x2310 */ DWORD unknown002244; -/* 0x2314 */ DWORD unknown002245; -/* 0x2318 */ DWORD unknown002246; -/* 0x231c */ DWORD unknown002247; -/* 0x2320 */ DWORD unknown002248; -/* 0x2324 */ DWORD unknown002249; -/* 0x2328 */ DWORD unknown002250; -/* 0x232c */ DWORD unknown002251; -/* 0x2330 */ DWORD unknown002252; -/* 0x2334 */ DWORD unknown002253; -/* 0x2338 */ DWORD unknown002254; -/* 0x233c */ DWORD unknown002255; -/* 0x2340 */ DWORD unknown002256; -/* 0x2344 */ DWORD unknown002257; -/* 0x2348 */ DWORD unknown002258; -/* 0x234c */ DWORD unknown002259; -/* 0x2350 */ DWORD unknown002260; -/* 0x2354 */ DWORD unknown002261; -/* 0x2358 */ DWORD unknown002262; -/* 0x235c */ DWORD unknown002263; -/* 0x2360 */ DWORD unknown002264; -/* 0x2364 */ DWORD unknown002265; -/* 0x2368 */ DWORD unknown002266; -/* 0x236c */ DWORD unknown002267; -/* 0x2370 */ DWORD unknown002268; -/* 0x2374 */ DWORD unknown002269; -/* 0x2378 */ DWORD unknown002270; -/* 0x237c */ DWORD unknown002271; -/* 0x2380 */ DWORD unknown002272; -/* 0x2384 */ DWORD unknown002273; -/* 0x2388 */ DWORD unknown002274; -/* 0x238c */ DWORD unknown002275; -/* 0x2390 */ DWORD unknown002276; -/* 0x2394 */ DWORD unknown002277; -/* 0x2398 */ DWORD unknown002278; -/* 0x239c */ DWORD unknown002279; -/* 0x23a0 */ DWORD unknown002280; -/* 0x23a4 */ DWORD unknown002281; -/* 0x23a8 */ DWORD unknown002282; -/* 0x23ac */ DWORD unknown002283; -/* 0x23b0 */ DWORD unknown002284; -/* 0x23b4 */ DWORD unknown002285; -/* 0x23b8 */ DWORD unknown002286; -/* 0x23bc */ DWORD unknown002287; -/* 0x23c0 */ DWORD unknown002288; -/* 0x23c4 */ DWORD unknown002289; -/* 0x23c8 */ DWORD unknown002290; -/* 0x23cc */ DWORD unknown002291; -/* 0x23d0 */ DWORD unknown002292; -/* 0x23d4 */ DWORD unknown002293; -/* 0x23d8 */ DWORD unknown002294; -/* 0x23dc */ DWORD unknown002295; -/* 0x23e0 */ DWORD unknown002296; -/* 0x23e4 */ DWORD unknown002297; -/* 0x23e8 */ DWORD unknown002298; -/* 0x23ec */ DWORD unknown002299; -/* 0x23f0 */ DWORD unknown002300; -/* 0x23f4 */ DWORD unknown002301; -/* 0x23f8 */ DWORD unknown002302; -/* 0x23fc */ DWORD unknown002303; -/* 0x2400 */ DWORD unknown002304; -/* 0x2404 */ DWORD unknown002305; -/* 0x2408 */ DWORD unknown002306; -/* 0x240c */ DWORD unknown002307; -/* 0x2410 */ DWORD unknown002308; -/* 0x2414 */ DWORD unknown002309; -/* 0x2418 */ DWORD unknown002310; -/* 0x241c */ DWORD unknown002311; -/* 0x2420 */ DWORD unknown002312; -/* 0x2424 */ DWORD unknown002313; -/* 0x2428 */ DWORD unknown002314; -/* 0x242c */ DWORD unknown002315; -/* 0x2430 */ DWORD unknown002316; -/* 0x2434 */ DWORD unknown002317; -} D3D9PUREDEVICE, FAR *LPD3D9PUREDEVICE; +/* IUnknown interface */ +HRESULT WINAPI IDirect3DDevice9Base_QueryInterface(LPDIRECT3DDEVICE9 iface, REFIID riid, void** ppvObject); +ULONG WINAPI IDirect3DDevice9Base_AddRef(LPDIRECT3DDEVICE9 iface); +ULONG WINAPI IDirect3DDevice9Base_Release(LPDIRECT3DDEVICE9 iface); -typedef struct _D3D9HALDEVICE -{ -/* 0x0000 */ D3D9PUREDEVICE PureDevice; -#ifdef D3D_DEBUG_INFO -/* N/A - 0x0004 */ DWORD dbg0004; -/* N/A - 0x0008 */ DWORD dbg0008; -/* N/A - 0x000c */ DWORD dbg000c; -/* N/A - 0x0010 */ DWORD dbg0010; -/* N/A - 0x0014 */ DWORD dbg0014; -/* N/A - 0x0018 */ DWORD dbg0018; -/* N/A - 0x001c */ DWORD dbg001c; -/* N/A - 0x0020 */ DWORD dbg0020; -/* N/A - 0x0024 */ DWORD dbg0024; -/* N/A - 0x0028 */ DWORD dbg0028; -/* N/A - 0x002c */ DWORD dbg002c; -/* N/A - 0x0030 */ DWORD dbg0030; -/* N/A - 0x0034 */ DWORD dbg0034; -/* N/A - 0x0038 */ DWORD dbg0038; -#endif -/* 0x2438 */ DWORD unknown002438; -/* 0x243c */ DWORD unknown00243c; -/* 0x2440 */ DWORD unknown002440; -/* 0x2444 */ DWORD unknown002444; -/* 0x2448 */ DWORD unknown002448; -/* 0x244c */ DWORD unknown00244c; -/* 0x2450 */ DWORD unknown002450; -/* 0x2454 */ DWORD unknown002454; -/* 0x2458 */ DWORD unknown002458; -/* 0x245c */ DWORD unknown00245c; -/* 0x2460 */ DWORD unknown002460; -/* 0x2464 */ DWORD unknown002464; -/* 0x2468 */ DWORD unknown002468; -/* 0x246c */ DWORD unknown00246c; -/* 0x2470 */ DWORD unknown002470; -/* 0x2474 */ DWORD unknown002474; -/* 0x2478 */ DWORD unknown002478; -/* 0x247c */ DWORD unknown00247c; -/* 0x2480 */ DWORD unknown002480; -/* 0x2484 */ DWORD unknown002484; -/* 0x2488 */ DWORD unknown002488; -/* 0x248c */ DWORD unknown00248c; -/* 0x2490 */ DWORD unknown002490; -/* 0x2494 */ DWORD unknown002494; -/* 0x2498 */ DWORD unknown002498; -/* 0x249c */ DWORD unknown00249c; -/* 0x24a0 */ DWORD unknown0024a0; -/* 0x24a4 */ DWORD unknown0024a4; -/* 0x24a8 */ DWORD unknown0024a8; -/* 0x24ac */ DWORD unknown0024ac; -/* 0x24b0 */ DWORD unknown0024b0; -/* 0x24b4 */ DWORD unknown0024b4; -/* 0x24b8 */ DWORD unknown0024b8; -/* 0x24bc */ DWORD unknown0024bc; -/* 0x24c0 */ DWORD unknown0024c0; -/* 0x24c4 */ DWORD unknown0024c4; -/* 0x24c8 */ DWORD unknown0024c8; -/* 0x24cc */ DWORD unknown0024cc; -/* 0x24d0 */ DWORD unknown0024d0; -/* 0x24d4 */ DWORD unknown0024d4; -/* 0x24d8 */ DWORD unknown0024d8; -/* 0x24dc */ DWORD unknown0024dc; -/* 0x24e0 */ DWORD unknown0024e0; -/* 0x24e4 */ DWORD unknown0024e4; -/* 0x24e8 */ DWORD unknown0024e8; -/* 0x24ec */ DWORD unknown0024ec; -/* 0x24f0 */ DWORD unknown0024f0; -/* 0x24f4 */ DWORD unknown0024f4; -/* 0x24f8 */ DWORD unknown0024f8; -/* 0x24fc */ DWORD unknown0024fc; -/* 0x2500 */ DWORD unknown002500; -/* 0x2504 */ DWORD unknown002504; -/* 0x2508 */ DWORD unknown002508; -/* 0x250c */ DWORD unknown00250c; -/* 0x2510 */ DWORD unknown002510; -/* 0x2514 */ DWORD unknown002514; -/* 0x2518 */ DWORD unknown002518; -/* 0x251c */ DWORD unknown00251c; -/* 0x2520 */ DWORD unknown002520; -/* 0x2524 */ DWORD unknown002524; -/* 0x2528 */ DWORD unknown002528; -/* 0x252c */ DWORD unknown00252c; -/* 0x2530 */ DWORD unknown002530; -/* 0x2534 */ DWORD unknown002534; -/* 0x2538 */ DWORD unknown002538; -/* 0x253c */ DWORD unknown00253c; -/* 0x2540 */ DWORD unknown002540; -/* 0x2544 */ DWORD unknown002544; -/* 0x2548 */ DWORD unknown002548; -/* 0x254c */ DWORD unknown00254c; -/* 0x2550 */ DWORD unknown002550; -/* 0x2554 */ DWORD unknown002554; -/* 0x2558 */ DWORD unknown002558; -/* 0x255c */ DWORD unknown00255c; -/* 0x2560 */ DWORD unknown002560; -/* 0x2564 */ DWORD unknown002564; -/* 0x2568 */ DWORD unknown002568; -/* 0x256c */ DWORD unknown00256c; -/* 0x2570 */ DWORD unknown002570; -/* 0x2574 */ DWORD unknown002574; -/* 0x2578 */ DWORD unknown002578; -/* 0x257c */ DWORD unknown00257c; -/* 0x2580 */ DWORD unknown002580; -/* 0x2584 */ DWORD unknown002584; -/* 0x2588 */ DWORD unknown002588; -/* 0x258c */ DWORD unknown00258c; -/* 0x2590 */ DWORD unknown002590; -/* 0x2594 */ DWORD unknown002594; -/* 0x2598 */ DWORD unknown002598; -/* 0x259c */ DWORD unknown00259c; -/* 0x25a0 */ DWORD unknown0025a0; -/* 0x25a4 */ DWORD unknown0025a4; -/* 0x25a8 */ DWORD unknown0025a8; -/* 0x25ac */ DWORD unknown0025ac; -/* 0x25b0 */ DWORD unknown0025b0; -/* 0x25b4 */ DWORD unknown0025b4; -/* 0x25b8 */ DWORD unknown0025b8; -/* 0x25bc */ DWORD unknown0025bc; -/* 0x25c0 */ DWORD unknown0025c0; -/* 0x25c4 */ DWORD unknown0025c4; -/* 0x25c8 */ DWORD unknown0025c8; -/* 0x25cc */ DWORD unknown0025cc; -/* 0x25d0 */ DWORD unknown0025d0; -/* 0x25d4 */ DWORD unknown0025d4; -/* 0x25d8 */ DWORD unknown0025d8; -/* 0x25dc */ DWORD unknown0025dc; -/* 0x25e0 */ DWORD unknown0025e0; -/* 0x25e4 */ DWORD unknown0025e4; -/* 0x25e8 */ DWORD unknown0025e8; -/* 0x25ec */ DWORD unknown0025ec; -/* 0x25f0 */ DWORD unknown0025f0; -/* 0x25f4 */ DWORD unknown0025f4; -/* 0x25f8 */ DWORD unknown0025f8; -/* 0x25fc */ DWORD unknown0025fc; - -/* 0x2600 */ DWORD unknown002600; -/* 0x2604 */ DWORD unknown002604; -/* 0x2608 */ DWORD unknown002608; -/* 0x260c */ DWORD unknown00260c; -/* 0x2610 */ DWORD unknown002610; -/* 0x2614 */ DWORD unknown002614; -/* 0x2618 */ DWORD unknown002618; -/* 0x261c */ DWORD unknown00261c; -/* 0x2620 */ DWORD unknown002620; -/* 0x2624 */ DWORD unknown002624; -/* 0x2628 */ DWORD unknown002628; -/* 0x262c */ DWORD unknown00262c; -/* 0x2630 */ DWORD unknown002630; -/* 0x2634 */ DWORD unknown002634; -/* 0x2638 */ DWORD unknown002638; -/* 0x263c */ DWORD unknown00263c; -/* 0x2640 */ DWORD unknown002640; -/* 0x2644 */ DWORD unknown002644; -/* 0x2648 */ DWORD unknown002648; -/* 0x264c */ DWORD unknown00264c; -/* 0x2650 */ DWORD unknown002650; -/* 0x2654 */ DWORD unknown002654; -/* 0x2658 */ DWORD unknown002658; -/* 0x265c */ DWORD unknown00265c; -/* 0x2660 */ DWORD unknown002660; -/* 0x2664 */ DWORD unknown002664; -/* 0x2668 */ DWORD unknown002668; -/* 0x266c */ DWORD unknown00266c; -/* 0x2670 */ DWORD unknown002670; -/* 0x2674 */ DWORD unknown002674; -/* 0x2678 */ DWORD unknown002678; -/* 0x267c */ DWORD unknown00267c; -/* 0x2680 */ DWORD unknown002680; -/* 0x2684 */ DWORD unknown002684; -/* 0x2688 */ DWORD unknown002688; -/* 0x268c */ DWORD unknown00268c; -/* 0x2690 */ DWORD unknown002690; -/* 0x2694 */ DWORD unknown002694; -/* 0x2698 */ DWORD unknown002698; -/* 0x269c */ DWORD unknown00269c; -/* 0x26a0 */ DWORD unknown0026a0; -/* 0x26a4 */ DWORD unknown0026a4; -/* 0x26a8 */ DWORD unknown0026a8; -/* 0x26ac */ DWORD unknown0026ac; -/* 0x26b0 */ DWORD unknown0026b0; -/* 0x26b4 */ DWORD unknown0026b4; -/* 0x26b8 */ DWORD unknown0026b8; -/* 0x26bc */ DWORD unknown0026bc; -/* 0x26c0 */ DWORD unknown0026c0; -/* 0x26c4 */ DWORD unknown0026c4; -/* 0x26c8 */ DWORD unknown0026c8; -/* 0x26cc */ DWORD unknown0026cc; -/* 0x26d0 */ DWORD unknown0026d0; -/* 0x26d4 */ DWORD unknown0026d4; -/* 0x26d8 */ DWORD unknown0026d8; -/* 0x26dc */ DWORD unknown0026dc; -/* 0x26e0 */ DWORD unknown0026e0; -/* 0x26e4 */ DWORD unknown0026e4; -/* 0x26e8 */ DWORD unknown0026e8; -/* 0x26ec */ DWORD unknown0026ec; -/* 0x26f0 */ DWORD unknown0026f0; -/* 0x26f4 */ DWORD unknown0026f4; -/* 0x26f8 */ DWORD unknown0026f8; -/* 0x26fc */ DWORD unknown0026fc; - -/* 0x2700 */ DWORD unknown002700; -/* 0x2704 */ DWORD unknown002704; -/* 0x2708 */ DWORD unknown002708; -/* 0x270c */ DWORD unknown00270c; -/* 0x2710 */ DWORD unknown002710; -/* 0x2714 */ DWORD unknown002714; -/* 0x2718 */ DWORD unknown002718; -/* 0x271c */ DWORD unknown00271c; -/* 0x2720 */ DWORD unknown002720; -/* 0x2724 */ DWORD unknown002724; -/* 0x2728 */ DWORD unknown002728; -/* 0x272c */ DWORD unknown00272c; -/* 0x2730 */ DWORD unknown002730; -/* 0x2734 */ DWORD unknown002734; -/* 0x2738 */ DWORD unknown002738; -/* 0x273c */ DWORD unknown00273c; -/* 0x2740 */ DWORD unknown002740; -/* 0x2744 */ DWORD unknown002744; -/* 0x2748 */ DWORD unknown002748; -/* 0x274c */ DWORD unknown00274c; -/* 0x2750 */ DWORD unknown002750; -/* 0x2754 */ DWORD unknown002754; -/* 0x2758 */ DWORD unknown002758; -/* 0x275c */ DWORD unknown00275c; -/* 0x2760 */ DWORD unknown002760; -/* 0x2764 */ DWORD unknown002764; -/* 0x2768 */ DWORD unknown002768; -/* 0x276c */ DWORD unknown00276c; -/* 0x2770 */ DWORD unknown002770; -/* 0x2774 */ DWORD unknown002774; -/* 0x2778 */ DWORD unknown002778; -/* 0x277c */ DWORD unknown00277c; -/* 0x2780 */ DWORD unknown002780; -/* 0x2784 */ DWORD unknown002784; -/* 0x2788 */ DWORD unknown002788; -/* 0x278c */ DWORD unknown00278c; -/* 0x2790 */ DWORD unknown002790; -/* 0x2794 */ DWORD unknown002794; -/* 0x2798 */ DWORD unknown002798; -/* 0x279c */ DWORD unknown00279c; -/* 0x27a0 */ DWORD unknown0027a0; -/* 0x27a4 */ DWORD unknown0027a4; -/* 0x27a8 */ DWORD unknown0027a8; -/* 0x27ac */ DWORD unknown0027ac; -/* 0x27b0 */ DWORD unknown0027b0; -/* 0x27b4 */ DWORD unknown0027b4; -/* 0x27b8 */ DWORD unknown0027b8; -/* 0x27bc */ DWORD unknown0027bc; -/* 0x27c0 */ DWORD unknown0027c0; -/* 0x27c4 */ DWORD unknown0027c4; -/* 0x27c8 */ DWORD unknown0027c8; -/* 0x27cc */ DWORD unknown0027cc; -/* 0x27d0 */ DWORD unknown0027d0; -/* 0x27d4 */ DWORD unknown0027d4; -/* 0x27d8 */ DWORD unknown0027d8; -/* 0x27dc */ DWORD unknown0027dc; -/* 0x27e0 */ DWORD unknown0027e0; -/* 0x27e4 */ DWORD unknown0027e4; -/* 0x27e8 */ DWORD unknown0027e8; -/* 0x27ec */ DWORD unknown0027ec; -/* 0x27f0 */ DWORD unknown0027f0; -/* 0x27f4 */ DWORD unknown0027f4; -/* 0x27f8 */ DWORD unknown0027f8; -/* 0x27fc */ DWORD unknown0027fc; - -/* 0x2800 */ DWORD unknown002800; -/* 0x2804 */ DWORD unknown002804; -/* 0x2808 */ DWORD unknown002808; -/* 0x280c */ DWORD unknown00280c; -/* 0x2810 */ DWORD unknown002810; -/* 0x2814 */ DWORD unknown002814; -/* 0x2818 */ DWORD unknown002818; -/* 0x281c */ DWORD unknown00281c; -/* 0x2820 */ DWORD unknown002820; -/* 0x2824 */ DWORD unknown002824; -/* 0x2828 */ DWORD unknown002828; -/* 0x282c */ DWORD unknown00282c; -/* 0x2830 */ DWORD unknown002830; -/* 0x2834 */ DWORD unknown002834; -/* 0x2838 */ DWORD unknown002838; -/* 0x283c */ DWORD unknown00283c; -/* 0x2840 */ DWORD unknown002840; -/* 0x2844 */ DWORD unknown002844; -/* 0x2848 */ DWORD unknown002848; -/* 0x284c */ DWORD unknown00284c; -/* 0x2850 */ DWORD unknown002850; -/* 0x2854 */ DWORD unknown002854; -/* 0x2858 */ DWORD unknown002858; -/* 0x285c */ DWORD unknown00285c; -/* 0x2860 */ DWORD unknown002860; -/* 0x2864 */ DWORD unknown002864; -/* 0x2868 */ DWORD unknown002868; -/* 0x286c */ DWORD unknown00286c; -/* 0x2870 */ DWORD unknown002870; -/* 0x2874 */ DWORD unknown002874; -/* 0x2878 */ DWORD unknown002878; -/* 0x287c */ DWORD unknown00287c; -/* 0x2880 */ DWORD unknown002880; -/* 0x2884 */ DWORD unknown002884; -/* 0x2888 */ DWORD unknown002888; -/* 0x288c */ DWORD unknown00288c; -/* 0x2890 */ DWORD unknown002890; -/* 0x2894 */ DWORD unknown002894; -/* 0x2898 */ DWORD unknown002898; -/* 0x289c */ DWORD unknown00289c; -/* 0x28a0 */ DWORD unknown0028a0; -/* 0x28a4 */ DWORD unknown0028a4; -/* 0x28a8 */ DWORD unknown0028a8; -/* 0x28ac */ DWORD unknown0028ac; -/* 0x28b0 */ DWORD unknown0028b0; -/* 0x28b4 */ DWORD unknown0028b4; -/* 0x28b8 */ DWORD unknown0028b8; -/* 0x28bc */ DWORD unknown0028bc; -/* 0x28c0 */ DWORD unknown0028c0; -/* 0x28c4 */ DWORD unknown0028c4; -/* 0x28c8 */ DWORD unknown0028c8; -/* 0x28cc */ DWORD unknown0028cc; -/* 0x28d0 */ DWORD unknown0028d0; -/* 0x28d4 */ DWORD unknown0028d4; -/* 0x28d8 */ DWORD unknown0028d8; -/* 0x28dc */ DWORD unknown0028dc; -/* 0x28e0 */ DWORD unknown0028e0; -/* 0x28e4 */ DWORD unknown0028e4; -/* 0x28e8 */ DWORD unknown0028e8; -/* 0x28ec */ DWORD unknown0028ec; -/* 0x28f0 */ DWORD unknown0028f0; -/* 0x28f4 */ DWORD unknown0028f4; -/* 0x28f8 */ DWORD unknown0028f8; -/* 0x28fc */ DWORD unknown0028fc; - -/* 0x2900 */ DWORD unknown002900; -/* 0x2904 */ DWORD unknown002904; -/* 0x2908 */ DWORD unknown002908; -/* 0x290c */ DWORD unknown00290c; -/* 0x2910 */ DWORD unknown002910; -/* 0x2914 */ DWORD unknown002914; -/* 0x2918 */ DWORD unknown002918; -/* 0x291c */ DWORD unknown00291c; -/* 0x2920 */ DWORD unknown002920; -/* 0x2924 */ DWORD unknown002924; -/* 0x2928 */ DWORD unknown002928; -/* 0x292c */ DWORD unknown00292c; -/* 0x2930 */ DWORD unknown002930; -/* 0x2934 */ DWORD unknown002934; -/* 0x2938 */ DWORD unknown002938; -/* 0x293c */ DWORD unknown00293c; -/* 0x2940 */ DWORD unknown002940; -/* 0x2944 */ DWORD unknown002944; -/* 0x2948 */ DWORD unknown002948; -/* 0x294c */ DWORD unknown00294c; -/* 0x2950 */ DWORD unknown002950; -/* 0x2954 */ DWORD unknown002954; -/* 0x2958 */ DWORD unknown002958; -/* 0x295c */ DWORD unknown00295c; -/* 0x2960 */ DWORD unknown002960; -/* 0x2964 */ DWORD unknown002964; -/* 0x2968 */ DWORD unknown002968; -/* 0x296c */ DWORD unknown00296c; -/* 0x2970 */ DWORD unknown002970; -/* 0x2974 */ DWORD unknown002974; -/* 0x2978 */ DWORD unknown002978; -/* 0x297c */ DWORD unknown00297c; -/* 0x2980 */ DWORD unknown002980; -/* 0x2984 */ DWORD unknown002984; -/* 0x2988 */ DWORD unknown002988; -/* 0x298c */ DWORD unknown00298c; -/* 0x2990 */ DWORD unknown002990; -/* 0x2994 */ DWORD unknown002994; -/* 0x2998 */ DWORD unknown002998; -/* 0x299c */ DWORD unknown00299c; -/* 0x29a0 */ DWORD unknown0029a0; -/* 0x29a4 */ DWORD unknown0029a4; -/* 0x29a8 */ DWORD unknown0029a8; -/* 0x29ac */ DWORD unknown0029ac; -/* 0x29b0 */ DWORD unknown0029b0; -/* 0x29b4 */ DWORD unknown0029b4; -/* 0x29b8 */ DWORD unknown0029b8; -/* 0x29bc */ DWORD unknown0029bc; -/* 0x29c0 */ DWORD unknown0029c0; -/* 0x29c4 */ DWORD unknown0029c4; -/* 0x29c8 */ DWORD unknown0029c8; -/* 0x29cc */ DWORD unknown0029cc; -/* 0x29d0 */ DWORD unknown0029d0; -/* 0x29d4 */ DWORD unknown0029d4; -/* 0x29d8 */ DWORD unknown0029d8; -/* 0x29dc */ DWORD unknown0029dc; -/* 0x29e0 */ DWORD unknown0029e0; -/* 0x29e4 */ DWORD unknown0029e4; -/* 0x29e8 */ DWORD unknown0029e8; -/* 0x29ec */ DWORD unknown0029ec; -/* 0x29f0 */ DWORD unknown0029f0; -/* 0x29f4 */ DWORD unknown0029f4; -/* 0x29f8 */ DWORD unknown0029f8; -/* 0x29fc */ DWORD unknown0029fc; - -/* 0x2a00 */ DWORD unknown002a00; -/* 0x2a04 */ DWORD unknown002a04; -/* 0x2a08 */ DWORD unknown002a08; -/* 0x2a0c */ DWORD unknown002a0c; -/* 0x2a10 */ DWORD unknown002a10; -/* 0x2a14 */ DWORD unknown002a14; -/* 0x2a18 */ DWORD unknown002a18; -/* 0x2a1c */ DWORD unknown002a1c; -/* 0x2a20 */ DWORD unknown002a20; -/* 0x2a24 */ DWORD unknown002a24; -/* 0x2a28 */ DWORD unknown002a28; -/* 0x2a2c */ DWORD unknown002a2c; -/* 0x2a30 */ DWORD unknown002a30; -/* 0x2a34 */ DWORD unknown002a34; -/* 0x2a38 */ DWORD unknown002a38; -/* 0x2a3c */ DWORD unknown002a3c; -/* 0x2a40 */ DWORD unknown002a40; -/* 0x2a44 */ DWORD unknown002a44; -/* 0x2a48 */ DWORD unknown002a48; -/* 0x2a4c */ DWORD unknown002a4c; -/* 0x2a50 */ DWORD unknown002a50; -/* 0x2a54 */ DWORD unknown002a54; -/* 0x2a58 */ DWORD unknown002a58; -/* 0x2a5c */ DWORD unknown002a5c; -/* 0x2a60 */ DWORD unknown002a60; -/* 0x2a64 */ DWORD unknown002a64; -/* 0x2a68 */ DWORD unknown002a68; -/* 0x2a6c */ DWORD unknown002a6c; -/* 0x2a70 */ DWORD unknown002a70; -/* 0x2a74 */ DWORD unknown002a74; -/* 0x2a78 */ DWORD unknown002a78; -/* 0x2a7c */ DWORD unknown002a7c; -/* 0x2a80 */ DWORD unknown002a80; -/* 0x2a84 */ DWORD unknown002a84; -/* 0x2a88 */ DWORD unknown002a88; -/* 0x2a8c */ DWORD unknown002a8c; -/* 0x2a90 */ DWORD unknown002a90; -/* 0x2a94 */ DWORD unknown002a94; -/* 0x2a98 */ DWORD unknown002a98; -/* 0x2a9c */ DWORD unknown002a9c; -/* 0x2aa0 */ DWORD unknown002aa0; -/* 0x2aa4 */ DWORD unknown002aa4; -/* 0x2aa8 */ DWORD unknown002aa8; -/* 0x2aac */ DWORD unknown002aac; -/* 0x2ab0 */ DWORD unknown002ab0; -/* 0x2ab4 */ DWORD unknown002ab4; -/* 0x2ab8 */ DWORD unknown002ab8; -/* 0x2abc */ DWORD unknown002abc; -/* 0x2ac0 */ DWORD unknown002ac0; -/* 0x2ac4 */ DWORD unknown002ac4; -/* 0x2ac8 */ DWORD unknown002ac8; -/* 0x2acc */ DWORD unknown002acc; -/* 0x2ad0 */ DWORD unknown002ad0; -/* 0x2ad4 */ DWORD unknown002ad4; -/* 0x2ad8 */ DWORD unknown002ad8; -/* 0x2adc */ DWORD unknown002adc; -/* 0x2ae0 */ DWORD unknown002ae0; -/* 0x2ae4 */ DWORD unknown002ae4; -/* 0x2ae8 */ DWORD unknown002ae8; -/* 0x2aec */ DWORD unknown002aec; -/* 0x2af0 */ DWORD unknown002af0; -/* 0x2af4 */ DWORD unknown002af4; -/* 0x2af8 */ DWORD unknown002af8; -/* 0x2afc */ DWORD unknown002afc; - -/* 0x2b00 */ DWORD unknown002b00; -/* 0x2b04 */ DWORD unknown002b04; -/* 0x2b08 */ DWORD unknown002b08; -/* 0x2b0c */ DWORD unknown002b0c; -/* 0x2b10 */ DWORD unknown002b10; -/* 0x2b14 */ DWORD unknown002b14; -/* 0x2b18 */ DWORD unknown002b18; -/* 0x2b1c */ DWORD unknown002b1c; -/* 0x2b20 */ DWORD unknown002b20; -/* 0x2b24 */ DWORD unknown002b24; -/* 0x2b28 */ DWORD unknown002b28; -/* 0x2b2c */ DWORD unknown002b2c; -/* 0x2b30 */ DWORD unknown002b30; -/* 0x2b34 */ DWORD unknown002b34; -/* 0x2b38 */ DWORD unknown002b38; -/* 0x2b3c */ DWORD unknown002b3c; -/* 0x2b40 */ DWORD unknown002b40; -/* 0x2b44 */ DWORD unknown002b44; -/* 0x2b48 */ DWORD unknown002b48; -/* 0x2b4c */ DWORD unknown002b4c; -/* 0x2b50 */ DWORD unknown002b50; -/* 0x2b54 */ DWORD unknown002b54; -/* 0x2b58 */ DWORD unknown002b58; -/* 0x2b5c */ DWORD unknown002b5c; -/* 0x2b60 */ DWORD unknown002b60; -/* 0x2b64 */ DWORD unknown002b64; -/* 0x2b68 */ DWORD unknown002b68; -/* 0x2b6c */ DWORD unknown002b6c; -/* 0x2b70 */ DWORD unknown002b70; -/* 0x2b74 */ DWORD unknown002b74; -/* 0x2b78 */ DWORD unknown002b78; -/* 0x2b7c */ DWORD unknown002b7c; -/* 0x2b80 */ DWORD unknown002b80; -/* 0x2b84 */ DWORD unknown002b84; -/* 0x2b88 */ DWORD unknown002b88; -/* 0x2b8c */ DWORD unknown002b8c; -/* 0x2b90 */ DWORD unknown002b90; -/* 0x2b94 */ DWORD unknown002b94; -/* 0x2b98 */ DWORD unknown002b98; -/* 0x2b9c */ DWORD unknown002b9c; -/* 0x2ba0 */ DWORD unknown002ba0; -/* 0x2ba4 */ DWORD unknown002ba4; -/* 0x2ba8 */ DWORD unknown002ba8; -/* 0x2bac */ DWORD unknown002bac; -/* 0x2bb0 */ DWORD unknown002bb0; -/* 0x2bb4 */ DWORD unknown002bb4; -/* 0x2bb8 */ DWORD unknown002bb8; -/* 0x2bbc */ DWORD unknown002bbc; -/* 0x2bc0 */ DWORD unknown002bc0; -/* 0x2bc4 */ DWORD unknown002bc4; -/* 0x2bc8 */ DWORD unknown002bc8; -/* 0x2bcc */ DWORD unknown002bcc; -/* 0x2bd0 */ DWORD unknown002bd0; -/* 0x2bd4 */ DWORD unknown002bd4; -/* 0x2bd8 */ DWORD unknown002bd8; -/* 0x2bdc */ DWORD unknown002bdc; -/* 0x2be0 */ DWORD unknown002be0; -/* 0x2be4 */ DWORD unknown002be4; -/* 0x2be8 */ DWORD unknown002be8; -/* 0x2bec */ DWORD unknown002bec; -/* 0x2bf0 */ DWORD unknown002bf0; -/* 0x2bf4 */ DWORD unknown002bf4; -/* 0x2bf8 */ DWORD unknown002bf8; -/* 0x2bfc */ DWORD unknown002bfc; - -/* 0x2c00 */ DWORD unknown002c00; -/* 0x2c04 */ DWORD unknown002c04; -/* 0x2c08 */ DWORD unknown002c08; -/* 0x2c0c */ DWORD unknown002c0c; -/* 0x2c10 */ DWORD unknown002c10; -/* 0x2c14 */ DWORD unknown002c14; -/* 0x2c18 */ DWORD unknown002c18; -/* 0x2c1c */ DWORD unknown002c1c; -/* 0x2c20 */ DWORD unknown002c20; -/* 0x2c24 */ DWORD unknown002c24; -/* 0x2c28 */ DWORD unknown002c28; -/* 0x2c2c */ DWORD unknown002c2c; -/* 0x2c30 */ DWORD unknown002c30; -/* 0x2c34 */ DWORD unknown002c34; -/* 0x2c38 */ DWORD unknown002c38; -/* 0x2c3c */ DWORD unknown002c3c; -/* 0x2c40 */ DWORD unknown002c40; -/* 0x2c44 */ DWORD unknown002c44; -/* 0x2c48 */ DWORD unknown002c48; -/* 0x2c4c */ DWORD unknown002c4c; -/* 0x2c50 */ DWORD unknown002c50; -/* 0x2c54 */ DWORD unknown002c54; -/* 0x2c58 */ DWORD unknown002c58; -/* 0x2c5c */ DWORD unknown002c5c; -/* 0x2c60 */ DWORD unknown002c60; -/* 0x2c64 */ DWORD unknown002c64; -/* 0x2c68 */ DWORD unknown002c68; -/* 0x2c6c */ DWORD unknown002c6c; -/* 0x2c70 */ DWORD unknown002c70; -/* 0x2c74 */ DWORD unknown002c74; -/* 0x2c78 */ DWORD unknown002c78; -/* 0x2c7c */ DWORD unknown002c7c; -/* 0x2c80 */ DWORD unknown002c80; -/* 0x2c84 */ DWORD unknown002c84; -/* 0x2c88 */ DWORD unknown002c88; -/* 0x2c8c */ DWORD unknown002c8c; -/* 0x2c90 */ DWORD unknown002c90; -/* 0x2c94 */ DWORD unknown002c94; -/* 0x2c98 */ DWORD unknown002c98; -/* 0x2c9c */ DWORD unknown002c9c; -/* 0x2ca0 */ DWORD unknown002ca0; -/* 0x2ca4 */ DWORD unknown002ca4; -/* 0x2ca8 */ DWORD unknown002ca8; -/* 0x2cac */ DWORD unknown002cac; -/* 0x2cb0 */ DWORD unknown002cb0; -/* 0x2cb4 */ DWORD unknown002cb4; -/* 0x2cb8 */ DWORD unknown002cb8; -/* 0x2cbc */ DWORD unknown002cbc; -/* 0x2cc0 */ DWORD unknown002cc0; -/* 0x2cc4 */ DWORD unknown002cc4; -/* 0x2cc8 */ DWORD unknown002cc8; -/* 0x2ccc */ DWORD unknown002ccc; -/* 0x2cd0 */ DWORD unknown002cd0; -/* 0x2cd4 */ DWORD unknown002cd4; -/* 0x2cd8 */ DWORD unknown002cd8; -/* 0x2cdc */ DWORD unknown002cdc; -/* 0x2ce0 */ DWORD unknown002ce0; -/* 0x2ce4 */ DWORD unknown002ce4; -/* 0x2ce8 */ DWORD unknown002ce8; -/* 0x2cec */ DWORD unknown002cec; -/* 0x2cf0 */ DWORD unknown002cf0; -/* 0x2cf4 */ DWORD unknown002cf4; -/* 0x2cf8 */ DWORD unknown002cf8; -/* 0x2cfc */ DWORD unknown002cfc; - -/* 0x2d00 */ DWORD unknown002d00; -/* 0x2d04 */ DWORD unknown002d04; -/* 0x2d08 */ DWORD unknown002d08; -/* 0x2d0c */ DWORD unknown002d0c; -/* 0x2d10 */ DWORD unknown002d10; -/* 0x2d14 */ DWORD unknown002d14; -/* 0x2d18 */ DWORD unknown002d18; -/* 0x2d1c */ DWORD unknown002d1c; -/* 0x2d20 */ DWORD unknown002d20; -/* 0x2d24 */ DWORD unknown002d24; -/* 0x2d28 */ DWORD unknown002d28; -/* 0x2d2c */ DWORD unknown002d2c; -/* 0x2d30 */ DWORD unknown002d30; -/* 0x2d34 */ DWORD unknown002d34; -/* 0x2d38 */ DWORD unknown002d38; -/* 0x2d3c */ DWORD unknown002d3c; -/* 0x2d40 */ DWORD unknown002d40; -/* 0x2d44 */ DWORD unknown002d44; -/* 0x2d48 */ DWORD unknown002d48; -/* 0x2d4c */ DWORD unknown002d4c; -/* 0x2d50 */ DWORD unknown002d50; -/* 0x2d54 */ DWORD unknown002d54; -/* 0x2d58 */ DWORD unknown002d58; -/* 0x2d5c */ DWORD unknown002d5c; -/* 0x2d60 */ DWORD unknown002d60; -/* 0x2d64 */ DWORD unknown002d64; -/* 0x2d68 */ DWORD unknown002d68; -/* 0x2d6c */ DWORD unknown002d6c; -/* 0x2d70 */ DWORD unknown002d70; -/* 0x2d74 */ DWORD unknown002d74; -/* 0x2d78 */ DWORD unknown002d78; -/* 0x2d7c */ DWORD unknown002d7c; -/* 0x2d80 */ DWORD unknown002d80; -/* 0x2d84 */ DWORD unknown002d84; -/* 0x2d88 */ DWORD unknown002d88; -/* 0x2d8c */ DWORD unknown002d8c; -/* 0x2d90 */ DWORD unknown002d90; -/* 0x2d94 */ DWORD unknown002d94; -/* 0x2d98 */ DWORD unknown002d98; -/* 0x2d9c */ DWORD unknown002d9c; -/* 0x2da0 */ DWORD unknown002da0; -/* 0x2da4 */ DWORD unknown002da4; -/* 0x2da8 */ DWORD unknown002da8; -/* 0x2dac */ DWORD unknown002dac; -/* 0x2db0 */ DWORD unknown002db0; -/* 0x2db4 */ DWORD unknown002db4; -/* 0x2db8 */ DWORD unknown002db8; -/* 0x2dbc */ DWORD unknown002dbc; -/* 0x2dc0 */ DWORD unknown002dc0; -/* 0x2dc4 */ DWORD unknown002dc4; -/* 0x2dc8 */ DWORD unknown002dc8; -/* 0x2dcc */ DWORD unknown002dcc; -/* 0x2dd0 */ DWORD unknown002dd0; -/* 0x2dd4 */ DWORD unknown002dd4; -/* 0x2dd8 */ DWORD unknown002dd8; -/* 0x2ddc */ DWORD unknown002ddc; -/* 0x2de0 */ DWORD unknown002de0; -/* 0x2de4 */ DWORD unknown002de4; -/* 0x2de8 */ DWORD unknown002de8; -/* 0x2dec */ DWORD unknown002dec; -/* 0x2df0 */ DWORD unknown002df0; -/* 0x2df4 */ DWORD unknown002df4; -/* 0x2df8 */ DWORD unknown002df8; -/* 0x2dfc */ DWORD unknown002dfc; - -/* 0x2e00 */ DWORD unknown002e00; -/* 0x2e04 */ DWORD unknown002e04; -/* 0x2e08 */ DWORD unknown002e08; -/* 0x2e0c */ DWORD unknown002e0c; -/* 0x2e10 */ DWORD unknown002e10; -/* 0x2e14 */ DWORD unknown002e14; -/* 0x2e18 */ DWORD unknown002e18; -/* 0x2e1c */ DWORD unknown002e1c; -/* 0x2e20 */ DWORD unknown002e20; -/* 0x2e24 */ DWORD unknown002e24; -/* 0x2e28 */ DWORD unknown002e28; -/* 0x2e2c */ DWORD unknown002e2c; -/* 0x2e30 */ DWORD unknown002e30; -/* 0x2e34 */ DWORD unknown002e34; -/* 0x2e38 */ DWORD unknown002e38; -/* 0x2e3c */ DWORD unknown002e3c; -/* 0x2e40 */ DWORD unknown002e40; -/* 0x2e44 */ DWORD unknown002e44; -/* 0x2e48 */ DWORD unknown002e48; -/* 0x2e4c */ DWORD unknown002e4c; -/* 0x2e50 */ DWORD unknown002e50; -/* 0x2e54 */ DWORD unknown002e54; -/* 0x2e58 */ DWORD unknown002e58; -/* 0x2e5c */ DWORD unknown002e5c; -/* 0x2e60 */ DWORD unknown002e60; -/* 0x2e64 */ DWORD unknown002e64; -/* 0x2e68 */ DWORD unknown002e68; -/* 0x2e6c */ DWORD unknown002e6c; -/* 0x2e70 */ DWORD unknown002e70; -/* 0x2e74 */ DWORD unknown002e74; -/* 0x2e78 */ DWORD unknown002e78; -/* 0x2e7c */ DWORD unknown002e7c; -/* 0x2e80 */ DWORD unknown002e80; -/* 0x2e84 */ DWORD unknown002e84; -/* 0x2e88 */ DWORD unknown002e88; -/* 0x2e8c */ DWORD unknown002e8c; -/* 0x2e90 */ DWORD unknown002e90; -/* 0x2e94 */ DWORD unknown002e94; -/* 0x2e98 */ DWORD unknown002e98; -/* 0x2e9c */ DWORD unknown002e9c; -/* 0x2ea0 */ DWORD unknown002ea0; -/* 0x2ea4 */ DWORD unknown002ea4; -/* 0x2ea8 */ DWORD unknown002ea8; -/* 0x2eac */ DWORD unknown002eac; -/* 0x2eb0 */ DWORD unknown002eb0; -/* 0x2eb4 */ DWORD unknown002eb4; -/* 0x2eb8 */ DWORD unknown002eb8; -/* 0x2ebc */ DWORD unknown002ebc; -/* 0x2ec0 */ DWORD unknown002ec0; -/* 0x2ec4 */ DWORD unknown002ec4; -/* 0x2ec8 */ DWORD unknown002ec8; -/* 0x2ecc */ DWORD unknown002ecc; -/* 0x2ed0 */ DWORD unknown002ed0; -/* 0x2ed4 */ DWORD unknown002ed4; -/* 0x2ed8 */ DWORD unknown002ed8; -/* 0x2edc */ DWORD unknown002edc; -/* 0x2ee0 */ DWORD unknown002ee0; -/* 0x2ee4 */ DWORD unknown002ee4; -/* 0x2ee8 */ DWORD unknown002ee8; -/* 0x2eec */ DWORD unknown002eec; -/* 0x2ef0 */ DWORD unknown002ef0; -/* 0x2ef4 */ DWORD unknown002ef4; -/* 0x2ef8 */ DWORD unknown002ef8; -/* 0x2efc */ DWORD unknown002efc; - -/* 0x2f00 */ DWORD unknown002f00; -/* 0x2f04 */ DWORD unknown002f04; -/* 0x2f08 */ DWORD unknown002f08; -/* 0x2f0c */ DWORD unknown002f0c; -/* 0x2f10 */ DWORD unknown002f10; -/* 0x2f14 */ DWORD unknown002f14; -/* 0x2f18 */ DWORD unknown002f18; -/* 0x2f1c */ DWORD unknown002f1c; -/* 0x2f20 */ DWORD unknown002f20; -/* 0x2f24 */ DWORD unknown002f24; -/* 0x2f28 */ DWORD unknown002f28; -/* 0x2f2c */ DWORD unknown002f2c; -/* 0x2f30 */ DWORD unknown002f30; -/* 0x2f34 */ DWORD unknown002f34; -/* 0x2f38 */ DWORD unknown002f38; -/* 0x2f3c */ DWORD unknown002f3c; -/* 0x2f40 */ DWORD unknown002f40; -/* 0x2f44 */ DWORD unknown002f44; -/* 0x2f48 */ DWORD unknown002f48; -/* 0x2f4c */ DWORD unknown002f4c; -/* 0x2f50 */ DWORD unknown002f50; -/* 0x2f54 */ DWORD unknown002f54; -/* 0x2f58 */ DWORD unknown002f58; -/* 0x2f5c */ DWORD unknown002f5c; -/* 0x2f60 */ DWORD unknown002f60; -/* 0x2f64 */ DWORD unknown002f64; -/* 0x2f68 */ DWORD unknown002f68; -/* 0x2f6c */ DWORD unknown002f6c; -/* 0x2f70 */ DWORD unknown002f70; -/* 0x2f74 */ DWORD unknown002f74; -/* 0x2f78 */ DWORD unknown002f78; -/* 0x2f7c */ DWORD unknown002f7c; -/* 0x2f80 */ DWORD unknown002f80; -/* 0x2f84 */ DWORD unknown002f84; -/* 0x2f88 */ DWORD unknown002f88; -/* 0x2f8c */ DWORD unknown002f8c; -/* 0x2f90 */ DWORD unknown002f90; -/* 0x2f94 */ DWORD unknown002f94; -/* 0x2f98 */ DWORD unknown002f98; -/* 0x2f9c */ DWORD unknown002f9c; -/* 0x2fa0 */ DWORD unknown002fa0; -/* 0x2fa4 */ DWORD unknown002fa4; -/* 0x2fa8 */ DWORD unknown002fa8; -/* 0x2fac */ DWORD unknown002fac; -/* 0x2fb0 */ DWORD unknown002fb0; -/* 0x2fb4 */ DWORD unknown002fb4; -/* 0x2fb8 */ DWORD unknown002fb8; -/* 0x2fbc */ DWORD unknown002fbc; -/* 0x2fc0 */ DWORD unknown002fc0; -/* 0x2fc4 */ DWORD unknown002fc4; -/* 0x2fc8 */ DWORD unknown002fc8; -/* 0x2fcc */ DWORD unknown002fcc; -/* 0x2fd0 */ DWORD unknown002fd0; -/* 0x2fd4 */ DWORD unknown002fd4; -/* 0x2fd8 */ DWORD unknown002fd8; -/* 0x2fdc */ DWORD unknown002fdc; -/* 0x2fe0 */ DWORD unknown002fe0; -/* 0x2fe4 */ DWORD unknown002fe4; -/* 0x2fe8 */ DWORD unknown002fe8; -/* 0x2fec */ DWORD unknown002fec; -/* 0x2ff0 */ DWORD unknown002ff0; -/* 0x2ff4 */ DWORD unknown002ff4; -/* 0x2ff8 */ DWORD unknown002ff8; -/* 0x2ffc */ DWORD unknown002ffc; - -/* 0x3000 */ DWORD unknown003000; -/* 0x3004 */ DWORD unknown003004; -/* 0x3008 */ DWORD unknown003008; -/* 0x300c */ DWORD unknown00300c; -/* 0x3010 */ DWORD unknown003010; -/* 0x3014 */ DWORD unknown003014; -/* 0x3018 */ DWORD unknown003018; -/* 0x301c */ DWORD unknown00301c; -/* 0x3020 */ DWORD unknown003020; -/* 0x3024 */ DWORD unknown003024; -/* 0x3028 */ DWORD unknown003028; -/* 0x302c */ DWORD unknown00302c; -/* 0x3030 */ DWORD unknown003030; -/* 0x3034 */ DWORD unknown003034; -/* 0x3038 */ DWORD unknown003038; -/* 0x303c */ DWORD unknown00303c; -/* 0x3040 */ DWORD unknown003040; -/* 0x3044 */ DWORD unknown003044; -/* 0x3048 */ DWORD unknown003048; -/* 0x304c */ DWORD unknown00304c; -/* 0x3050 */ DWORD unknown003050; -/* 0x3054 */ DWORD unknown003054; -/* 0x3058 */ DWORD unknown003058; -/* 0x305c */ DWORD unknown00305c; -/* 0x3060 */ DWORD unknown003060; -/* 0x3064 */ DWORD unknown003064; -/* 0x3068 */ DWORD unknown003068; -/* 0x306c */ DWORD unknown00306c; -/* 0x3070 */ DWORD unknown003070; -/* 0x3074 */ DWORD unknown003074; -/* 0x3078 */ DWORD unknown003078; -/* 0x307c */ DWORD unknown00307c; -/* 0x3080 */ DWORD unknown003080; -/* 0x3084 */ DWORD unknown003084; -/* 0x3088 */ DWORD unknown003088; -/* 0x308c */ DWORD unknown00308c; -/* 0x3090 */ DWORD unknown003090; -/* 0x3094 */ DWORD unknown003094; -/* 0x3098 */ DWORD unknown003098; -/* 0x309c */ DWORD unknown00309c; -/* 0x30a0 */ DWORD unknown0030a0; -/* 0x30a4 */ DWORD unknown0030a4; -/* 0x30a8 */ DWORD unknown0030a8; -/* 0x30ac */ DWORD unknown0030ac; -/* 0x30b0 */ DWORD unknown0030b0; -/* 0x30b4 */ DWORD unknown0030b4; -/* 0x30b8 */ DWORD unknown0030b8; -/* 0x30bc */ DWORD unknown0030bc; -/* 0x30c0 */ DWORD unknown0030c0; -/* 0x30c4 */ DWORD unknown0030c4; -/* 0x30c8 */ DWORD unknown0030c8; -/* 0x30cc */ DWORD unknown0030cc; -/* 0x30d0 */ DWORD unknown0030d0; -/* 0x30d4 */ DWORD unknown0030d4; -/* 0x30d8 */ DWORD unknown0030d8; -/* 0x30dc */ DWORD unknown0030dc; -/* 0x30e0 */ DWORD unknown0030e0; -/* 0x30e4 */ DWORD unknown0030e4; -/* 0x30e8 */ DWORD unknown0030e8; -/* 0x30ec */ DWORD unknown0030ec; -/* 0x30f0 */ DWORD unknown0030f0; -/* 0x30f4 */ DWORD unknown0030f4; -/* 0x30f8 */ DWORD unknown0030f8; -/* 0x30fc */ DWORD unknown0030fc; - -/* 0x3100 */ DWORD unknown003100; -/* 0x3104 */ DWORD unknown003104; -/* 0x3108 */ DWORD unknown003108; -/* 0x310c */ DWORD unknown00310c; -/* 0x3110 */ DWORD unknown003110; -/* 0x3114 */ DWORD unknown003114; -/* 0x3118 */ DWORD unknown003118; -/* 0x311c */ DWORD unknown00311c; -/* 0x3120 */ DWORD unknown003120; -/* 0x3124 */ DWORD unknown003124; -/* 0x3128 */ DWORD unknown003128; -/* 0x312c */ DWORD unknown00312c; -/* 0x3130 */ DWORD unknown003130; -/* 0x3134 */ DWORD unknown003134; -/* 0x3138 */ DWORD unknown003138; -/* 0x313c */ DWORD unknown00313c; -/* 0x3140 */ DWORD unknown003140; -/* 0x3144 */ DWORD unknown003144; -/* 0x3148 */ DWORD unknown003148; -/* 0x314c */ DWORD unknown00314c; -/* 0x3150 */ DWORD unknown003150; -/* 0x3154 */ DWORD unknown003154; -/* 0x3158 */ DWORD unknown003158; -/* 0x315c */ DWORD unknown00315c; -/* 0x3160 */ DWORD unknown003160; -/* 0x3164 */ DWORD unknown003164; -/* 0x3168 */ DWORD unknown003168; -/* 0x316c */ DWORD unknown00316c; -/* 0x3170 */ DWORD unknown003170; -/* 0x3174 */ DWORD unknown003174; -/* 0x3178 */ DWORD unknown003178; -/* 0x317c */ DWORD unknown00317c; -/* 0x3180 */ DWORD unknown003180; -/* 0x3184 */ DWORD unknown003184; -/* 0x3188 */ DWORD unknown003188; -/* 0x318c */ DWORD unknown00318c; -/* 0x3190 */ DWORD unknown003190; -/* 0x3194 */ DWORD unknown003194; -/* 0x3198 */ DWORD unknown003198; -/* 0x319c */ DWORD unknown00319c; -/* 0x31a0 */ DWORD unknown0031a0; -/* 0x31a4 */ DWORD unknown0031a4; -/* 0x31a8 */ DWORD unknown0031a8; -/* 0x31ac */ DWORD unknown0031ac; -/* 0x31b0 */ DWORD unknown0031b0; -/* 0x31b4 */ DWORD unknown0031b4; -/* 0x31b8 */ DWORD unknown0031b8; -/* 0x31bc */ DWORD unknown0031bc; -/* 0x31c0 */ DWORD unknown0031c0; -/* 0x31c4 */ DWORD unknown0031c4; -/* 0x31c8 */ DWORD unknown0031c8; -/* 0x31cc */ DWORD unknown0031cc; -/* 0x31d0 */ DWORD unknown0031d0; -/* 0x31d4 */ DWORD unknown0031d4; -/* 0x31d8 */ DWORD unknown0031d8; -/* 0x31dc */ DWORD unknown0031dc; -/* 0x31e0 */ DWORD unknown0031e0; -/* 0x31e4 */ DWORD unknown0031e4; -/* 0x31e8 */ DWORD unknown0031e8; -/* 0x31ec */ DWORD unknown0031ec; -/* 0x31f0 */ DWORD unknown0031f0; -/* 0x31f4 */ DWORD unknown0031f4; -/* 0x31f8 */ DWORD unknown0031f8; -/* 0x31fc */ DWORD unknown0031fc; - -/* 0x3200 */ DWORD unknown003200; -/* 0x3204 */ DWORD unknown003204; -/* 0x3208 */ DWORD unknown003208; -/* 0x320c */ DWORD unknown00320c; -/* 0x3210 */ DWORD unknown003210; -/* 0x3214 */ DWORD unknown003214; -/* 0x3218 */ DWORD unknown003218; -/* 0x321c */ DWORD unknown00321c; -/* 0x3220 */ DWORD unknown003220; -/* 0x3224 */ DWORD unknown003224; -/* 0x3228 */ DWORD unknown003228; -/* 0x322c */ DWORD unknown00322c; -/* 0x3230 */ DWORD unknown003230; -/* 0x3234 */ DWORD unknown003234; -/* 0x3238 */ DWORD unknown003238; -/* 0x323c */ DWORD unknown00323c; -/* 0x3240 */ DWORD unknown003240; -/* 0x3244 */ DWORD unknown003244; -/* 0x3248 */ DWORD unknown003248; -/* 0x324c */ DWORD unknown00324c; -/* 0x3250 */ DWORD unknown003250; -/* 0x3254 */ DWORD unknown003254; -/* 0x3258 */ DWORD unknown003258; -/* 0x325c */ DWORD unknown00325c; -/* 0x3260 */ DWORD unknown003260; -/* 0x3264 */ DWORD unknown003264; -/* 0x3268 */ DWORD unknown003268; -/* 0x326c */ DWORD unknown00326c; -/* 0x3270 */ DWORD unknown003270; -/* 0x3274 */ DWORD unknown003274; -/* 0x3278 */ DWORD unknown003278; -/* 0x327c */ DWORD unknown00327c; -/* 0x3280 */ DWORD unknown003280; -/* 0x3284 */ DWORD unknown003284; -/* 0x3288 */ DWORD unknown003288; -/* 0x328c */ DWORD unknown00328c; -/* 0x3290 */ DWORD unknown003290; -/* 0x3294 */ DWORD unknown003294; -/* 0x3298 */ DWORD unknown003298; -/* 0x329c */ DWORD unknown00329c; -/* 0x32a0 */ DWORD unknown0032a0; -/* 0x32a4 */ DWORD unknown0032a4; -/* 0x32a8 */ DWORD unknown0032a8; -/* 0x32ac */ DWORD unknown0032ac; -/* 0x32b0 */ DWORD unknown0032b0; -/* 0x32b4 */ DWORD unknown0032b4; -/* 0x32b8 */ DWORD unknown0032b8; -/* 0x32bc */ DWORD unknown0032bc; -/* 0x32c0 */ DWORD unknown0032c0; -/* 0x32c4 */ DWORD unknown0032c4; -/* 0x32c8 */ DWORD unknown0032c8; -/* 0x32cc */ DWORD unknown0032cc; -/* 0x32d0 */ DWORD unknown0032d0; -/* 0x32d4 */ DWORD unknown0032d4; -/* 0x32d8 */ DWORD unknown0032d8; -/* 0x32dc */ DWORD unknown0032dc; -/* 0x32e0 */ DWORD unknown0032e0; -/* 0x32e4 */ DWORD unknown0032e4; -/* 0x32e8 */ DWORD unknown0032e8; -/* 0x32ec */ DWORD unknown0032ec; -/* 0x32f0 */ DWORD unknown0032f0; -/* 0x32f4 */ DWORD unknown0032f4; -/* 0x32f8 */ DWORD unknown0032f8; -/* 0x32fc */ DWORD unknown0032fc; - -/* 0x3300 */ DWORD unknown003300; -/* 0x3304 */ DWORD unknown003304; -/* 0x3308 */ DWORD unknown003308; -/* 0x330c */ DWORD unknown00330c; -/* 0x3310 */ DWORD unknown003310; -/* 0x3314 */ DWORD unknown003314; -/* 0x3318 */ DWORD unknown003318; -/* 0x331c */ DWORD unknown00331c; -/* 0x3320 */ DWORD unknown003320; -/* 0x3324 */ DWORD unknown003324; -/* 0x3328 */ DWORD unknown003328; -/* 0x332c */ DWORD unknown00332c; -} D3D9HALDEVICE, FAR *LPD3D9HALDEVICE; +/* IDirect3D9Device public interface */ +HRESULT WINAPI IDirect3DDevice9Base_TestCooperativeLevel(LPDIRECT3DDEVICE9 iface); +UINT WINAPI IDirect3DDevice9Base_GetAvailableTextureMem(LPDIRECT3DDEVICE9 iface); +HRESULT WINAPI IDirect3DDevice9Base_EvictManagedResources(LPDIRECT3DDEVICE9 iface); +HRESULT WINAPI IDirect3DDevice9Base_GetDirect3D(LPDIRECT3DDEVICE9 iface, IDirect3D9** ppD3D9); +HRESULT WINAPI IDirect3DDevice9Base_GetDeviceCaps(LPDIRECT3DDEVICE9 iface, D3DCAPS9* pCaps); +HRESULT WINAPI IDirect3DDevice9Base_GetDisplayMode(LPDIRECT3DDEVICE9 iface, UINT iSwapChain, D3DDISPLAYMODE* pMode); +HRESULT WINAPI IDirect3DDevice9Base_GetCreationParameters(LPDIRECT3DDEVICE9 iface, D3DDEVICE_CREATION_PARAMETERS* pParameters); +HRESULT WINAPI IDirect3DDevice9Base_SetCursorProperties(LPDIRECT3DDEVICE9 iface, UINT XHotSpot, UINT YHotSpot, IDirect3DSurface9* pCursorBitmap); +VOID WINAPI IDirect3DDevice9Base_SetCursorPosition(LPDIRECT3DDEVICE9 iface, int X, int Y, DWORD Flags); +BOOL WINAPI IDirect3DDevice9Base_ShowCursor(LPDIRECT3DDEVICE9 iface, BOOL bShow); +HRESULT WINAPI IDirect3DDevice9Base_CreateAdditionalSwapChain(LPDIRECT3DDEVICE9 iface, D3DPRESENT_PARAMETERS* pPresentationParameters, IDirect3DSwapChain9** ppSwapChain); +HRESULT WINAPI IDirect3DDevice9Base_GetSwapChain(LPDIRECT3DDEVICE9 iface, UINT iSwapChain, IDirect3DSwapChain9** ppSwapChain); +UINT WINAPI IDirect3DDevice9Base_GetNumberOfSwapChains(LPDIRECT3DDEVICE9 iface); +HRESULT WINAPI IDirect3DDevice9Base_Reset(LPDIRECT3DDEVICE9 iface, D3DPRESENT_PARAMETERS* pPresentationParameters); +HRESULT WINAPI IDirect3DDevice9Base_Present(LPDIRECT3DDEVICE9 iface, CONST RECT* pSourceRect, CONST RECT* pDestRect, HWND hDestWindowOverride, CONST RGNDATA* pDirtyRegion); +HRESULT WINAPI IDirect3DDevice9Base_GetBackBuffer(LPDIRECT3DDEVICE9 iface, UINT iSwapChain, UINT iBackBuffer, D3DBACKBUFFER_TYPE Type, IDirect3DSurface9** ppBackBuffer); +HRESULT WINAPI IDirect3DDevice9Base_GetRasterStatus(LPDIRECT3DDEVICE9 iface, UINT iSwapChain, D3DRASTER_STATUS* pRasterStatus); +HRESULT WINAPI IDirect3DDevice9Base_SetDialogBoxMode(LPDIRECT3DDEVICE9 iface, BOOL bEnableDialogs); +VOID WINAPI IDirect3DDevice9Base_SetGammaRamp(LPDIRECT3DDEVICE9 iface, UINT iSwapChain, DWORD Flags, CONST D3DGAMMARAMP* pRamp); +VOID WINAPI IDirect3DDevice9Base_GetGammaRamp(LPDIRECT3DDEVICE9 iface, UINT iSwapChain, D3DGAMMARAMP* pRamp); +HRESULT WINAPI IDirect3DDevice9Base_CreateTexture(LPDIRECT3DDEVICE9 iface, UINT Width, UINT Height, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DTexture9** ppTexture, HANDLE* pSharedHandle); +HRESULT WINAPI IDirect3DDevice9Base_CreateVolumeTexture(LPDIRECT3DDEVICE9 iface, UINT Width, UINT Height, UINT Depth, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DVolumeTexture9** ppVolumeTexture, HANDLE* pSharedHandle); +HRESULT WINAPI IDirect3DDevice9Base_CreateCubeTexture(LPDIRECT3DDEVICE9 iface, UINT EdgeLength, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DCubeTexture9** ppCubeTexture, HANDLE* pSharedHandle); +HRESULT WINAPI IDirect3DDevice9Base_CreateVertexBuffer(LPDIRECT3DDEVICE9 iface, UINT Length, DWORD Usage, DWORD FVF, D3DPOOL Pool, IDirect3DVertexBuffer9** ppVertexBuffer, HANDLE* pSharedHandle); +HRESULT WINAPI IDirect3DDevice9Base_CreateIndexBuffer(LPDIRECT3DDEVICE9 iface, UINT Length, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DIndexBuffer9** ppIndexBuffer, HANDLE* pSharedHandle); +HRESULT WINAPI IDirect3DDevice9Base_CreateRenderTarget(LPDIRECT3DDEVICE9 iface, UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, BOOL Lockable, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle); +HRESULT WINAPI IDirect3DDevice9Base_CreateDepthStencilSurface(LPDIRECT3DDEVICE9 iface, UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, BOOL Discard, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle); +HRESULT WINAPI IDirect3DDevice9Base_UpdateSurface(LPDIRECT3DDEVICE9 iface, IDirect3DSurface9* pSourceSurface, CONST RECT* pSourceRect, IDirect3DSurface9* pDestinationSurface, CONST POINT* pDestPoint); +HRESULT WINAPI IDirect3DDevice9Base_UpdateTexture(LPDIRECT3DDEVICE9 iface, IDirect3DBaseTexture9* pSourceTexture, IDirect3DBaseTexture9* pDestinationTexture); +HRESULT WINAPI IDirect3DDevice9Base_GetRenderTargetData(LPDIRECT3DDEVICE9 iface, IDirect3DSurface9* pRenderTarget, IDirect3DSurface9* pDestSurface); +HRESULT WINAPI IDirect3DDevice9Base_GetFrontBufferData(LPDIRECT3DDEVICE9 iface, UINT iSwapChain, IDirect3DSurface9* pDestSurface); +HRESULT WINAPI IDirect3DDevice9Base_StretchRect(LPDIRECT3DDEVICE9 iface, IDirect3DSurface9* pSourceSurface, CONST RECT* pSourceRect, IDirect3DSurface9* pDestSurface, CONST RECT* pDestRect, D3DTEXTUREFILTERTYPE Filter); +HRESULT WINAPI IDirect3DDevice9Base_ColorFill(LPDIRECT3DDEVICE9 iface, IDirect3DSurface9* pSurface, CONST RECT* pRect, D3DCOLOR color); +HRESULT WINAPI IDirect3DDevice9Base_CreateOffscreenPlainSurface(LPDIRECT3DDEVICE9 iface, UINT Width, UINT Height, D3DFORMAT Format, D3DPOOL Pool, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle); #endif /* _D3D9_DEVICE_H_ */ diff --git a/reactos/dll/directx/d3d9/d3d9_haldevice.c b/reactos/dll/directx/d3d9/d3d9_haldevice.c new file mode 100644 index 00000000000..781573cd8a0 --- /dev/null +++ b/reactos/dll/directx/d3d9/d3d9_haldevice.c @@ -0,0 +1,596 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS ReactX + * FILE: dll/directx/d3d9/d3d9_haldevice.c + * PURPOSE: d3d9.dll internal HAL device functions + * PROGRAMERS: Gregor Gullwi + */ +#include "d3d9_haldevice.h" +#include + +#define LOCK_D3DDEVICE9() if (This->bLockDevice) EnterCriticalSection(&This->CriticalSection); +#define UNLOCK_D3DDEVICE9() if (This->bLockDevice) LeaveCriticalSection(&This->CriticalSection); + +/* Convert a IDirect3D9 pointer safely to the internal implementation struct */ +/*static LPD3D9HALDEVICE IDirect3DDevice9ToImpl(LPDIRECT3DDEVICE9 iface) +{ + if (NULL == iface) + return NULL; + + return (LPD3D9HALDEVICE)((ULONG_PTR)iface - FIELD_OFFSET(D3D9HALDEVICE, PureDevice.BaseDevice.lpVtbl)); +}*/ + +/* IDirect3DDevice9 public interface */ +HRESULT WINAPI IDirect3DDevice9HAL_GetTransform(LPDIRECT3DDEVICE9 iface, D3DTRANSFORMSTATETYPE State, D3DMATRIX* pMatrix) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_GetMaterial(LPDIRECT3DDEVICE9 iface, D3DMATERIAL9* pMaterial) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_GetLight(LPDIRECT3DDEVICE9 iface, DWORD Index, D3DLIGHT9* pLight) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_GetLightEnable(LPDIRECT3DDEVICE9 iface, DWORD Index, BOOL* pEnable) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_GetClipPlane(LPDIRECT3DDEVICE9 iface, DWORD Index, float* pPlane) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_SetRenderState(LPDIRECT3DDEVICE9 iface, D3DRENDERSTATETYPE State, DWORD Value) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_GetRenderState(LPDIRECT3DDEVICE9 iface, D3DRENDERSTATETYPE State, DWORD* pValue) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_SetClipStatus(LPDIRECT3DDEVICE9 iface, CONST D3DCLIPSTATUS9* pClipStatus) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_GetClipStatus(LPDIRECT3DDEVICE9 iface, D3DCLIPSTATUS9* pClipStatus) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_GetTextureStageState(LPDIRECT3DDEVICE9 iface, DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD* pValue) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_GetSamplerState(LPDIRECT3DDEVICE9 iface, DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD* pValue) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_ValidateDevice(LPDIRECT3DDEVICE9 iface, DWORD* pNumPasses) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_SetSoftwareVertexProcessing(LPDIRECT3DDEVICE9 iface, BOOL bSoftware) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +BOOL WINAPI IDirect3DDevice9HAL_GetSoftwareVertexProcessing(LPDIRECT3DDEVICE9 iface) +{ + UNIMPLEMENTED + + return TRUE; +} + +HRESULT WINAPI IDirect3DDevice9HAL_ProcessVertices(LPDIRECT3DDEVICE9 iface, UINT SrcStartIndex, UINT DestIndex, UINT VertexCount, IDirect3DVertexBuffer9* pDestBuffer, IDirect3DVertexDeclaration9* pVertexDecl, DWORD Flags) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_GetVertexShader(LPDIRECT3DDEVICE9 iface, IDirect3DVertexShader9** ppShader) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_GetPixelShader(LPDIRECT3DDEVICE9 iface, IDirect3DPixelShader9** ppShader) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_GetPixelShaderConstantF(LPDIRECT3DDEVICE9 iface, UINT StartRegister, float* pConstantData, UINT Vector4fCount) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_GetPixelShaderConstantI(LPDIRECT3DDEVICE9 iface, UINT StartRegister, int* pConstantData, UINT Vector4iCount) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_GetPixelShaderConstantB(LPDIRECT3DDEVICE9 iface, UINT StartRegister, BOOL* pConstantData, UINT BoolCount) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +/* IDirect3DDevice9 private interface */ +HRESULT WINAPI IDirect3DDevice9HAL_SetRenderStateWorker(LPDIRECT3DDEVICE9 iface, D3DRENDERSTATETYPE State, DWORD Value) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_SetTextureStageStateInt(LPDIRECT3DDEVICE9 iface, DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD Value) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_SetSamplerStateInt(LPDIRECT3DDEVICE9 iface, DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD Value) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_SetMaterialInt(LPDIRECT3DDEVICE9 iface, CONST D3DMATERIAL9* pMaterial) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_SetVertexShaderInt(LPDIRECT3DDEVICE9 iface, IDirect3DVertexShader9* pShader) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_SetVertexShaderConstantFInt(LPDIRECT3DDEVICE9 iface, UINT StartRegister,CONST float* pConstantData,UINT Vector4fCount) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_SetVertexShaderConstantIInt(LPDIRECT3DDEVICE9 iface, UINT StartRegister,CONST int* pConstantData,UINT Vector4iCount) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_SetVertexShaderConstantBInt(LPDIRECT3DDEVICE9 iface, UINT StartRegister,CONST BOOL* pConstantData,UINT BoolCount) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_SetPixelShaderInt(LPDIRECT3DDEVICE9 iface, IDirect3DPixelShader9* pShader) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_SetPixelShaderConstantFInt(LPDIRECT3DDEVICE9 iface, UINT StartRegister,CONST float* pConstantData,UINT Vector4fCount) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_SetPixelShaderConstantIInt(LPDIRECT3DDEVICE9 iface, UINT StartRegister,CONST int* pConstantData,UINT Vector4iCount) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_SetPixelShaderConstantBInt(LPDIRECT3DDEVICE9 iface, UINT StartRegister,CONST BOOL* pConstantData,UINT BoolCount) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_SetFVFInt(LPDIRECT3DDEVICE9 iface, DWORD FVF) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_SetTextureInt(LPDIRECT3DDEVICE9 iface, DWORD Stage,IDirect3DBaseTexture9* pTexture) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_SetIndicesInt(LPDIRECT3DDEVICE9 iface, IDirect3DIndexBuffer9* pIndexData) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_SetStreamSourceInt(LPDIRECT3DDEVICE9 iface, UINT StreamNumber,IDirect3DVertexBuffer9* pStreamData,UINT OffsetInBytes,UINT Stride) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_SetStreamSourceFreqInt(LPDIRECT3DDEVICE9 iface, UINT StreamNumber,UINT Setting) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +VOID WINAPI IDirect3DDevice9HAL_UpdateRenderState(LPDIRECT3DDEVICE9 iface, DWORD Unknown1, DWORD Unknown2) +{ + UNIMPLEMENTED +} + +HRESULT WINAPI IDirect3DDevice9HAL_SetTransformInt(LPDIRECT3DDEVICE9 iface, D3DTRANSFORMSTATETYPE State,CONST D3DMATRIX* pMatrix) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_MultiplyTransformInt(LPDIRECT3DDEVICE9 iface, D3DTRANSFORMSTATETYPE State, CONST D3DMATRIX* pMatrix) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_SetClipPlaneInt(LPDIRECT3DDEVICE9 iface, DWORD Index, CONST float* pPlane) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +VOID WINAPI IDirect3DDevice9HAL_UpdateDriverState(LPDIRECT3DDEVICE9 iface) +{ + UNIMPLEMENTED +} + +HRESULT WINAPI IDirect3DDevice9HAL_SetViewportInt(LPDIRECT3DDEVICE9 iface, CONST D3DVIEWPORT9* pViewport) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +VOID WINAPI IDirect3DDevice9HAL_SetStreamSourceWorker(LPDIRECT3DDEVICE9 iface, LPVOID UnknownStreamData) +{ + UNIMPLEMENTED +} + +HRESULT WINAPI IDirect3DDevice9HAL_SetPixelShaderConstantFWorker(LPDIRECT3DDEVICE9 iface, UINT StartRegister, CONST float* pConstantData, UINT Vector4fCount) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_SetPixelShaderConstantIWorker(LPDIRECT3DDEVICE9 iface, UINT StartRegister, CONST int* pConstantData, UINT Vector4iCount) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_SetPixelShaderConstantBWorker(LPDIRECT3DDEVICE9 iface, UINT StartRegister, CONST BOOL* pConstantData, UINT BoolCount) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +VOID WINAPI IDirect3DDevice9HAL_DrawPrimitiveWorker(LPDIRECT3DDEVICE9 iface, D3DPRIMITIVETYPE PrimitiveType, UINT StartVertex, UINT PrimitiveCount) +{ + UNIMPLEMENTED +} + +HRESULT WINAPI IDirect3DDevice9HAL_SetLightInt(LPDIRECT3DDEVICE9 iface, DWORD Index, CONST D3DLIGHT9* pLight) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_LightEnableInt(LPDIRECT3DDEVICE9 iface, DWORD Index, BOOL Enable) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_SetRenderStateInt(LPDIRECT3DDEVICE9 iface, D3DRENDERSTATETYPE State, DWORD Value) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_DrawPrimitiveUPInt(LPDIRECT3DDEVICE9 iface, D3DPRIMITIVETYPE PrimitiveType, UINT PrimitiveCount) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_ClearInt(LPDIRECT3DDEVICE9 iface, DWORD Count, CONST D3DRECT* pRects, DWORD Flags, D3DCOLOR Color, float Z, DWORD Stencil) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +VOID WINAPI IDirect3DDevice9HAL_DrawPrimitivesWorker(LPDIRECT3DDEVICE9 iface) +{ + UNIMPLEMENTED +} + +VOID WINAPI IDirect3DDevice9HAL_UpdateVertexShader(LPDIRECT3DDEVICE9 iface) +{ + UNIMPLEMENTED +} + +HRESULT WINAPI IDirect3DDevice9HAL_ValidateDrawCall(LPDIRECT3DDEVICE9 iface, D3DPRIMITIVETYPE PrimitiveType, UINT Unknown1, UINT Unknown2, UINT Unknown3, INT Unknown4, UINT Unknown5, INT Unknown6) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9HAL_Init(LPDIRECT3DDEVICE9 iface) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +VOID WINAPI IDirect3DDevice9HAL_InitState(LPDIRECT3DDEVICE9 iface, INT State) +{ + UNIMPLEMENTED +} + +VOID WINAPI IDirect3DDevice9HAL_Destroy(LPDIRECT3DDEVICE9 iface) +{ + UNIMPLEMENTED +} + +VOID WINAPI IDirect3DDevice9HAL_VirtualDestructor(LPDIRECT3DDEVICE9 iface) +{ + UNIMPLEMENTED +} + +IDirect3DDevice9Vtbl_INT Direct3DDevice9HAL_Vtbl = +{ + { + /* IUnknown */ + IDirect3DDevice9Base_QueryInterface, + IDirect3DDevice9Base_AddRef, + IDirect3DDevice9Base_Release, + + /* IDirect3DDevice9 public */ + IDirect3DDevice9Base_TestCooperativeLevel, + IDirect3DDevice9Base_GetAvailableTextureMem, + IDirect3DDevice9Base_EvictManagedResources, + IDirect3DDevice9Base_GetDirect3D, + IDirect3DDevice9Base_GetDeviceCaps, + IDirect3DDevice9Base_GetDisplayMode, + IDirect3DDevice9Base_GetCreationParameters, + IDirect3DDevice9Base_SetCursorProperties, + IDirect3DDevice9Base_SetCursorPosition, + IDirect3DDevice9Base_ShowCursor, + IDirect3DDevice9Base_CreateAdditionalSwapChain, + IDirect3DDevice9Base_GetSwapChain, + IDirect3DDevice9Base_GetNumberOfSwapChains, + IDirect3DDevice9Base_Reset, + IDirect3DDevice9Base_Present, + IDirect3DDevice9Base_GetBackBuffer, + IDirect3DDevice9Base_GetRasterStatus, + IDirect3DDevice9Base_SetDialogBoxMode, + IDirect3DDevice9Base_SetGammaRamp, + IDirect3DDevice9Base_GetGammaRamp, + IDirect3DDevice9Base_CreateTexture, + IDirect3DDevice9Base_CreateVolumeTexture, + IDirect3DDevice9Base_CreateCubeTexture, + IDirect3DDevice9Base_CreateVertexBuffer, + IDirect3DDevice9Base_CreateIndexBuffer, + IDirect3DDevice9Base_CreateRenderTarget, + IDirect3DDevice9Base_CreateDepthStencilSurface, + IDirect3DDevice9Base_UpdateSurface, + IDirect3DDevice9Base_UpdateTexture, + IDirect3DDevice9Base_GetRenderTargetData, + IDirect3DDevice9Base_GetFrontBufferData, + IDirect3DDevice9Base_StretchRect, + IDirect3DDevice9Base_ColorFill, + IDirect3DDevice9Base_CreateOffscreenPlainSurface, + IDirect3DDevice9Pure_SetRenderTarget, + IDirect3DDevice9Pure_GetRenderTarget, + IDirect3DDevice9Pure_SetDepthStencilSurface, + IDirect3DDevice9Pure_GetDepthStencilSurface, + IDirect3DDevice9Pure_BeginScene, + IDirect3DDevice9Pure_EndScene, + IDirect3DDevice9Pure_Clear, + IDirect3DDevice9Pure_SetTransform, + IDirect3DDevice9HAL_GetTransform, + IDirect3DDevice9Pure_MultiplyTransform, + IDirect3DDevice9Pure_SetViewport, + IDirect3DDevice9Pure_GetViewport, + IDirect3DDevice9Pure_SetMaterial, + IDirect3DDevice9HAL_GetMaterial, + IDirect3DDevice9Pure_SetLight, + IDirect3DDevice9HAL_GetLight, + IDirect3DDevice9Pure_LightEnable, + IDirect3DDevice9HAL_GetLightEnable, + IDirect3DDevice9Pure_SetClipPlane, + IDirect3DDevice9HAL_GetClipPlane, + IDirect3DDevice9HAL_SetRenderState, + IDirect3DDevice9HAL_GetRenderState, + IDirect3DDevice9Pure_CreateStateBlock, + IDirect3DDevice9Pure_BeginStateBlock, + IDirect3DDevice9Pure_EndStateBlock, + IDirect3DDevice9HAL_SetClipStatus, + IDirect3DDevice9HAL_GetClipStatus, + IDirect3DDevice9Pure_GetTexture, + IDirect3DDevice9Pure_SetTexture, + IDirect3DDevice9HAL_GetTextureStageState, + IDirect3DDevice9Pure_SetTextureStageState, + IDirect3DDevice9HAL_GetSamplerState, + IDirect3DDevice9Pure_SetSamplerState, + IDirect3DDevice9HAL_ValidateDevice, + IDirect3DDevice9Pure_SetPaletteEntries, + IDirect3DDevice9Pure_GetPaletteEntries, + IDirect3DDevice9Pure_SetCurrentTexturePalette, + IDirect3DDevice9Pure_GetCurrentTexturePalette, + IDirect3DDevice9Pure_SetScissorRect, + IDirect3DDevice9Pure_GetScissorRect, + IDirect3DDevice9HAL_SetSoftwareVertexProcessing, + IDirect3DDevice9HAL_GetSoftwareVertexProcessing, + IDirect3DDevice9Pure_SetNPatchMode, + IDirect3DDevice9Pure_GetNPatchMode, + IDirect3DDevice9Pure_DrawPrimitive, + IDirect3DDevice9Pure_DrawIndexedPrimitive, + IDirect3DDevice9Pure_DrawPrimitiveUP, + IDirect3DDevice9Pure_DrawIndexedPrimitiveUP, + IDirect3DDevice9HAL_ProcessVertices, + IDirect3DDevice9Pure_CreateVertexDeclaration, + IDirect3DDevice9Pure_SetVertexDeclaration, + IDirect3DDevice9Pure_GetVertexDeclaration, + IDirect3DDevice9Pure_SetFVF, + IDirect3DDevice9Pure_GetFVF, + IDirect3DDevice9Pure_CreateVertexShader, + IDirect3DDevice9Pure_SetVertexShader, + IDirect3DDevice9HAL_GetVertexShader, + IDirect3DDevice9Pure_SetVertexShaderConstantF, + IDirect3DDevice9Pure_GetVertexShaderConstantF, + IDirect3DDevice9Pure_SetVertexShaderConstantI, + IDirect3DDevice9Pure_GetVertexShaderConstantI, + IDirect3DDevice9Pure_SetVertexShaderConstantB, + IDirect3DDevice9Pure_GetVertexShaderConstantB, + IDirect3DDevice9Pure_SetStreamSource, + IDirect3DDevice9Pure_GetStreamSource, + IDirect3DDevice9Pure_SetStreamSourceFreq, + IDirect3DDevice9Pure_GetStreamSourceFreq, + IDirect3DDevice9Pure_SetIndices, + IDirect3DDevice9Pure_GetIndices, + IDirect3DDevice9Pure_CreatePixelShader, + IDirect3DDevice9Pure_SetPixelShader, + IDirect3DDevice9HAL_GetPixelShader, + IDirect3DDevice9Pure_SetPixelShaderConstantF, + IDirect3DDevice9HAL_GetPixelShaderConstantF, + IDirect3DDevice9Pure_SetPixelShaderConstantI, + IDirect3DDevice9HAL_GetPixelShaderConstantI, + IDirect3DDevice9Pure_SetPixelShaderConstantB, + IDirect3DDevice9HAL_GetPixelShaderConstantB, + IDirect3DDevice9Pure_DrawRectPatch, + IDirect3DDevice9Pure_DrawTriPatch, + IDirect3DDevice9Pure_DeletePatch, + IDirect3DDevice9Pure_CreateQuery, + }, + + /* IDirect3DDevice9 private */ + IDirect3DDevice9HAL_SetRenderStateWorker, + IDirect3DDevice9HAL_SetTextureStageStateInt, + IDirect3DDevice9HAL_SetSamplerStateInt, + IDirect3DDevice9HAL_SetMaterialInt, + IDirect3DDevice9HAL_SetVertexShaderInt, + IDirect3DDevice9HAL_SetVertexShaderConstantFInt, + IDirect3DDevice9HAL_SetVertexShaderConstantIInt, + IDirect3DDevice9HAL_SetVertexShaderConstantBInt, + IDirect3DDevice9HAL_SetPixelShaderInt, + IDirect3DDevice9HAL_SetPixelShaderConstantFInt, + IDirect3DDevice9HAL_SetPixelShaderConstantIInt, + IDirect3DDevice9HAL_SetPixelShaderConstantBInt, + IDirect3DDevice9HAL_SetFVFInt, + IDirect3DDevice9HAL_SetTextureInt, + IDirect3DDevice9HAL_SetIndicesInt, + IDirect3DDevice9HAL_SetStreamSourceInt, + IDirect3DDevice9HAL_SetStreamSourceFreqInt, + IDirect3DDevice9HAL_UpdateRenderState, + IDirect3DDevice9HAL_SetTransformInt, + IDirect3DDevice9HAL_MultiplyTransformInt, + IDirect3DDevice9HAL_SetClipPlaneInt, + IDirect3DDevice9HAL_UpdateDriverState, + IDirect3DDevice9HAL_SetViewportInt, + IDirect3DDevice9HAL_SetStreamSourceWorker, + IDirect3DDevice9HAL_SetPixelShaderConstantFWorker, + IDirect3DDevice9HAL_SetPixelShaderConstantIWorker, + IDirect3DDevice9HAL_SetPixelShaderConstantBWorker, + IDirect3DDevice9HAL_DrawPrimitiveWorker, + IDirect3DDevice9HAL_SetLightInt, + IDirect3DDevice9HAL_LightEnableInt, + IDirect3DDevice9HAL_SetRenderStateInt, + IDirect3DDevice9HAL_DrawPrimitiveUPInt, + IDirect3DDevice9HAL_ClearInt, + IDirect3DDevice9HAL_DrawPrimitivesWorker, + IDirect3DDevice9HAL_UpdateVertexShader, + IDirect3DDevice9HAL_ValidateDrawCall, + IDirect3DDevice9HAL_Init, + IDirect3DDevice9HAL_InitState, + IDirect3DDevice9HAL_Destroy, + IDirect3DDevice9HAL_VirtualDestructor, +}; + diff --git a/reactos/dll/directx/d3d9/d3d9_haldevice.h b/reactos/dll/directx/d3d9/d3d9_haldevice.h new file mode 100644 index 00000000000..42e73d990a3 --- /dev/null +++ b/reactos/dll/directx/d3d9/d3d9_haldevice.h @@ -0,0 +1,1010 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS ReactX + * FILE: dll/directx/d3d9/d3d9_haldevice.h + * PURPOSE: d3d9.dll internal HAL device structures + * PROGRAMERS: Gregor Gullwi + */ +#ifndef _D3D9_HALDEVICE_H_ +#define _D3D9_HALDEVICE_H_ + +#include "d3d9_puredevice.h" + +#if !defined(__cplusplus) || defined(CINTERFACE) +extern IDirect3DDevice9Vtbl_INT Direct3DDevice9HAL_Vtbl; +#endif + +typedef struct _D3D9HALDEVICE +{ +/* 0x0000 */ D3D9PUREDEVICE PureDevice; +#ifdef D3D_DEBUG_INFO +/* N/A - 0x0004 */ DWORD dbg0004; +/* N/A - 0x0008 */ DWORD dbg0008; +/* N/A - 0x000c */ DWORD dbg000c; +/* N/A - 0x0010 */ DWORD dbg0010; +/* N/A - 0x0014 */ DWORD dbg0014; +/* N/A - 0x0018 */ DWORD dbg0018; +/* N/A - 0x001c */ DWORD dbg001c; +/* N/A - 0x0020 */ DWORD dbg0020; +/* N/A - 0x0024 */ DWORD dbg0024; +/* N/A - 0x0028 */ DWORD dbg0028; +/* N/A - 0x002c */ DWORD dbg002c; +/* N/A - 0x0030 */ DWORD dbg0030; +/* N/A - 0x0034 */ DWORD dbg0034; +/* N/A - 0x0038 */ DWORD dbg0038; +#endif +/* 0x2438 */ DWORD unknown002438; +/* 0x243c */ DWORD unknown00243c; +/* 0x2440 */ DWORD unknown002440; +/* 0x2444 */ DWORD unknown002444; +/* 0x2448 */ DWORD unknown002448; +/* 0x244c */ DWORD unknown00244c; +/* 0x2450 */ DWORD unknown002450; +/* 0x2454 */ DWORD unknown002454; +/* 0x2458 */ DWORD unknown002458; +/* 0x245c */ DWORD unknown00245c; +/* 0x2460 */ DWORD unknown002460; +/* 0x2464 */ DWORD unknown002464; +/* 0x2468 */ DWORD unknown002468; +/* 0x246c */ DWORD unknown00246c; +/* 0x2470 */ DWORD unknown002470; +/* 0x2474 */ DWORD unknown002474; +/* 0x2478 */ DWORD unknown002478; +/* 0x247c */ DWORD unknown00247c; +/* 0x2480 */ DWORD unknown002480; +/* 0x2484 */ DWORD unknown002484; +/* 0x2488 */ DWORD unknown002488; +/* 0x248c */ DWORD unknown00248c; +/* 0x2490 */ DWORD unknown002490; +/* 0x2494 */ DWORD unknown002494; +/* 0x2498 */ DWORD unknown002498; +/* 0x249c */ DWORD unknown00249c; +/* 0x24a0 */ DWORD unknown0024a0; +/* 0x24a4 */ DWORD unknown0024a4; +/* 0x24a8 */ DWORD unknown0024a8; +/* 0x24ac */ DWORD unknown0024ac; +/* 0x24b0 */ DWORD unknown0024b0; +/* 0x24b4 */ DWORD unknown0024b4; +/* 0x24b8 */ DWORD unknown0024b8; +/* 0x24bc */ DWORD unknown0024bc; +/* 0x24c0 */ DWORD unknown0024c0; +/* 0x24c4 */ DWORD unknown0024c4; +/* 0x24c8 */ DWORD unknown0024c8; +/* 0x24cc */ DWORD unknown0024cc; +/* 0x24d0 */ DWORD unknown0024d0; +/* 0x24d4 */ DWORD unknown0024d4; +/* 0x24d8 */ DWORD unknown0024d8; +/* 0x24dc */ DWORD unknown0024dc; +/* 0x24e0 */ DWORD unknown0024e0; +/* 0x24e4 */ DWORD unknown0024e4; +/* 0x24e8 */ DWORD unknown0024e8; +/* 0x24ec */ DWORD unknown0024ec; +/* 0x24f0 */ DWORD unknown0024f0; +/* 0x24f4 */ DWORD unknown0024f4; +/* 0x24f8 */ DWORD unknown0024f8; +/* 0x24fc */ DWORD unknown0024fc; +/* 0x2500 */ DWORD unknown002500; +/* 0x2504 */ DWORD unknown002504; +/* 0x2508 */ DWORD unknown002508; +/* 0x250c */ DWORD unknown00250c; +/* 0x2510 */ DWORD unknown002510; +/* 0x2514 */ DWORD unknown002514; +/* 0x2518 */ DWORD unknown002518; +/* 0x251c */ DWORD unknown00251c; +/* 0x2520 */ DWORD unknown002520; +/* 0x2524 */ DWORD unknown002524; +/* 0x2528 */ DWORD unknown002528; +/* 0x252c */ DWORD unknown00252c; +/* 0x2530 */ DWORD unknown002530; +/* 0x2534 */ DWORD unknown002534; +/* 0x2538 */ DWORD unknown002538; +/* 0x253c */ DWORD unknown00253c; +/* 0x2540 */ DWORD unknown002540; +/* 0x2544 */ DWORD unknown002544; +/* 0x2548 */ DWORD unknown002548; +/* 0x254c */ DWORD unknown00254c; +/* 0x2550 */ DWORD unknown002550; +/* 0x2554 */ DWORD unknown002554; +/* 0x2558 */ DWORD unknown002558; +/* 0x255c */ DWORD unknown00255c; +/* 0x2560 */ DWORD unknown002560; +/* 0x2564 */ DWORD unknown002564; +/* 0x2568 */ DWORD unknown002568; +/* 0x256c */ DWORD unknown00256c; +/* 0x2570 */ DWORD unknown002570; +/* 0x2574 */ DWORD unknown002574; +/* 0x2578 */ DWORD unknown002578; +/* 0x257c */ DWORD unknown00257c; +/* 0x2580 */ DWORD unknown002580; +/* 0x2584 */ DWORD unknown002584; +/* 0x2588 */ DWORD unknown002588; +/* 0x258c */ DWORD unknown00258c; +/* 0x2590 */ DWORD unknown002590; +/* 0x2594 */ DWORD unknown002594; +/* 0x2598 */ DWORD unknown002598; +/* 0x259c */ DWORD unknown00259c; +/* 0x25a0 */ DWORD unknown0025a0; +/* 0x25a4 */ DWORD unknown0025a4; +/* 0x25a8 */ DWORD unknown0025a8; +/* 0x25ac */ DWORD unknown0025ac; +/* 0x25b0 */ DWORD unknown0025b0; +/* 0x25b4 */ DWORD unknown0025b4; +/* 0x25b8 */ DWORD unknown0025b8; +/* 0x25bc */ DWORD unknown0025bc; +/* 0x25c0 */ DWORD unknown0025c0; +/* 0x25c4 */ DWORD unknown0025c4; +/* 0x25c8 */ DWORD unknown0025c8; +/* 0x25cc */ DWORD unknown0025cc; +/* 0x25d0 */ DWORD unknown0025d0; +/* 0x25d4 */ DWORD unknown0025d4; +/* 0x25d8 */ DWORD unknown0025d8; +/* 0x25dc */ DWORD unknown0025dc; +/* 0x25e0 */ DWORD unknown0025e0; +/* 0x25e4 */ DWORD unknown0025e4; +/* 0x25e8 */ DWORD unknown0025e8; +/* 0x25ec */ DWORD unknown0025ec; +/* 0x25f0 */ DWORD unknown0025f0; +/* 0x25f4 */ DWORD unknown0025f4; +/* 0x25f8 */ DWORD unknown0025f8; +/* 0x25fc */ DWORD unknown0025fc; + +/* 0x2600 */ DWORD unknown002600; +/* 0x2604 */ DWORD unknown002604; +/* 0x2608 */ DWORD unknown002608; +/* 0x260c */ DWORD unknown00260c; +/* 0x2610 */ DWORD unknown002610; +/* 0x2614 */ DWORD unknown002614; +/* 0x2618 */ DWORD unknown002618; +/* 0x261c */ DWORD unknown00261c; +/* 0x2620 */ DWORD unknown002620; +/* 0x2624 */ DWORD unknown002624; +/* 0x2628 */ DWORD unknown002628; +/* 0x262c */ DWORD unknown00262c; +/* 0x2630 */ DWORD unknown002630; +/* 0x2634 */ DWORD unknown002634; +/* 0x2638 */ DWORD unknown002638; +/* 0x263c */ DWORD unknown00263c; +/* 0x2640 */ DWORD unknown002640; +/* 0x2644 */ DWORD unknown002644; +/* 0x2648 */ DWORD unknown002648; +/* 0x264c */ DWORD unknown00264c; +/* 0x2650 */ DWORD unknown002650; +/* 0x2654 */ DWORD unknown002654; +/* 0x2658 */ DWORD unknown002658; +/* 0x265c */ DWORD unknown00265c; +/* 0x2660 */ DWORD unknown002660; +/* 0x2664 */ DWORD unknown002664; +/* 0x2668 */ DWORD unknown002668; +/* 0x266c */ DWORD unknown00266c; +/* 0x2670 */ DWORD unknown002670; +/* 0x2674 */ DWORD unknown002674; +/* 0x2678 */ DWORD unknown002678; +/* 0x267c */ DWORD unknown00267c; +/* 0x2680 */ DWORD unknown002680; +/* 0x2684 */ DWORD unknown002684; +/* 0x2688 */ DWORD unknown002688; +/* 0x268c */ DWORD unknown00268c; +/* 0x2690 */ DWORD unknown002690; +/* 0x2694 */ DWORD unknown002694; +/* 0x2698 */ DWORD unknown002698; +/* 0x269c */ DWORD unknown00269c; +/* 0x26a0 */ DWORD unknown0026a0; +/* 0x26a4 */ DWORD unknown0026a4; +/* 0x26a8 */ DWORD unknown0026a8; +/* 0x26ac */ DWORD unknown0026ac; +/* 0x26b0 */ DWORD unknown0026b0; +/* 0x26b4 */ DWORD unknown0026b4; +/* 0x26b8 */ DWORD unknown0026b8; +/* 0x26bc */ DWORD unknown0026bc; +/* 0x26c0 */ DWORD unknown0026c0; +/* 0x26c4 */ DWORD unknown0026c4; +/* 0x26c8 */ DWORD unknown0026c8; +/* 0x26cc */ DWORD unknown0026cc; +/* 0x26d0 */ DWORD unknown0026d0; +/* 0x26d4 */ DWORD unknown0026d4; +/* 0x26d8 */ DWORD unknown0026d8; +/* 0x26dc */ DWORD unknown0026dc; +/* 0x26e0 */ DWORD unknown0026e0; +/* 0x26e4 */ DWORD unknown0026e4; +/* 0x26e8 */ DWORD unknown0026e8; +/* 0x26ec */ DWORD unknown0026ec; +/* 0x26f0 */ DWORD unknown0026f0; +/* 0x26f4 */ DWORD unknown0026f4; +/* 0x26f8 */ DWORD unknown0026f8; +/* 0x26fc */ DWORD unknown0026fc; + +/* 0x2700 */ DWORD unknown002700; +/* 0x2704 */ DWORD unknown002704; +/* 0x2708 */ DWORD unknown002708; +/* 0x270c */ DWORD unknown00270c; +/* 0x2710 */ DWORD unknown002710; +/* 0x2714 */ DWORD unknown002714; +/* 0x2718 */ DWORD unknown002718; +/* 0x271c */ DWORD unknown00271c; +/* 0x2720 */ DWORD unknown002720; +/* 0x2724 */ DWORD unknown002724; +/* 0x2728 */ DWORD unknown002728; +/* 0x272c */ DWORD unknown00272c; +/* 0x2730 */ DWORD unknown002730; +/* 0x2734 */ DWORD unknown002734; +/* 0x2738 */ DWORD unknown002738; +/* 0x273c */ DWORD unknown00273c; +/* 0x2740 */ DWORD unknown002740; +/* 0x2744 */ DWORD unknown002744; +/* 0x2748 */ DWORD unknown002748; +/* 0x274c */ DWORD unknown00274c; +/* 0x2750 */ DWORD unknown002750; +/* 0x2754 */ DWORD unknown002754; +/* 0x2758 */ DWORD unknown002758; +/* 0x275c */ DWORD unknown00275c; +/* 0x2760 */ DWORD unknown002760; +/* 0x2764 */ DWORD unknown002764; +/* 0x2768 */ DWORD unknown002768; +/* 0x276c */ DWORD unknown00276c; +/* 0x2770 */ DWORD unknown002770; +/* 0x2774 */ DWORD unknown002774; +/* 0x2778 */ DWORD unknown002778; +/* 0x277c */ DWORD unknown00277c; +/* 0x2780 */ DWORD unknown002780; +/* 0x2784 */ DWORD unknown002784; +/* 0x2788 */ DWORD unknown002788; +/* 0x278c */ DWORD unknown00278c; +/* 0x2790 */ DWORD unknown002790; +/* 0x2794 */ DWORD unknown002794; +/* 0x2798 */ DWORD unknown002798; +/* 0x279c */ DWORD unknown00279c; +/* 0x27a0 */ DWORD unknown0027a0; +/* 0x27a4 */ DWORD unknown0027a4; +/* 0x27a8 */ DWORD unknown0027a8; +/* 0x27ac */ DWORD unknown0027ac; +/* 0x27b0 */ DWORD unknown0027b0; +/* 0x27b4 */ DWORD unknown0027b4; +/* 0x27b8 */ DWORD unknown0027b8; +/* 0x27bc */ DWORD unknown0027bc; +/* 0x27c0 */ DWORD unknown0027c0; +/* 0x27c4 */ DWORD unknown0027c4; +/* 0x27c8 */ DWORD unknown0027c8; +/* 0x27cc */ DWORD unknown0027cc; +/* 0x27d0 */ DWORD unknown0027d0; +/* 0x27d4 */ DWORD unknown0027d4; +/* 0x27d8 */ DWORD unknown0027d8; +/* 0x27dc */ DWORD unknown0027dc; +/* 0x27e0 */ DWORD unknown0027e0; +/* 0x27e4 */ DWORD unknown0027e4; +/* 0x27e8 */ DWORD unknown0027e8; +/* 0x27ec */ DWORD unknown0027ec; +/* 0x27f0 */ DWORD unknown0027f0; +/* 0x27f4 */ DWORD unknown0027f4; +/* 0x27f8 */ DWORD unknown0027f8; +/* 0x27fc */ DWORD unknown0027fc; + +/* 0x2800 */ DWORD unknown002800; +/* 0x2804 */ DWORD unknown002804; +/* 0x2808 */ DWORD unknown002808; +/* 0x280c */ DWORD unknown00280c; +/* 0x2810 */ DWORD unknown002810; +/* 0x2814 */ DWORD unknown002814; +/* 0x2818 */ DWORD unknown002818; +/* 0x281c */ DWORD unknown00281c; +/* 0x2820 */ DWORD unknown002820; +/* 0x2824 */ DWORD unknown002824; +/* 0x2828 */ DWORD unknown002828; +/* 0x282c */ DWORD unknown00282c; +/* 0x2830 */ DWORD unknown002830; +/* 0x2834 */ DWORD unknown002834; +/* 0x2838 */ DWORD unknown002838; +/* 0x283c */ DWORD unknown00283c; +/* 0x2840 */ DWORD unknown002840; +/* 0x2844 */ DWORD unknown002844; +/* 0x2848 */ DWORD unknown002848; +/* 0x284c */ DWORD unknown00284c; +/* 0x2850 */ DWORD unknown002850; +/* 0x2854 */ DWORD unknown002854; +/* 0x2858 */ DWORD unknown002858; +/* 0x285c */ DWORD unknown00285c; +/* 0x2860 */ DWORD unknown002860; +/* 0x2864 */ DWORD unknown002864; +/* 0x2868 */ DWORD unknown002868; +/* 0x286c */ DWORD unknown00286c; +/* 0x2870 */ DWORD unknown002870; +/* 0x2874 */ DWORD unknown002874; +/* 0x2878 */ DWORD unknown002878; +/* 0x287c */ DWORD unknown00287c; +/* 0x2880 */ DWORD unknown002880; +/* 0x2884 */ DWORD unknown002884; +/* 0x2888 */ DWORD unknown002888; +/* 0x288c */ DWORD unknown00288c; +/* 0x2890 */ DWORD unknown002890; +/* 0x2894 */ DWORD unknown002894; +/* 0x2898 */ DWORD unknown002898; +/* 0x289c */ DWORD unknown00289c; +/* 0x28a0 */ DWORD unknown0028a0; +/* 0x28a4 */ DWORD unknown0028a4; +/* 0x28a8 */ DWORD unknown0028a8; +/* 0x28ac */ DWORD unknown0028ac; +/* 0x28b0 */ DWORD unknown0028b0; +/* 0x28b4 */ DWORD unknown0028b4; +/* 0x28b8 */ DWORD unknown0028b8; +/* 0x28bc */ DWORD unknown0028bc; +/* 0x28c0 */ DWORD unknown0028c0; +/* 0x28c4 */ DWORD unknown0028c4; +/* 0x28c8 */ DWORD unknown0028c8; +/* 0x28cc */ DWORD unknown0028cc; +/* 0x28d0 */ DWORD unknown0028d0; +/* 0x28d4 */ DWORD unknown0028d4; +/* 0x28d8 */ DWORD unknown0028d8; +/* 0x28dc */ DWORD unknown0028dc; +/* 0x28e0 */ DWORD unknown0028e0; +/* 0x28e4 */ DWORD unknown0028e4; +/* 0x28e8 */ DWORD unknown0028e8; +/* 0x28ec */ DWORD unknown0028ec; +/* 0x28f0 */ DWORD unknown0028f0; +/* 0x28f4 */ DWORD unknown0028f4; +/* 0x28f8 */ DWORD unknown0028f8; +/* 0x28fc */ DWORD unknown0028fc; + +/* 0x2900 */ DWORD unknown002900; +/* 0x2904 */ DWORD unknown002904; +/* 0x2908 */ DWORD unknown002908; +/* 0x290c */ DWORD unknown00290c; +/* 0x2910 */ DWORD unknown002910; +/* 0x2914 */ DWORD unknown002914; +/* 0x2918 */ DWORD unknown002918; +/* 0x291c */ DWORD unknown00291c; +/* 0x2920 */ DWORD unknown002920; +/* 0x2924 */ DWORD unknown002924; +/* 0x2928 */ DWORD unknown002928; +/* 0x292c */ DWORD unknown00292c; +/* 0x2930 */ DWORD unknown002930; +/* 0x2934 */ DWORD unknown002934; +/* 0x2938 */ DWORD unknown002938; +/* 0x293c */ DWORD unknown00293c; +/* 0x2940 */ DWORD unknown002940; +/* 0x2944 */ DWORD unknown002944; +/* 0x2948 */ DWORD unknown002948; +/* 0x294c */ DWORD unknown00294c; +/* 0x2950 */ DWORD unknown002950; +/* 0x2954 */ DWORD unknown002954; +/* 0x2958 */ DWORD unknown002958; +/* 0x295c */ DWORD unknown00295c; +/* 0x2960 */ DWORD unknown002960; +/* 0x2964 */ DWORD unknown002964; +/* 0x2968 */ DWORD unknown002968; +/* 0x296c */ DWORD unknown00296c; +/* 0x2970 */ DWORD unknown002970; +/* 0x2974 */ DWORD unknown002974; +/* 0x2978 */ DWORD unknown002978; +/* 0x297c */ DWORD unknown00297c; +/* 0x2980 */ DWORD unknown002980; +/* 0x2984 */ DWORD unknown002984; +/* 0x2988 */ DWORD unknown002988; +/* 0x298c */ DWORD unknown00298c; +/* 0x2990 */ DWORD unknown002990; +/* 0x2994 */ DWORD unknown002994; +/* 0x2998 */ DWORD unknown002998; +/* 0x299c */ DWORD unknown00299c; +/* 0x29a0 */ DWORD unknown0029a0; +/* 0x29a4 */ DWORD unknown0029a4; +/* 0x29a8 */ DWORD unknown0029a8; +/* 0x29ac */ DWORD unknown0029ac; +/* 0x29b0 */ DWORD unknown0029b0; +/* 0x29b4 */ DWORD unknown0029b4; +/* 0x29b8 */ DWORD unknown0029b8; +/* 0x29bc */ DWORD unknown0029bc; +/* 0x29c0 */ DWORD unknown0029c0; +/* 0x29c4 */ DWORD unknown0029c4; +/* 0x29c8 */ DWORD unknown0029c8; +/* 0x29cc */ DWORD unknown0029cc; +/* 0x29d0 */ DWORD unknown0029d0; +/* 0x29d4 */ DWORD unknown0029d4; +/* 0x29d8 */ DWORD unknown0029d8; +/* 0x29dc */ DWORD unknown0029dc; +/* 0x29e0 */ DWORD unknown0029e0; +/* 0x29e4 */ DWORD unknown0029e4; +/* 0x29e8 */ DWORD unknown0029e8; +/* 0x29ec */ DWORD unknown0029ec; +/* 0x29f0 */ DWORD unknown0029f0; +/* 0x29f4 */ DWORD unknown0029f4; +/* 0x29f8 */ DWORD unknown0029f8; +/* 0x29fc */ DWORD unknown0029fc; + +/* 0x2a00 */ DWORD unknown002a00; +/* 0x2a04 */ DWORD unknown002a04; +/* 0x2a08 */ DWORD unknown002a08; +/* 0x2a0c */ DWORD unknown002a0c; +/* 0x2a10 */ DWORD unknown002a10; +/* 0x2a14 */ DWORD unknown002a14; +/* 0x2a18 */ DWORD unknown002a18; +/* 0x2a1c */ DWORD unknown002a1c; +/* 0x2a20 */ DWORD unknown002a20; +/* 0x2a24 */ DWORD unknown002a24; +/* 0x2a28 */ DWORD unknown002a28; +/* 0x2a2c */ DWORD unknown002a2c; +/* 0x2a30 */ DWORD unknown002a30; +/* 0x2a34 */ DWORD unknown002a34; +/* 0x2a38 */ DWORD unknown002a38; +/* 0x2a3c */ DWORD unknown002a3c; +/* 0x2a40 */ DWORD unknown002a40; +/* 0x2a44 */ DWORD unknown002a44; +/* 0x2a48 */ DWORD unknown002a48; +/* 0x2a4c */ DWORD unknown002a4c; +/* 0x2a50 */ DWORD unknown002a50; +/* 0x2a54 */ DWORD unknown002a54; +/* 0x2a58 */ DWORD unknown002a58; +/* 0x2a5c */ DWORD unknown002a5c; +/* 0x2a60 */ DWORD unknown002a60; +/* 0x2a64 */ DWORD unknown002a64; +/* 0x2a68 */ DWORD unknown002a68; +/* 0x2a6c */ DWORD unknown002a6c; +/* 0x2a70 */ DWORD unknown002a70; +/* 0x2a74 */ DWORD unknown002a74; +/* 0x2a78 */ DWORD unknown002a78; +/* 0x2a7c */ DWORD unknown002a7c; +/* 0x2a80 */ DWORD unknown002a80; +/* 0x2a84 */ DWORD unknown002a84; +/* 0x2a88 */ DWORD unknown002a88; +/* 0x2a8c */ DWORD unknown002a8c; +/* 0x2a90 */ DWORD unknown002a90; +/* 0x2a94 */ DWORD unknown002a94; +/* 0x2a98 */ DWORD unknown002a98; +/* 0x2a9c */ DWORD unknown002a9c; +/* 0x2aa0 */ DWORD unknown002aa0; +/* 0x2aa4 */ DWORD unknown002aa4; +/* 0x2aa8 */ DWORD unknown002aa8; +/* 0x2aac */ DWORD unknown002aac; +/* 0x2ab0 */ DWORD unknown002ab0; +/* 0x2ab4 */ DWORD unknown002ab4; +/* 0x2ab8 */ DWORD unknown002ab8; +/* 0x2abc */ DWORD unknown002abc; +/* 0x2ac0 */ DWORD unknown002ac0; +/* 0x2ac4 */ DWORD unknown002ac4; +/* 0x2ac8 */ DWORD unknown002ac8; +/* 0x2acc */ DWORD unknown002acc; +/* 0x2ad0 */ DWORD unknown002ad0; +/* 0x2ad4 */ DWORD unknown002ad4; +/* 0x2ad8 */ DWORD unknown002ad8; +/* 0x2adc */ DWORD unknown002adc; +/* 0x2ae0 */ DWORD unknown002ae0; +/* 0x2ae4 */ DWORD unknown002ae4; +/* 0x2ae8 */ DWORD unknown002ae8; +/* 0x2aec */ DWORD unknown002aec; +/* 0x2af0 */ DWORD unknown002af0; +/* 0x2af4 */ DWORD unknown002af4; +/* 0x2af8 */ DWORD unknown002af8; +/* 0x2afc */ DWORD unknown002afc; + +/* 0x2b00 */ DWORD unknown002b00; +/* 0x2b04 */ DWORD unknown002b04; +/* 0x2b08 */ DWORD unknown002b08; +/* 0x2b0c */ DWORD unknown002b0c; +/* 0x2b10 */ DWORD unknown002b10; +/* 0x2b14 */ DWORD unknown002b14; +/* 0x2b18 */ DWORD unknown002b18; +/* 0x2b1c */ DWORD unknown002b1c; +/* 0x2b20 */ DWORD unknown002b20; +/* 0x2b24 */ DWORD unknown002b24; +/* 0x2b28 */ DWORD unknown002b28; +/* 0x2b2c */ DWORD unknown002b2c; +/* 0x2b30 */ DWORD unknown002b30; +/* 0x2b34 */ DWORD unknown002b34; +/* 0x2b38 */ DWORD unknown002b38; +/* 0x2b3c */ DWORD unknown002b3c; +/* 0x2b40 */ DWORD unknown002b40; +/* 0x2b44 */ DWORD unknown002b44; +/* 0x2b48 */ DWORD unknown002b48; +/* 0x2b4c */ DWORD unknown002b4c; +/* 0x2b50 */ DWORD unknown002b50; +/* 0x2b54 */ DWORD unknown002b54; +/* 0x2b58 */ DWORD unknown002b58; +/* 0x2b5c */ DWORD unknown002b5c; +/* 0x2b60 */ DWORD unknown002b60; +/* 0x2b64 */ DWORD unknown002b64; +/* 0x2b68 */ DWORD unknown002b68; +/* 0x2b6c */ DWORD unknown002b6c; +/* 0x2b70 */ DWORD unknown002b70; +/* 0x2b74 */ DWORD unknown002b74; +/* 0x2b78 */ DWORD unknown002b78; +/* 0x2b7c */ DWORD unknown002b7c; +/* 0x2b80 */ DWORD unknown002b80; +/* 0x2b84 */ DWORD unknown002b84; +/* 0x2b88 */ DWORD unknown002b88; +/* 0x2b8c */ DWORD unknown002b8c; +/* 0x2b90 */ DWORD unknown002b90; +/* 0x2b94 */ DWORD unknown002b94; +/* 0x2b98 */ DWORD unknown002b98; +/* 0x2b9c */ DWORD unknown002b9c; +/* 0x2ba0 */ DWORD unknown002ba0; +/* 0x2ba4 */ DWORD unknown002ba4; +/* 0x2ba8 */ DWORD unknown002ba8; +/* 0x2bac */ DWORD unknown002bac; +/* 0x2bb0 */ DWORD unknown002bb0; +/* 0x2bb4 */ DWORD unknown002bb4; +/* 0x2bb8 */ DWORD unknown002bb8; +/* 0x2bbc */ DWORD unknown002bbc; +/* 0x2bc0 */ DWORD unknown002bc0; +/* 0x2bc4 */ DWORD unknown002bc4; +/* 0x2bc8 */ DWORD unknown002bc8; +/* 0x2bcc */ DWORD unknown002bcc; +/* 0x2bd0 */ DWORD unknown002bd0; +/* 0x2bd4 */ DWORD unknown002bd4; +/* 0x2bd8 */ DWORD unknown002bd8; +/* 0x2bdc */ DWORD unknown002bdc; +/* 0x2be0 */ DWORD unknown002be0; +/* 0x2be4 */ DWORD unknown002be4; +/* 0x2be8 */ DWORD unknown002be8; +/* 0x2bec */ DWORD unknown002bec; +/* 0x2bf0 */ DWORD unknown002bf0; +/* 0x2bf4 */ DWORD unknown002bf4; +/* 0x2bf8 */ DWORD unknown002bf8; +/* 0x2bfc */ DWORD unknown002bfc; + +/* 0x2c00 */ DWORD unknown002c00; +/* 0x2c04 */ DWORD unknown002c04; +/* 0x2c08 */ DWORD unknown002c08; +/* 0x2c0c */ DWORD unknown002c0c; +/* 0x2c10 */ DWORD unknown002c10; +/* 0x2c14 */ DWORD unknown002c14; +/* 0x2c18 */ DWORD unknown002c18; +/* 0x2c1c */ DWORD unknown002c1c; +/* 0x2c20 */ DWORD unknown002c20; +/* 0x2c24 */ DWORD unknown002c24; +/* 0x2c28 */ DWORD unknown002c28; +/* 0x2c2c */ DWORD unknown002c2c; +/* 0x2c30 */ DWORD unknown002c30; +/* 0x2c34 */ DWORD unknown002c34; +/* 0x2c38 */ DWORD unknown002c38; +/* 0x2c3c */ DWORD unknown002c3c; +/* 0x2c40 */ DWORD unknown002c40; +/* 0x2c44 */ DWORD unknown002c44; +/* 0x2c48 */ DWORD unknown002c48; +/* 0x2c4c */ DWORD unknown002c4c; +/* 0x2c50 */ DWORD unknown002c50; +/* 0x2c54 */ DWORD unknown002c54; +/* 0x2c58 */ DWORD unknown002c58; +/* 0x2c5c */ DWORD unknown002c5c; +/* 0x2c60 */ DWORD unknown002c60; +/* 0x2c64 */ DWORD unknown002c64; +/* 0x2c68 */ DWORD unknown002c68; +/* 0x2c6c */ DWORD unknown002c6c; +/* 0x2c70 */ DWORD unknown002c70; +/* 0x2c74 */ DWORD unknown002c74; +/* 0x2c78 */ DWORD unknown002c78; +/* 0x2c7c */ DWORD unknown002c7c; +/* 0x2c80 */ DWORD unknown002c80; +/* 0x2c84 */ DWORD unknown002c84; +/* 0x2c88 */ DWORD unknown002c88; +/* 0x2c8c */ DWORD unknown002c8c; +/* 0x2c90 */ DWORD unknown002c90; +/* 0x2c94 */ DWORD unknown002c94; +/* 0x2c98 */ DWORD unknown002c98; +/* 0x2c9c */ DWORD unknown002c9c; +/* 0x2ca0 */ DWORD unknown002ca0; +/* 0x2ca4 */ DWORD unknown002ca4; +/* 0x2ca8 */ DWORD unknown002ca8; +/* 0x2cac */ DWORD unknown002cac; +/* 0x2cb0 */ DWORD unknown002cb0; +/* 0x2cb4 */ DWORD unknown002cb4; +/* 0x2cb8 */ DWORD unknown002cb8; +/* 0x2cbc */ DWORD unknown002cbc; +/* 0x2cc0 */ DWORD unknown002cc0; +/* 0x2cc4 */ DWORD unknown002cc4; +/* 0x2cc8 */ DWORD unknown002cc8; +/* 0x2ccc */ DWORD unknown002ccc; +/* 0x2cd0 */ DWORD unknown002cd0; +/* 0x2cd4 */ DWORD unknown002cd4; +/* 0x2cd8 */ DWORD unknown002cd8; +/* 0x2cdc */ DWORD unknown002cdc; +/* 0x2ce0 */ DWORD unknown002ce0; +/* 0x2ce4 */ DWORD unknown002ce4; +/* 0x2ce8 */ DWORD unknown002ce8; +/* 0x2cec */ DWORD unknown002cec; +/* 0x2cf0 */ DWORD unknown002cf0; +/* 0x2cf4 */ DWORD unknown002cf4; +/* 0x2cf8 */ DWORD unknown002cf8; +/* 0x2cfc */ DWORD unknown002cfc; + +/* 0x2d00 */ DWORD unknown002d00; +/* 0x2d04 */ DWORD unknown002d04; +/* 0x2d08 */ DWORD unknown002d08; +/* 0x2d0c */ DWORD unknown002d0c; +/* 0x2d10 */ DWORD unknown002d10; +/* 0x2d14 */ DWORD unknown002d14; +/* 0x2d18 */ DWORD unknown002d18; +/* 0x2d1c */ DWORD unknown002d1c; +/* 0x2d20 */ DWORD unknown002d20; +/* 0x2d24 */ DWORD unknown002d24; +/* 0x2d28 */ DWORD unknown002d28; +/* 0x2d2c */ DWORD unknown002d2c; +/* 0x2d30 */ DWORD unknown002d30; +/* 0x2d34 */ DWORD unknown002d34; +/* 0x2d38 */ DWORD unknown002d38; +/* 0x2d3c */ DWORD unknown002d3c; +/* 0x2d40 */ DWORD unknown002d40; +/* 0x2d44 */ DWORD unknown002d44; +/* 0x2d48 */ DWORD unknown002d48; +/* 0x2d4c */ DWORD unknown002d4c; +/* 0x2d50 */ DWORD unknown002d50; +/* 0x2d54 */ DWORD unknown002d54; +/* 0x2d58 */ DWORD unknown002d58; +/* 0x2d5c */ DWORD unknown002d5c; +/* 0x2d60 */ DWORD unknown002d60; +/* 0x2d64 */ DWORD unknown002d64; +/* 0x2d68 */ DWORD unknown002d68; +/* 0x2d6c */ DWORD unknown002d6c; +/* 0x2d70 */ DWORD unknown002d70; +/* 0x2d74 */ DWORD unknown002d74; +/* 0x2d78 */ DWORD unknown002d78; +/* 0x2d7c */ DWORD unknown002d7c; +/* 0x2d80 */ DWORD unknown002d80; +/* 0x2d84 */ DWORD unknown002d84; +/* 0x2d88 */ DWORD unknown002d88; +/* 0x2d8c */ DWORD unknown002d8c; +/* 0x2d90 */ DWORD unknown002d90; +/* 0x2d94 */ DWORD unknown002d94; +/* 0x2d98 */ DWORD unknown002d98; +/* 0x2d9c */ DWORD unknown002d9c; +/* 0x2da0 */ DWORD unknown002da0; +/* 0x2da4 */ DWORD unknown002da4; +/* 0x2da8 */ DWORD unknown002da8; +/* 0x2dac */ DWORD unknown002dac; +/* 0x2db0 */ DWORD unknown002db0; +/* 0x2db4 */ DWORD unknown002db4; +/* 0x2db8 */ DWORD unknown002db8; +/* 0x2dbc */ DWORD unknown002dbc; +/* 0x2dc0 */ DWORD unknown002dc0; +/* 0x2dc4 */ DWORD unknown002dc4; +/* 0x2dc8 */ DWORD unknown002dc8; +/* 0x2dcc */ DWORD unknown002dcc; +/* 0x2dd0 */ DWORD unknown002dd0; +/* 0x2dd4 */ DWORD unknown002dd4; +/* 0x2dd8 */ DWORD unknown002dd8; +/* 0x2ddc */ DWORD unknown002ddc; +/* 0x2de0 */ DWORD unknown002de0; +/* 0x2de4 */ DWORD unknown002de4; +/* 0x2de8 */ DWORD unknown002de8; +/* 0x2dec */ DWORD unknown002dec; +/* 0x2df0 */ DWORD unknown002df0; +/* 0x2df4 */ DWORD unknown002df4; +/* 0x2df8 */ DWORD unknown002df8; +/* 0x2dfc */ DWORD unknown002dfc; + +/* 0x2e00 */ DWORD unknown002e00; +/* 0x2e04 */ DWORD unknown002e04; +/* 0x2e08 */ DWORD unknown002e08; +/* 0x2e0c */ DWORD unknown002e0c; +/* 0x2e10 */ DWORD unknown002e10; +/* 0x2e14 */ DWORD unknown002e14; +/* 0x2e18 */ DWORD unknown002e18; +/* 0x2e1c */ DWORD unknown002e1c; +/* 0x2e20 */ DWORD unknown002e20; +/* 0x2e24 */ DWORD unknown002e24; +/* 0x2e28 */ DWORD unknown002e28; +/* 0x2e2c */ DWORD unknown002e2c; +/* 0x2e30 */ DWORD unknown002e30; +/* 0x2e34 */ DWORD unknown002e34; +/* 0x2e38 */ DWORD unknown002e38; +/* 0x2e3c */ DWORD unknown002e3c; +/* 0x2e40 */ DWORD unknown002e40; +/* 0x2e44 */ DWORD unknown002e44; +/* 0x2e48 */ DWORD unknown002e48; +/* 0x2e4c */ DWORD unknown002e4c; +/* 0x2e50 */ DWORD unknown002e50; +/* 0x2e54 */ DWORD unknown002e54; +/* 0x2e58 */ DWORD unknown002e58; +/* 0x2e5c */ DWORD unknown002e5c; +/* 0x2e60 */ DWORD unknown002e60; +/* 0x2e64 */ DWORD unknown002e64; +/* 0x2e68 */ DWORD unknown002e68; +/* 0x2e6c */ DWORD unknown002e6c; +/* 0x2e70 */ DWORD unknown002e70; +/* 0x2e74 */ DWORD unknown002e74; +/* 0x2e78 */ DWORD unknown002e78; +/* 0x2e7c */ DWORD unknown002e7c; +/* 0x2e80 */ DWORD unknown002e80; +/* 0x2e84 */ DWORD unknown002e84; +/* 0x2e88 */ DWORD unknown002e88; +/* 0x2e8c */ DWORD unknown002e8c; +/* 0x2e90 */ DWORD unknown002e90; +/* 0x2e94 */ DWORD unknown002e94; +/* 0x2e98 */ DWORD unknown002e98; +/* 0x2e9c */ DWORD unknown002e9c; +/* 0x2ea0 */ DWORD unknown002ea0; +/* 0x2ea4 */ DWORD unknown002ea4; +/* 0x2ea8 */ DWORD unknown002ea8; +/* 0x2eac */ DWORD unknown002eac; +/* 0x2eb0 */ DWORD unknown002eb0; +/* 0x2eb4 */ DWORD unknown002eb4; +/* 0x2eb8 */ DWORD unknown002eb8; +/* 0x2ebc */ DWORD unknown002ebc; +/* 0x2ec0 */ DWORD unknown002ec0; +/* 0x2ec4 */ DWORD unknown002ec4; +/* 0x2ec8 */ DWORD unknown002ec8; +/* 0x2ecc */ DWORD unknown002ecc; +/* 0x2ed0 */ DWORD unknown002ed0; +/* 0x2ed4 */ DWORD unknown002ed4; +/* 0x2ed8 */ DWORD unknown002ed8; +/* 0x2edc */ DWORD unknown002edc; +/* 0x2ee0 */ DWORD unknown002ee0; +/* 0x2ee4 */ DWORD unknown002ee4; +/* 0x2ee8 */ DWORD unknown002ee8; +/* 0x2eec */ DWORD unknown002eec; +/* 0x2ef0 */ DWORD unknown002ef0; +/* 0x2ef4 */ DWORD unknown002ef4; +/* 0x2ef8 */ DWORD unknown002ef8; +/* 0x2efc */ DWORD unknown002efc; + +/* 0x2f00 */ DWORD unknown002f00; +/* 0x2f04 */ DWORD unknown002f04; +/* 0x2f08 */ DWORD unknown002f08; +/* 0x2f0c */ DWORD unknown002f0c; +/* 0x2f10 */ DWORD unknown002f10; +/* 0x2f14 */ DWORD unknown002f14; +/* 0x2f18 */ DWORD unknown002f18; +/* 0x2f1c */ DWORD unknown002f1c; +/* 0x2f20 */ DWORD unknown002f20; +/* 0x2f24 */ DWORD unknown002f24; +/* 0x2f28 */ DWORD unknown002f28; +/* 0x2f2c */ DWORD unknown002f2c; +/* 0x2f30 */ DWORD unknown002f30; +/* 0x2f34 */ DWORD unknown002f34; +/* 0x2f38 */ DWORD unknown002f38; +/* 0x2f3c */ DWORD unknown002f3c; +/* 0x2f40 */ DWORD unknown002f40; +/* 0x2f44 */ DWORD unknown002f44; +/* 0x2f48 */ DWORD unknown002f48; +/* 0x2f4c */ DWORD unknown002f4c; +/* 0x2f50 */ DWORD unknown002f50; +/* 0x2f54 */ DWORD unknown002f54; +/* 0x2f58 */ DWORD unknown002f58; +/* 0x2f5c */ DWORD unknown002f5c; +/* 0x2f60 */ DWORD unknown002f60; +/* 0x2f64 */ DWORD unknown002f64; +/* 0x2f68 */ DWORD unknown002f68; +/* 0x2f6c */ DWORD unknown002f6c; +/* 0x2f70 */ DWORD unknown002f70; +/* 0x2f74 */ DWORD unknown002f74; +/* 0x2f78 */ DWORD unknown002f78; +/* 0x2f7c */ DWORD unknown002f7c; +/* 0x2f80 */ DWORD unknown002f80; +/* 0x2f84 */ DWORD unknown002f84; +/* 0x2f88 */ DWORD unknown002f88; +/* 0x2f8c */ DWORD unknown002f8c; +/* 0x2f90 */ DWORD unknown002f90; +/* 0x2f94 */ DWORD unknown002f94; +/* 0x2f98 */ DWORD unknown002f98; +/* 0x2f9c */ DWORD unknown002f9c; +/* 0x2fa0 */ DWORD unknown002fa0; +/* 0x2fa4 */ DWORD unknown002fa4; +/* 0x2fa8 */ DWORD unknown002fa8; +/* 0x2fac */ DWORD unknown002fac; +/* 0x2fb0 */ DWORD unknown002fb0; +/* 0x2fb4 */ DWORD unknown002fb4; +/* 0x2fb8 */ DWORD unknown002fb8; +/* 0x2fbc */ DWORD unknown002fbc; +/* 0x2fc0 */ DWORD unknown002fc0; +/* 0x2fc4 */ DWORD unknown002fc4; +/* 0x2fc8 */ DWORD unknown002fc8; +/* 0x2fcc */ DWORD unknown002fcc; +/* 0x2fd0 */ DWORD unknown002fd0; +/* 0x2fd4 */ DWORD unknown002fd4; +/* 0x2fd8 */ DWORD unknown002fd8; +/* 0x2fdc */ DWORD unknown002fdc; +/* 0x2fe0 */ DWORD unknown002fe0; +/* 0x2fe4 */ DWORD unknown002fe4; +/* 0x2fe8 */ DWORD unknown002fe8; +/* 0x2fec */ DWORD unknown002fec; +/* 0x2ff0 */ DWORD unknown002ff0; +/* 0x2ff4 */ DWORD unknown002ff4; +/* 0x2ff8 */ DWORD unknown002ff8; +/* 0x2ffc */ DWORD unknown002ffc; + +/* 0x3000 */ DWORD unknown003000; +/* 0x3004 */ DWORD unknown003004; +/* 0x3008 */ DWORD unknown003008; +/* 0x300c */ DWORD unknown00300c; +/* 0x3010 */ DWORD unknown003010; +/* 0x3014 */ DWORD unknown003014; +/* 0x3018 */ DWORD unknown003018; +/* 0x301c */ DWORD unknown00301c; +/* 0x3020 */ DWORD unknown003020; +/* 0x3024 */ DWORD unknown003024; +/* 0x3028 */ DWORD unknown003028; +/* 0x302c */ DWORD unknown00302c; +/* 0x3030 */ DWORD unknown003030; +/* 0x3034 */ DWORD unknown003034; +/* 0x3038 */ DWORD unknown003038; +/* 0x303c */ DWORD unknown00303c; +/* 0x3040 */ DWORD unknown003040; +/* 0x3044 */ DWORD unknown003044; +/* 0x3048 */ DWORD unknown003048; +/* 0x304c */ DWORD unknown00304c; +/* 0x3050 */ DWORD unknown003050; +/* 0x3054 */ DWORD unknown003054; +/* 0x3058 */ DWORD unknown003058; +/* 0x305c */ DWORD unknown00305c; +/* 0x3060 */ DWORD unknown003060; +/* 0x3064 */ DWORD unknown003064; +/* 0x3068 */ DWORD unknown003068; +/* 0x306c */ DWORD unknown00306c; +/* 0x3070 */ DWORD unknown003070; +/* 0x3074 */ DWORD unknown003074; +/* 0x3078 */ DWORD unknown003078; +/* 0x307c */ DWORD unknown00307c; +/* 0x3080 */ DWORD unknown003080; +/* 0x3084 */ DWORD unknown003084; +/* 0x3088 */ DWORD unknown003088; +/* 0x308c */ DWORD unknown00308c; +/* 0x3090 */ DWORD unknown003090; +/* 0x3094 */ DWORD unknown003094; +/* 0x3098 */ DWORD unknown003098; +/* 0x309c */ DWORD unknown00309c; +/* 0x30a0 */ DWORD unknown0030a0; +/* 0x30a4 */ DWORD unknown0030a4; +/* 0x30a8 */ DWORD unknown0030a8; +/* 0x30ac */ DWORD unknown0030ac; +/* 0x30b0 */ DWORD unknown0030b0; +/* 0x30b4 */ DWORD unknown0030b4; +/* 0x30b8 */ DWORD unknown0030b8; +/* 0x30bc */ DWORD unknown0030bc; +/* 0x30c0 */ DWORD unknown0030c0; +/* 0x30c4 */ DWORD unknown0030c4; +/* 0x30c8 */ DWORD unknown0030c8; +/* 0x30cc */ DWORD unknown0030cc; +/* 0x30d0 */ DWORD unknown0030d0; +/* 0x30d4 */ DWORD unknown0030d4; +/* 0x30d8 */ DWORD unknown0030d8; +/* 0x30dc */ DWORD unknown0030dc; +/* 0x30e0 */ DWORD unknown0030e0; +/* 0x30e4 */ DWORD unknown0030e4; +/* 0x30e8 */ DWORD unknown0030e8; +/* 0x30ec */ DWORD unknown0030ec; +/* 0x30f0 */ DWORD unknown0030f0; +/* 0x30f4 */ DWORD unknown0030f4; +/* 0x30f8 */ DWORD unknown0030f8; +/* 0x30fc */ DWORD unknown0030fc; + +/* 0x3100 */ DWORD unknown003100; +/* 0x3104 */ DWORD unknown003104; +/* 0x3108 */ DWORD unknown003108; +/* 0x310c */ DWORD unknown00310c; +/* 0x3110 */ DWORD unknown003110; +/* 0x3114 */ DWORD unknown003114; +/* 0x3118 */ DWORD unknown003118; +/* 0x311c */ DWORD unknown00311c; +/* 0x3120 */ DWORD unknown003120; +/* 0x3124 */ DWORD unknown003124; +/* 0x3128 */ DWORD unknown003128; +/* 0x312c */ DWORD unknown00312c; +/* 0x3130 */ DWORD unknown003130; +/* 0x3134 */ DWORD unknown003134; +/* 0x3138 */ DWORD unknown003138; +/* 0x313c */ DWORD unknown00313c; +/* 0x3140 */ DWORD unknown003140; +/* 0x3144 */ DWORD unknown003144; +/* 0x3148 */ DWORD unknown003148; +/* 0x314c */ DWORD unknown00314c; +/* 0x3150 */ DWORD unknown003150; +/* 0x3154 */ DWORD unknown003154; +/* 0x3158 */ DWORD unknown003158; +/* 0x315c */ DWORD unknown00315c; +/* 0x3160 */ DWORD unknown003160; +/* 0x3164 */ DWORD unknown003164; +/* 0x3168 */ DWORD unknown003168; +/* 0x316c */ DWORD unknown00316c; +/* 0x3170 */ DWORD unknown003170; +/* 0x3174 */ DWORD unknown003174; +/* 0x3178 */ DWORD unknown003178; +/* 0x317c */ DWORD unknown00317c; +/* 0x3180 */ DWORD unknown003180; +/* 0x3184 */ DWORD unknown003184; +/* 0x3188 */ DWORD unknown003188; +/* 0x318c */ DWORD unknown00318c; +/* 0x3190 */ DWORD unknown003190; +/* 0x3194 */ DWORD unknown003194; +/* 0x3198 */ DWORD unknown003198; +/* 0x319c */ DWORD unknown00319c; +/* 0x31a0 */ DWORD unknown0031a0; +/* 0x31a4 */ DWORD unknown0031a4; +/* 0x31a8 */ DWORD unknown0031a8; +/* 0x31ac */ DWORD unknown0031ac; +/* 0x31b0 */ DWORD unknown0031b0; +/* 0x31b4 */ DWORD unknown0031b4; +/* 0x31b8 */ DWORD unknown0031b8; +/* 0x31bc */ DWORD unknown0031bc; +/* 0x31c0 */ DWORD unknown0031c0; +/* 0x31c4 */ DWORD unknown0031c4; +/* 0x31c8 */ DWORD unknown0031c8; +/* 0x31cc */ DWORD unknown0031cc; +/* 0x31d0 */ DWORD unknown0031d0; +/* 0x31d4 */ DWORD unknown0031d4; +/* 0x31d8 */ DWORD unknown0031d8; +/* 0x31dc */ DWORD unknown0031dc; +/* 0x31e0 */ DWORD unknown0031e0; +/* 0x31e4 */ DWORD unknown0031e4; +/* 0x31e8 */ DWORD unknown0031e8; +/* 0x31ec */ DWORD unknown0031ec; +/* 0x31f0 */ DWORD unknown0031f0; +/* 0x31f4 */ DWORD unknown0031f4; +/* 0x31f8 */ DWORD unknown0031f8; +/* 0x31fc */ DWORD unknown0031fc; + +/* 0x3200 */ DWORD unknown003200; +/* 0x3204 */ DWORD unknown003204; +/* 0x3208 */ DWORD unknown003208; +/* 0x320c */ DWORD unknown00320c; +/* 0x3210 */ DWORD unknown003210; +/* 0x3214 */ DWORD unknown003214; +/* 0x3218 */ DWORD unknown003218; +/* 0x321c */ DWORD unknown00321c; +/* 0x3220 */ DWORD unknown003220; +/* 0x3224 */ DWORD unknown003224; +/* 0x3228 */ DWORD unknown003228; +/* 0x322c */ DWORD unknown00322c; +/* 0x3230 */ DWORD unknown003230; +/* 0x3234 */ DWORD unknown003234; +/* 0x3238 */ DWORD unknown003238; +/* 0x323c */ DWORD unknown00323c; +/* 0x3240 */ DWORD unknown003240; +/* 0x3244 */ DWORD unknown003244; +/* 0x3248 */ DWORD unknown003248; +/* 0x324c */ DWORD unknown00324c; +/* 0x3250 */ DWORD unknown003250; +/* 0x3254 */ DWORD unknown003254; +/* 0x3258 */ DWORD unknown003258; +/* 0x325c */ DWORD unknown00325c; +/* 0x3260 */ DWORD unknown003260; +/* 0x3264 */ DWORD unknown003264; +/* 0x3268 */ DWORD unknown003268; +/* 0x326c */ DWORD unknown00326c; +/* 0x3270 */ DWORD unknown003270; +/* 0x3274 */ DWORD unknown003274; +/* 0x3278 */ DWORD unknown003278; +/* 0x327c */ DWORD unknown00327c; +/* 0x3280 */ DWORD unknown003280; +/* 0x3284 */ DWORD unknown003284; +/* 0x3288 */ DWORD unknown003288; +/* 0x328c */ DWORD unknown00328c; +/* 0x3290 */ DWORD unknown003290; +/* 0x3294 */ DWORD unknown003294; +/* 0x3298 */ DWORD unknown003298; +/* 0x329c */ DWORD unknown00329c; +/* 0x32a0 */ DWORD unknown0032a0; +/* 0x32a4 */ DWORD unknown0032a4; +/* 0x32a8 */ DWORD unknown0032a8; +/* 0x32ac */ DWORD unknown0032ac; +/* 0x32b0 */ DWORD unknown0032b0; +/* 0x32b4 */ DWORD unknown0032b4; +/* 0x32b8 */ DWORD unknown0032b8; +/* 0x32bc */ DWORD unknown0032bc; +/* 0x32c0 */ DWORD unknown0032c0; +/* 0x32c4 */ DWORD unknown0032c4; +/* 0x32c8 */ DWORD unknown0032c8; +/* 0x32cc */ DWORD unknown0032cc; +/* 0x32d0 */ DWORD unknown0032d0; +/* 0x32d4 */ DWORD unknown0032d4; +/* 0x32d8 */ DWORD unknown0032d8; +/* 0x32dc */ DWORD unknown0032dc; +/* 0x32e0 */ DWORD unknown0032e0; +/* 0x32e4 */ DWORD unknown0032e4; +/* 0x32e8 */ DWORD unknown0032e8; +/* 0x32ec */ DWORD unknown0032ec; +/* 0x32f0 */ DWORD unknown0032f0; +/* 0x32f4 */ DWORD unknown0032f4; +/* 0x32f8 */ DWORD unknown0032f8; +/* 0x32fc */ DWORD unknown0032fc; + +/* 0x3300 */ DWORD unknown003300; +/* 0x3304 */ DWORD unknown003304; +/* 0x3308 */ DWORD unknown003308; +/* 0x330c */ DWORD unknown00330c; +/* 0x3310 */ DWORD unknown003310; +/* 0x3314 */ DWORD unknown003314; +/* 0x3318 */ DWORD unknown003318; +/* 0x331c */ DWORD unknown00331c; +/* 0x3320 */ DWORD unknown003320; +/* 0x3324 */ DWORD unknown003324; +/* 0x3328 */ DWORD unknown003328; +/* 0x332c */ DWORD unknown00332c; +} D3D9HALDEVICE, FAR *LPD3D9HALDEVICE; + +#endif // _D3D9_HALDEVICE_H_ diff --git a/reactos/dll/directx/d3d9/d3d9_impl.c b/reactos/dll/directx/d3d9/d3d9_impl.c index 9bb2109883b..b593383c4a3 100644 --- a/reactos/dll/directx/d3d9/d3d9_impl.c +++ b/reactos/dll/directx/d3d9/d3d9_impl.c @@ -18,9 +18,9 @@ #define UNLOCK_D3D9() LeaveCriticalSection(&This->d3d9_cs); /* Convert a IDirect3D9 pointer safely to the internal implementation struct */ -static LPDIRECT3D9_INT impl_from_IDirect3D9(LPDIRECT3D9 iface) +static LPDIRECT3D9_INT IDirect3D9ToImpl(LPDIRECT3D9 iface) { - if (IsBadWritePtr(iface, sizeof(LPDIRECT3D9_INT))) + if (NULL == iface) return NULL; return (LPDIRECT3D9_INT)((ULONG_PTR)iface - FIELD_OFFSET(DIRECT3D9_INT, lpVtbl)); @@ -29,7 +29,7 @@ static LPDIRECT3D9_INT impl_from_IDirect3D9(LPDIRECT3D9 iface) /* IDirect3D9: IUnknown implementation */ static HRESULT WINAPI IDirect3D9Impl_QueryInterface(LPDIRECT3D9 iface, REFIID riid, LPVOID* ppvObject) { - LPDIRECT3D9_INT This = impl_from_IDirect3D9(iface); + LPDIRECT3D9_INT This = IDirect3D9ToImpl(iface); if (IsEqualGUID(riid, &IID_IUnknown) || IsEqualGUID(riid, &IID_IDirect3D9)) { @@ -44,7 +44,7 @@ static HRESULT WINAPI IDirect3D9Impl_QueryInterface(LPDIRECT3D9 iface, REFIID ri static ULONG WINAPI IDirect3D9Impl_AddRef(LPDIRECT3D9 iface) { - LPDIRECT3D9_INT This = impl_from_IDirect3D9(iface); + LPDIRECT3D9_INT This = IDirect3D9ToImpl(iface); ULONG ref = InterlockedIncrement(&This->lRefCnt); return ref; @@ -52,7 +52,7 @@ static ULONG WINAPI IDirect3D9Impl_AddRef(LPDIRECT3D9 iface) static ULONG WINAPI IDirect3D9Impl_Release(LPDIRECT3D9 iface) { - LPDIRECT3D9_INT This = impl_from_IDirect3D9(iface); + LPDIRECT3D9_INT This = IDirect3D9ToImpl(iface); ULONG ref = InterlockedDecrement(&This->lRefCnt); if (ref == 0) @@ -91,7 +91,7 @@ static UINT WINAPI IDirect3D9Impl_GetAdapterCount(LPDIRECT3D9 iface) { UINT NumDisplayAdapters; - LPDIRECT3D9_INT This = impl_from_IDirect3D9(iface); + LPDIRECT3D9_INT This = IDirect3D9ToImpl(iface); LOCK_D3D9(); NumDisplayAdapters = This->NumDisplayAdapters; @@ -130,7 +130,7 @@ static UINT WINAPI IDirect3D9Impl_GetAdapterCount(LPDIRECT3D9 iface) HRESULT WINAPI IDirect3D9Impl_GetAdapterIdentifier(LPDIRECT3D9 iface, UINT Adapter, DWORD Flags, D3DADAPTER_IDENTIFIER9* pIdentifier) { - LPDIRECT3D9_INT This = impl_from_IDirect3D9(iface); + LPDIRECT3D9_INT This = IDirect3D9ToImpl(iface); LOCK_D3D9(); if (Adapter >= This->NumDisplayAdapters) @@ -147,7 +147,7 @@ HRESULT WINAPI IDirect3D9Impl_GetAdapterIdentifier(LPDIRECT3D9 iface, UINT Adapt return D3DERR_INVALIDCALL; } - if (IsBadWritePtr(pIdentifier, sizeof(D3DADAPTER_IDENTIFIER9))) + if (NULL == pIdentifier) { DPRINT1("Invalid pIdentifier parameter specified"); UNLOCK_D3D9(); @@ -193,7 +193,7 @@ static UINT WINAPI IDirect3D9Impl_GetAdapterModeCount(LPDIRECT3D9 iface, UINT Ad { UINT AdapterModeCount; - LPDIRECT3D9_INT This = impl_from_IDirect3D9(iface); + LPDIRECT3D9_INT This = IDirect3D9ToImpl(iface); LOCK_D3D9(); if (Adapter >= This->NumDisplayAdapters) @@ -258,7 +258,7 @@ static HRESULT WINAPI IDirect3D9Impl_EnumAdapterModes(LPDIRECT3D9 iface, UINT Ad UINT Mode, D3DDISPLAYMODE* pMode) { const D3DDISPLAYMODE* pMatchingDisplayFormat; - LPDIRECT3D9_INT This = impl_from_IDirect3D9(iface); + LPDIRECT3D9_INT This = IDirect3D9ToImpl(iface); LOCK_D3D9(); if (Adapter >= This->NumDisplayAdapters) @@ -268,7 +268,7 @@ static HRESULT WINAPI IDirect3D9Impl_EnumAdapterModes(LPDIRECT3D9 iface, UINT Ad return D3DERR_INVALIDCALL; } - if (IsBadWritePtr(pMode, sizeof(D3DDISPLAYMODE))) + if (NULL == pMode) { DPRINT1("Invalid pMode parameter specified"); UNLOCK_D3D9(); @@ -329,7 +329,7 @@ static HRESULT WINAPI IDirect3D9Impl_EnumAdapterModes(LPDIRECT3D9 iface, UINT Ad */ static HRESULT WINAPI IDirect3D9Impl_GetAdapterDisplayMode(LPDIRECT3D9 iface, UINT Adapter, D3DDISPLAYMODE* pMode) { - LPDIRECT3D9_INT This = impl_from_IDirect3D9(iface); + LPDIRECT3D9_INT This = IDirect3D9ToImpl(iface); LOCK_D3D9(); if (Adapter >= This->NumDisplayAdapters) @@ -339,7 +339,7 @@ static HRESULT WINAPI IDirect3D9Impl_GetAdapterDisplayMode(LPDIRECT3D9 iface, UI return D3DERR_INVALIDCALL; } - if (IsBadWritePtr(pMode, sizeof(D3DDISPLAYMODE))) + if (NULL == pMode) { DPRINT1("Invalid pMode parameter specified"); UNLOCK_D3D9(); @@ -393,7 +393,7 @@ static HRESULT WINAPI IDirect3D9Impl_CheckDeviceType(LPDIRECT3D9 iface, UINT Ada { HRESULT hResult; - LPDIRECT3D9_INT This = impl_from_IDirect3D9(iface); + LPDIRECT3D9_INT This = IDirect3D9ToImpl(iface); LOCK_D3D9(); if (Adapter >= This->NumDisplayAdapters) @@ -493,7 +493,7 @@ static HRESULT WINAPI IDirect3D9Impl_CheckDeviceFormat(LPDIRECT3D9 iface, UINT A BOOL bIsTextureRType = FALSE; HRESULT hResult; - LPDIRECT3D9_INT This = impl_from_IDirect3D9(iface); + LPDIRECT3D9_INT This = IDirect3D9ToImpl(iface); LOCK_D3D9(); if (Adapter >= This->NumDisplayAdapters) @@ -687,7 +687,7 @@ static HRESULT WINAPI IDirect3D9Impl_CheckDepthStencilMatch(LPDIRECT3D9 iface, U { HRESULT hResult; - LPDIRECT3D9_INT This = impl_from_IDirect3D9(iface); + LPDIRECT3D9_INT This = IDirect3D9ToImpl(iface); LOCK_D3D9(); if (Adapter >= This->NumDisplayAdapters) @@ -756,7 +756,7 @@ static HRESULT WINAPI IDirect3D9Impl_CheckDeviceFormatConversion(LPDIRECT3D9 ifa D3DFORMAT SourceFormat, D3DFORMAT TargetFormat) { HRESULT hResult; - LPDIRECT3D9_INT This = impl_from_IDirect3D9(iface); + LPDIRECT3D9_INT This = IDirect3D9ToImpl(iface); LOCK_D3D9(); if (Adapter >= This->NumDisplayAdapters) @@ -827,7 +827,7 @@ static HRESULT WINAPI IDirect3D9Impl_CheckDeviceFormatConversion(LPDIRECT3D9 ifa static HRESULT WINAPI IDirect3D9Impl_GetDeviceCaps(LPDIRECT3D9 iface, UINT Adapter, D3DDEVTYPE DeviceType, D3DCAPS9* pCaps) { HRESULT hResult; - LPDIRECT3D9_INT This = impl_from_IDirect3D9(iface); + LPDIRECT3D9_INT This = IDirect3D9ToImpl(iface); LOCK_D3D9(); if (Adapter >= This->NumDisplayAdapters) @@ -837,7 +837,7 @@ static HRESULT WINAPI IDirect3D9Impl_GetDeviceCaps(LPDIRECT3D9 iface, UINT Adapt return D3DERR_INVALIDCALL; } - if (IsBadWritePtr(pCaps, sizeof(D3DCAPS9))) + if (NULL == pCaps) { DPRINT1("Invalid pCaps parameter specified"); UNLOCK_D3D9(); @@ -873,7 +873,7 @@ static HMONITOR WINAPI IDirect3D9Impl_GetAdapterMonitor(LPDIRECT3D9 iface, UINT { HMONITOR hAdapterMonitor = NULL; - LPDIRECT3D9_INT This = impl_from_IDirect3D9(iface); + LPDIRECT3D9_INT This = IDirect3D9ToImpl(iface); LOCK_D3D9(); if (Adapter < This->NumDisplayAdapters) @@ -937,7 +937,7 @@ static HRESULT WINAPI IDirect3D9Impl_CreateDevice(LPDIRECT3D9 iface, UINT Adapte DWORD NumAdaptersToCreate; HRESULT Ret; - LPDIRECT3D9_INT This = impl_from_IDirect3D9(iface); + LPDIRECT3D9_INT This = IDirect3D9ToImpl(iface); LOCK_D3D9(); if (Adapter >= This->NumDisplayAdapters) @@ -1005,7 +1005,7 @@ static HRESULT WINAPI IDirect3D9Impl_CreateDevice(LPDIRECT3D9 iface, UINT Adapte return D3DERR_INVALIDCALL; } - if (IsBadWritePtr(ppReturnedDeviceInterface, sizeof(IDirect3DDevice9*))) + if (NULL == ppReturnedDeviceInterface) { DPRINT1("Invalid ppReturnedDeviceInterface parameter specified"); UNLOCK_D3D9(); diff --git a/reactos/dll/directx/d3d9/d3d9_puredevice.c b/reactos/dll/directx/d3d9/d3d9_puredevice.c new file mode 100644 index 00000000000..a70aceeecea --- /dev/null +++ b/reactos/dll/directx/d3d9/d3d9_puredevice.c @@ -0,0 +1,859 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS ReactX + * FILE: dll/directx/d3d9/d3d9_puredevice.c + * PURPOSE: d3d9.dll internal device functions + * PROGRAMERS: Gregor Gullwi + */ +#include "d3d9_puredevice.h" +#include + +#define LOCK_D3DDEVICE9() if (This->bLockDevice) EnterCriticalSection(&This->CriticalSection); +#define UNLOCK_D3DDEVICE9() if (This->bLockDevice) LeaveCriticalSection(&This->CriticalSection); + +/* Convert a IDirect3D9 pointer safely to the internal implementation struct */ +/*static LPD3D9PUREDEVICE IDirect3DDevice9ToImpl(LPDIRECT3DDEVICE9 iface) +{ + if (NULL == iface) + return NULL; + + return (LPD3D9PUREDEVICE)((ULONG_PTR)iface - FIELD_OFFSET(D3D9PUREDEVICE, BaseDevice.lpVtbl)); +}*/ + +/* IDirect3DDevice9 public interface */ +HRESULT WINAPI IDirect3DDevice9Pure_SetRenderTarget(LPDIRECT3DDEVICE9 iface, DWORD RenderTargetIndex, IDirect3DSurface9* pRenderTarget) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_GetRenderTarget(LPDIRECT3DDEVICE9 iface, DWORD RenderTargetIndex,IDirect3DSurface9** ppRenderTarget) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetDepthStencilSurface(LPDIRECT3DDEVICE9 iface, IDirect3DSurface9* pNewZStencil) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_GetDepthStencilSurface(LPDIRECT3DDEVICE9 iface, IDirect3DSurface9** ppZStencilSurface) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_BeginScene(LPDIRECT3DDEVICE9 iface) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_EndScene(LPDIRECT3DDEVICE9 iface) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_Clear(LPDIRECT3DDEVICE9 iface, DWORD Count, CONST D3DRECT* pRects, DWORD Flags, D3DCOLOR Color, float Z, DWORD Stencil) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetTransform(LPDIRECT3DDEVICE9 iface, D3DTRANSFORMSTATETYPE State, CONST D3DMATRIX* pMatrix) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_GetTransform(LPDIRECT3DDEVICE9 iface, D3DTRANSFORMSTATETYPE State, D3DMATRIX* pMatrix) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_MultiplyTransform(LPDIRECT3DDEVICE9 iface, D3DTRANSFORMSTATETYPE State, CONST D3DMATRIX* pMatrix) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetViewport(LPDIRECT3DDEVICE9 iface, CONST D3DVIEWPORT9* pViewport) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_GetViewport(LPDIRECT3DDEVICE9 iface, D3DVIEWPORT9* pViewport) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetMaterial(LPDIRECT3DDEVICE9 iface, CONST D3DMATERIAL9* pMaterial) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_GetMaterial(LPDIRECT3DDEVICE9 iface, D3DMATERIAL9* pMaterial) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetLight(LPDIRECT3DDEVICE9 iface, DWORD Index, CONST D3DLIGHT9* pLight) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_GetLight(LPDIRECT3DDEVICE9 iface, DWORD Index, D3DLIGHT9* pLight) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_LightEnable(LPDIRECT3DDEVICE9 iface, DWORD Index, BOOL Enable) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_GetLightEnable(LPDIRECT3DDEVICE9 iface, DWORD Index, BOOL* pEnable) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetClipPlane(LPDIRECT3DDEVICE9 iface, DWORD Index, CONST float* pPlane) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_GetClipPlane(LPDIRECT3DDEVICE9 iface, DWORD Index, float* pPlane) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetRenderState(LPDIRECT3DDEVICE9 iface, D3DRENDERSTATETYPE State, DWORD Value) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_GetRenderState(LPDIRECT3DDEVICE9 iface, D3DRENDERSTATETYPE State, DWORD* pValue) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_CreateStateBlock(LPDIRECT3DDEVICE9 iface, D3DSTATEBLOCKTYPE Type, IDirect3DStateBlock9** ppSB) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_BeginStateBlock(LPDIRECT3DDEVICE9 iface) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_EndStateBlock(LPDIRECT3DDEVICE9 iface, IDirect3DStateBlock9** ppSB) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetClipStatus(LPDIRECT3DDEVICE9 iface, CONST D3DCLIPSTATUS9* pClipStatus) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_GetClipStatus(LPDIRECT3DDEVICE9 iface, D3DCLIPSTATUS9* pClipStatus) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_GetTexture(LPDIRECT3DDEVICE9 iface, DWORD Stage, IDirect3DBaseTexture9** ppTexture) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetTexture(LPDIRECT3DDEVICE9 iface, DWORD Stage, IDirect3DBaseTexture9* pTexture) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_GetTextureStageState(LPDIRECT3DDEVICE9 iface, DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD* pValue) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetTextureStageState(LPDIRECT3DDEVICE9 iface, DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD Value) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_GetSamplerState(LPDIRECT3DDEVICE9 iface, DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD* pValue) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetSamplerState(LPDIRECT3DDEVICE9 iface, DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD Value) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_ValidateDevice(LPDIRECT3DDEVICE9 iface, DWORD* pNumPasses) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetPaletteEntries(LPDIRECT3DDEVICE9 iface, UINT PaletteNumber, CONST PALETTEENTRY* pEntries) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_GetPaletteEntries(LPDIRECT3DDEVICE9 iface, UINT PaletteNumber, PALETTEENTRY* pEntries) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetCurrentTexturePalette(LPDIRECT3DDEVICE9 iface, UINT PaletteNumber) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_GetCurrentTexturePalette(LPDIRECT3DDEVICE9 iface, UINT* pPaletteNumber) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetScissorRect(LPDIRECT3DDEVICE9 iface, CONST RECT* pRect) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_GetScissorRect(LPDIRECT3DDEVICE9 iface, RECT* pRect) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetSoftwareVertexProcessing(LPDIRECT3DDEVICE9 iface, BOOL bSoftware) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +BOOL WINAPI IDirect3DDevice9Pure_GetSoftwareVertexProcessing(LPDIRECT3DDEVICE9 iface) +{ + UNIMPLEMENTED + + return TRUE; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetNPatchMode(LPDIRECT3DDEVICE9 iface, float nSegments) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +float WINAPI IDirect3DDevice9Pure_GetNPatchMode(LPDIRECT3DDEVICE9 iface) +{ + UNIMPLEMENTED + + return 0.0f; +} + +HRESULT WINAPI IDirect3DDevice9Pure_DrawPrimitive(LPDIRECT3DDEVICE9 iface, D3DPRIMITIVETYPE PrimitiveType, UINT StartVertex, UINT PrimitiveCount) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_DrawIndexedPrimitive(LPDIRECT3DDEVICE9 iface, D3DPRIMITIVETYPE PrimitiveType, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT primCount) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_DrawPrimitiveUP(LPDIRECT3DDEVICE9 iface, D3DPRIMITIVETYPE PrimitiveType, UINT PrimitiveCount, CONST void* pVertexStreamZeroData, UINT VertexStreamZeroStride) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_DrawIndexedPrimitiveUP(LPDIRECT3DDEVICE9 iface, D3DPRIMITIVETYPE PrimitiveType, UINT MinVertexIndex, UINT NumVertices, UINT PrimitiveCount, CONST void* pIndexData, D3DFORMAT IndexDataFormat, CONST void* pVertexStreamZeroData, UINT VertexStreamZeroStride) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_ProcessVertices(LPDIRECT3DDEVICE9 iface, UINT SrcStartIndex, UINT DestIndex, UINT VertexCount, IDirect3DVertexBuffer9* pDestBuffer, IDirect3DVertexDeclaration9* pVertexDecl, DWORD Flags) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_CreateVertexDeclaration(LPDIRECT3DDEVICE9 iface, CONST D3DVERTEXELEMENT9* pVertexElements, IDirect3DVertexDeclaration9** ppDecl) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetVertexDeclaration(LPDIRECT3DDEVICE9 iface, IDirect3DVertexDeclaration9* pDecl) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_GetVertexDeclaration(LPDIRECT3DDEVICE9 iface, IDirect3DVertexDeclaration9** ppDecl) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetFVF(LPDIRECT3DDEVICE9 iface, DWORD FVF) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_GetFVF(LPDIRECT3DDEVICE9 iface, DWORD* pFVF) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_CreateVertexShader(LPDIRECT3DDEVICE9 iface, CONST DWORD* pFunction, IDirect3DVertexShader9** ppShader) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetVertexShader(LPDIRECT3DDEVICE9 iface, IDirect3DVertexShader9* pShader) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_GetVertexShader(LPDIRECT3DDEVICE9 iface, IDirect3DVertexShader9** ppShader) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetVertexShaderConstantF(LPDIRECT3DDEVICE9 iface, UINT StartRegister, CONST float* pConstantData, UINT Vector4fCount) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_GetVertexShaderConstantF(LPDIRECT3DDEVICE9 iface, UINT StartRegister, float* pConstantData, UINT Vector4fCount) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetVertexShaderConstantI(LPDIRECT3DDEVICE9 iface, UINT StartRegister, CONST int* pConstantData, UINT Vector4iCount) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_GetVertexShaderConstantI(LPDIRECT3DDEVICE9 iface, UINT StartRegister, int* pConstantData, UINT Vector4iCount) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetVertexShaderConstantB(LPDIRECT3DDEVICE9 iface, UINT StartRegister, CONST BOOL* pConstantData, UINT BoolCount) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_GetVertexShaderConstantB(LPDIRECT3DDEVICE9 iface, UINT StartRegister, BOOL* pConstantData, UINT BoolCount) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetStreamSource(LPDIRECT3DDEVICE9 iface, UINT StreamNumber, IDirect3DVertexBuffer9* pStreamData, UINT OffsetInBytes, UINT Stride) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_GetStreamSource(LPDIRECT3DDEVICE9 iface, UINT StreamNumber, IDirect3DVertexBuffer9** ppStreamData, UINT* pOffsetInBytes, UINT* pStride) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetStreamSourceFreq(LPDIRECT3DDEVICE9 iface, UINT StreamNumber,UINT Setting) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_GetStreamSourceFreq(LPDIRECT3DDEVICE9 iface, UINT StreamNumber, UINT* pSetting) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetIndices(LPDIRECT3DDEVICE9 iface, IDirect3DIndexBuffer9* pIndexData) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_GetIndices(LPDIRECT3DDEVICE9 iface, IDirect3DIndexBuffer9** ppIndexData) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_CreatePixelShader(LPDIRECT3DDEVICE9 iface, CONST DWORD* pFunction, IDirect3DPixelShader9** ppShader) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetPixelShader(LPDIRECT3DDEVICE9 iface, IDirect3DPixelShader9* pShader) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_GetPixelShader(LPDIRECT3DDEVICE9 iface, IDirect3DPixelShader9** ppShader) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetPixelShaderConstantF(LPDIRECT3DDEVICE9 iface, UINT StartRegister, CONST float* pConstantData, UINT Vector4fCount) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_GetPixelShaderConstantF(LPDIRECT3DDEVICE9 iface, UINT StartRegister, float* pConstantData, UINT Vector4fCount) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetPixelShaderConstantI(LPDIRECT3DDEVICE9 iface, UINT StartRegister, CONST int* pConstantData, UINT Vector4iCount) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_GetPixelShaderConstantI(LPDIRECT3DDEVICE9 iface, UINT StartRegister, int* pConstantData, UINT Vector4iCount) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetPixelShaderConstantB(LPDIRECT3DDEVICE9 iface, UINT StartRegister, CONST BOOL* pConstantData, UINT BoolCount) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_GetPixelShaderConstantB(LPDIRECT3DDEVICE9 iface, UINT StartRegister, BOOL* pConstantData, UINT BoolCount) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_DrawRectPatch(LPDIRECT3DDEVICE9 iface, UINT Handle, CONST float* pNumSegs, CONST D3DRECTPATCH_INFO* pRectPatchInfo) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_DrawTriPatch(LPDIRECT3DDEVICE9 iface, UINT Handle, CONST float* pNumSegs, CONST D3DTRIPATCH_INFO* pTriPatchInfo) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_DeletePatch(LPDIRECT3DDEVICE9 iface, UINT Handle) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_CreateQuery(LPDIRECT3DDEVICE9 iface, D3DQUERYTYPE Type, IDirect3DQuery9** ppQuery) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +/* IDirect3DDevice9 private interface */ +HRESULT WINAPI IDirect3DDevice9Pure_SetRenderStateWorker(LPDIRECT3DDEVICE9 iface, D3DRENDERSTATETYPE State, DWORD Value) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetTextureStageStateInt(LPDIRECT3DDEVICE9 iface, DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD Value) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetSamplerStateInt(LPDIRECT3DDEVICE9 iface, DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD Value) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetMaterialInt(LPDIRECT3DDEVICE9 iface, CONST D3DMATERIAL9* pMaterial) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetVertexShaderInt(LPDIRECT3DDEVICE9 iface, IDirect3DVertexShader9* pShader) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetVertexShaderConstantFInt(LPDIRECT3DDEVICE9 iface, UINT StartRegister,CONST float* pConstantData,UINT Vector4fCount) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetVertexShaderConstantIInt(LPDIRECT3DDEVICE9 iface, UINT StartRegister,CONST int* pConstantData,UINT Vector4iCount) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetVertexShaderConstantBInt(LPDIRECT3DDEVICE9 iface, UINT StartRegister,CONST BOOL* pConstantData,UINT BoolCount) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetPixelShaderInt(LPDIRECT3DDEVICE9 iface, IDirect3DPixelShader9* pShader) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetPixelShaderConstantFInt(LPDIRECT3DDEVICE9 iface, UINT StartRegister,CONST float* pConstantData,UINT Vector4fCount) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetPixelShaderConstantIInt(LPDIRECT3DDEVICE9 iface, UINT StartRegister,CONST int* pConstantData,UINT Vector4iCount) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetPixelShaderConstantBInt(LPDIRECT3DDEVICE9 iface, UINT StartRegister,CONST BOOL* pConstantData,UINT BoolCount) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetFVFInt(LPDIRECT3DDEVICE9 iface, DWORD FVF) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetTextureInt(LPDIRECT3DDEVICE9 iface, DWORD Stage,IDirect3DBaseTexture9* pTexture) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetIndicesInt(LPDIRECT3DDEVICE9 iface, IDirect3DIndexBuffer9* pIndexData) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetStreamSourceInt(LPDIRECT3DDEVICE9 iface, UINT StreamNumber,IDirect3DVertexBuffer9* pStreamData,UINT OffsetInBytes,UINT Stride) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetStreamSourceFreqInt(LPDIRECT3DDEVICE9 iface, UINT StreamNumber,UINT Setting) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +VOID WINAPI IDirect3DDevice9Pure_UpdateRenderState(LPDIRECT3DDEVICE9 iface, DWORD Unknown1, DWORD Unknown2) +{ + UNIMPLEMENTED +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetTransformInt(LPDIRECT3DDEVICE9 iface, D3DTRANSFORMSTATETYPE State,CONST D3DMATRIX* pMatrix) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_MultiplyTransformInt(LPDIRECT3DDEVICE9 iface, D3DTRANSFORMSTATETYPE State, CONST D3DMATRIX* pMatrix) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetClipPlaneInt(LPDIRECT3DDEVICE9 iface, DWORD Index, CONST float* pPlane) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +VOID WINAPI IDirect3DDevice9Pure_UpdateDriverState(LPDIRECT3DDEVICE9 iface) +{ + UNIMPLEMENTED +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetViewportInt(LPDIRECT3DDEVICE9 iface, CONST D3DVIEWPORT9* pViewport) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +VOID WINAPI IDirect3DDevice9Pure_SetStreamSourceWorker(LPDIRECT3DDEVICE9 iface, LPVOID UnknownStreamData) +{ + UNIMPLEMENTED +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetPixelShaderConstantFWorker(LPDIRECT3DDEVICE9 iface, UINT StartRegister, CONST float* pConstantData, UINT Vector4fCount) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetPixelShaderConstantIWorker(LPDIRECT3DDEVICE9 iface, UINT StartRegister, CONST int* pConstantData, UINT Vector4iCount) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetPixelShaderConstantBWorker(LPDIRECT3DDEVICE9 iface, UINT StartRegister, CONST BOOL* pConstantData, UINT BoolCount) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +VOID WINAPI IDirect3DDevice9Pure_DrawPrimitiveWorker(LPDIRECT3DDEVICE9 iface, D3DPRIMITIVETYPE PrimitiveType, UINT StartVertex, UINT PrimitiveCount) +{ + UNIMPLEMENTED +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetLightInt(LPDIRECT3DDEVICE9 iface, DWORD Index, CONST D3DLIGHT9* pLight) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_LightEnableInt(LPDIRECT3DDEVICE9 iface, DWORD Index, BOOL Enable) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_SetRenderStateInt(LPDIRECT3DDEVICE9 iface, D3DRENDERSTATETYPE State, DWORD Value) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_DrawPrimitiveUPInt(LPDIRECT3DDEVICE9 iface, D3DPRIMITIVETYPE PrimitiveType, UINT PrimitiveCount) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_ClearInt(LPDIRECT3DDEVICE9 iface, DWORD Count, CONST D3DRECT* pRects, DWORD Flags, D3DCOLOR Color, float Z, DWORD Stencil) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +VOID WINAPI IDirect3DDevice9Pure_DrawPrimitivesWorker(LPDIRECT3DDEVICE9 iface) +{ + UNIMPLEMENTED +} + +VOID WINAPI IDirect3DDevice9Pure_UpdateVertexShader(LPDIRECT3DDEVICE9 iface) +{ + UNIMPLEMENTED +} + +HRESULT WINAPI IDirect3DDevice9Pure_ValidateDrawCall(LPDIRECT3DDEVICE9 iface, D3DPRIMITIVETYPE PrimitiveType, UINT Unknown1, UINT Unknown2, UINT Unknown3, INT Unknown4, UINT Unknown5, INT Unknown6) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +HRESULT WINAPI IDirect3DDevice9Pure_Init(LPDIRECT3DDEVICE9 iface) +{ + UNIMPLEMENTED + + return D3D_OK; +} + +VOID WINAPI IDirect3DDevice9Pure_InitState(LPDIRECT3DDEVICE9 iface, INT State) +{ + UNIMPLEMENTED +} + +VOID WINAPI IDirect3DDevice9Pure_Destroy(LPDIRECT3DDEVICE9 iface) +{ + UNIMPLEMENTED +} + +VOID WINAPI IDirect3DDevice9Pure_VirtualDestructor(LPDIRECT3DDEVICE9 iface) +{ + UNIMPLEMENTED +} diff --git a/reactos/dll/directx/d3d9/d3d9_puredevice.h b/reactos/dll/directx/d3d9/d3d9_puredevice.h new file mode 100644 index 00000000000..fea2d889288 --- /dev/null +++ b/reactos/dll/directx/d3d9/d3d9_puredevice.h @@ -0,0 +1,418 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS ReactX + * FILE: dll/directx/d3d9/d3d9_haldevice.h + * PURPOSE: d3d9.dll internal device structures + * PROGRAMERS: Gregor Gullwi + */ +#ifndef _D3D9_PUREDEVICE_H_ +#define _D3D9_PUREDEVICE_H_ + +#include "d3d9_device.h" + +typedef struct _D3D9PUREDEVICE +{ +/* 0x0000 - 0x0000 */ DIRECT3DDEVICE9_INT BaseDevice; +/* 0x1f48 */ DWORD unknown002002; +/* 0x1f4c */ DWORD unknown002003; +/* 0x1f50 */ DWORD unknown002004; +/* 0x1f54 */ DWORD unknown002005; +/* 0x1f58 */ DWORD unknown002006; +/* 0x1f5c */ DWORD unknown002007; +/* 0x1f60 */ DWORD unknown002008; +/* 0x1f64 */ DWORD unknown002009; +/* 0x1f68 */ DWORD unknown002010; +/* 0x1f6c */ DWORD unknown002011; +/* 0x1f70 */ DWORD unknown002012; +/* 0x1f74 */ DWORD unknown002013; +/* 0x1f78 */ DWORD unknown002014; +/* 0x1f7c */ DWORD unknown002015; +/* 0x1f80 */ DWORD unknown002016; +/* 0x1f84 */ DWORD unknown002017; +/* 0x1f88 */ DWORD unknown002018; +/* 0x1f8c */ DWORD unknown002019; +/* 0x1f90 */ DWORD unknown002020; +/* 0x1f94 */ DWORD unknown002021; +/* 0x1f98 */ DWORD unknown002022; +/* 0x1f9c */ DWORD unknown002023; +/* 0x1fa0 */ DWORD unknown002024; +/* 0x1fa4 */ DWORD unknown002025; +/* 0x1fa8 - 0x1fe0 */ DWORD unknown002026; +/* 0x1fac */ DWORD unknown002027; +/* 0x1fb0 */ LPDWORD unknown002028; +/* 0x1fb4 */ DWORD unknown002029; +/* 0x1fb8 */ DWORD unknown002030; +/* 0x1fbc */ DWORD unknown002031; +/* 0x1fc0 */ DWORD unknown002032; +/* 0x1fc4 */ DWORD unknown002033; +/* 0x1fc8 */ DWORD unknown002034; +/* 0x1fcc */ DWORD unknown002035; +/* 0x1fd0 */ DWORD unknown002036; +/* 0x1fd4 */ DWORD unknown002037; +/* 0x1fd8 */ DWORD unknown002038; +/* 0x1fdc */ DWORD unknown002039; +/* 0x1fe0 */ DWORD unknown002040; +/* 0x1fe4 */ DWORD unknown002041; +/* 0x1fe8 */ DWORD unknown002042; +/* 0x1fec */ DWORD unknown002043; +/* 0x1ff0 */ DWORD unknown002044; +/* 0x1ff4 */ DWORD unknown002045; +/* 0x1ff8 */ DWORD unknown002046; +/* 0x1ffc */ DWORD unknown002047; +/* 0x2000 */ DWORD unknown002048; +/* 0x2004 */ DWORD unknown002049; +/* 0x2008 */ DWORD unknown002050; +/* 0x200c */ DWORD unknown002051; +/* 0x2010 */ DWORD unknown002052; +/* 0x2014 */ DWORD unknown002053; +/* 0x2018 */ DWORD unknown002054; +/* 0x201c */ DWORD unknown002055; +/* 0x2020 */ DWORD unknown002056; +/* 0x2024 */ DWORD unknown002057; +/* 0x2028 */ DWORD unknown002058; +/* 0x202c */ DWORD unknown002059; +/* 0x2030 */ DWORD unknown002060; +/* 0x2034 */ DWORD unknown002061; +/* 0x2038 */ DWORD unknown002062; +/* 0x203c */ DWORD unknown002063; +/* 0x2040 */ DWORD unknown002064; +/* 0x2044 */ DWORD unknown002065; +/* 0x2048 */ DWORD unknown002066; +/* 0x204c */ DWORD unknown002067; +/* 0x2050 */ DWORD unknown002068; +/* 0x2054 */ DWORD unknown002069; +/* 0x2058 */ DWORD unknown002070; +/* 0x205c */ DWORD unknown002071; +/* 0x2060 */ DWORD unknown002072; +/* 0x2064 */ DWORD unknown002073; +/* 0x2068 */ DWORD unknown002074; +/* 0x206c */ DWORD unknown002075; +/* 0x2070 */ DWORD unknown002076; +/* 0x2074 */ DWORD unknown002077; +/* 0x2078 */ DWORD unknown002078; +/* 0x207c */ DWORD unknown002079; +/* 0x2080 */ DWORD unknown002080; +/* 0x2084 */ DWORD unknown002081; +/* 0x2088 */ DWORD unknown002082; +/* 0x208c */ DWORD unknown002083; // SurfaceManager? +/* 0x2090 */ DWORD unknown002084; +/* 0x2094 */ DWORD unknown002085; +/* 0x2098 */ DWORD unknown002086; +/* 0x209c */ DWORD unknown002087; +/* 0x20a0 */ DWORD unknown002088; +/* 0x20a4 */ DWORD unknown002089; +/* 0x20a8 */ DWORD unknown002090; +/* 0x20ac */ DWORD unknown002091; +/* 0x20b0 */ DWORD unknown002092; +/* 0x20b4 */ DWORD unknown002093; +/* 0x20b8 */ DWORD unknown002094; +/* 0x20bc */ DWORD unknown002095; +/* 0x20c0 */ DWORD unknown002096; +/* 0x20c4 */ DWORD unknown002097; +/* 0x20c8 */ DWORD unknown002098; +/* 0x20cc */ DWORD unknown002099; +/* 0x20d0 */ DWORD unknown002100; // VSOutputDecl? +/* 0x20d4 */ DWORD unknown002101; +/* 0x20d8 */ DWORD unknown002102; +/* 0x20dc */ DWORD unknown002103; +/* 0x20e0 */ DWORD unknown002104; +/* 0x20e4 */ DWORD unknown002105; +/* 0x20e8 */ DWORD unknown002106; +/* 0x20ec */ DWORD unknown002107; +/* 0x20f0 */ DWORD unknown002108; +/* 0x20f4 */ DWORD unknown002109; +/* 0x20f8 */ DWORD unknown002110; +/* 0x20fc */ DWORD unknown002111; +/* 0x2100 */ DWORD unknown002112; +/* 0x2104 */ DWORD unknown002113; +/* 0x2108 */ DWORD unknown002114; +/* 0x210c */ DWORD unknown002115; +/* 0x2110 */ DWORD unknown002116; +/* 0x2114 */ DWORD unknown002117; +/* 0x2118 */ DWORD unknown002118; +/* 0x211c */ DWORD unknown002119; +/* 0x2120 */ DWORD unknown002120; +/* 0x2124 */ DWORD unknown002121; +/* 0x2128 */ DWORD unknown002122; +/* 0x212c */ DWORD unknown002123; +/* 0x2130 */ DWORD unknown002124; +/* 0x2134 */ DWORD unknown002125; +/* 0x2138 */ DWORD unknown002126; +/* 0x213c */ DWORD unknown002127; +/* 0x2140 */ DWORD unknown002128; +/* 0x2144 */ DWORD unknown002129; +/* 0x2148 */ DWORD unknown002130; +/* 0x214c */ DWORD unknown002131; +/* 0x2150 */ DWORD unknown002132; +/* 0x2154 */ DWORD unknown002133; +/* 0x2158 */ DWORD unknown002134; +/* 0x215c */ DWORD unknown002135; +/* 0x2160 */ DWORD unknown002136; +/* 0x2164 */ DWORD unknown002137; +/* 0x2168 */ DWORD unknown002138; +/* 0x216c */ DWORD unknown002139; +/* 0x2170 */ DWORD unknown002140; +/* 0x2174 */ DWORD unknown002141; +/* 0x2178 */ DWORD unknown002142; +/* 0x217c */ DWORD unknown002143; +/* 0x2180 */ DWORD unknown002144; +/* 0x2184 */ DWORD unknown002145; +/* 0x2188 */ DWORD unknown002146; +/* 0x218c */ DWORD unknown002147; +/* 0x2190 */ DWORD unknown002148; +/* 0x2194 */ DWORD unknown002149; +/* 0x2198 */ DWORD unknown002150; +/* 0x219c */ DWORD unknown002151; +/* 0x21a0 */ DWORD unknown002152; +/* 0x21a4 */ DWORD unknown002153; +/* 0x21a8 */ DWORD unknown002154; +/* 0x21ac */ DWORD unknown002155; +/* 0x21b0 */ DWORD unknown002156; +/* 0x21b4 */ DWORD unknown002157; +/* 0x21b8 */ DWORD unknown002158; +/* 0x21bc */ DWORD unknown002159; +/* 0x21c0 */ DWORD unknown002160; +/* 0x21c4 */ DWORD unknown002161; +/* 0x21c8 */ DWORD unknown002162; +/* 0x21cc */ DWORD unknown002163; +/* 0x21d0 */ DWORD unknown002164; +/* 0x21d4 */ DWORD unknown002165; +/* 0x21d8 */ DWORD unknown002166; +/* 0x21dc */ DWORD unknown002167; +/* 0x21e0 */ DWORD unknown002168; +/* 0x21e4 */ DWORD unknown002169; +/* 0x21e8 */ DWORD unknown002170; +/* 0x21ec */ DWORD unknown002171; +/* 0x21f0 */ DWORD unknown002172; +/* 0x21f4 */ DWORD unknown002173; +/* 0x21f8 */ DWORD unknown002174; +/* 0x21fc */ DWORD unknown002175; +/* 0x2200 */ DWORD unknown002176; +/* 0x2204 */ DWORD unknown002177; +/* 0x2208 */ DWORD unknown002178; +/* 0x220c */ DWORD unknown002179; +/* 0x2210 */ DWORD unknown002180; +/* 0x2214 */ DWORD unknown002181; +/* 0x2218 */ DWORD unknown002182; +/* 0x221c */ DWORD unknown002183; +/* 0x2220 */ DWORD unknown002184; +/* 0x2224 */ DWORD unknown002185; +/* 0x2228 */ DWORD unknown002186; +/* 0x222c */ DWORD unknown002187; +/* 0x2230 */ DWORD unknown002188; +/* 0x2234 */ DWORD unknown002189; +/* 0x2238 */ DWORD unknown002190; +/* 0x223c */ DWORD unknown002191; +/* 0x2240 */ DWORD unknown002192; +/* 0x2244 */ DWORD unknown002193; +/* 0x2248 */ DWORD unknown002194; +/* 0x224c */ DWORD unknown002195; +/* 0x2250 */ DWORD unknown002196; +/* 0x2254 */ DWORD unknown002197; +/* 0x2258 */ DWORD unknown002198; +/* 0x225c */ DWORD unknown002199; +/* 0x2260 */ DWORD unknown002200; +/* 0x2264 */ DWORD unknown002201; +/* 0x2268 */ DWORD unknown002202; +/* 0x226c */ DWORD unknown002203; +/* 0x2270 */ DWORD unknown002204; +/* 0x2274 */ DWORD unknown002205; +/* 0x2278 */ DWORD unknown002206; +/* 0x227c */ DWORD unknown002207; +/* 0x2280 */ DWORD unknown002208; +/* 0x2284 */ DWORD unknown002209; +/* 0x2288 */ DWORD unknown002210; +/* 0x228c */ DWORD unknown002211; +/* 0x2290 */ DWORD unknown002212; +/* 0x2294 */ DWORD unknown002213; +/* 0x2298 */ DWORD unknown002214; +/* 0x229c */ DWORD unknown002215; +/* 0x22a0 */ DWORD unknown002216; +/* 0x22a4 */ DWORD unknown002217; +/* 0x22a8 */ DWORD unknown002218; +/* 0x22ac */ DWORD unknown002219; +/* 0x22b0 */ DWORD unknown002220; +/* 0x22b4 */ DWORD unknown002221; +/* 0x22b8 */ DWORD unknown002222; +/* 0x22bc */ DWORD unknown002223; +/* 0x22c0 */ DWORD unknown002224; +/* 0x22c4 */ DWORD unknown002225; +/* 0x22c8 */ DWORD unknown002226; +/* 0x22cc */ DWORD unknown002227; +/* 0x22d0 */ DWORD unknown002228; +/* 0x22d4 */ DWORD unknown002229; +/* 0x22d8 */ DWORD unknown002230; +/* 0x22dc */ DWORD unknown002231; +/* 0x22e0 */ DWORD unknown002232; +/* 0x22e4 */ DWORD unknown002233; +/* 0x22e8 */ DWORD unknown002234; +/* 0x22ec */ DWORD unknown002235; +/* 0x22f0 */ DWORD unknown002236; +/* 0x22f4 */ DWORD unknown002237; +/* 0x22f8 */ DWORD unknown002238; +/* 0x22fc */ DWORD unknown002239; +/* 0x2300 */ DWORD unknown002240; +/* 0x2304 */ DWORD unknown002241; +/* 0x2308 */ DWORD unknown002242; +/* 0x230c */ DWORD unknown002243; +/* 0x2310 */ DWORD unknown002244; +/* 0x2314 */ DWORD unknown002245; +/* 0x2318 */ DWORD unknown002246; +/* 0x231c */ DWORD unknown002247; +/* 0x2320 */ DWORD unknown002248; +/* 0x2324 */ DWORD unknown002249; +/* 0x2328 */ DWORD unknown002250; +/* 0x232c */ DWORD unknown002251; +/* 0x2330 */ DWORD unknown002252; +/* 0x2334 */ DWORD unknown002253; +/* 0x2338 */ DWORD unknown002254; +/* 0x233c */ DWORD unknown002255; +/* 0x2340 */ DWORD unknown002256; +/* 0x2344 */ DWORD unknown002257; +/* 0x2348 */ DWORD unknown002258; +/* 0x234c */ DWORD unknown002259; +/* 0x2350 */ DWORD unknown002260; +/* 0x2354 */ DWORD unknown002261; +/* 0x2358 */ DWORD unknown002262; +/* 0x235c */ DWORD unknown002263; +/* 0x2360 */ DWORD unknown002264; +/* 0x2364 */ DWORD unknown002265; +/* 0x2368 */ DWORD unknown002266; +/* 0x236c */ DWORD unknown002267; +/* 0x2370 */ DWORD unknown002268; +/* 0x2374 */ DWORD unknown002269; +/* 0x2378 */ DWORD unknown002270; +/* 0x237c */ DWORD unknown002271; +/* 0x2380 */ DWORD unknown002272; +/* 0x2384 */ DWORD unknown002273; +/* 0x2388 */ DWORD unknown002274; +/* 0x238c */ DWORD unknown002275; +/* 0x2390 */ DWORD unknown002276; +/* 0x2394 */ DWORD unknown002277; +/* 0x2398 */ DWORD unknown002278; +/* 0x239c */ DWORD unknown002279; +/* 0x23a0 */ DWORD unknown002280; +/* 0x23a4 */ DWORD unknown002281; +/* 0x23a8 */ DWORD unknown002282; +/* 0x23ac */ DWORD unknown002283; +/* 0x23b0 */ DWORD unknown002284; +/* 0x23b4 */ DWORD unknown002285; +/* 0x23b8 */ DWORD unknown002286; +/* 0x23bc */ DWORD unknown002287; +/* 0x23c0 */ DWORD unknown002288; +/* 0x23c4 */ DWORD unknown002289; +/* 0x23c8 */ DWORD unknown002290; +/* 0x23cc */ DWORD unknown002291; +/* 0x23d0 */ DWORD unknown002292; +/* 0x23d4 */ DWORD unknown002293; +/* 0x23d8 */ DWORD unknown002294; +/* 0x23dc */ DWORD unknown002295; +/* 0x23e0 */ DWORD unknown002296; +/* 0x23e4 */ DWORD unknown002297; +/* 0x23e8 */ DWORD unknown002298; +/* 0x23ec */ DWORD unknown002299; +/* 0x23f0 */ DWORD unknown002300; +/* 0x23f4 */ DWORD unknown002301; +/* 0x23f8 */ DWORD unknown002302; +/* 0x23fc */ DWORD unknown002303; +/* 0x2400 */ DWORD unknown002304; +/* 0x2404 */ DWORD unknown002305; +/* 0x2408 */ DWORD unknown002306; +/* 0x240c */ DWORD unknown002307; +/* 0x2410 */ DWORD unknown002308; +/* 0x2414 */ DWORD unknown002309; +/* 0x2418 */ DWORD unknown002310; +/* 0x241c */ DWORD unknown002311; +/* 0x2420 */ DWORD unknown002312; +/* 0x2424 */ DWORD unknown002313; +/* 0x2428 */ DWORD unknown002314; +/* 0x242c */ DWORD unknown002315; +/* 0x2430 */ DWORD unknown002316; +/* 0x2434 */ DWORD unknown002317; +} D3D9PUREDEVICE, FAR *LPD3D9PUREDEVICE; + +/* IDirect3D9Device public interface */ +HRESULT WINAPI IDirect3DDevice9Pure_SetRenderTarget(LPDIRECT3DDEVICE9 iface, DWORD RenderTargetIndex, IDirect3DSurface9* pRenderTarget); +HRESULT WINAPI IDirect3DDevice9Pure_GetRenderTarget(LPDIRECT3DDEVICE9 iface, DWORD RenderTargetIndex,IDirect3DSurface9** ppRenderTarget); +HRESULT WINAPI IDirect3DDevice9Pure_SetDepthStencilSurface(LPDIRECT3DDEVICE9 iface, IDirect3DSurface9* pNewZStencil); +HRESULT WINAPI IDirect3DDevice9Pure_GetDepthStencilSurface(LPDIRECT3DDEVICE9 iface, IDirect3DSurface9** ppZStencilSurface); +HRESULT WINAPI IDirect3DDevice9Pure_BeginScene(LPDIRECT3DDEVICE9 iface); +HRESULT WINAPI IDirect3DDevice9Pure_EndScene(LPDIRECT3DDEVICE9 iface); +HRESULT WINAPI IDirect3DDevice9Pure_Clear(LPDIRECT3DDEVICE9 iface, DWORD Count, CONST D3DRECT* pRects, DWORD Flags, D3DCOLOR Color, float Z, DWORD Stencil); +HRESULT WINAPI IDirect3DDevice9Pure_SetTransform(LPDIRECT3DDEVICE9 iface, D3DTRANSFORMSTATETYPE State, CONST D3DMATRIX* pMatrix); +HRESULT WINAPI IDirect3DDevice9Pure_GetTransform(LPDIRECT3DDEVICE9 iface, D3DTRANSFORMSTATETYPE State, D3DMATRIX* pMatrix); +HRESULT WINAPI IDirect3DDevice9Pure_MultiplyTransform(LPDIRECT3DDEVICE9 iface, D3DTRANSFORMSTATETYPE State, CONST D3DMATRIX* pMatrix); +HRESULT WINAPI IDirect3DDevice9Pure_SetViewport(LPDIRECT3DDEVICE9 iface, CONST D3DVIEWPORT9* pViewport); +HRESULT WINAPI IDirect3DDevice9Pure_GetViewport(LPDIRECT3DDEVICE9 iface, D3DVIEWPORT9* pViewport); +HRESULT WINAPI IDirect3DDevice9Pure_SetMaterial(LPDIRECT3DDEVICE9 iface, CONST D3DMATERIAL9* pMaterial); +HRESULT WINAPI IDirect3DDevice9Pure_GetMaterial(LPDIRECT3DDEVICE9 iface, D3DMATERIAL9* pMaterial); +HRESULT WINAPI IDirect3DDevice9Pure_SetLight(LPDIRECT3DDEVICE9 iface, DWORD Index, CONST D3DLIGHT9* pLight); +HRESULT WINAPI IDirect3DDevice9Pure_GetLight(LPDIRECT3DDEVICE9 iface, DWORD Index, D3DLIGHT9* pLight); +HRESULT WINAPI IDirect3DDevice9Pure_LightEnable(LPDIRECT3DDEVICE9 iface, DWORD Index, BOOL Enable); +HRESULT WINAPI IDirect3DDevice9Pure_GetLightEnable(LPDIRECT3DDEVICE9 iface, DWORD Index, BOOL* pEnable); +HRESULT WINAPI IDirect3DDevice9Pure_SetClipPlane(LPDIRECT3DDEVICE9 iface, DWORD Index, CONST float* pPlane); +HRESULT WINAPI IDirect3DDevice9Pure_GetClipPlane(LPDIRECT3DDEVICE9 iface, DWORD Index, float* pPlane); +HRESULT WINAPI IDirect3DDevice9Pure_SetRenderState(LPDIRECT3DDEVICE9 iface, D3DRENDERSTATETYPE State, DWORD Value); +HRESULT WINAPI IDirect3DDevice9Pure_GetRenderState(LPDIRECT3DDEVICE9 iface, D3DRENDERSTATETYPE State, DWORD* pValue); +HRESULT WINAPI IDirect3DDevice9Pure_CreateStateBlock(LPDIRECT3DDEVICE9 iface, D3DSTATEBLOCKTYPE Type, IDirect3DStateBlock9** ppSB); +HRESULT WINAPI IDirect3DDevice9Pure_BeginStateBlock(LPDIRECT3DDEVICE9 iface); +HRESULT WINAPI IDirect3DDevice9Pure_EndStateBlock(LPDIRECT3DDEVICE9 iface, IDirect3DStateBlock9** ppSB); +HRESULT WINAPI IDirect3DDevice9Pure_SetClipStatus(LPDIRECT3DDEVICE9 iface, CONST D3DCLIPSTATUS9* pClipStatus); +HRESULT WINAPI IDirect3DDevice9Pure_GetClipStatus(LPDIRECT3DDEVICE9 iface, D3DCLIPSTATUS9* pClipStatus); +HRESULT WINAPI IDirect3DDevice9Pure_GetTexture(LPDIRECT3DDEVICE9 iface, DWORD Stage, IDirect3DBaseTexture9** ppTexture); +HRESULT WINAPI IDirect3DDevice9Pure_SetTexture(LPDIRECT3DDEVICE9 iface, DWORD Stage, IDirect3DBaseTexture9* pTexture); +HRESULT WINAPI IDirect3DDevice9Pure_GetTextureStageState(LPDIRECT3DDEVICE9 iface, DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD* pValue); +HRESULT WINAPI IDirect3DDevice9Pure_SetTextureStageState(LPDIRECT3DDEVICE9 iface, DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD Value); +HRESULT WINAPI IDirect3DDevice9Pure_GetSamplerState(LPDIRECT3DDEVICE9 iface, DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD* pValue); +HRESULT WINAPI IDirect3DDevice9Pure_SetSamplerState(LPDIRECT3DDEVICE9 iface, DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD Value); +HRESULT WINAPI IDirect3DDevice9Pure_ValidateDevice(LPDIRECT3DDEVICE9 iface, DWORD* pNumPasses); +HRESULT WINAPI IDirect3DDevice9Pure_SetPaletteEntries(LPDIRECT3DDEVICE9 iface, UINT PaletteNumber, CONST PALETTEENTRY* pEntries); +HRESULT WINAPI IDirect3DDevice9Pure_GetPaletteEntries(LPDIRECT3DDEVICE9 iface, UINT PaletteNumber, PALETTEENTRY* pEntries); +HRESULT WINAPI IDirect3DDevice9Pure_SetCurrentTexturePalette(LPDIRECT3DDEVICE9 iface, UINT PaletteNumber); +HRESULT WINAPI IDirect3DDevice9Pure_GetCurrentTexturePalette(LPDIRECT3DDEVICE9 iface, UINT* pPaletteNumber); +HRESULT WINAPI IDirect3DDevice9Pure_SetScissorRect(LPDIRECT3DDEVICE9 iface, CONST RECT* pRect); +HRESULT WINAPI IDirect3DDevice9Pure_GetScissorRect(LPDIRECT3DDEVICE9 iface, RECT* pRect); +HRESULT WINAPI IDirect3DDevice9Pure_SetSoftwareVertexProcessing(LPDIRECT3DDEVICE9 iface, BOOL bSoftware); +BOOL WINAPI IDirect3DDevice9Pure_GetSoftwareVertexProcessing(LPDIRECT3DDEVICE9 iface); +HRESULT WINAPI IDirect3DDevice9Pure_SetNPatchMode(LPDIRECT3DDEVICE9 iface, float nSegments); +float WINAPI IDirect3DDevice9Pure_GetNPatchMode(LPDIRECT3DDEVICE9 iface); +HRESULT WINAPI IDirect3DDevice9Pure_DrawPrimitive(LPDIRECT3DDEVICE9 iface, D3DPRIMITIVETYPE PrimitiveType, UINT StartVertex, UINT PrimitiveCount); +HRESULT WINAPI IDirect3DDevice9Pure_DrawIndexedPrimitive(LPDIRECT3DDEVICE9 iface, D3DPRIMITIVETYPE PrimitiveType, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT primCount); +HRESULT WINAPI IDirect3DDevice9Pure_DrawPrimitiveUP(LPDIRECT3DDEVICE9 iface, D3DPRIMITIVETYPE PrimitiveType, UINT PrimitiveCount, CONST void* pVertexStreamZeroData, UINT VertexStreamZeroStride); +HRESULT WINAPI IDirect3DDevice9Pure_DrawIndexedPrimitiveUP(LPDIRECT3DDEVICE9 iface, D3DPRIMITIVETYPE PrimitiveType, UINT MinVertexIndex, UINT NumVertices, UINT PrimitiveCount, CONST void* pIndexData, D3DFORMAT IndexDataFormat, CONST void* pVertexStreamZeroData, UINT VertexStreamZeroStride); +HRESULT WINAPI IDirect3DDevice9Pure_ProcessVertices(LPDIRECT3DDEVICE9 iface, UINT SrcStartIndex, UINT DestIndex, UINT VertexCount, IDirect3DVertexBuffer9* pDestBuffer, IDirect3DVertexDeclaration9* pVertexDecl, DWORD Flags); +HRESULT WINAPI IDirect3DDevice9Pure_CreateVertexDeclaration(LPDIRECT3DDEVICE9 iface, CONST D3DVERTEXELEMENT9* pVertexElements, IDirect3DVertexDeclaration9** ppDecl); +HRESULT WINAPI IDirect3DDevice9Pure_SetVertexDeclaration(LPDIRECT3DDEVICE9 iface, IDirect3DVertexDeclaration9* pDecl); +HRESULT WINAPI IDirect3DDevice9Pure_GetVertexDeclaration(LPDIRECT3DDEVICE9 iface, IDirect3DVertexDeclaration9** ppDecl); +HRESULT WINAPI IDirect3DDevice9Pure_SetFVF(LPDIRECT3DDEVICE9 iface, DWORD FVF); +HRESULT WINAPI IDirect3DDevice9Pure_GetFVF(LPDIRECT3DDEVICE9 iface, DWORD* pFVF); +HRESULT WINAPI IDirect3DDevice9Pure_CreateVertexShader(LPDIRECT3DDEVICE9 iface, CONST DWORD* pFunction, IDirect3DVertexShader9** ppShader); +HRESULT WINAPI IDirect3DDevice9Pure_SetVertexShader(LPDIRECT3DDEVICE9 iface, IDirect3DVertexShader9* pShader); +HRESULT WINAPI IDirect3DDevice9Pure_GetVertexShader(LPDIRECT3DDEVICE9 iface, IDirect3DVertexShader9** ppShader); +HRESULT WINAPI IDirect3DDevice9Pure_SetVertexShaderConstantF(LPDIRECT3DDEVICE9 iface, UINT StartRegister, CONST float* pConstantData, UINT Vector4fCount); +HRESULT WINAPI IDirect3DDevice9Pure_GetVertexShaderConstantF(LPDIRECT3DDEVICE9 iface, UINT StartRegister, float* pConstantData, UINT Vector4fCount); +HRESULT WINAPI IDirect3DDevice9Pure_SetVertexShaderConstantI(LPDIRECT3DDEVICE9 iface, UINT StartRegister, CONST int* pConstantData, UINT Vector4iCount); +HRESULT WINAPI IDirect3DDevice9Pure_GetVertexShaderConstantI(LPDIRECT3DDEVICE9 iface, UINT StartRegister, int* pConstantData, UINT Vector4iCount); +HRESULT WINAPI IDirect3DDevice9Pure_SetVertexShaderConstantB(LPDIRECT3DDEVICE9 iface, UINT StartRegister, CONST BOOL* pConstantData, UINT BoolCount); +HRESULT WINAPI IDirect3DDevice9Pure_GetVertexShaderConstantB(LPDIRECT3DDEVICE9 iface, UINT StartRegister, BOOL* pConstantData, UINT BoolCount); +HRESULT WINAPI IDirect3DDevice9Pure_SetStreamSource(LPDIRECT3DDEVICE9 iface, UINT StreamNumber, IDirect3DVertexBuffer9* pStreamData, UINT OffsetInBytes, UINT Stride); +HRESULT WINAPI IDirect3DDevice9Pure_GetStreamSource(LPDIRECT3DDEVICE9 iface, UINT StreamNumber, IDirect3DVertexBuffer9** ppStreamData, UINT* pOffsetInBytes, UINT* pStride); +HRESULT WINAPI IDirect3DDevice9Pure_SetStreamSourceFreq(LPDIRECT3DDEVICE9 iface, UINT StreamNumber,UINT Setting); +HRESULT WINAPI IDirect3DDevice9Pure_GetStreamSourceFreq(LPDIRECT3DDEVICE9 iface, UINT StreamNumber, UINT* pSetting); +HRESULT WINAPI IDirect3DDevice9Pure_SetIndices(LPDIRECT3DDEVICE9 iface, IDirect3DIndexBuffer9* pIndexData); +HRESULT WINAPI IDirect3DDevice9Pure_GetIndices(LPDIRECT3DDEVICE9 iface, IDirect3DIndexBuffer9** ppIndexData); +HRESULT WINAPI IDirect3DDevice9Pure_CreatePixelShader(LPDIRECT3DDEVICE9 iface, CONST DWORD* pFunction, IDirect3DPixelShader9** ppShader); +HRESULT WINAPI IDirect3DDevice9Pure_SetPixelShader(LPDIRECT3DDEVICE9 iface, IDirect3DPixelShader9* pShader); +HRESULT WINAPI IDirect3DDevice9Pure_GetPixelShader(LPDIRECT3DDEVICE9 iface, IDirect3DPixelShader9** ppShader); +HRESULT WINAPI IDirect3DDevice9Pure_SetPixelShaderConstantF(LPDIRECT3DDEVICE9 iface, UINT StartRegister, CONST float* pConstantData, UINT Vector4fCount); +HRESULT WINAPI IDirect3DDevice9Pure_GetPixelShaderConstantF(LPDIRECT3DDEVICE9 iface, UINT StartRegister, float* pConstantData, UINT Vector4fCount); +HRESULT WINAPI IDirect3DDevice9Pure_SetPixelShaderConstantI(LPDIRECT3DDEVICE9 iface, UINT StartRegister, CONST int* pConstantData, UINT Vector4iCount); +HRESULT WINAPI IDirect3DDevice9Pure_GetPixelShaderConstantI(LPDIRECT3DDEVICE9 iface, UINT StartRegister, int* pConstantData, UINT Vector4iCount); +HRESULT WINAPI IDirect3DDevice9Pure_SetPixelShaderConstantB(LPDIRECT3DDEVICE9 iface, UINT StartRegister, CONST BOOL* pConstantData, UINT BoolCount); +HRESULT WINAPI IDirect3DDevice9Pure_GetPixelShaderConstantB(LPDIRECT3DDEVICE9 iface, UINT StartRegister, BOOL* pConstantData, UINT BoolCount); +HRESULT WINAPI IDirect3DDevice9Pure_DrawRectPatch(LPDIRECT3DDEVICE9 iface, UINT Handle, CONST float* pNumSegs, CONST D3DRECTPATCH_INFO* pRectPatchInfo); +HRESULT WINAPI IDirect3DDevice9Pure_DrawTriPatch(LPDIRECT3DDEVICE9 iface, UINT Handle, CONST float* pNumSegs, CONST D3DTRIPATCH_INFO* pTriPatchInfo); +HRESULT WINAPI IDirect3DDevice9Pure_DeletePatch(LPDIRECT3DDEVICE9 iface, UINT Handle); +HRESULT WINAPI IDirect3DDevice9Pure_CreateQuery(LPDIRECT3DDEVICE9 iface, D3DQUERYTYPE Type, IDirect3DQuery9** ppQuery); + +#endif // _D3D9_PUREDEVICE_H_ diff --git a/reactos/dll/directx/d3d9/d3d9_surface.h b/reactos/dll/directx/d3d9/d3d9_surface.h index b877c4a3b38..2a019811288 100644 --- a/reactos/dll/directx/d3d9/d3d9_surface.h +++ b/reactos/dll/directx/d3d9/d3d9_surface.h @@ -3,9 +3,28 @@ #include "d3d9_baseobject.h" +struct _D3D9BaseSurface; + +typedef struct _D3D9BaseSurfaceVtbl +{ + HRESULT (*QueryInterface)(struct _D3D9BaseSurface* iface, REFIID riid, LPVOID* ppvObject); + ULONG (*AddRef)(struct _D3D9BaseSurface* iface); + ULONG (*Release)(struct _D3D9BaseSurface* iface); + IDirect3DDevice9* (*GetDevice)(struct _D3D9BaseSurface* iface); + HRESULT (*SetPrivateData)(struct _D3D9BaseSurface* iface, REFIID riid, CONST LPVOID pData, DWORD DataSize, DWORD Flags); + HRESULT (*GetPrivateData)(struct _D3D9BaseSurface* iface, REFIID riid, LPVOID pData, DWORD* DataSize); + HRESULT (*FreePrivateData)(struct _D3D9BaseSurface* iface, REFIID riid); + DWORD (*SetPriority)(struct _D3D9BaseSurface* iface, DWORD NewPriority); + DWORD (*GetPriority)(struct _D3D9BaseSurface* iface); + VOID (*Load)(struct _D3D9BaseSurface* iface); + D3DRESOURCETYPE (*GetResourceType)(struct _D3D9BaseSurface* iface); + +} ID3D9BaseSurfaceVtbl; + + typedef struct _D3D9BaseSurface { -/* 0x0000 */ LPDWORD lpVtbl; +/* 0x0020 */ ID3D9BaseSurfaceVtbl* lpVtbl; /* 0x0024 */ D3DFORMAT DisplayFormat2; // Back buffer format? /* 0x0028 */ DWORD dwUnknown0028; // Constant/ref count? (1) /* 0x002c */ DWORD dwUnknown002c; // Refresh rate? diff --git a/reactos/dll/directx/d3d9/d3d9_swapchain.c b/reactos/dll/directx/d3d9/d3d9_swapchain.c index 661d6ed36f4..72d5cdddd66 100644 --- a/reactos/dll/directx/d3d9/d3d9_swapchain.c +++ b/reactos/dll/directx/d3d9/d3d9_swapchain.c @@ -21,7 +21,7 @@ /* Convert a IDirect3DSwapChain9 pointer safely to the internal implementation struct */ static LPDIRECT3DSWAPCHAIN9_INT IDirect3DSwapChain9ToImpl(LPDIRECT3DSWAPCHAIN9 iface) { - if (IsBadWritePtr(iface, sizeof(LPDIRECT3DSWAPCHAIN9_INT))) + if (NULL == iface) return NULL; return (LPDIRECT3DSWAPCHAIN9_INT)((ULONG_PTR)iface - FIELD_OFFSET(Direct3DSwapChain9_INT, lpVtbl)); @@ -110,7 +110,7 @@ static HRESULT WINAPI Direct3DSwapChain9_GetDevice(LPDIRECT3DSWAPCHAIN9 iface, I LPDIRECT3DSWAPCHAIN9_INT This = IDirect3DSwapChain9ToImpl(iface); LOCK_D3DDEVICE9(); - if (IsBadWritePtr(ppDevice, sizeof(IDirect3DDevice9**))) + if (NULL == ppDevice) { DPRINT1("Invalid ppDevice parameter specified"); UNLOCK_D3DDEVICE9(); @@ -151,7 +151,7 @@ static HRESULT WINAPI Direct3DSwapChain9_GetPresentParameters(LPDIRECT3DSWAPCHAI LPDIRECT3DSWAPCHAIN9_INT This = IDirect3DSwapChain9ToImpl(iface); LOCK_D3DDEVICE9(); - if (IsBadWritePtr(pPresentationParameters, sizeof(D3DPRESENT_PARAMETERS))) + if (NULL == pPresentationParameters) { DPRINT1("Invalid pPresentationParameters parameter specified"); UNLOCK_D3DDEVICE9(); diff --git a/reactos/dll/directx/d3d9/device.c b/reactos/dll/directx/d3d9/device.c index 48ed888fd59..bddd3805732 100644 --- a/reactos/dll/directx/d3d9/device.c +++ b/reactos/dll/directx/d3d9/device.c @@ -49,7 +49,7 @@ HRESULT InitD3D9BaseDevice(LPDIRECT3DDEVICE9_INT pThisBaseDevice, LPDIRECT3D9_IN pThisBaseDevice->pResourceManager = pResourceManager; - pThisBaseDevice->lpVtbl = &Direct3DDevice9_Vtbl; + pThisBaseDevice->lpVtbl = &Direct3DDevice9HAL_Vtbl; pThisBaseDevice->lRefCnt = 1; pThisBaseDevice->dwProcessId = GetCurrentThreadId(); pThisBaseDevice->pUnknown = (IUnknown*) &pThisBaseDevice->lpVtbl; diff --git a/reactos/dll/directx/d3d9/device.h b/reactos/dll/directx/d3d9/device.h index 88cc105e987..94058177f2f 100644 --- a/reactos/dll/directx/d3d9/device.h +++ b/reactos/dll/directx/d3d9/device.h @@ -9,7 +9,7 @@ #ifndef _DEVICE_H_ #define _DEVICE_H_ -#include "d3d9_device.h" +#include "d3d9_haldevice.h" HRESULT CreateD3D9HalDevice(LPDIRECT3D9_INT pDirect3D9, UINT Adapter, HWND hFocusWindow, DWORD BehaviourFlags,