return false;
// Create the main frame window
- SetTopWindow(new MyFrame(NULL, wxT("wxWidgets OpenGL Isosurf Sample")));
+ new MyFrame(NULL, wxT("wxWidgets OpenGL Isosurf Sample"));
return true;
}
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()
// 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()
{
// 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);
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);
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);
glEnable( GL_VERTEX_ARRAY );
glEnable( GL_NORMAL_ARRAY );
}
+
+ InitMaterials();
+ LoadSurface("isosurf.dat.gz");
}