[DX9] DeviceReset scheitert an Fensterfokus?
Verfasst: 24.09.2015, 11:42
Moin,
Splatter, letzter Bug, den ich jemals dafür fixen werde. Ehrlich jetzt. Das ist mein letztes Wort.
Wenn man aus dem Vollbild heraus Alt-Tabt, geht das Device verloren. Logisch. Wenn ich allerdings zurück ins Spiel gehe, sei es per Alt+Tab oder per Klick auf die Anwendung in der Taskleiste, kommt das Spiel nicht wieder. Es hängt stattdessen in der aus zig Tutorials seit Jahrzehnten etablierten Device-Reset-Schleife
...und zwar endlos. Es kommt also kein sonstiger Fehlercode, sondern immer nur DEVICELOST. Und DirectX Debug gibt in einer ebensolangen Endlosschleife aus:
Hat jemand eine Idee, woran das liegen könnte? Ich meine... das Fenster ist doch sicher fokussiert, wenn ich es mit dem Klick auf den Taskleiten-Eintrag wieder hochhole, oder?
Splatter, letzter Bug, den ich jemals dafür fixen werde. Ehrlich jetzt. Das ist mein letztes Wort.
Wenn man aus dem Vollbild heraus Alt-Tabt, geht das Device verloren. Logisch. Wenn ich allerdings zurück ins Spiel gehe, sei es per Alt+Tab oder per Klick auf die Anwendung in der Taskleiste, kommt das Spiel nicht wieder. Es hängt stattdessen in der aus zig Tutorials seit Jahrzehnten etablierten Device-Reset-Schleife
Code: Alles auswählen
HRESULT hr = D3DERR_DEVICELOST;
while( hr == D3DERR_DEVICELOST )
{
hr = d3dDevice->Reset( &d3dpp);
if (FAILED(hr) && hr != D3DERR_DEVICELOST )
WirfAusnahmeOptional( "D3D9-Reset gescheitert");
}
Code: Alles auswählen
Direct3D9: (ERROR) :ResetEx fails. D3DERR_DEVICELOST returned.
Direct3D9: (ERROR) :ResetEx failed and ResetEx/TestCooperativeLevel/Release are the only legal APIs to be called subsequently
Direct3D9: (WARN) :Window does not have focus. TestCooperativeLevel fails