0001: //-------------------------------------------------------------
0002: // File: main.h
0003: //
0004: // Desc: 水平線マップ
0005: //-------------------------------------------------------------
0006: #pragma once
0007: 
0008: #define COVER_MAPS 8
0009: 
0010: //-------------------------------------------------------------
0011: // 定義や定数
0012: //-------------------------------------------------------------
0013: // 現在の入力データを保存する構造体
0014: struct UserInput
0015: {
0016:     BOOL bRotateUp;
0017:     BOOL bRotateDown;
0018:     BOOL bRotateLeft;
0019:     BOOL bRotateRight;
0020:     BOOL bZoomIn;
0021:     BOOL bZoomOut;
0022: };
0023: 
0024: 
0025: 
0026: 
0027: //-------------------------------------------------------------
0028: // Name: class CMyD3DApplication
0029: // Desc: アプリケーションのクラス
0030: //-------------------------------------------------------------
0031: class CMyD3DApplication : public CD3DApplication
0032: {
0033:     CD3DMesh                *m_pMeshBg;
0034:             
0035:     // シェーダ
0036:     LPD3DXEFFECT            m_pEffect;      // エフェクト
0037:     D3DXHANDLE              m_hTechnique;   // テクニック
0038:     D3DXHANDLE              m_hmWVP;        // 変換行列
0039:     D3DXHANDLE              m_hvCol;        // 頂点色
0040:     D3DXHANDLE              m_hvDir;        // 光源の方向
0041:     D3DXHANDLE              m_htSrcTex;     // テクスチャ
0042: 
0043:     // レンダリングターゲット
0044:     LPDIRECT3DSURFACE9      m_pMapZ;        // 深度バッファ
0045:     LPDIRECT3DTEXTURE9      m_pHeightTex;   // 高さマップ
0046:     LPDIRECT3DSURFACE9      m_pHeightSurf;  // 
0047:     LPDIRECT3DTEXTURE9      m_pCoverTex [COVER_MAPS];// 遮蔽マップ
0048:     LPDIRECT3DSURFACE9      m_pCoverSurf[COVER_MAPS];// 
0049: 
0050: 
0051:     // 通常の座標変換行列
0052:     D3DXMATRIX              m_mWorld;
0053:     D3DXMATRIX              m_mView;
0054:     D3DXMATRIX              m_mProj;
0055: 
0056:     D3DXVECTOR3             m_LighPos;      // 光源の方向
0057: 
0058:     BOOL                    m_bLoadingApp;  // ロード中?
0059:     CD3DFont*               m_pFont;        // フォント
0060:     UserInput               m_UserInput;    // 入力データ
0061: 
0062:     FLOAT                   m_fWorldRotX;   // X軸回転
0063:     FLOAT                   m_fWorldRotY;   // Y軸回転
0064:     FLOAT                   m_fViewZoom;    // 視点の距離
0065: 
0066: protected:
0067:     virtual HRESULT OneTimeSceneInit();
0068:     virtual HRESULT InitDeviceObjects();
0069:     virtual HRESULT RestoreDeviceObjects();
0070:     virtual HRESULT InvalidateDeviceObjects();
0071:     virtual HRESULT DeleteDeviceObjects();
0072:     virtual HRESULT Render();
0073:     virtual HRESULT FrameMove();
0074:     virtual HRESULT FinalCleanup();
0075:     virtual HRESULT ConfirmDevice( D3DCAPS9*, DWORD, D3DFORMAT );
0076: 
0077:     HRESULT RenderText();
0078: 
0079:     void    UpdateInput( UserInput* pUserInput );
0080: public:
0081:     LRESULT MsgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam );
0082:     CMyD3DApplication();
0083:     virtual ~CMyD3DApplication();
0084: };
0085: 
0086: