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

游戏

开发平台:

Visual C++

  1. // Copyright 1996, Microsoft Systems Journal.
  2. /////////////////////////////////////////////////////////////////////////////
  3. //
  4. // COpenGLView.h : interface of the COpenGLView class
  5. //
  6. /////////////////////////////////////////////////////////////////////////////
  7. // Include the OpenGL headers
  8. #include "glgl.h"
  9. #include "glglu.h"
  10. //#include "glglaux.h"
  11. class COpenGLImage; // forward reference
  12. class COpenGLView : public CView
  13. {
  14.     friend  COpenGLImage;
  15. protected: // create from serialization only
  16. COpenGLView();
  17. DECLARE_DYNCREATE(COpenGLView)
  18. // Attributes
  19. public:
  20. CDocument* GetDocument();  // returns generic document
  21. // Operations
  22. public:
  23. private:
  24. // Overrides
  25. // ClassWizard generated virtual function overrides
  26. //{{AFX_VIRTUAL(COpenGLView)
  27. public:
  28. virtual void OnDraw(CDC* pDC);  // overridden to draw this view
  29. virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
  30. //}}AFX_VIRTUAL
  31. // Implementation
  32. public:
  33. virtual ~COpenGLView();
  34. #ifdef _DEBUG
  35. virtual void AssertValid() const;
  36. virtual void Dump(CDumpContext& dc) const;
  37. #endif
  38. protected:
  39. const char* m_ErrorString;  // holds the first wgl/OGL error found
  40. // Generated message map functions
  41. protected:
  42. //{{AFX_MSG(COpenGLView)
  43. virtual int OnCreate(LPCREATESTRUCT lpCreateStruct);
  44. virtual void OnDestroy();
  45. virtual BOOL OnEraseBkgnd(CDC* pDC);
  46. virtual void OnSize(UINT nType, int cx, int cy);
  47. virtual void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
  48. //}}AFX_MSG
  49. DECLARE_MESSAGE_MAP()
  50. // These virtual functions are the user overridable routines
  51. // Use these routines to customize COpenGLView to
  52. // your own needs.
  53. virtual BOOL SetupPixelFormat( void );
  54. // The Viewport & Frustrum Member Functions
  55. virtual BOOL SetupViewport( int cx, int cy );
  56. virtual BOOL SetupViewingFrustum( GLdouble aspect_ratio );
  57. virtual BOOL SetupViewingTransform( void );
  58. // Provide a standard animation viewpoint
  59. BOOL ViewpointOriginRotation();
  60. // The Rendering Member Functions
  61. virtual BOOL PreRenderScene( void ){ return TRUE; }
  62.   virtual void RenderStockScene( void );
  63. virtual BOOL RenderScene( void );
  64. virtual void PostRenderScene( void );
  65. // A routine that draw the three axes lines
  66. void Draw3DAxes( float start = -10.0, float finish = 10.0, int ticks = -1 );
  67. private:
  68. // Private routines
  69. void SetError( int e );
  70. BOOL InitializeOpenGL( void );
  71. void Draw3DAxesLine( float start, float finish, int axis_id, int ticks );
  72. // Private data
  73. int m_PixelFormat;
  74. HGLRC m_hRC;
  75. CDC* m_pDC;
  76. static const char* const _ErrorStrings[];
  77. };
  78. #ifndef _DEBUG  // debug version in COpenGLView.cpp
  79. inline CDocument* COpenGLView::GetDocument()
  80.    { return (CDocument*)m_pDocument; }
  81. #endif
  82. /////////////////////////////////////////////////////////////////////////////