Moin,
ich probiere jetzt auch hier mal mein Glück. 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
|
Quellcode
|
1
2
3
4
5
6
7
|
HRESULT hr = D3DERR_DEVICELOST;
while( hr == D3DERR_DEVICELOST )
{
hr = d3dDevice->Reset( &d3dpp);
if (FAILED(hr) && hr != D3DERR_DEVICELOST )
WirfAusnahmeOptional( "D3D9-Reset gescheitert");
}
|
...und zwar endlos. Es kommt also kein sonstiger Fehlercode, sondern immer nur DEVICELOST. Und DirectX Debug gibt in einer ebensolangen Endlosschleife aus:
|
Quellcode
|
1
2
3
|
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
|
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?