📄 d3d_app.h
字号:
//-----------------------------------------------------------------------------
// File: d3d_app.h
//
// Desc: Application class for the Runner (DX7)
//
// Copyright (c) 2001-2002 Runner Team . All rights reserved.
//-----------------------------------------------------------------------------
#ifndef D3D_APP_DEF
#define D3D_APP_DEF
#define D3D_OVERLOADS
#include <d3d.h>
#include "D3DUtil.h"
#include "D3DEnum.h"
#include "D3Dframe.h"
extern D3DEnum_DeviceInfo* g_pDeviceInfo;
extern LPDIRECTDRAW7 g_pDD;
extern LPDIRECT3D7 g_pD3D;
extern LPDIRECT3DDEVICE7 g_pd3dDevice;
extern LPDIRECTDRAWSURFACE7 g_pddsRenderTarget;
extern LPDIRECTDRAWSURFACE7 g_pddsZBuffer;
extern int g_iMouseX;
extern int g_iMouseY;
extern int g_iViewWidth;
extern int g_iViewHeight;
class D3D_APP
{
// Internal variables and member functions
CD3DFramework7* m_pFramework;
BOOL m_bActive;
BOOL m_bReady;
BOOL m_bFrameMoving;
BOOL m_bSingleStep;
DWORD m_dwBaseTime;
DWORD m_dwStopTime;
HRESULT Initialize3DEnvironment();
HRESULT Change3DEnvironment();
HRESULT Render3DEnvironment();
VOID Cleanup3DEnvironment();
VOID DisplayFrameworkError( HRESULT, DWORD );
protected:
HWND m_hWnd;
D3DEnum_DeviceInfo* m_pDeviceInfo;
LPDIRECTDRAW7 m_pDD;
LPDIRECT3D7 m_pD3D;
LPDIRECT3DDEVICE7 m_pd3dDevice;
LPDIRECTDRAWSURFACE7 m_pddsRenderTarget;
LPDIRECTDRAWSURFACE7 m_pddsRenderTargetLeft; // For stereo modes
DDSURFACEDESC2 m_ddsdRenderTarget;
// Overridable variables for the app
TCHAR* m_strWindowTitle;
BOOL m_bAppUseZBuffer;
BOOL m_bAppUseStereo;
BOOL m_bShowStats;
HRESULT (*m_fnConfirmDevice)(DDCAPS*, D3DDEVICEDESC7*);
// Overridable functions for the 3D scene created by the app
virtual HRESULT OneTimeSceneInit() { return S_OK; }
virtual HRESULT InitDeviceObjects() { return S_OK; }
virtual HRESULT DeleteDeviceObjects() { return S_OK; }
virtual HRESULT Render() { return S_OK; }
virtual HRESULT FrameMove( FLOAT ) { return S_OK; }
virtual HRESULT RestoreSurfaces() { return S_OK; }
virtual HRESULT FinalCleanup() { return S_OK; }
virtual VOID CheckKeyState() { }
// View control functions (for stereo-enabled applications)
D3DMATRIX m_matLeftView;
D3DMATRIX m_matRightView;
D3DMATRIX m_matView;
VOID SetAppLeftViewMatrix( D3DMATRIX mat ) { m_matLeftView = mat; }
VOID SetAppRightViewMatrix( D3DMATRIX mat ) { m_matRightView = mat; }
VOID SetAppViewMatrix( D3DMATRIX mat ) { m_matView = mat; }
VOID SetViewParams( D3DVECTOR* vEyePt, D3DVECTOR* vLookatPt,
D3DVECTOR* vUpVec, FLOAT fEyeDistance );
// Miscellaneous functions
VOID ShowStats();
VOID OutputText( DWORD x, DWORD y, TCHAR* str );
public:
// Functions to create, run, pause, and clean up the application
virtual HRESULT Create( HINSTANCE, TCHAR* );
virtual INT Run();
virtual LRESULT MsgProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
virtual VOID Pause( BOOL bPause );
// Class constructor
D3D_APP();
};
#endif // D3D_APP_DEF
VOID Coord_3DWorldToScreen(float *px , float *py , D3DVECTOR uV , D3DMATRIX &matProj , D3DMATRIX &matView , D3DMATRIX &matWorld);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -