Original Post
I keep getting D3DERR_INVALIDCALL.
Anyone know why this is happening?
//-----------------------------------------------------------------------------
// Name: CheckDeviceState
//-----------------------------------------------------------------------------
bool CheckDeviceState()
{
HRESULT hResult;
hResult = d3dDevice->TestCooperativeLevel();
if(hResult == D3DERR_DEVICELOST) {
return false;
}
else if(hResult == D3DERR_DEVICENOTRESET) {
// Free all D3DPOOL_DEFAULT objects and fonts
g_Font.Lost();
mainCharacter.Lost();
gameObjects.DeleteObject(CHARACTER, "Main" );
// Reset Device
ZeroMemory( &d3dpp, sizeof(d3dpp) );
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.BackBufferWidth = XRESOLUTION;
d3dpp.BackBufferHeight = YRESOLUTION;
d3dpp.EnableAutoDepthStencil = TRUE;
d3dpp.AutoDepthStencilFormat = D3DFMT_D16;
d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;
d3dpp.Windowed = FALSE;
d3dpp.BackBufferFormat = D3DFMT_A8R8G8B8;
switch( d3dDevice->Reset(&d3dpp) )
{
case D3DERR_DRIVERINTERNALERROR:
ERROR_MESSAGE( "Driver Internal Error" );
break;
case D3DERR_DEVICELOST:
ERROR_MESSAGE( "Device Lost" );
break;
case D3DERR_INVALIDCALL:
ERROR_MESSAGE( "Invalid Call" );
break;
case D3DERR_OUTOFVIDEOMEMORY:
ERROR_MESSAGE( "Out Of Video Memory" );
break;
case E_OUTOFMEMORY:
ERROR_MESSAGE( "Out Of Memory" );
break;
default:
ERROR_MESSAGE( "Could not reset d3dDevice!" );
break;
}
SetupMatrices();
InitDeviceState();
g_Font.Reset();
mainCharacter.Reset();
gameObjects.AddObject( mainCharacter );
return true;
}
return true;
}