]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/opengl/cube/cube.cpp
regenerated makefiles
[wxWidgets.git] / samples / opengl / cube / cube.cpp
index 886bbe12faa7c4f08fe784effaadaf46a6c59825..cf6c3818d936de319976c57ab5d4709f0e89638f 100644 (file)
@@ -9,7 +9,7 @@
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(__APPLE__)
 #pragma implementation
 #pragma interface
 #endif
 #pragma implementation
 #pragma interface
 #endif
@@ -78,7 +78,7 @@ ScanCodeCtrl::ScanCodeCtrl( wxWindow* parent, wxWindowID id, int code,
 
 void ScanCodeCtrl::OnKeyDown( wxKeyEvent& event )
 { wxString buf;
 
 void ScanCodeCtrl::OnKeyDown( wxKeyEvent& event )
 { wxString buf;
-  buf.Printf( "0x%04x", event.KeyCode() );
+  buf.Printf( "0x%04x", event.GetKeyCode() );
   SetValue( buf );
 }
 
   SetValue( buf );
 }
 
@@ -133,20 +133,21 @@ unsigned long wxStopWatch( unsigned long *sec_base )
 {
   unsigned long secs,msec;
 
 {
   unsigned long secs,msec;
 
-#ifndef __WXMSW__        // think every unice has gettimeofday
-  struct timeval tv;
-  gettimeofday( &tv, (struct timezone *)NULL );
-  secs = tv.tv_sec;
-  msec = tv.tv_usec/1000;
-#else
+#if defined(__WXMSW__)
   struct timeb tb;
   struct timeb tb;
-
   ftime( &tb );
   ftime( &tb );
-
   secs = tb.time;
   secs = tb.time;
-
   msec = tb.millitm;
   msec = tb.millitm;
-
+#elif defined(__WXMAC__) && !defined(__DARWIN__)
+  wxLongLong tl = wxGetLocalTimeMillis();
+  secs = (unsigned long) (tl.GetValue() / 1000);
+  msec = (unsigned long) (tl.GetValue() - secs*1000);
+#else
+  // think every unice has gettimeofday
+  struct timeval tv;
+  gettimeofday( &tv, (struct timezone *)NULL );
+  secs = tv.tv_sec;
+  msec = tv.tv_usec/1000;
 #endif
 
   if( *sec_base == 0 )
 #endif
 
   if( *sec_base == 0 )
@@ -214,6 +215,11 @@ void TestGLCanvas::Render()
         m_init = TRUE;
     }
 
         m_init = TRUE;
     }
 
+    glMatrixMode(GL_PROJECTION);
+    glLoadIdentity();
+    glFrustum(-0.5F, 0.5F, -0.5F, 0.5F, 1.0F, 3.0F);
+    glMatrixMode(GL_MODELVIEW);
+
     /* clear color and depth buffers */
     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 
     /* clear color and depth buffers */
     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 
@@ -269,15 +275,18 @@ void TestGLCanvas::OnPaint( wxPaintEvent& event )
 
 void TestGLCanvas::OnSize(wxSizeEvent& event)
 {
 
 void TestGLCanvas::OnSize(wxSizeEvent& event)
 {
-    int width, height;
-    GetClientSize(& width, & height);
+    // this is also necessary to update the context on some platforms
+    wxGLCanvas::OnSize(event);
 
 
+    // set GL viewport (not called by wxGLCanvas::OnSize on all platforms...)
+    int w, h;
+    GetClientSize(&w, &h);
 #ifndef __WXMOTIF__
     if (GetContext())
 #endif
     {
         SetCurrent();
 #ifndef __WXMOTIF__
     if (GetContext())
 #endif
     {
         SetCurrent();
-        glViewport(0, 0, width, height);
+        glViewport(0, 0, (GLint) w, (GLint) h);
     }
 }
 
     }
 }
 
@@ -348,7 +357,7 @@ void TestGLCanvas::Action( long code, unsigned long lasttime,
 
 void TestGLCanvas::OnKeyDown( wxKeyEvent& event )
 {
 
 void TestGLCanvas::OnKeyDown( wxKeyEvent& event )
 {
-    long evkey = event.KeyCode();
+    long evkey = event.GetKeyCode();
     if (evkey == 0) return;
 
     if (!m_TimeInitialized)
     if (evkey == 0) return;
 
     if (!m_TimeInitialized)
@@ -375,7 +384,11 @@ void TestGLCanvas::OnKeyDown( wxKeyEvent& event )
     {
         Action( m_Key, m_LastTime-m_StartTime, currTime-m_StartTime );
 
     {
         Action( m_Key, m_LastTime-m_StartTime, currTime-m_StartTime );
 
+#if defined(__WXMAC__) && !defined(__DARWIN__)
+        m_LastRedraw = currTime;    // wxStopWatch() doesn't work on Mac...
+#else
         m_LastRedraw = wxStopWatch(&m_secbase) - m_gsynct;
         m_LastRedraw = wxStopWatch(&m_secbase) - m_gsynct;
+#endif
         m_LastTime = currTime;
     }
 
         m_LastTime = currTime;
     }
 
@@ -452,7 +465,7 @@ void MyFrame::OnNewWindow(wxCommandEvent& event)
   frame->SetMenuBar(menuBar);
 
   frame->m_canvas = new TestGLCanvas( frame, *m_canvas, -1,
   frame->SetMenuBar(menuBar);
 
   frame->m_canvas = new TestGLCanvas( frame, *m_canvas, -1,
-               wxPoint(0, 0), wxSize(200, 200) );
+               wxDefaultPosition, wxDefaultSize );
 
   // Show the frame
   frame->Show(TRUE);
 
   // Show the frame
   frame->Show(TRUE);
@@ -508,7 +521,7 @@ bool MyApp::OnInit(void)
 
   frame->SetMenuBar(menuBar);
 
 
   frame->SetMenuBar(menuBar);
 
-  frame->m_canvas = new TestGLCanvas(frame, -1, wxPoint(0, 0), wxSize(200, 200));
+  frame->m_canvas = new TestGLCanvas(frame, -1, wxDefaultPosition, wxDefaultSize);
 
   // Show the frame
   frame->Show(TRUE);
 
   // Show the frame
   frame->Show(TRUE);