00001 #pragma once
00002
00003 #ifdef ENABLE_OPENGL
00004
00005
00006 #include "GlBaseClass.h"
00007
00008 #include <gl/glew.h>
00009 #include <gl/glut.h>
00010 #include <gl/glext.h>
00011 #include <gl/wglew.h>
00012
00013
00014
00015 typedef void (*GL_PPROC_VIEW_FUNC)(void);
00016
00017
00018
00019 namespace jbxwl {
00020
00021
00022 class CGlProcView : public CGlBaseView
00023 {
00024 DECLARE_DYNCREATE(CGlProcView)
00025
00026 protected:
00027 CGlProcView();
00028 virtual ~CGlProcView();
00029
00030 public:
00031
00032
00033 GL_PPROC_VIEW_FUNC initFunc;
00034 GL_PPROC_VIEW_FUNC dispFunc;
00035 GL_PPROC_VIEW_FUNC postFunc;
00036
00037 void SetInitFunc(GL_PPROC_VIEW_FUNC func) { initFunc = func;}
00038 void SetDispFunc(GL_PPROC_VIEW_FUNC func) { dispFunc = func;}
00039 void SetPostFunc(GL_PPROC_VIEW_FUNC func) { postFunc = func;}
00040
00041
00042 public:
00043
00044 virtual void SetState(void) {}
00045 virtual void InitObject(void) { SetState();}
00046 virtual void ExecRender(void);
00047 virtual void OnDraw(CDC* pDC) { CGlBaseView::OnDraw(pDC);}
00048
00049
00050
00051
00052 public:
00053 virtual void OnInitialUpdate();
00054
00055
00056 #ifdef _DEBUG
00057 virtual void AssertValid() const;
00058 #ifndef _WIN32_WCE
00059 virtual void Dump(CDumpContext& dc) const;
00060 #endif
00061 #endif
00062
00063 protected:
00064
00065 DECLARE_MESSAGE_MAP()
00066 public:
00067 afx_msg void OnSize(UINT nType, int cx, int cy);
00068 afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
00069 afx_msg void OnDestroy();
00070 };
00071
00072
00073 }
00074
00075
00076 #endif // ENABLE_OPENGL
00077