projects
/
wxWidgets.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
wxPlatformInfo does not derive from wxObject
[wxWidgets.git]
/
samples
/
opengl
/
cube
/
cube.cpp
diff --git
a/samples/opengl/cube/cube.cpp
b/samples/opengl/cube/cube.cpp
index 7396d9bb5e385b8d14e5fa93037888bbd64a6ee2..c4a60b515a32edfae2802131090abc6ac1ddd373 100644
(file)
--- a/
samples/opengl/cube/cube.cpp
+++ b/
samples/opengl/cube/cube.cpp
@@
-38,6
+38,16
@@
#include "../../sample.xpm"
#endif
#include "../../sample.xpm"
#endif
+// ----------------------------------------------------------------------------
+// constants
+// ----------------------------------------------------------------------------
+
+// control ids
+enum
+{
+ SpinTimer = wxID_HIGHEST + 1
+};
+
// ----------------------------------------------------------------------------
// helper functions
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// helper functions
// ----------------------------------------------------------------------------
@@
-161,7
+171,7
@@
TestGLContext::TestGLContext(wxGLCanvas *canvas)
const wxImage img(DrawDice(256, i + 1));
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
const wxImage img(DrawDice(256, i + 1));
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, img.GetWidth(), img.GetHeight(),
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, img.GetWidth(), img.GetHeight(),
0, GL_RGB, GL_UNSIGNED_BYTE, img.GetData());
}
0, GL_RGB, GL_UNSIGNED_BYTE, img.GetData());
}
@@
-283,6
+293,7
@@
TestGLContext& MyApp::GetContext(wxGLCanvas *canvas)
BEGIN_EVENT_TABLE(TestGLCanvas, wxGLCanvas)
EVT_PAINT(TestGLCanvas::OnPaint)
EVT_KEY_DOWN(TestGLCanvas::OnKeyDown)
BEGIN_EVENT_TABLE(TestGLCanvas, wxGLCanvas)
EVT_PAINT(TestGLCanvas::OnPaint)
EVT_KEY_DOWN(TestGLCanvas::OnKeyDown)
+ EVT_TIMER(SpinTimer, TestGLCanvas::OnSpinTimer)
END_EVENT_TABLE()
TestGLCanvas::TestGLCanvas(wxWindow *parent)
END_EVENT_TABLE()
TestGLCanvas::TestGLCanvas(wxWindow *parent)
@@
-292,10
+303,11
@@
TestGLCanvas::TestGLCanvas(wxWindow *parent)
// viewport settings.
: wxGLCanvas(parent, wxID_ANY, NULL /* attribs */,
wxDefaultPosition, wxDefaultSize,
// viewport settings.
: wxGLCanvas(parent, wxID_ANY, NULL /* attribs */,
wxDefaultPosition, wxDefaultSize,
- wxFULL_REPAINT_ON_RESIZE)
+ wxFULL_REPAINT_ON_RESIZE),
+ m_xangle(30.0),
+ m_yangle(30.0),
+ m_spinTimer(this,SpinTimer)
{
{
- m_xangle =
- m_yangle = 30;
}
void TestGLCanvas::OnPaint(wxPaintEvent& WXUNUSED(event))
}
void TestGLCanvas::OnPaint(wxPaintEvent& WXUNUSED(event))
@@
-318,44
+330,52
@@
void TestGLCanvas::OnPaint(wxPaintEvent& WXUNUSED(event))
SwapBuffers();
}
SwapBuffers();
}
-void TestGLCanvas::
OnKeyDown( wxKeyEvent& event
)
+void TestGLCanvas::
Spin(float xSpin, float ySpin
)
{
{
- float *p = NULL;
+ m_xangle += xSpin;
+ m_yangle += ySpin;
- bool inverse = false;
+ Refresh(false);
+}
+
+void TestGLCanvas::OnKeyDown(wxKeyEvent& event)
+{
+ float angle = 5.0;
switch ( event.GetKeyCode() )
{
case WXK_RIGHT:
switch ( event.GetKeyCode() )
{
case WXK_RIGHT:
-
inverse = true
;
- // fall through
+
Spin( 0.0, -angle )
;
+ break;
case WXK_LEFT:
case WXK_LEFT:
- // rotate around Y axis
- p = &m_yangle;
+ Spin( 0.0, angle );
break;
case WXK_DOWN:
break;
case WXK_DOWN:
-
inverse = true
;
- // fall through
+
Spin( -angle, 0.0 )
;
+ break;
case WXK_UP:
case WXK_UP:
- // rotate around X axis
- p = &m_xangle;
+ Spin( angle, 0.0 );
+ break;
+
+ case WXK_SPACE:
+ if ( m_spinTimer.IsRunning() )
+ m_spinTimer.Stop();
+ else
+ m_spinTimer.Start( 25 );
break;
default:
event.Skip();
return;
}
break;
default:
event.Skip();
return;
}
+}
- float angle = 5;
- if ( inverse )
- angle = -angle;
-
- *p += angle;
-
- Refresh(false);
+void TestGLCanvas::OnSpinTimer(wxTimerEvent& WXUNUSED(event))
+{
+ Spin(0.0, 4.0);
}
}