0001: //-------------------------------------------------------------
0002: // File: main.h
0003: //
0004: // Desc: サンプルのヘッダー
0005: //-------------------------------------------------------------
0006: #pragma once
0007: 
0008: 
0009: 
0010: 
0011: //-------------------------------------------------------------
0012: // 定義や定数
0013: //-------------------------------------------------------------
0014: // 現在の入力データを保存する構造体
0015: struct UserInput
0016: {
0017:     BOOL bRotateUp;
0018:     BOOL bRotateDown;
0019:     BOOL bRotateLeft;
0020:     BOOL bRotateRight;
0021:     BOOL bZ;
0022:     BOOL bX;
0023: };
0024: 
0025: 
0026: 
0027: 
0028: //-------------------------------------------------------------
0029: // Name: class CMyD3DApplication
0030: // Desc: アプリケーションのクラス
0031: //-------------------------------------------------------------
0032: class CMyD3DApplication : public CD3DApplication
0033: {
0034:     CD3DMesh                        *m_pMesh;   // モデル
0035:     CD3DMesh                        *m_pMeshBg; // 背景モデル
0036:     LPDIRECT3DVERTEXDECLARATION9    m_pDecl;    // 頂点宣言
0037:     LPD3DXEFFECT                    m_pEffect;  // シェーダ
0038:     D3DXHANDLE                      m_hmWVP;    // ワールド~射影行列
0039:     D3DXHANDLE                      m_hmWVPT;   // ワールド~テクスチャ行列
0040:     D3DXHANDLE                      m_hvCol;    // メッシュの色
0041:     D3DXHANDLE                      m_hvDir;    // ライトの方向
0042:     // レンダリングターゲット
0043:     LPDIRECT3DSURFACE9              m_pMapZ;    // 共通Zバッファ
0044:     LPDIRECT3DTEXTURE9              m_pColorMap;// 色
0045:     LPDIRECT3DSURFACE9              m_pColorMapSurf;
0046:     LPDIRECT3DTEXTURE9              m_pDepthMap;// 深度
0047:     LPDIRECT3DSURFACE9              m_pDepthMapSurf;
0048:     LPDIRECT3DTEXTURE9              m_pFogMap;  // フォグの厚み
0049:     LPDIRECT3DSURFACE9              m_pFogMapSurf;
0050: 
0051:     DWORD                           m_Width;    // ビューポートの幅
0052:     DWORD                           m_Height;   // 高さ
0053:     UINT                            m_MapW;     // テクスチャの幅
0054:     UINT                            m_MapH;     // 高さ
0055: 
0056:     D3DXMATRIX                      m_mWorld;   // ワールド行列
0057:     D3DXMATRIX                      m_mView;    // ビュー行列
0058:     D3DXMATRIX                      m_mProj;    // 射影行列
0059:     D3DXVECTOR4                     m_LightDir; // 光源の方向
0060: 
0061:     FLOAT                   m_zoom;             // ズーム
0062:     FLOAT                   m_fWorldRotX;       // X軸回転
0063:     FLOAT                   m_fWorldRotY;       // Y軸回転
0064: 
0065:     BOOL                    m_bLoadingApp;      // ロード中?
0066:     CD3DFont*               m_pFont;            // フォント
0067:     UserInput               m_UserInput;        // 入力データ
0068:     
0069: protected:
0070:     virtual HRESULT OneTimeSceneInit();
0071:     virtual HRESULT InitDeviceObjects();
0072:     virtual HRESULT RestoreDeviceObjects();
0073:     virtual HRESULT InvalidateDeviceObjects();
0074:     virtual HRESULT DeleteDeviceObjects();
0075:     virtual HRESULT Render();
0076:     virtual HRESULT FrameMove();
0077:     virtual HRESULT FinalCleanup();
0078:     virtual HRESULT ConfirmDevice(D3DCAPS9*, DWORD, D3DFORMAT);
0079: 
0080:     HRESULT RenderText();
0081: 
0082:     void    UpdateInput( UserInput* pUserInput );
0083: public:
0084:     LRESULT MsgProc( HWND hWnd, UINT msg
0085:                     , WPARAM wParam, LPARAM lParam );
0086:     CMyD3DApplication();
0087:     virtual ~CMyD3DApplication();
0088: };
0089: