MYLODVIEW.H
上传用户:hjbgzhh
上传日期:2013-03-07
资源大小:295k
文件大小:3k
源码类别:

3D图形编程

开发平台:

Visual C++

  1. // MyLODView.h : interface of the CMyLODView class
  2. //
  3. /////////////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_MYSDOPENGLVIEW_H__75C5AAEC_37B0_4A8B_9132_9A0C663F6DDC__INCLUDED_)
  5. #define AFX_MYSDOPENGLVIEW_H__75C5AAEC_37B0_4A8B_9132_9A0C663F6DDC__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #include "LandTex.h"
  10. #include "Lod.h"
  11. class CMyLODView : public CView
  12. {
  13. protected: // create from serialization only
  14. CMyLODView();
  15. DECLARE_DYNCREATE(CMyLODView)
  16. // Attributes
  17. public:
  18. CMyLODDoc* GetDocument();
  19. // Operations
  20. public:
  21. // Overrides
  22. // ClassWizard generated virtual function overrides
  23. //{{AFX_VIRTUAL(CMyLODView)
  24. public:
  25. virtual void OnDraw(CDC* pDC);  // overridden to draw this view
  26. virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
  27. protected:
  28. virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
  29. virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
  30. virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
  31. //}}AFX_VIRTUAL
  32. // Implementation
  33. public:
  34. virtual ~CMyLODView();
  35. /////////////////////////////////////////////////////////////////
  36. //添加成员函数与成员变量
  37. BOOL RenderScene();
  38. BOOL SetupPixelFormat(void);
  39. void SetLogicalPalette(void);
  40. BOOL InitializeOpenGL(CDC* pDC);
  41. HGLRC m_hRC; //OpenGL绘制描述表
  42. HPALETTE m_hPalette; //OpenGL调色板
  43. CDC*     m_pDC; //OpenGL设备描述表
  44. /////////////////////////////////////////////////////////////////
  45. void Init(void);
  46. void initTerrain(void);
  47. void randomTerrain(void);
  48. void update_world(void);
  49. void move(int type, GLfloat amount, int update);
  50. void check_height(void);
  51. void colorTerrain(void);
  52. CLod  m_Lod;
  53. CBMPLoad m_Bmpload;
  54. int winWidth ;  
  55. int winHeight ;
  56. int bilinear_filtering ;
  57. int wireframe_mode ;
  58. int flying_mode ;
  59. int detail_texture_mode ;
  60. GLuint texName[100];
  61. GLfloat xpos, ypos, zpos; 
  62. GLfloat lookx, looky, lookz; // 当前的视觉方向
  63. GLint mapX , mapZ ; 
  64. GLfloat speed ; // 当前的运动速度
  65. float sin_t[256];
  66. float cos_t[256];
  67. TEXTURE *detail_texture;
  68. GLfloat timer , wTimer ;
  69. #ifdef _DEBUG
  70. virtual void AssertValid() const;
  71. virtual void Dump(CDumpContext& dc) const;
  72. #endif
  73. protected:
  74. // Generated message map functions
  75. protected:
  76. //{{AFX_MSG(CMyLODView)
  77. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  78. afx_msg void OnDestroy();
  79. afx_msg void OnSize(UINT nType, int cx, int cy);
  80. afx_msg void OnTimer(UINT nIDEvent);
  81. afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
  82. //}}AFX_MSG
  83. DECLARE_MESSAGE_MAP()
  84. };
  85. #ifndef _DEBUG  // debug version in MyLODView.cpp
  86. inline CMyLODDoc* CMyLODView::GetDocument()
  87.    { return (CMyLODDoc*)m_pDocument; }
  88. #endif
  89. /////////////////////////////////////////////////////////////////////////////
  90. //{{AFX_INSERT_LOCATION}}
  91. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  92. #endif // !defined(AFX_MYSDOPENGLVIEW_H__75C5AAEC_37B0_4A8B_9132_9A0C663F6DDC__INCLUDED_)