X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/264f22613c68656b4e4a47b5be1eaca205eb31f1..92a93d4659f5f6f4f8be061ad55346db2e615e45:/samples/opengl/cube/cube.h?ds=inline diff --git a/samples/opengl/cube/cube.h b/samples/opengl/cube/cube.h index 1fa19dc7c9..af9e59d61f 100644 --- a/samples/opengl/cube/cube.h +++ b/samples/opengl/cube/cube.h @@ -14,14 +14,28 @@ #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 { public: MyApp() { m_glContext = NULL; } - // set the specified canvas for current output - void SetCurrent(wxGLCanvas *canvas); + // get the context we use creating it on demand (and set it as current) + TestGLContext& GetContext(wxGLCanvas *canvas); // virtual wxApp methods virtual bool OnInit(); @@ -29,29 +43,21 @@ 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 { public: MyFrame(); - // update the image shown on the canvas (after the shared wxGLContext was - // updated, presumably) - void RefreshCanvas(); - private: - void OnExit(wxCommandEvent& event); + void OnClose(wxCommandEvent& event); void OnNewWindow(wxCommandEvent& event); void OnDefRotateLeftKey(wxCommandEvent& event); void OnDefRotateRightKey(wxCommandEvent& event); - TestGLCanvas *m_canvas; - DECLARE_EVENT_TABLE() }; @@ -65,18 +71,9 @@ private: void OnSize(wxSizeEvent& event); void OnKeyDown(wxKeyEvent& event); - // 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() };