]>
Commit | Line | Data |
---|---|---|
1 | ///////////////////////////////////////////////////////////////////////////// | |
2 | // Name: cube.h | |
3 | // Purpose: wxGLCanvas demo program | |
4 | // Author: Julian Smart | |
5 | // Modified by: | |
6 | // Created: 04/01/98 | |
7 | // RCS-ID: $Id$ | |
8 | // Copyright: (c) Julian Smart | |
9 | // Licence: wxWindows licence | |
10 | ///////////////////////////////////////////////////////////////////////////// | |
11 | ||
12 | #ifndef _WX_CUBE_H_ | |
13 | #define _WX_CUBE_H_ | |
14 | ||
15 | #include "wx/glcanvas.h" | |
16 | ||
17 | // Define a new application type | |
18 | class MyApp: public wxApp | |
19 | { | |
20 | public: | |
21 | bool OnInit(void); | |
22 | }; | |
23 | ||
24 | // Define a new frame type | |
25 | class TestGLCanvas; | |
26 | class MyFrame: public wxFrame | |
27 | { | |
28 | public: | |
29 | MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos, | |
30 | const wxSize& size, long style = wxDEFAULT_FRAME_STYLE); | |
31 | ||
32 | void OnExit(wxCommandEvent& event); | |
33 | void OnNewWindow(wxCommandEvent& event); | |
34 | void OnDefRotateLeftKey(wxCommandEvent& event); | |
35 | void OnDefRotateRightKey(wxCommandEvent& event); | |
36 | ||
37 | public: | |
38 | TestGLCanvas* m_canvas; | |
39 | ||
40 | DECLARE_EVENT_TABLE() | |
41 | }; | |
42 | ||
43 | class TestGLCanvas: public wxGLCanvas | |
44 | { | |
45 | friend class MyFrame; | |
46 | public: | |
47 | TestGLCanvas(wxWindow *parent, const wxWindowID id = -1, | |
48 | const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, | |
49 | long style = 0, const wxString& name = "TestGLCanvas"); | |
50 | TestGLCanvas(wxWindow *parent, const TestGLCanvas &other, | |
51 | const wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, | |
52 | const wxSize& size = wxDefaultSize, long style = 0, | |
53 | const wxString& name = "TestGLCanvas" ); | |
54 | ||
55 | ~TestGLCanvas(void); | |
56 | ||
57 | void OnPaint(wxPaintEvent& event); | |
58 | void OnSize(wxSizeEvent& event); | |
59 | void OnEraseBackground(wxEraseEvent& event); | |
60 | void OnKeyDown(wxKeyEvent& event); | |
61 | void OnKeyUp(wxKeyEvent& event); | |
62 | void OnEnterWindow( wxMouseEvent& event ); | |
63 | ||
64 | void Render( void ); | |
65 | void InitGL(void); | |
66 | void Rotate( GLfloat deg ); | |
67 | static GLfloat CalcRotateSpeed( unsigned long acceltime ); | |
68 | static GLfloat CalcRotateAngle( unsigned long lasttime, | |
69 | unsigned long acceltime ); | |
70 | void Action( long code, unsigned long lasttime, | |
71 | unsigned long acceltime ); | |
72 | ||
73 | private: | |
74 | bool m_init; | |
75 | GLuint m_gllist; | |
76 | long m_rleft; | |
77 | long m_rright; | |
78 | ||
79 | static unsigned long m_secbase; | |
80 | static int m_TimeInitialized; | |
81 | static unsigned long m_xsynct; | |
82 | static unsigned long m_gsynct; | |
83 | ||
84 | long m_Key; | |
85 | unsigned long m_StartTime; | |
86 | unsigned long m_LastTime; | |
87 | unsigned long m_LastRedraw; | |
88 | ||
89 | DECLARE_EVENT_TABLE() | |
90 | }; | |
91 | ||
92 | #endif | |
93 |