summaryrefslogtreecommitdiffstats
path: root/examples/opengl/hellowindow
diff options
context:
space:
mode:
authorTor Arne Vestbø <tor.arne.vestbo@qt.io>2019-01-14 14:21:10 +0100
committerTor Arne Vestbø <tor.arne.vestbo@qt.io>2019-01-22 21:25:39 +0000
commita20c52dffcef05f9ee44ed4cf3a729a19b1c2ab9 (patch)
tree13ee2ca741e0110bf4546adcbf68dd704f1043fd /examples/opengl/hellowindow
parente823c351c6226765ccfe66e2ee93a2797dcc9721 (diff)
Use requestUpdate instead of timer in a few GL examples
Change-Id: I235ad367fe693c86ef5a0844fde0573371b284db Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Diffstat (limited to 'examples/opengl/hellowindow')
-rw-r--r--examples/opengl/hellowindow/hellowindow.cpp13
-rw-r--r--examples/opengl/hellowindow/hellowindow.h5
2 files changed, 13 insertions, 5 deletions
diff --git a/examples/opengl/hellowindow/hellowindow.cpp b/examples/opengl/hellowindow/hellowindow.cpp
index a978e19b79..1c1259de13 100644
--- a/examples/opengl/hellowindow/hellowindow.cpp
+++ b/examples/opengl/hellowindow/hellowindow.cpp
@@ -98,6 +98,15 @@ void HelloWindow::exposeEvent(QExposeEvent *)
m_renderer->render();
}
+bool HelloWindow::event(QEvent *ev)
+{
+ if (ev->type() == QEvent::UpdateRequest) {
+ m_renderer->render();
+ requestUpdate();
+ }
+ return QWindow::event(ev);
+}
+
void HelloWindow::mousePressEvent(QMouseEvent *)
{
updateColor();
@@ -132,7 +141,7 @@ void Renderer::setAnimating(HelloWindow *window, bool animating)
if (animating) {
m_windows << window;
if (m_windows.size() == 1)
- QTimer::singleShot(0, this, &Renderer::render);
+ window->requestUpdate();
} else {
m_currentWindow = 0;
m_windows.removeOne(window);
@@ -196,8 +205,6 @@ void Renderer::render()
m_context->swapBuffers(surface);
m_fAngle += 1.0f;
-
- QTimer::singleShot(0, this, &Renderer::render);
}
Q_GLOBAL_STATIC(QMutex, initMutex)
diff --git a/examples/opengl/hellowindow/hellowindow.h b/examples/opengl/hellowindow/hellowindow.h
index e92e45a125..e6d7970cfc 100644
--- a/examples/opengl/hellowindow/hellowindow.h
+++ b/examples/opengl/hellowindow/hellowindow.h
@@ -112,11 +112,12 @@ public:
QColor color() const;
void updateColor();
+protected:
+ bool event(QEvent *ev) override;
void exposeEvent(QExposeEvent *event) override;
-
-private:
void mousePressEvent(QMouseEvent *) override;
+private:
int m_colorIndex;
QColor m_color;
const QSharedPointer<Renderer> m_renderer;