0001: //-------------------------------------------------------------
0002: // File: main.h
0003: //
0004: // Desc: ハロ
0005: //-------------------------------------------------------------
0006: #pragma once
0007: 
0008: 
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:     enum {
0034:         WEIGHT_MUN = 8,                     // 重みを計算する個数
0035:     };
0036:     D3DXVECTOR4             m_tbl[2][WEIGHT_MUN];// 重みの配列
0037:     VOID                    UpdateWeight();// 重みの配列の計算
0038:     
0039:     CD3DMesh                *m_pMesh;
0040:             
0041:     // シェーダ
0042:     LPD3DXEFFECT            m_pEffect;      // エフェクト
0043:     D3DXHANDLE              m_hTechnique;   // テクニック
0044:     D3DXHANDLE              m_hafWeight;    // 重みの配列
0045:     D3DXHANDLE              m_htSrcMap;     // テクスチャ
0046:     D3DXHANDLE              m_htSrcMap2;    // テクスチャ
0047:     D3DXHANDLE              m_hmWVP;        // ローカル-射影変換行列
0048:     D3DXHANDLE              m_hvLightDir;   // ライトの方向
0049:     D3DXHANDLE              m_hvEyePos;     // 視点
0050:     D3DXHANDLE              m_hvCol;        // 頂点色
0051:     LPDIRECT3DVERTEXDECLARATION9    m_pDecl;    // 頂点宣言
0052: 
0053:     // シャドウマップ
0054:     LPDIRECT3DSURFACE9      m_pMapZ;        // 深度バッファ
0055:     LPDIRECT3DTEXTURE9      m_pOriginalTex; // テクスチャ
0056:     LPDIRECT3DSURFACE9      m_pOriginalSurf;// サーフェス
0057:     LPDIRECT3DTEXTURE9      m_pLumTex;      // テクスチャ
0058:     LPDIRECT3DSURFACE9      m_pLumSurf;     // サーフェス
0059:     LPDIRECT3DTEXTURE9      m_pXMap;        // テクスチャ
0060:     LPDIRECT3DSURFACE9      m_pXMapSurf;    // サーフェス
0061:     LPDIRECT3DTEXTURE9      m_pLargeTex;    // テクスチャ
0062:     LPDIRECT3DSURFACE9      m_pLargeSurf;   // サーフェス
0063:     LPDIRECT3DTEXTURE9      m_pSmallTex;    // テクスチャ
0064:     LPDIRECT3DSURFACE9      m_pSmallSurf;   // サーフェス
0065: 
0066:     // 通常の座標変換行列
0067:     D3DXMATRIX              m_mWorld;
0068:     D3DXMATRIX              m_mView;
0069:     D3DXMATRIX              m_mProj;
0070: 
0071:     BOOL                    m_bLoadingApp;  // ロード中?
0072:     CD3DFont*               m_pFont;        // フォント
0073:     UserInput               m_UserInput;    // 入力データ
0074: 
0075:     FLOAT                   m_fWorldRotX;   // X軸回転
0076:     FLOAT                   m_fWorldRotY;   // Y軸回転
0077:     FLOAT                   m_fViewZoom;    // 視点の距離
0078: 
0079: protected:
0080:     virtual HRESULT OneTimeSceneInit();
0081:     virtual HRESULT InitDeviceObjects();
0082:     virtual HRESULT RestoreDeviceObjects();
0083:     virtual HRESULT InvalidateDeviceObjects();
0084:     virtual HRESULT DeleteDeviceObjects();
0085:     virtual HRESULT Render();
0086:     virtual HRESULT FrameMove();
0087:     virtual HRESULT FinalCleanup();
0088:     virtual HRESULT ConfirmDevice( D3DCAPS9*, DWORD, D3DFORMAT );
0089: 
0090:     HRESULT RenderText();
0091: 
0092:     void    UpdateInput( UserInput* pUserInput );
0093: public:
0094:     LRESULT MsgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam );
0095:     CMyD3DApplication();
0096:     virtual ~CMyD3DApplication();
0097: };
0098: 
0099: