【Misson2 画面】 |
![]() |
図1 Mission3画面 |
【ステップ3−1 テクスチャー読み込みルーチン】 | 解説 |
![]() |
ワークスペース(左図の部分)から、 d3dmain.cpp をダブルクリックして開きます。 すると画面は、図3の様になったはずです。 |
図2 ワークスペース |
![]() |
図3 d3dmain.cpp |
![]() |
次に、図4のようにして編集メニューから検索コマンドを選びます。 すると、図5のようなダイアログウィンドウが出てきます、 ここでは、RestoreDeviceObjects というキーワードで検索を実行。 この操作を二回繰り返すと、リスト1aのプログラムが出てくるはずです。 | |
![]() | ||
図5 検索ウィンドウ
| 図4 検索コマンド |
改造前 |
---|
![]() |
リスト1a |
解説 |
関数 RestoreDeviceObjects は、3D描画環境(IDirect3DDevice8)
を初期化もしくは再初期化した際に呼び出されるようになっています。 3D描画環境が再初期化されるとテクスチャも破棄される為、 テクスチャの読み込みはここで行うのが良い事になります。 テクスチャの読み込みの為に、以下の様に変更して下さい。 |
改造後 |
---|
![]() |
リスト1b |
解説 |
実際に入力するのは、リスト1bの白バックの部分です。
CreateTextureFromResourceEx はDirectX 関数で、リソースから テクスチャを生成します。詳しくは、Microsoft のドキュメントを 参照してください。Color key を設定していますが、これは、 透過色の設定で、用意したグラフィックの透過させたい部分の色 を指定して下さい。 g_pTexture はテクスチャを保存する為のグローバル変数、 g_fTexImageWidth および g_fTexImageHeight は、テクスチャの サイズを保持するグローバル変数で、 d3dmain.cpp の最初の方で宣言しています。 g_fTexImageWidth、g_fTexImageHeight の 1.0 はテクスチャ全体を 意味しています。 |
【ステップ3−2 テクスチャーの破棄】 | 解説 | |
![]() |
再度、図10のようにして編集メニューから検索コマンドを選びます。 すると、図11のようなダイアログウィンドウが出てきます、 こんどは、InvalidateDeviceObjects というキーワードで検索を実行。 | |
![]() | ||
図11 検索ウィンドウ
| 図10 検索コマンド |
改造前 |
---|
![]() |
リスト2a |
解説 |
関数 InvalidateDeviceObjects は、3D描画環境(IDirect3DDevice8)
を破棄もしくは再初期化する直前に呼び出されるようになっています。 3D描画環境が再初期化されるとテクスチャも強制的に破棄される為、 その直前にテクスチャを明示的に破棄しておくのが無難です。 その為に、以下の様に変更して下さい。 |
改造後 |
---|
![]() |
リスト2b |
![]() |