]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/glcanvas/samples/cube/cube.cpp
no message
[wxWidgets.git] / utils / glcanvas / samples / cube / cube.cpp
index 97ec64dbf5b87f32df03e3ead82bac3fff1eca90..675cdaba73d8b2c00da617baf5af5e9adc6bc496 100644 (file)
 
 #include "cube.h"
 
-// This statement initializes the whole application and calls OnInit
-MyApp myApp;
-
-IMPLEMENT_APP(MyApp)
-
 // `Main program' equivalent, creating windows and returning main app frame
 bool MyApp::OnInit(void)
 {
@@ -57,7 +52,7 @@ bool MyApp::OnInit(void)
 
   frame->m_canvas = new TestGLCanvas(frame, -1, wxPoint(0, 0), wxSize(200, 200));
 
-  InitGL();
+//  InitGL();
 
   // Show the frame
   frame->Show(TRUE);
@@ -84,6 +79,8 @@ void MyApp::InitGL(void)
     glEnable(GL_LIGHT0);
 }
 
+IMPLEMENT_APP(MyApp)
+
 BEGIN_EVENT_TABLE(MyFrame, wxFrame)
     EVT_MENU(wxID_EXIT, MyFrame::OnExit)
 END_EVENT_TABLE()
@@ -125,6 +122,10 @@ TestGLCanvas::~TestGLCanvas(void)
 
 void TestGLCanvas::OnPaint( wxPaintEvent& event )
 {
+    // This is a dummy, to avoid an endless succession of paint messages.
+    // OnPaint handlers must always create a wxPaintDC.
+    wxPaintDC dc(this);
+
     if ( !GetContext() )
         return;
 
@@ -168,8 +169,11 @@ void TestGLCanvas::OnSize(wxSizeEvent& event)
     int width, height;
     GetClientSize(& width, & height);
 
-    if ( GetContext() )
+    if (GetContext())
+    {
+        SetCurrent();
         glViewport(0, 0, width, height);
+    }
 }
 
 void TestGLCanvas::OnEraseBackground(wxEraseEvent& event)