// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#if defined(__GNUG__) && !defined(__APPLE__)
-#pragma implementation
-#pragma interface
-#endif
-
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#include "wx/wx.h"
#endif
+#if !wxUSE_GLCANVAS
+ #error "OpenGL required: set wxUSE_GLCANVAS to 1 and rebuild the library"
+#endif
+
#include "cube.h"
+#include "../../sample.xpm"
-#ifndef __WXMSW__ // for wxStopWatch, see remark below
+#ifndef __WXMSW__ // for StopWatch, see remark below
#if defined(__WXMAC__) && !defined(__DARWIN__)
#include <utime.h>
#include <unistd.h>
private:
- // Any class wishing to process wxWindows events must use this macro
+ // Any class wishing to process wxWidgets events must use this macro
DECLARE_EVENT_TABLE()
};
in time (in sec) (because current version of wxGetElapsedTime doesn´t
works right with glibc-2.1 and linux, at least for me)
-----------------------------------------------------------------------*/
-unsigned long wxStopWatch( unsigned long *sec_base )
+unsigned long StopWatch( unsigned long *sec_base )
{
unsigned long secs,msec;
Implementation of Test-GLCanvas
-----------------------------------------------------------------*/
-#if wxUSE_GLCANVAS
-
BEGIN_EVENT_TABLE(TestGLCanvas, wxGLCanvas)
EVT_SIZE(TestGLCanvas::OnSize)
EVT_PAINT(TestGLCanvas::OnPaint)
TestGLCanvas::TestGLCanvas(wxWindow *parent, wxWindowID id,
const wxPoint& pos, const wxSize& size, long style, const wxString& name)
- : wxGLCanvas(parent, (wxGLCanvas*) NULL, id, pos, size, style, name )
+ : wxGLCanvas(parent, (wxGLCanvas*) NULL, id, pos, size, style|wxFULL_REPAINT_ON_RESIZE , name )
{
m_init = false;
m_gllist = 0;
m_rright = WXK_RIGHT;
}
-TestGLCanvas::TestGLCanvas(wxWindow *parent, const TestGLCanvas &other,
+TestGLCanvas::TestGLCanvas(wxWindow *parent, const TestGLCanvas *other,
wxWindowID id, const wxPoint& pos, const wxSize& size, long style,
const wxString& name )
- : wxGLCanvas(parent, other.GetContext(), id, pos, size, style, name)
+ : wxGLCanvas(parent, other->GetContext(), id, pos, size, style|wxFULL_REPAINT_ON_RESIZE , name)
{
m_init = false;
- m_gllist = other.m_gllist; // share display list
+ m_gllist = other->m_gllist; // share display list
m_rleft = WXK_LEFT;
m_rright = WXK_RIGHT;
}
if (!m_TimeInitialized)
{
m_TimeInitialized = 1;
- m_xsynct = event.m_timeStamp;
- m_gsynct = wxStopWatch(&m_secbase);
+ m_xsynct = event.GetTimestamp();
+ m_gsynct = StopWatch(&m_secbase);
m_Key = evkey;
m_StartTime = 0;
m_LastRedraw = 0;
}
- unsigned long currTime = event.m_timeStamp - m_xsynct;
+ unsigned long currTime = event.GetTimestamp() - m_xsynct;
if (evkey != m_Key)
{
Action( m_Key, m_LastTime-m_StartTime, currTime-m_StartTime );
#if defined(__WXMAC__) && !defined(__DARWIN__)
- m_LastRedraw = currTime; // wxStopWatch() doesn't work on Mac...
+ m_LastRedraw = currTime; // StopWatch() doesn't work on Mac...
#else
- m_LastRedraw = wxStopWatch(&m_secbase) - m_gsynct;
+ m_LastRedraw = StopWatch(&m_secbase) - m_gsynct;
#endif
m_LastTime = currTime;
}
}
-#endif // wxUSE_GLCANVAS
-
/* -----------------------------------------------------------------------
Main Window
-------------------------------------------------------------------------*/
: wxFrame(parent, wxID_ANY, title, pos, size, style)
{
m_canvas = NULL;
+ SetIcon(wxIcon(sample_xpm));
}
// Intercept menu commands
/*static*/ MyFrame *MyFrame::Create(MyFrame *parentFrame, bool isCloneWindow)
{
- wxString str = wxT("wxWindows OpenGL Cube Sample");
+ wxString str = wxT("wxWidgets OpenGL Cube Sample");
if (isCloneWindow) str += wxT(" - Clone");
MyFrame *frame = new MyFrame(NULL, str, wxDefaultPosition,
wxSize(400, 300));
- // Give it an icon
-#ifdef __WXMSW__
- frame->SetIcon(wxIcon(_T("mondrian")));
-#endif
-
// Make a menubar
wxMenu *winMenu = new wxMenu;
frame->SetMenuBar(menuBar);
-#if wxUSE_GLCANVAS
if (parentFrame)
{
frame->m_canvas = new TestGLCanvas( frame, parentFrame->m_canvas,
frame->m_canvas = new TestGLCanvas(frame, wxID_ANY,
wxDefaultPosition, wxDefaultSize);
}
-#endif
// Show the frame
frame->Show(true);
void MyFrame::OnDefRotateLeftKey( wxCommandEvent& WXUNUSED(event) )
{
-#if wxUSE_GLCANVAS
ScanCodeDialog dial( this, wxID_ANY, m_canvas->m_rleft,
wxString(_T("Left")), _T("Define key") );
if( result == wxID_OK )
m_canvas->m_rleft = dial.GetValue();
-#endif
}
void MyFrame::OnDefRotateRightKey( wxCommandEvent& WXUNUSED(event) )
{
-#if wxUSE_GLCANVAS
ScanCodeDialog dial( this, wxID_ANY, m_canvas->m_rright,
wxString(_T("Right")), _T("Define key") );
if( result == wxID_OK )
m_canvas->m_rright = dial.GetValue();
-#endif
}
/*------------------------------------------------------------------
bool MyApp::OnInit()
{
-#if wxUSE_LOG
- wxLog::SetTraceMask(wxTraceMessages);
-#endif
+ if ( !wxApp::OnInit() )
+ return false;
// Create the main frame window
(void) MyFrame::Create(NULL);
-#if wxUSE_GLCANVAS
-
return true;
-
-#else
-
- wxMessageBox( _T("This sample has to be compiled with wxUSE_GLCANVAS"),
- _T("Building error"), wxOK);
-
- return false;
-
-#endif
-
}