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();
との間に行います

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS