#define VIEW_ASPECT 1.3
/* `Main program' equivalent, creating windows and returning main app frame */
-bool MyApp::OnInit(void)
+bool MyApp::OnInit()
{
/* Create the main frame window */
- MyFrame *frame = new MyFrame(NULL, "wxWindows OpenGL Demo", wxPoint(50, 50), wxSize(400, 300));
+ MyFrame *frame = new MyFrame(NULL, wxT("wxWindows OpenGL Demo"), wxPoint(50, 50), wxSize(400, 300));
/* Make a menubar */
wxMenu *fileMenu = new wxMenu;
- fileMenu->Append(wxID_EXIT, "E&xit");
+ fileMenu->Append(wxID_EXIT, wxT("E&xit"));
wxMenuBar *menuBar = new wxMenuBar;
- menuBar->Append(fileMenu, "&File");
+ menuBar->Append(fileMenu, wxT("&File"));
frame->SetMenuBar(menuBar);
- frame->m_canvas = new TestGLCanvas(frame, -1, wxPoint(0, 0), wxSize(200, 200), wxSUNKEN_BORDER);
+ frame->SetCanvas( new TestGLCanvas(frame, -1, wxPoint(0, 0), wxSize(200, 200), wxSUNKEN_BORDER) );
/* Load file wiht mesh data */
- frame->m_canvas->LoadLWO( "penguin.lwo" );
+ frame->GetCanvas()->LoadLWO( wxT("penguin.lwo") );
/* Show the frame */
frame->Show(TRUE);
void TestGLCanvas::LoadLWO(const wxString &filename)
{
/* test if lightwave object */
- if (!lw_is_lwobject(filename)) return;
+ if (!lw_is_lwobject(filename.mb_str())) return;
/* read lightwave object */
- lwObject *lwobject = lw_object_read(filename);
+ lwObject *lwobject = lw_object_read(filename.mb_str());
/* scale */
lw_object_scale(lwobject, 10.0 / lw_object_radius(lwobject));
typedef struct
{
// gint do_init; /* true if initgl not yet called */
- int do_init;
- lwObject *lwobject; /* lightwave object mesh */
- float beginx,beginy; /* position of mouse */
- float quat[4]; /* orientation of object */
- float zoom; /* field of view in degrees */
+ int do_init;
+ lwObject *lwobject; /* lightwave object mesh */
+ float beginx,beginy; /* position of mouse */
+ float quat[4]; /* orientation of object */
+ float zoom; /* field of view in degrees */
} mesh_info;
/* Define a new frame type */
class TestGLCanvas;
+
class MyFrame: public wxFrame
{
public:
long style = wxDEFAULT_FRAME_STYLE);
void OnExit(wxCommandEvent& event);
-public:
+
+ void SetCanvas( TestGLCanvas *canvas ) { m_canvas = canvas; }
+ TestGLCanvas *GetCanvas() { return m_canvas; }
+
+private:
TestGLCanvas* m_canvas;
-DECLARE_EVENT_TABLE()
+ DECLARE_EVENT_TABLE()
};
class TestGLCanvas: public wxGLCanvas
{
- public:
- TestGLCanvas(wxWindow *parent, const wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize, long style = 0, const wxString& name = "TestGLCanvas");
- ~TestGLCanvas(void);
-
- void OnPaint(wxPaintEvent& event);
- void OnSize(wxSizeEvent& event);
- void OnEraseBackground(wxEraseEvent& event);
- void LoadLWO( const wxString &filename);
- void OnMouse( wxMouseEvent& event );
- void InitGL(void);
+public:
+ TestGLCanvas(wxWindow *parent, const wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize, long style = 0, const wxString& name = wxT("TestGLCanvas"));
+ ~TestGLCanvas(void);
+
+ void OnPaint(wxPaintEvent& event);
+ void OnSize(wxSizeEvent& event);
+ void OnEraseBackground(wxEraseEvent& event);
+ void LoadLWO( const wxString &filename);
+ void OnMouse( wxMouseEvent& event );
+ void InitGL(void);
- mesh_info info;
- bool block;
+ mesh_info info;
+ bool block;
-DECLARE_EVENT_TABLE()
+private:
+ DECLARE_EVENT_TABLE()
};
#endif