Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: Whoiam en 13 de Octubre de 2006, 09:36:21 AM

Título: Device Lost :-( Reset( ) ERR
Publicado por: Whoiam en 13 de Octubre de 2006, 09:36:21 AM
El bucle de mensajes.

while(!exitapp)
{
if (PeekMessage(&msg,NULL,0,0,PM_REMOVE))
{
if (msg.message==WM_QUIT) exitapp=TRUE;
else
                             {
                             TranslateMessage(&msg);
                             DispatchMessage(&msg);
                             }
}
else
{
if (hr==D3D_OK)
{
Render();
hr=m_pDevice->Present(NULL,NULL,NULL,NULL);
}
else
{
hr=m_pDevice->TestCooperativeLevel();
if (hr==D3DERR_DEVICENOTRESET)
ResetDevice();
}
}
}


La función ResetDevice. Donde m_d3dpp (D3DPRESENT_PARAMETERS) son exactamente los mismos parámetros usados para crear el Device.

HRESULT Reset (void)
{
HRESULT hr;

hr=m_pDevice->Reset(&m_d3dpp);
if (FAILED(hr))
{
return E_FAIL;
}
return S_OK;
}



Siempre me retorna E_FAIL. :-(
Título: Device Lost :-( Reset( ) ERR
Publicado por: Sante en 13 de Octubre de 2006, 12:38:33 PM
Antes de llamar a Reset, tienes que asegurarte de haber liberado todos los recursos de la memoria de video del dispositivo (los creados con D3DPOOL_DEFAULT), como texturas, VBs, etc... No se si será por eso.
Título: Device Lost :-( Reset( ) ERR
Publicado por: Whoiam en 16 de Octubre de 2006, 01:40:32 PM
Cita de: "Sante"Antes de llamar a Reset, tienes que asegurarte de haber liberado todos los recursos de la memoria de video del dispositivo (los creados con D3DPOOL_DEFAULT), como texturas, VBs, etc... No se si será por eso.

Liberaba todo menos la Fuente de Texto, que es la que no me permitia hacer el Reset. No sabia que estas tambien fueran a D3DPOOL_DEFUALT.

Gracias.