📄 d3dapplication.h
字号:
// D3DApplication.h: interface for the CD3DApplication class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_D3DAPPLICATION_H__FD418114_0791_4CFA_AD2D_032D1321946F__INCLUDED_)
#define AFX_D3DAPPLICATION_H__FD418114_0791_4CFA_AD2D_032D1321946F__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
//-----------------------------------------------------------------------------
// Defines, and constants
//-----------------------------------------------------------------------------
// Error codes
#define DONUTSERR_NODIRECT3D 0x00000001
#define DONUTSERR_NOD3DDEVICE 0x00000002
#define DONUTSERR_ARTLOADFAILED 0x00000003
#define DONUTSERR_NOINPUT 0x00000004
// States the app can be in
enum APP_STATE_TYPE
{
APPSTATE_LOADSPLASH,
APPSTATE_DISPLAYSPLASH,
APPSTATE_ACTIVE,
APPSTATE_WAITFORMUSICEND,
APPSTATE_TRIGGERLEVELSCREEN,
APPSTATE_BEGINLEVELSCREEN,
APPSTATE_DISPLAYLEVELSCREEN,
APPSTATE_BEGINACTIVESCREEN
};
//-----------------------------------------------------------------------------
// Function prototypes
//-----------------------------------------------------------------------------
struct FRECT
{
float top;
float bottom;
float left;
float right;
};
class CDrawEx;
class CD3DApplication
{
public:
CD3DApplication();
virtual ~CD3DApplication();
virtual HRESULT Create( HINSTANCE hInstance );
INT Run();
LRESULT MsgProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
DWORD GetScreenWidth() { return m_dwScreenWidth; }
DWORD GetScreenHeight() { return m_dwScreenHeight; }
float GetAppTime() { return m_fTime; }
BOOL IsFullScreen() { return m_bFullScreen; }
LPDIRECT3DDEVICE9 GetD3dDevice() { return m_pd3dDevice; }
HWND GetWindowHandle() { return m_hWndMain; }
// Error handling
VOID CleanupAndDisplayError( DWORD dwError, TCHAR* strArg1, TCHAR* strArg2 );
virtual INT Render() = 0;
//#ifdef _DEBUG
// VOID PrintFPS( float dt, float dfps );
VOID PrintFPS( float dt, float dfps );
VOID PrintLAYER( float dt, float layer );
VOID UpdateFrameRate();
LPD3DXFONT m_pFPSFont;
//#endif
protected:
// Display functions
HRESULT InitDeviceObjects( HWND hWnd );
virtual HRESULT InvalidateDeviceObjects();
virtual HRESULT RestoreDeviceObjects();
HRESULT DeleteDeviceObjects();
VOID FinalCleanup();
HRESULT SwitchDisplayModes( BOOL bFullScreen, DWORD dwWidth, DWORD dwHeight );
BOOL GetAppActive() { return m_bIsActive; }
public:
FLOAT m_fFPS; // Instanteous frame rate
protected:
public:
HWND m_hWndMain; // Main window
TCHAR m_strServerIp[20];
protected:
DWORD m_dwScreenWidth; // Dimensions for fullscreen modes
DWORD m_dwScreenHeight;
BOOL m_bFullScreen; // Whether app is fullscreen (or windowed)
BOOL m_bMouseVisible; // Whether mouse is visible
TCHAR m_strAppName[20];
private:
DWORD m_dwWindowStyle;
RECT m_rcWindowBounds;
RECT m_rcWindowClient;
BOOL m_bWireMode;
LPDIRECT3DDEVICE9 m_pd3dDevice;
D3DDISPLAYMODE m_DesktopMode;
D3DFORMAT m_d3dfmtFullscreen; // Pixel format for fullscreen modes
D3DFORMAT m_d3dfmtTexture; // Pixel format for textures
BOOL m_bIsActive; // Whether app is active
BOOL m_bDisplayReady; // Whether display class is initialized
// DirectDraw/Direct3D objects
D3DPRESENT_PARAMETERS m_d3dpp;
FLOAT m_fTime; // Current time in seconds
FLOAT m_fElapsedTime; // Time elapsed since last frame
};
#endif // !defined(AFX_D3DAPPLICATION_H__FD418114_0791_4CFA_AD2D_032D1321946F__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -