// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#ifdef __GNUG__
-#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 "wx/timer.h"
#include "wx/glcanvas.h"
+#include "wx/math.h"
-#ifdef __WXMAC__
+#if defined(__WXMAC__) || defined(__WXCOCOA__)
# ifdef __DARWIN__
# include <OpenGL/gl.h>
# include <OpenGL/glu.h>
#include "isosurf.h"
-// The following part is taken largely unchanged from the original C Version
+#include "../../sample.xpm"
-#include <math.h>
+// The following part is taken largely unchanged from the original C Version
GLboolean speed_test = GL_FALSE;
GLboolean use_vertex_arrays = GL_FALSE;
return GL_TRUE;
}
-// The following part was written for wxWindows 1.66
+// The following part was written for wxWidgets 1.66
MyFrame *frame = NULL;
IMPLEMENT_APP(MyApp)
Args(argc, argv);
// Create the main frame window
- frame = new MyFrame(NULL, wxT("wxWindows OpenGL Isosurf Sample"),
+ frame = new MyFrame(NULL, wxT("wxWidgets OpenGL Isosurf Sample"),
wxDefaultPosition, wxDefaultSize);
// Give it an icon
int gl_attrib[20] = { WX_GL_RGBA, WX_GL_MIN_RED, 1, WX_GL_MIN_GREEN, 1,
WX_GL_MIN_BLUE, 1, WX_GL_DEPTH_SIZE, 1,
WX_GL_DOUBLEBUFFER,
-# ifdef __WXMAC__
+# if defined(__WXMAC__) || defined(__WXCOCOA__)
GL_NONE };
# else
None };
doubleBuffer = GL_FALSE;
}
-#if wxUSE_GLCANVAS
-
frame->m_canvas = new TestGLCanvas(frame, wxID_ANY, wxDefaultPosition,
wxDefaultSize, 0, _T("TestGLCanvas"), gl_attrib );
Init();
return true;
-
-#else
-
- wxMessageBox( _T("This sample has to be compiled with wxUSE_GLCANVAS"), _T("Building error"), wxOK);
-
- return false;
-#endif
}
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
const wxSize& size, long style)
: wxFrame(frame, wxID_ANY, title, pos, size, style)
{
-#if wxUSE_GLCANVAS
m_canvas = NULL;
-#endif
+ SetIcon(wxIcon(sample_xpm));
}
MyFrame::~MyFrame()
{
-#if wxUSE_GLCANVAS
- if (m_canvas)
- {
- delete m_canvas; m_canvas = NULL;
- }
-#endif
+ delete m_canvas;
}
// Intercept menu commands
* TestGLCanvas implementation
*/
-#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, int* gl_attrib)
- : wxGLCanvas(parent, id, pos, size, style, name, gl_attrib)
+ : wxGLCanvas(parent, id, pos, size, style|wxFULL_REPAINT_ON_RESIZE, name, gl_attrib)
{
parent->Show(true);
SetCurrent();
}
-TestGLCanvas::~TestGLCanvas()
-{
-}
-
void TestGLCanvas::OnPaint( wxPaintEvent& WXUNUSED(event) )
{
// This is a dummy, to avoid an endless succession of paint messages.
// Do nothing, to avoid flashing.
}
-#endif // #if wxUSE_GLCANVAS
-