⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 d3d_app.h

📁 大家好!这是一个网络游戏源码
💻 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 + -