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: