TeraLib初期化です マウスで視点操作できます 右クリック押しながら動かすと回転します 中ボタンを押しながら動かすと平行移動します マウスホイールで前進後退します &ref(init.jpg); ・&ref(template.zip); ソースファイルはsrcフォルダ 実行ファイルはbinフォルダ に入れてあります プロジェクトのパスはTeraLib導入を参考に各自通してください 実行ファイルの方はプロジェクトの設定でコンソールを隠しています VC++プロジェクトのプロパティのコンソールの隠蔽の項目を参考にしてください main.cpp #include <directx.h> class WindowEx : public UtilWindow { private: DirectX dx; // DirectX public: // ウィンドウの初期化処理 virtual BOOL OnCreate(HWND hWnd,LPCREATESTRUCT cs){ // ウィンドウの描画領域の取得 RECT rect; GetClientRect(hWnd,&rect); // DirectXの作成 dx.Create(hWnd,rect.right - rect.left,rect.bottom - rect.top); return TRUE; } // DirectXの処理(ウィンドウメッセージがないときの処理) virtual void Idle(){ // 入力の更新 dx.UpdateInputState(); // デバックカメラの更新 dx.UpdateDebugCamera(); // 描画開始 dx.BeginScene(); // 画面のクリア(ARGB色で塗りつぶし) dx.ScreenClear(0xff808080); // 軸の描画 dx.DrawAxis(5.0f); // グリッドの描画 dx.DrawGrid(100.0f); // 描画終了 dx.EndScene(); // 描画の反映 dx.Present(); } }; int main() { // ウィンドウ作成 WindowEx window; window.Create(_T("template application"),640,480); // メッセージループ Window::MessageLoop(); return 0; } directx.hをインクルードしてもらえれば全てのクラスが使えるようにしています UtilWindowクラスを派生したWindowExクラスを作成します Window::MessageLoop関数でアプリケーション内の全ウィンドウの(ウィンドウが作成された、閉じられたなどの)メッセージを補足します ・ウィンドウの初期化処理 ・ウィンドウの破棄処理 にはそれぞれ以下のメソッドをオーバライドします virtual BOOL OnCreate(HWND hWnd,LPCREATESTRUCT cs); virtual void OnDestroy(HWND hWnd); 初期化や後処理はそれぞれのメソッド内に書きます ウィンドウ初期化時にDirectXの入力、描画、サウンドのデバイスを作成します DirectXクラスにはリソース管理、入力、描画、サウンドなど ほぼ全ての機能を持たせています DirectXの処理はIdleメソッドをオーバライドして使います virtual void Idle(); このメソッドはメッセージ処理がない場合はウィンドウが閉じられるまで呼ばれ続けるメソッドです 入力状態を更新するためには dx.UpdateInputState(); を毎回呼び出します 描画処理は dx.BeginScene(); dx.ScreenClear(0xff808080); dx.ScreenClear(色); と dx.EndScene(); dx.Present(); との間に行います