Novmnber 2008 のテンプレート

EmptyProject10 をベースにして、Novmnber 2008 のテンプレートのプロジェクトを作成します。

前田稔(Maeda Minoru)の超初心者のプログラム入門

テンプレートのプロジェクトを作成

  1. DirectX10 のプロジェクトは、新規に作成するよりも既存のプロジェクトをコピーして、それをテンプレートとして使う方が現実的でしょう。
    そこで、EmptyProject10 のプロジェクトを元にテンプレートとなるプロジェクトを作成します。
    テンプレートの元となるプロジェクトは DirectX10 EmptyProject を参照して下さい。
  2. EmptyProject10 のプロジェクトを立ち上げて下さい。
    プロジェクト/EmptyProject10 のプロパティ/構成プロパティ/リンカ/入力/追加の依存ファイルで設定されているライブラリを全て削除して下さい。
    このプロジェクトには DirectX10 と DirectX9 の3D関係の全てのライブラリがリンクされています。
    ライブラリのリンクはソースコードを見ればすぐ解るように、テンプレートでは #pragma でリンクすることにします。
  3. 次にプロジェクトのソリューションエクスプローラから DirectX9 関係のファイルを削除して下さい。
    Novmnber 2008 では DirectX9 を使わずに、全て DirectX10 でプログラムすることにします。
  4. プロジェクトのフォルダー名を Template に変更して下さい。
    フォルダーに格納されているファイル名を Main に変更して下さい。
    プロジェクト名と同じ名前を使うのが普通でしょうが、テンプレートとして使いやすいように Main に統一します。
    Main.cpp
    Main.manifest
    Main.rc
    Main.vcproj
    resource.h
  5. Main.vcproj の中で使われている全ての EmptyProject10 を Main に変更して下さい。
  6. Main.rc で定義されている EmptyProject10.manifest を Main.manifest に変更して下さい。
  7. Main.manifest の中で使われている EmptyProject10 を Main に変更して下さい。
  8. Main.cpp のコードを変更して下さい。
    1. DXUT.h に続いて #pragma でライブラリをリンクするコードを追加して下さい。
      /**********************************************/
      /*  DirectX10 3D Template Program    前田 稔  */
      /**********************************************/
      #include "DXUT.h"
      #pragma once
      #pragma comment(lib,"dxerr.lib")
      #pragma comment(lib,"dxguid.lib")
      #pragma comment(lib,"winmm.lib")
      #pragma comment(lib,"comctl32.lib")
      #pragma comment(lib,"dxgi.lib")
      #pragma comment(lib,"d3d10.lib")
      #pragma comment(lib,"d3dx10.lib")
      
    2. DirectX9 に関係する以下の宣言を削除して下さい。
      //extern bool    CALLBACK IsD3D9DeviceAcceptable( D3DCAPS9* pCaps, D3DFORMAT AdapterFormat, D3DFORMAT BackBufferFormat, bool bWindowed, void* pUserContext );
      //extern HRESULT CALLBACK OnD3D9CreateDevice( IDirect3DDevice9* pd3dDevice, const D3DSURFACE_DESC* pBackBufferSurfaceDesc, void* pUserContext );
      //extern HRESULT CALLBACK OnD3D9ResetDevice( IDirect3DDevice9* pd3dDevice, const D3DSURFACE_DESC* pBackBufferSurfaceDesc, void* pUserContext );
      //extern void    CALLBACK OnD3D9FrameRender( IDirect3DDevice9* pd3dDevice, double fTime, float fElapsedTime, void* pUserContext );
      //extern void    CALLBACK OnD3D9LostDevice( void* pUserContext );
      //extern void    CALLBACK OnD3D9DestroyDevice( void* pUserContext );
      
    3. DirectX9 に関係する以下のコードを削除して下さい。
      /*
          // Set the D3D9 DXUT callbacks. Remove these sets if the app doesn't need to support D3D9
          DXUTSetCallbackD3D9DeviceAcceptable( IsD3D9DeviceAcceptable );
          DXUTSetCallbackD3D9DeviceCreated( OnD3D9CreateDevice );
          DXUTSetCallbackD3D9DeviceReset( OnD3D9ResetDevice );
          DXUTSetCallbackD3D9FrameRender( OnD3D9FrameRender );
          DXUTSetCallbackD3D9DeviceLost( OnD3D9LostDevice );
          DXUTSetCallbackD3D9DeviceDestroyed( OnD3D9DestroyDevice );
      */
      
  9. これでテンプレートのプロジェクトが完了です。
    Main.vcproj を起動して、正常にビルド&実行が行われることを確認して下さい。

前田稔(Maeda Minoru)の超初心者のプログラム入門

超初心者のプログラム入門(DirectX10 game program)