GPUPPURUT開発7

Direct3Dでフルスクリーンの時、Alt+Tabを押すとDirect3DのDeviceがLost Device状態になります。Lost Deviceの時にWndProc関数内でIDirect3DDevice9->Reset()を呼び出すようにしたいとき、DefWindowProcを呼び出した後にReset()を呼ばないとちゃんとフルスクリーンに戻ってくれないときがあります。
さらにReset()の呼び出し中にWndProc関数関数が呼ばれることがあるようですが、そのときにDirect3D関連の関数を呼ぶなとドキュメントに書いてあります。実際に確かめたところ、Reset()呼び出し時に一つだけmesageが送られていました。
複数のウィンドウを作り、一つのウィンドウをフルスクリーン化した後Alt+Tabを押し、別のウィンドウをフルスクリーン化させようとするとIDirect3DDevice9->Reset()で失敗するバグが残っていますが、とりあえずこのバグは放置しておこうと思います。
GDXUTにこれ以上バグがないようなので、順調にいけば2,3日でGPUPPURUTが完成するハズ・・・