EVT_KEY_DOWN(TestGLCanvas::OnKeyDown)
END_EVENT_TABLE()
-static /* const */ int attribs[] = { WX_GL_RGBA, WX_GL_DOUBLEBUFFER, 0 };
+static const int attribs[] = { WX_GL_RGBA, WX_GL_DOUBLEBUFFER, 0 };
TestGLCanvas::TestGLCanvas(wxWindow *parent)
- : wxGLCanvas(parent, wxID_ANY, attribs)
+ : wxGLCanvas(parent, wxID_ANY, NULL /* attribs */)
{
m_gllist = 0;
// this function is called on each repaint so it should be fast
void TestGLCanvas::Render()
{
- wxGetApp().SetCurrent(this);
-
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glCallList(m_gllist);
void TestGLCanvas::OnPaint(wxPaintEvent& WXUNUSED(event))
{
+ wxGetApp().SetCurrent(this);
+
// initialize if not done yet
InitGL();
if ( IsInitialized() )
return;
- wxGetApp().SetCurrent(this);
-
/* set viewing projection */
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
// ----------------------------------------------------------------------------
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
- EVT_MENU(wxID_EXIT, MyFrame::OnExit)
EVT_MENU(wxID_NEW, MyFrame::OnNewWindow)
+ EVT_MENU(wxID_CLOSE, MyFrame::OnClose)
END_EVENT_TABLE()
MyFrame::MyFrame()
SetIcon(wxICON(sample));
// Make a menubar
- wxMenu *winMenu = new wxMenu;
- winMenu->Append(wxID_EXIT, _T("&Close"));
- winMenu->Append(wxID_NEW, _T("&New") );
+ wxMenu *menu = new wxMenu;
+ menu->Append(wxID_NEW);
+ menu->AppendSeparator();
+ menu->Append(wxID_CLOSE);
wxMenuBar *menuBar = new wxMenuBar;
- menuBar->Append(winMenu, _T("&Window"));
+ menuBar->Append(menu, _T("&Cube"));
SetMenuBar(menuBar);
+ CreateStatusBar();
+
Show();
}
-void MyFrame::OnExit( wxCommandEvent& WXUNUSED(event) )
+void MyFrame::OnClose(wxCommandEvent& WXUNUSED(event))
{
// true is to force the frame to close
Close(true);