]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/opengl/isosurf/isosurf.cpp
Fixed bug #1163384. Moved the code that handles activating the cell
[wxWidgets.git] / samples / opengl / isosurf / isosurf.cpp
index 3eda7123bb9ac1c78e1b11d46fcf40de1712a7df..f6cbe36c7c3a43c56846428c3a9eafc5f5ce6934 100644 (file)
 #include "wx/wx.h"
 #endif
 
+#if !wxUSE_GLCANVAS
+    #error "OpenGL required: set wxUSE_GLCANVAS to 1 and rebuild the library"
+#endif
+
 #include "wx/timer.h"
 #include "wx/glcanvas.h"
+#include "wx/math.h"
 
-#ifdef __WXMAC__
+#if defined(__WXMAC__) || defined(__WXCOCOA__)
 #   ifdef __DARWIN__
 #       include <OpenGL/gl.h>
 #       include <OpenGL/glu.h>
@@ -49,9 +54,9 @@
 
 #include "isosurf.h"
 
-// The following part is taken largely unchanged from the original C Version
+#include "../../sample.xpm"
 
-#include <math.h>
+// The following part is taken largely unchanged from the original C Version
 
 GLboolean speed_test = GL_FALSE;
 GLboolean use_vertex_arrays = GL_FALSE;
@@ -238,7 +243,7 @@ static GLenum Args(int argc, wxChar **argv)
     return GL_TRUE;
 }
 
-// The following part was written for wxWindows 1.66
+// The following part was written for wxWidgets 1.66
 MyFrame *frame = NULL;
 
 IMPLEMENT_APP(MyApp)
@@ -249,7 +254,7 @@ bool MyApp::OnInit()
     Args(argc, argv);
 
     // Create the main frame window
-    frame = new MyFrame(NULL, wxT("wxWindows OpenGL Isosurf Sample"),
+    frame = new MyFrame(NULL, wxT("wxWidgets OpenGL Isosurf Sample"),
         wxDefaultPosition, wxDefaultSize);
 
     // Give it an icon
@@ -288,8 +293,6 @@ bool MyApp::OnInit()
         doubleBuffer = GL_FALSE;
     }
 
-#if wxUSE_GLCANVAS
-
     frame->m_canvas = new TestGLCanvas(frame, wxID_ANY, wxDefaultPosition,
         wxDefaultSize, 0, _T("TestGLCanvas"), gl_attrib );
 
@@ -302,13 +305,6 @@ bool MyApp::OnInit()
     Init();
 
     return true;
-
-#else
-
-    wxMessageBox( _T("This sample has to be compiled with wxUSE_GLCANVAS"), _T("Building error"), wxOK);
-
-    return false;
-#endif
 }
 
 BEGIN_EVENT_TABLE(MyFrame, wxFrame)
@@ -320,19 +316,13 @@ MyFrame::MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos,
     const wxSize& size, long style)
     : wxFrame(frame, wxID_ANY, title, pos, size, style)
 {
-#if wxUSE_GLCANVAS
     m_canvas = NULL;
-#endif
+    SetIcon(wxIcon(sample_xpm));
 }
 
 MyFrame::~MyFrame()
 {
-#if wxUSE_GLCANVAS
-    if (m_canvas)
-    {
-        delete m_canvas; m_canvas = NULL;
-    }
-#endif
+    delete m_canvas;
 }
 
 // Intercept menu commands
@@ -346,8 +336,6 @@ void MyFrame::OnExit( wxCommandEvent& WXUNUSED(event) )
  * TestGLCanvas implementation
  */
 
-#if wxUSE_GLCANVAS
-
 BEGIN_EVENT_TABLE(TestGLCanvas, wxGLCanvas)
     EVT_SIZE(TestGLCanvas::OnSize)
     EVT_PAINT(TestGLCanvas::OnPaint)
@@ -359,7 +347,7 @@ END_EVENT_TABLE()
 TestGLCanvas::TestGLCanvas(wxWindow *parent, wxWindowID id,
     const wxPoint& pos, const wxSize& size, long style,
     const wxString& name, int* gl_attrib)
-    : wxGLCanvas(parent, id, pos, size, style, name, gl_attrib)
+    : wxGLCanvas(parent, id, pos, size, style|wxFULL_REPAINT_ON_RESIZE, name, gl_attrib)
 {
     parent->Show(true);
     SetCurrent();
@@ -373,10 +361,6 @@ TestGLCanvas::TestGLCanvas(wxWindow *parent, wxWindowID id,
 }
 
 
-TestGLCanvas::~TestGLCanvas()
-{
-}
-
 void TestGLCanvas::OnPaint( wxPaintEvent& WXUNUSED(event) )
 {
     // This is a dummy, to avoid an endless succession of paint messages.
@@ -497,5 +481,3 @@ void TestGLCanvas::OnEraseBackground( wxEraseEvent& WXUNUSED(event) )
     // Do nothing, to avoid flashing.
 }
 
-#endif // #if wxUSE_GLCANVAS
-