• Sábado 27 de Abril de 2024, 09:26

Autor Tema:  Alt+tab  (Leído 1757 veces)

Neko-sama

  • Miembro activo
  • **
  • Mensajes: 99
    • Ver Perfil
Alt+tab
« en: Lunes 8 de Agosto de 2005, 04:33 »
0
Holas!

He estado mucho tiempo tratando de resolver el problema de no perder el dispositivo cuando estoy usando el juego en fullscreen y presiono ALT+TAB para minimizar la aplicación y despues vuelvo al juego pero igual se pierde...

lo uso de la siguiente manera... (resumen del codigo)

hr = g_pd3dDevice->TestCooperativeLevel();

if(hr == D3DERR_DEVICENOTRESET) {  

  hr = g_pd3dDevice->Reset(&d3dpp)

}

bueno... no hace el reset y siempre me entrega el mismo error: D3DERR_INVALIDCALL

donde está el problema??
tengo que hacer mas cosas antes??

agradecería mucho la ayuda  :D

Amilius

  • Miembro HIPER activo
  • ****
  • Mensajes: 665
    • Ver Perfil
Re: Alt+tab
« Respuesta #1 en: Lunes 8 de Agosto de 2005, 07:02 »
0
Hmmmmm.... ¿Ya restauraste superficies?

Si pasas de "fullscreen" a modo cooperativo inevitablemente pierdes superficies alojadas en memoria de video, asi que tienes que restaurarlas.

Puedes restaurarlas o volver a construir las superficies que perdiste pero de lo que no te salvas es de copiar nuevamente su contenido de memoria de sistema a video (si tenías una copia en memoria de sistema), o cargarlas nuevamente de disco.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Alt+tab
« Respuesta #2 en: Lunes 8 de Agosto de 2005, 14:51 »
0
Tal como lo ha dicho amilus,
agregaria que seria cionveniente que en tu constructor tuvieras el llamado a una funcion  que creara las superficies, de tal manera que al ocurrir la excepcion, la atrapas y vuelves a llamar la funcion de creacion.

Una pregunta.. porque as esto?.. no seria mejor que no nse destruyera esa info?
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Neko-sama

  • Miembro activo
  • **
  • Mensajes: 99
    • Ver Perfil
Re: Alt+tab
« Respuesta #3 en: Martes 9 de Agosto de 2005, 02:04 »
0
yo no hago nada...   como dice Amilius, la tontera se pierde nomas!

solo trato de resolver el problema del ALT+TAB...

como lo hacen ustedes??

yo estoy usando direct 3d  asi que no uso superficies...  y vi que el modo de hacerlo es de la forma que lo mostré... pero no consigo el resultado esperado...

supuestamente en esta linea....  -->    
hr = g_pd3dDevice->Reset(&d3dpp)

le paso el D3DPRESENT_PARAMETERS donde ya fue cargado todo pero igual tiene problemas...  

puede que esté haciendo todo mal...

por eso me gustaría saber como lo hacen ustedes para saber donde tengo que arreglarlo