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: