デバイスの初期化はアプリ起動時に一回行うだけで十分ですが、解像度だけはそうはいきません。
ウィンドウをリサイズしたり、設定で解像度を変更したりする場面が当然出てきます。
参考ページがこちら↓(これを読んで対応できる方はこの先を読む必要はありません。)
DirectX Graphics Infrastructure (DXGI):ベスト プラクティス
具体的な例を次に示しますのでよかったら参考にしてください。
それぞれの処理の詳細はDirectX SDKのチュートリアルにあるのでそちらを参考にしてください。
今回の解像度の変更で重要なはハイライトしている部分です。
(レンダリングターゲットと深度ステンシルビューを一度解放して
m_pSwapChain->ResizeBuffers 関数を呼んでいる部分。)
リサイズする場面は、もうすでにレンダーターゲットと深度ステンシルビューがあるということです。
それらを残したままスワップチェインのリサイズ関数を呼ぶとエラーになってしまうので気を付けてください。
(つまり先にリリースしておかなければならないということ。マニュアルにも書いてあるけど説明がわかりずらい…)
以上です。
2011/05/28 最終更新