X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2db98bf520c835c29a9002dcf93adc11b15a76df..e0dec8753abaf97e006ea1185bfb6775b28df0a8:/samples/opengl/isosurf/isosurf.h diff --git a/samples/opengl/isosurf/isosurf.h b/samples/opengl/isosurf/isosurf.h index a3dba1907a..75e6c48d52 100644 --- a/samples/opengl/isosurf/isosurf.h +++ b/samples/opengl/isosurf/isosurf.h @@ -12,45 +12,89 @@ #ifndef _WX_ISOSURF_H_ #define _WX_ISOSURF_H_ +// we need OpenGL headers for GLfloat/GLint types used below +#if defined(__WXMAC__) || defined(__WXCOCOA__) +# ifdef __DARWIN__ +# include +# include +# else +# include +# include +# endif +#else +# include +# include +#endif + +// the maximum number of vertex in the loaded .dat file +#define MAXVERTS 10000 + + // Define a new application type -class MyApp: public wxApp -{ public: - bool OnInit(void); +class MyApp : public wxApp +{ +public: + virtual bool OnInit(); + + virtual void OnInitCmdLine(wxCmdLineParser& parser); + virtual bool OnCmdLineParsed(wxCmdLineParser& parser); }; -#if wxUSE_GLCANVAS -class TestGLCanvas: public wxGLCanvas + +// The OpenGL-enabled canvas +class TestGLCanvas : public wxGLCanvas { - public: - TestGLCanvas(wxWindow *parent, const wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, const wxString& name = _T("TestGLCanvas"), - int* gl_attrib = NULL); - ~TestGLCanvas(void); - - void OnPaint(wxPaintEvent& event); - void OnSize(wxSizeEvent& event); - void OnEraseBackground(wxEraseEvent& event); - void OnChar(wxKeyEvent& event); - void OnMouseEvent(wxMouseEvent& event); - -DECLARE_EVENT_TABLE() +public: + TestGLCanvas(wxWindow *parent, + wxWindowID id = wxID_ANY, + int *gl_attrib = NULL); + + virtual ~TestGLCanvas(); + + void OnPaint(wxPaintEvent& event); + void OnSize(wxSizeEvent& event); + void OnChar(wxKeyEvent& event); + void OnMouseEvent(wxMouseEvent& event); + + void LoadSurface(const wxString& filename); + void InitMaterials(); + void InitGL(); + +private: + wxGLContext* m_glRC; + + GLfloat m_verts[MAXVERTS][3]; + GLfloat m_norms[MAXVERTS][3]; + GLint m_numverts; + + GLfloat m_xrot; + GLfloat m_yrot; + + wxDECLARE_NO_COPY_CLASS(TestGLCanvas); + DECLARE_EVENT_TABLE() }; -#endif -class MyFrame: public wxFrame + +// The frame containing the GL canvas +class MyFrame : public wxFrame { public: - MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos, const wxSize& size, - long style = wxDEFAULT_FRAME_STYLE); + MyFrame(wxFrame *frame, + const wxString& title, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxDEFAULT_FRAME_STYLE); + virtual ~MyFrame(); + + TestGLCanvas *m_canvas; + +private : void OnExit(wxCommandEvent& event); -public: -#if wxUSE_GLCANVAS - TestGLCanvas* m_canvas; -#endif -DECLARE_EVENT_TABLE() + DECLARE_EVENT_TABLE() }; -#endif + +#endif // _WX_ISOSURF_H_