summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2019-01-28 19:30:32 +0000
committerThe Qt Project <gerrit-noreply@qt-project.org>2019-01-28 19:30:32 +0000
commite3621dd6bd32a64e602ae87711c24d6aae2989b5 (patch)
treec4539c9aa6b1a4b9a4e88ef5caef4bd3e29c7b41 /examples
parent71cd5a6f3643a5369b883d0e36478693de6db024 (diff)
parent980567b3a32b2e2f00c86f2d627cd82b5230dd0f (diff)
Merge "Merge remote-tracking branch 'origin/5.12' into dev" into refs/staging/dev
Diffstat (limited to 'examples')
-rw-r--r--examples/opengl/contextinfo/renderwindow.cpp13
-rw-r--r--examples/opengl/contextinfo/renderwindow.h3
-rw-r--r--examples/opengl/hellowindow/hellowindow.cpp13
-rw-r--r--examples/opengl/hellowindow/hellowindow.h5
4 files changed, 24 insertions, 10 deletions
diff --git a/examples/opengl/contextinfo/renderwindow.cpp b/examples/opengl/contextinfo/renderwindow.cpp
index 2ac2a38afb..21b7434be6 100644
--- a/examples/opengl/contextinfo/renderwindow.cpp
+++ b/examples/opengl/contextinfo/renderwindow.cpp
@@ -181,6 +181,13 @@ void RenderWindow::setupVertexAttribs()
m_vbo.release();
}
+bool RenderWindow::event(QEvent *ev)
+{
+ if (ev->type() == QEvent::UpdateRequest)
+ render();
+ return QWindow::event(ev);
+}
+
void RenderWindow::render()
{
if (!m_context->makeCurrent(this)) {
@@ -227,9 +234,5 @@ void RenderWindow::render()
m_angle += 1.0f;
- // Instead of 0 wait a few more milliseconds before rendering again. This is
- // only here to make the UI widgets more responsive on slower machines. We
- // can afford it since our rendering is so lightweight.
- const int interval = 5;
- QTimer::singleShot(interval, this, &RenderWindow::render);
+ requestUpdate();
}
diff --git a/examples/opengl/contextinfo/renderwindow.h b/examples/opengl/contextinfo/renderwindow.h
index c148b71c3c..1b4a79dfcf 100644
--- a/examples/opengl/contextinfo/renderwindow.h
+++ b/examples/opengl/contextinfo/renderwindow.h
@@ -72,6 +72,9 @@ signals:
void ready();
void error(const QString &msg);
+protected:
+ bool event(QEvent *ev) override;
+
private slots:
void render();
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;