DirectXのサンプルフレームワークはコールバック関数ベースで作られている。ということでどんなコールバック関数があるかのメモ。
- IsD3D9DeviceAcceptable
- デバイスを生成する前にディスプレイドライバがサポートしているフォーマットごとこの関数が呼ばれる。必要としている機能を満たしていればtrueを返し、満たしていないときはfalseを返す。DXUTSetCallbackD3D9DeviceAcceptableで登録する。
- OnD3D9CreateDevice
- アプリケーションが初期化されたとき、ウィンドウモード/フルスクリーンモードの切り替え時などデバイスが生成されたときに呼ばれる。DXUTSetCallbackD3D9DeviceCreatedで登録する。
- OnD3D9ResetDevice
- アプリケーションのウィンドウサイズが変更されたときなどデバイスがリセットされたときに呼ばれる。DXUTSetCallbackD3D9DeviceResetで登録する。
- OnD3D9LostDevice
- デバイスがロストしたときに呼ばれる。DXUTSetCallbackD3D9DeviceLostで登録する。
- OnD3D9DestroyDevice
- デバイスが破棄されるときに呼び出される。DXUTSetCallbackD3D9DeviceDestroyedで登録する。
- ModifyDeviceSettings
- デバイスが生成される直前に呼ばれる。ここでデバイス生成のためのパラメータを変更できる。DXUTSetCallbackDeviceChangingで登録する。
- MsgProc
- メッセージハンドラ。Windowメッセージの処理をここで行う。DXUTSetCallbackMsgProcで登録する。
- OnFrameMove
- フレームごとの更新処理を行う。引数として起動時からの経過時間と前フレームからの経過時間が渡される。DXUTSetCallbackFrameMoveで登録する。
- OnD3D9FrameRender
- フレームごとの描画処理を行う。引数としてデバイスへのポインタと経過時間が渡される。DXUTSetCallbackD3D9FrameRenderで登録する。
サンプルのEmptyProjectで登録されているコールバック関数は上のとおり。ゲームで主に記述していくのはOnFrameMoveとOnD3D9FrameRenderだろう。