0001: //-------------------------------------------------------------
0002: // File: main.h
0003: //
0004: // Desc: Bitonic sort
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: };
0021: 
0022: 
0023: 
0024: 
0025: //-------------------------------------------------------------
0026: // Name: class CMyD3DApplication
0027: // Desc: アプリケーションのクラス
0028: //-------------------------------------------------------------
0029: class CMyD3DApplication : public CD3DApplication
0030: {
0031:     enum{
0032:         STATE_INIT=0,
0033:         STATE_SORT,
0034:     };
0035: 
0036:     LPDIRECT3DTEXTURE9      m_pSeedTex;     // ランダム種
0037:             
0038:     int                     m_id;           // レンダリングテクスチャの設定
0039:     LPDIRECT3DTEXTURE9      m_pSortTex[2];  // Sort テクスチャ
0040:     LPDIRECT3DSURFACE9      m_pSortSurf[2]; // Sort サーフェス
0041: 
0042:     // シェーダ
0043:     LPD3DXEFFECT            m_pEffect;      // エフェクト
0044:     D3DXHANDLE              m_hTechnique;   // テクニック
0045:     D3DXHANDLE              m_htSrcMap;     // テクスチャ
0046:     D3DXHANDLE              m_hstage;       // テクスチャ
0047:     D3DXHANDLE              m_hstepno;      // テクスチャ
0048:     D3DXHANDLE              m_hoffset;      // テクスチャ
0049: 
0050:     BOOL                    m_bLoadingApp;  // ロード中?
0051:     BOOL                    m_bDispText;    // テキストを表示する
0052:     CD3DFont*               m_pFont;        // フォント
0053:     UserInput               m_UserInput;    // 入力データ
0054: 
0055:     int                     m_iState;       // 内部状態
0056:     int                     m_cnt;          // 状態が変わったときにリセットされるカウンタ
0057:     inline VOID SetState(int val){m_iState=val;m_cnt=-1;}
0058: 
0059: protected:
0060:     virtual HRESULT OneTimeSceneInit();
0061:     virtual HRESULT InitDeviceObjects();
0062:     virtual HRESULT RestoreDeviceObjects();
0063:     virtual HRESULT InvalidateDeviceObjects();
0064:     virtual HRESULT DeleteDeviceObjects();
0065:     virtual HRESULT Render();
0066:     virtual HRESULT FrameMove();
0067:     virtual HRESULT FinalCleanup();
0068:     virtual HRESULT ConfirmDevice( D3DCAPS9*, DWORD, D3DFORMAT );
0069: 
0070:     virtual int RenderStateSort();
0071: 
0072:     HRESULT RenderText();
0073: 
0074:     BOOL Sort();
0075: 
0076:     void    UpdateInput( UserInput* pUserInput );
0077: public:
0078:     LRESULT MsgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam );
0079:     CMyD3DApplication();
0080:     virtual ~CMyD3DApplication();
0081: };
0082: 
0083: