何回やっても……

バイスロストから逃れられない……
フルスクリーンモードでプログラムを実行 -> Alt+Tabで強制的にフォーカスを外した場合

  • Frame(Window)がビジーになる(自作Java2D / GTGE)
  • 復帰時にnative errorを吐いて終了する(LWJGLのFullScreenDemo)

という現象が起こる……


このPC限定の現象なのか、元々Javaでやることに無理があるのか……
描画周りをラップして、最悪Java -> C# + ManagedDirectXにでも環境を変えるべきなのかなぁ。ただ、DirectXで2DゲームとなるとJavaでいうGraphics周りが大幅に変更される(気がする)からなぁ……


(追記)
それっぽい物を見つけた。
Killer Game Programming in Java - 4章
http://fivedots.coe.psu.ac.th/~ad/jg/ch03/index.html

何と全文Webから読める。


(追記2)
サンプルソースをいじってみたところ、FrameのBufferStrategyが複数枚の描画先を持つ場合、自動的に全てを復旧させるわけでは無いような気がする。
ContentsLostにあわせてframeにBufferStrategyの再生成を指示すればこの問題は解決できたが……


(追記3)
むしろゲームのFPSを取るためにThreadを利用してるのがまずい?
Timerを用いるべきかな……