mirror of
https://github.com/reactos/reactos.git
synced 2025-02-20 15:35:04 +00:00
* Implemented IDirect3D9::GetNumberOfSwapChains()
svn path=/trunk/; revision=33271
This commit is contained in:
parent
8ef0a1282d
commit
abb783966b
2 changed files with 37 additions and 12 deletions
|
@ -9,8 +9,8 @@
|
|||
#include "d3d9_helpers.h"
|
||||
#include "debug.h"
|
||||
|
||||
#define LOCK_D3DDEVICE9() EnterCriticalSection(&This->CriticalSection);
|
||||
#define UNLOCK_D3DDEVICE9() LeaveCriticalSection(&This->CriticalSection);
|
||||
#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 */
|
||||
LPDIRECT3DDEVICE9_INT impl_from_IDirect3DDevice9(LPDIRECT3DDEVICE9 iface)
|
||||
|
@ -144,10 +144,10 @@ static HRESULT WINAPI IDirect3DDevice9Impl_CreateAdditionalSwapChain(LPDIRECT3DD
|
|||
* The function IDirect3DDevice9Impl_GetSwapChain returns a pointer to a swap chain object.
|
||||
*
|
||||
* @param LPDIRECT3D iface
|
||||
* Pointer to the IDirect3DDevice9 object returned from IDirect3D9->CreateDevice()
|
||||
* Pointer to the IDirect3DDevice9 object returned from IDirect3D9::CreateDevice()
|
||||
*
|
||||
* @param UINT iSwapChain
|
||||
* Swap chain index to get.
|
||||
* Swap chain index to get object for.
|
||||
* The maximum value for this is the value returned by IDirect3DDevice9::GetNumberOfSwapChains() - 1.
|
||||
*
|
||||
* @param IDirect3DSwapChain9** ppSwapChain
|
||||
|
@ -180,7 +180,7 @@ static HRESULT WINAPI IDirect3DDevice9Impl_GetSwapChain(LPDIRECT3DDEVICE9 iface,
|
|||
|
||||
if (This->pSwapChains[iSwapChain] != NULL)
|
||||
{
|
||||
IDirect3DSwapChain9* pSwapChain = (IDirect3DSwapChain9*)This->pSwapChains[iSwapChain]->lpVtbl;
|
||||
IDirect3DSwapChain9* pSwapChain = (IDirect3DSwapChain9*)&This->pSwapChains[iSwapChain]->lpVtbl;
|
||||
IDirect3DSwapChain9_AddRef(pSwapChain);
|
||||
*ppSwapChain = pSwapChain;
|
||||
}
|
||||
|
@ -193,11 +193,34 @@ static HRESULT WINAPI IDirect3DDevice9Impl_GetSwapChain(LPDIRECT3DDEVICE9 iface,
|
|||
return D3D_OK;
|
||||
}
|
||||
|
||||
/*++
|
||||
* @name IDirect3DDevice9::GetNumberOfSwapChains
|
||||
* @implemented
|
||||
*
|
||||
* The function IDirect3DDevice9Impl_GetNumberOfSwapChains returns the number of swap chains
|
||||
* created by IDirect3D9::CreateDevice().
|
||||
*
|
||||
* @param LPDIRECT3D iface
|
||||
* Pointer to the IDirect3DDevice9 object returned from IDirect3D9::CreateDevice().
|
||||
*
|
||||
* @return UINT
|
||||
* Returns the number of swap chains created by IDirect3D9::CreateDevice().
|
||||
*
|
||||
* NOTE: An application can create additional swap chains using the
|
||||
* IDirect3DDevice9::CreateAdditionalSwapChain() method.
|
||||
*
|
||||
*/
|
||||
static UINT WINAPI IDirect3DDevice9Impl_GetNumberOfSwapChains(LPDIRECT3DDEVICE9 iface)
|
||||
{
|
||||
UNIMPLEMENTED
|
||||
UINT NumSwapChains;
|
||||
|
||||
return D3D_OK;
|
||||
LPDIRECT3DDEVICE9_INT This = impl_from_IDirect3DDevice9(iface);
|
||||
LOCK_D3DDEVICE9();
|
||||
|
||||
NumSwapChains = This->NumAdaptersInDevice;
|
||||
|
||||
UNLOCK_D3DDEVICE9();
|
||||
return NumSwapChains;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI IDirect3DDevice9Impl_Reset(LPDIRECT3DDEVICE9 iface, D3DPRESENT_PARAMETERS* pPresentationParameters)
|
||||
|
|
|
@ -12,6 +12,8 @@
|
|||
#include <d3d9.h>
|
||||
#include "d3d9_private.h"
|
||||
|
||||
extern struct IDirect3DDevice9Vtbl Direct3DDevice9_Vtbl;
|
||||
|
||||
enum REF_TYPE
|
||||
{
|
||||
RT_EXTERNAL,
|
||||
|
@ -24,7 +26,7 @@ typedef struct _tagD3D9BaseObject_
|
|||
/* 0x0000 */ LPDWORD lpVtbl;
|
||||
/* 0x0004 */ DWORD dwUnknown0004;
|
||||
/* 0x0008 */ DWORD dwUnknown0008;
|
||||
/* 0x000c */ struct _tagD3D9BaseDevice_* pBaseDevice;
|
||||
/* 0x000c */ struct _tagDirect3DDevice9_INT_* pBaseDevice;
|
||||
/* 0x0010 */ DWORD dwUnknown0010; // Index? Unique id?
|
||||
/* 0x0014 */ HANDLE hKernelHandle;
|
||||
/* 0x0018 */ LPDWORD dwUnknown0018;
|
||||
|
@ -77,7 +79,7 @@ typedef struct _tagD3D9ResourceManager_
|
|||
#ifdef D3D_DEBUG_INFO
|
||||
/* N/A - 0x0000 */ DDSURFACEDESC SurfaceDesc[8];
|
||||
#endif
|
||||
/* 0x0000 - 0x0160 */ struct _tagD3D9BaseDevice_* pBaseDevice;
|
||||
/* 0x0000 - 0x0160 */ struct _tagDirect3DDevice9_INT_* pBaseDevice;
|
||||
/* 0x0004 - 0x0164 */ DWORD dwUnknown0004;
|
||||
/* 0x0008 - 0x0168 */ DWORD dwUnknown0008;
|
||||
/* 0x000c - 0x016c */ DWORD MaxSimultaneousTextures;
|
||||
|
@ -144,7 +146,7 @@ typedef struct _tagDirect3DSwapChain9_INT_
|
|||
/* 0x00ec */ DWORD dwUnknown00ec;
|
||||
/* 0x00f0 */ DWORD dwUnknown00f0[27];
|
||||
|
||||
/* 0x015c */ LPDWORD pUnknown0174; // points to 0x0174
|
||||
/* 0x015c */ LPDWORD pUnknown015c;
|
||||
/* 0x0160 */ DWORD dwUnknown0160[4];
|
||||
/* 0x0170 */ HRESULT hResult;
|
||||
|
||||
|
@ -162,7 +164,7 @@ typedef struct _tagDirect3DSwapChain9_INT_
|
|||
|
||||
typedef struct _tagDirect3DDevice9_INT_
|
||||
{
|
||||
/* 0x0000 */ struct IDirect3D9DeviceVtbl* lpVtbl;
|
||||
/* 0x0000 */ struct IDirect3DDevice9Vtbl* lpVtbl;
|
||||
/* 0x0004 */ CRITICAL_SECTION CriticalSection;
|
||||
#ifdef D3D_DEBUG_INFO
|
||||
/* N/A - 0x001c */ DWORD dbg0004;
|
||||
|
@ -180,7 +182,7 @@ typedef struct _tagDirect3DDevice9_INT_
|
|||
/* N/A - 0x004c */ DWORD dbg0034;
|
||||
/* N/A - 0x0050 */ DWORD dbg0038;
|
||||
#endif
|
||||
/* 0x001c - 0x0054 */ DWORD unknown000007;
|
||||
/* 0x001c - 0x0054 */ BOOL bLockDevice;
|
||||
/* 0x0020 - 0x0058 */ DWORD dwProcessId;
|
||||
/* 0x0024 - 0x005c */ struct _tagD3D9PUREDEVICE_* lpThis;
|
||||
/* 0x0028 - 0x0060 */ DWORD dwDXVersion;
|
||||
|
|
Loading…
Reference in a new issue