シーンのクラス化ホーム>DirectXのページ>1.シーンのクラス化1.DirectXのシーンをクラス化するまずは、表示の一連の流れ、「シーン」をクラス化します。設定画面といった切り替えを容易に行うことを想定して作っています。DirectX10における「DXUT」ライブラリを用いることを前提にします。//対象となるデバイスへのポインタを持つべきか?//対象となるデバイスは呼び出しの間に変わるかもしれない(画面モードの変更などの理由によって)//よって、これは各呼び出しによって引数で渡されるべき};これは何もしないので抽象クラスです。次にサンプルに付属する「Tutorial08」と同じものを表示させるクラスを作ってみます。g_vLightDir;};ずいぶんとプロテクトメンバが増えました。Tutorialだとこの辺が全てグローバル変数なのでC++使いには気持ち悪いというのもクラス化の動機の一つです。ほとんどがシェーダと、シェーダとCPUのやりとりに使われる変数です。中身は割愛させていただきますが、(Tutorial丸写しになってしまうので)・コンストラクタは実変数については初期化、ポインタ変数についてはNULLでクリア・Init()でnewが必要な変数を作成する・Resize()で・FrameMove()は・OnRender()は・デストラクタではといったところでしょうか。各メソッドとDirectXの動作との対応は以下のようになると思います。デバイスロストとの対応から。Initと分ける意味がなくなる気もする。リソースの解放を忘れずに。ID3D10Deviceのオブジェクトが必要な処理はこちらに分離。描画にかかわらず時間経過によって呼ばれる。新たなパラメータを元に画面を描画する。射影行列を初期化する(プログラム内ではg_Projection)。