X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b94d29a7a10638783fc7092d33af6315bb7c3e59..fcc9ca7f72b92d6b0a4eabe72f205d54480df72e:/samples/opengl/cube/cube.h diff --git a/samples/opengl/cube/cube.h b/samples/opengl/cube/cube.h index 56e6899fc7..36769b884f 100644 --- a/samples/opengl/cube/cube.h +++ b/samples/opengl/cube/cube.h @@ -14,14 +14,29 @@ #include "wx/glcanvas.h" +// the rendering context used by all GL canvases +class TestGLContext : public wxGLContext +{ +public: + TestGLContext(wxGLCanvas *canvas); + + // render the cube showing it at given angles + void DrawRotatedCube(float xangle, float yangle); + +private: + // textures for the cube faces + GLuint m_textures[6]; +}; + // Define a new application type -class MyApp: public wxApp +class MyApp : public wxApp { public: MyApp() { m_glContext = NULL; } - // set the specified canvas for current output - void SetCurrent(wxGLCanvas *canvas); + // Returns the shared context used by all frames and sets it as current for + // the given canvas. + TestGLContext& GetContext(wxGLCanvas *canvas); // virtual wxApp methods virtual bool OnInit(); @@ -29,24 +44,18 @@ public: private: // the GL context we use for all our windows - wxGLContext *m_glContext; + TestGLContext *m_glContext; }; // Define a new frame type -class TestGLCanvas; - -class MyFrame: public wxFrame +class MyFrame : public wxFrame { public: MyFrame(); - void OnExit(wxCommandEvent& event); - void OnNewWindow(wxCommandEvent& event); - void OnDefRotateLeftKey(wxCommandEvent& event); - void OnDefRotateRightKey(wxCommandEvent& event); - private: - TestGLCanvas *m_canvas; + void OnClose(wxCommandEvent& event); + void OnNewWindow(wxCommandEvent& event); DECLARE_EVENT_TABLE() }; @@ -56,26 +65,15 @@ class TestGLCanvas : public wxGLCanvas public: TestGLCanvas(wxWindow *parent); +private: void OnPaint(wxPaintEvent& event); - void OnSize(wxSizeEvent& event); void OnKeyDown(wxKeyEvent& event); -private: - // OpenGL calls can't be done until we're initialized - bool IsInitialized() const { return m_gllist != 0; } - - // one-time OpenGL initialization, only does something if !IsInitialized() - void InitGL(); - - // render to window - void Render(); - - - // the list of commands to draw the cube - GLuint m_gllist; + // angles of rotation around x- and y- axis + float m_xangle, + m_yangle; DECLARE_EVENT_TABLE() }; #endif // _WX_CUBE_H_ -