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;
}
// Make a menubar
wxMenu *fileMenu = new wxMenu;
- fileMenu->Append(wxID_EXIT, _T("E&xit"));
+ fileMenu->Append(wxID_EXIT, wxT("E&xit"));
wxMenuBar *menuBar = new wxMenuBar;
- menuBar->Append(fileMenu, _T("&File"));
+ menuBar->Append(fileMenu, wxT("&File"));
SetMenuBar(menuBar);
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);
delete stream;
- wxLogMessage(_T("Loaded %d vertices, %d triangles from '%s'"),
+ wxLogMessage(wxT("Loaded %d vertices, %d triangles from '%s'"),
m_numverts, m_numverts-2, filename.c_str());
-
+
// NOTE: for some reason under wxGTK the following is required to avoid that
// the surface gets rendered in a small rectangle in the top-left corner of the frame
PostSizeEventToParent();
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");
}