• ベストアンサー

DirectXプログラムでCNTL+ALT+DEL

C言語とDirectXを用いてプログラムを作成しているものです。 プログラムを実行している最中にCNTL+ALT+DELを押下し、キャンセルで元に戻ったとき、ウインドウに表示されていたものがすべて表示されなくなってしまいます。 WIN32APIを用いていたときは同じことをしても問題なく動作していました。 DirectXの場合は何か特別なことをしないといけないのでしょうか?(たとえばテクスチャをロードしなおすとか) よろしくお願い申し上げます。 OSはWindowsXPSP3、DirectXはNovember2008を使用しています

質問者が選んだベストアンサー

  • ベストアンサー
  • aris-wiz
  • ベストアンサー率38% (96/252)
回答No.1

DirectXは、該当のウィンドウがフォーカスを失ったり、 非表示になったりして致命的な割り込みが発生した場合、 デバイスが消失生する可能性があります。 その為、通常はPresent(描画)のタイミングでエラーチェックを行い、 デバイスロスト状態であった場合には、デバイスを再作成し、 テクスチャなどのリソースを再読み込みする必要があります。 参考URLにサンプルと、 結構分かりやすい説明が あるので参考までに。

参考URL:
http://marupeke296.com/DXG_No52_DeviceLost.html
cyacya2000
質問者

お礼

早速のご回答ありがとうございました。 結構な修正になりそうですが、頑張ってみます。

関連するQ&A