3DDrawManager.h
上传用户:sycq158
上传日期:2008-10-22
资源大小:15361k
文件大小:2k
源码类别:

游戏

开发平台:

Visual C++

  1. //-----------------------------------------------------------------------------
  2. // File: 3DDrawManager.h
  3. //
  4. // Desc: 3D draw manager.  This is a helper class to draw lines or spheres
  5. //       in the world primary used to debug the physics engine
  6. //
  7. // Copyright (C) Microsoft Corporation. All Rights Reserved.
  8. //-----------------------------------------------------------------------------
  9. #pragma once
  10. #define MAX_POINTS 500
  11. #define MAX_LINES  500
  12. //-----------------------------------------------------------------------------
  13. // Name: class C3DDrawManager
  14. // Desc: 
  15. //-----------------------------------------------------------------------------
  16. class C3DDrawManager
  17. {
  18. private:
  19.     struct DRAW_LINE_VERTEX
  20.     {
  21.         D3DXVECTOR3 p;
  22.         DWORD c;
  23.     };
  24.     #define DRAW_LINE_FVF (D3DFVF_XYZ|D3DFVF_DIFFUSE)
  25.     struct DRAW_POINT
  26.     {
  27.         D3DXVECTOR3 vPos;
  28.         float       fSize;        
  29.         DWORD       dwColor;
  30.         DWORD       dwID;
  31.         bool        bValid;
  32.         bool        bInvalidateEveryFrame;
  33.     };
  34.     struct DRAW_LINE
  35.     {
  36.         D3DXVECTOR3 vPosFrom;
  37.         D3DXVECTOR3 vPosTo;
  38.         DWORD       dwColor;
  39.         DWORD       dwID;
  40.         bool        bValid;
  41.         bool        bInvalidateEveryFrame;
  42.     };
  43. public:
  44.     C3DDrawManager(void);
  45.     ~C3DDrawManager(void);
  46.     HRESULT OneTimeSceneInit();
  47.     HRESULT InitDeviceObjects();
  48.     HRESULT RestoreDeviceObjects();
  49.     HRESULT FrameMove( const float fElapsedTime );
  50.     HRESULT Render();
  51.     HRESULT InvalidateDeviceObjects();
  52.     HRESULT DeleteDeviceObjects();
  53.     VOID    FinalCleanup();
  54.     HRESULT AddPoint( D3DXVECTOR3 vPos, float fSize = 1.0f, DWORD dwColor = 0xFFFFFFFF, DWORD dwID = 0, bool bInvalidateEveryFrame = true );
  55.     HRESULT AddLine( D3DXVECTOR3 vPosFrom, D3DXVECTOR3 vPosTo, DWORD dwColor = 0xFFFFFFFF, DWORD dwID = 0, bool bInvalidateEveryFrame = true );
  56.     HRESULT InvalidatePoints( DWORD dwID );
  57.     HRESULT InvalidateLines( DWORD dwID );
  58. public:
  59.     DRAW_POINT m_aPtList[MAX_POINTS];
  60.     DRAW_LINE  m_aLineList[MAX_LINES];
  61. LPDIRECT3DVERTEXBUFFER9 m_pLineVB;
  62.     DWORD      m_dwNumLines;
  63.     ID3DXMesh* m_pSphere;
  64. };