MFC DirectXのデバイスの再設定
MFCのMDIで、DirectXおよびWinAPIを仕様して領域に描画を行うものを作っています。
環境ですが、
VS2008
DirectX9.0
です。
子ウィンドウは4分割しており、(0,0)と(1,0)が描画領域で、(0,1)(1,1)はフォームです。
そこで、以前は各子ウィンドウごとに、デバイスを取得し、描画をおこなっていたのですが、ファイルを5個以上作成すると、WinAPIで描画されるものが表示されなくなりました。
それは、デバイスコンテキストは、5個以上もてないことが発覚したためとわかったので、デバイスは親で持つことにし、共通化することになりました。
しかし、それでは、親ウィンドウで取得しているため、描画のウィンドウサイズなどが異なるため、意図した領域にかけておりません。
そこで、各領域に再設定を行いたいのですが、どうすればよいのでしょうか?
対策として、下記のように考えたのですが、検討違いでしょうか?
・デバイスの画面の設定をResetなどをつかって、リセットし、描画領域の再設定を行う。(Resetだと、再度デバイスの取得を行うと思っているのですが、これだとファイルごとにもっているのと変わらないような気がします。)
・CreateOffscreenPlainSurface等でオフスクリーン サーフェイスを作成し、描画する。(描画の座標情報等の微調整がいるような気がします。)
・単純に再設定できるから再設定を行う。
アドバイスを御願い致します。
お礼
ご丁寧に有難うございました。 早速、両方のサイトに同じ文面で投稿させて頂きました。 かなり専門的な内容のサイトなので、良い回答が得られそうだと期待しています。 ただ、やはり、DirectXではC/C++が主流で、VBはまだあまり認知されていないのが現実みたいです。(コンパイラの実力から言えば仕方の無いことですが) …重ね重ね有難うございました。