]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/opengl/isosurf/isosurf.cpp
Disable some wxWebView tests that fail on the buildbot but not locally.
[wxWidgets.git] / samples / opengl / isosurf / isosurf.cpp
index a2ea654f916d98f1d7f5fcec5c4d304480a224d1..66cc2a31c4c99a722577b7221538e77921ef1b1e 100644 (file)
@@ -57,7 +57,7 @@ bool MyApp::OnInit()
         return false;
 
     // Create the main frame window
-    MyFrame *frame = new MyFrame(NULL, wxT("wxWidgets OpenGL Isosurf Sample"));
+    new MyFrame(NULL, wxT("wxWidgets OpenGL Isosurf Sample"));
 
     return true;
 }
@@ -136,10 +136,13 @@ MyFrame::MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos,
         g_doubleBuffer = GL_FALSE;
     }
 
+    m_canvas = new TestGLCanvas(this, wxID_ANY, gl_attrib);
+
     // Show the frame
     Show(true);
+    Raise();
 
-    m_canvas = new TestGLCanvas(this, wxID_ANY, gl_attrib);
+    m_canvas->InitGL();
 }
 
 MyFrame::~MyFrame()
@@ -177,13 +180,6 @@ TestGLCanvas::TestGLCanvas(wxWindow *parent,
 
     // Explicitly create a new rendering context instance for this canvas.
     m_glRC = new wxGLContext(this);
-
-    // Make the new context current (activate it for use) with this canvas.
-    SetCurrent(*m_glRC);
-
-    InitGL();
-    InitMaterials();
-    LoadSurface("isosurf.dat.gz");
 }
 
 TestGLCanvas::~TestGLCanvas()
@@ -210,7 +206,7 @@ void TestGLCanvas::LoadSurface(const wxString& filename)
 
     {
         // we suppose to have in input a text file containing floating numbers
-        // space/newline-separed... first 3 numbers are the coordinates of a
+        // space/newline-separated... first 3 numbers are the coordinates of a
         // vertex and the following 3 are the relative vertex normal and so on...
 
         wxTextInputStream inFile(*stream);
@@ -279,6 +275,8 @@ void TestGLCanvas::OnPaint( wxPaintEvent& WXUNUSED(event) )
 
 void TestGLCanvas::OnSize(wxSizeEvent& event)
 {
+    if ( !IsShownOnScreen() )
+        return;
     // This is normally only necessary if there is more than one wxGLCanvas
     // or more than one wxGLContext in the application.
     SetCurrent(*m_glRC);
@@ -406,6 +404,9 @@ void TestGLCanvas::InitMaterials()
 
 void TestGLCanvas::InitGL()
 {
+    // Make the new context current (activate it for use) with this canvas.
+    SetCurrent(*m_glRC);
+
     glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
 
     glShadeModel(GL_SMOOTH);
@@ -428,5 +429,8 @@ void TestGLCanvas::InitGL()
         glEnable( GL_VERTEX_ARRAY );
         glEnable( GL_NORMAL_ARRAY );
     }
+
+    InitMaterials();
+    LoadSurface("isosurf.dat.gz");
 }