|
|
发表于 2007-11-24 23:36:00
|
显示全部楼层
Re:程序最小化后就出错,已经写了恢复措施,还是不行
设备丢失不是有个专门的函数吗?
Render();
hr=g_pD3DDevice->TestCooperativeLevel();
while(hr==D3DERR_DEVICELOST)
{
beforeResetVertex();
if(hr!=D3DERR_DEVICENOTRESET)
{
Sleep(1000);
hr=g_pD3DDevice->TestCooperativeLevel();
}
if(FAILED(g_pD3DDevice->Reset(&d3dpp)))
{
hr=D3DERR_DEVICELOST;
}
else
{
resetVertex();
g_pD3DDevice->SetRenderState( D3DRS_LIGHTING, FALSE );
}
这个代码是我用D3D设备丢失时候处理用的,在VS2005下可以通过编译并正确运作
如果在VS2003的话,那么里面释放必要的内存的语句的位置必须改变一下。DXUT用了回调函数然后就不需要搞这个次序,不过我没仔细研究DXUT,不好意思
希望这些对LZ有用 |
|