www.pudn.com > terrain.rar > COpenGLView.h


 
 
///////////////////////////////////////////////////////////////////////////// 
// 
// COpenGLView.h : interface of the COpenGLView class 
// 
///////////////////////////////////////////////////////////////////////////// 
 
// Include the OpenGL headers 
#include "gl\gl.h" 
#include "gl\glu.h" 
//#include "gl\glaux.h" 
 
class COpenGLImage; // forward reference 
 
class COpenGLView : public CView 
{ 
    friend  COpenGLImage; 
 
protected: // create from serialization only 
	COpenGLView(); 
	DECLARE_DYNCREATE(COpenGLView) 
 
// Attributes 
public: 
	CDocument* GetDocument();  // returns generic document 
 
// Operations 
public: 
private: 
// Overrides 
	// ClassWizard generated virtual function overrides 
	//{{AFX_VIRTUAL(COpenGLView) 
	public: 
	virtual void OnDraw(CDC* pDC);  // overridden to draw this view 
	virtual BOOL PreCreateWindow(CREATESTRUCT& cs); 
	//}}AFX_VIRTUAL 
 
// Implementation 
public: 
	virtual ~COpenGLView(); 
#ifdef _DEBUG 
	virtual void AssertValid() const; 
	virtual void Dump(CDumpContext& dc) const; 
#endif 
 
protected: 
 
	const char*	m_ErrorString;  // holds the first wgl/OGL error found 
 
// Generated message map functions 
protected: 
	//{{AFX_MSG(COpenGLView) 
	virtual int OnCreate(LPCREATESTRUCT lpCreateStruct); 
	virtual void OnDestroy(); 
	virtual BOOL OnEraseBkgnd(CDC* pDC); 
	virtual void OnSize(UINT nType, int cx, int cy); 
	virtual void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags); 
	//}}AFX_MSG 
	DECLARE_MESSAGE_MAP() 
 
 
 
	virtual BOOL SetupPixelFormat( void ); 
 
	// The Viewport & Frustrum Member Functions 
	virtual BOOL SetupViewport( int cx, int cy ); 
	virtual BOOL SetupViewingFrustum( GLdouble aspect_ratio ); 
	virtual BOOL SetupViewingTransform( void ); 
 
	// Provide a standard animation viewpoint 
	BOOL	ViewpointOriginRotation(); 
 
	// The Rendering Member Functions 
	virtual BOOL PreRenderScene( void ){ return TRUE; } 
 	virtual void RenderStockScene( void ); 
	virtual BOOL RenderScene( void ); 
	virtual void PostRenderScene( void ); 
 
	// A routine that draw the three axes lines 
	void	Draw3DAxes( float start = -10.0, float finish = 10.0, int ticks = -1 ); 
 
private: 
 
	// Private routines 
 
	void	SetError( int e ); 
	BOOL	InitializeOpenGL( void ); 
	void	Draw3DAxesLine( float start, float finish,	int axis_id, int ticks ); 
	// Private data 
 
	int		m_PixelFormat; 
	HGLRC	m_hRC; 
	CDC*	m_pDC; 
 
	static const char* const _ErrorStrings[]; 
}; 
 
#ifndef _DEBUG  // debug version in COpenGLView.cpp 
inline CDocument* COpenGLView::GetDocument() 
   { return (CDocument*)m_pDocument; } 
#endif 
 
/////////////////////////////////////////////////////////////////////////////