diff options
Diffstat (limited to 'examples/opengl')
-rw-r--r-- | examples/opengl/contextinfo/renderwindow.cpp | 13 | ||||
-rw-r--r-- | examples/opengl/contextinfo/renderwindow.h | 3 | ||||
-rw-r--r-- | examples/opengl/contextinfo/widget.cpp | 2 | ||||
-rw-r--r-- | examples/opengl/hellowindow/hellowindow.cpp | 13 | ||||
-rw-r--r-- | examples/opengl/hellowindow/hellowindow.h | 5 | ||||
-rw-r--r-- | examples/opengl/legacy/overpainting/glwidget.cpp | 2 | ||||
-rw-r--r-- | examples/opengl/qopenglwidget/glwidget.cpp | 6 | ||||
-rw-r--r-- | examples/opengl/qopenglwidget/mainwindow.cpp | 2 |
8 files changed, 30 insertions, 16 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/contextinfo/widget.cpp b/examples/opengl/contextinfo/widget.cpp index a5d9e98bf8..b1b7076503 100644 --- a/examples/opengl/contextinfo/widget.cpp +++ b/examples/opengl/contextinfo/widget.cpp @@ -387,7 +387,7 @@ void Widget::renderWindowReady() QList<QByteArray> extensionList = context->extensions().toList(); std::sort(extensionList.begin(), extensionList.end()); m_extensions->append(tr("Found %1 extensions:").arg(extensionList.count())); - Q_FOREACH (const QByteArray &ext, extensionList) + for (const QByteArray &ext : qAsConst(extensionList)) m_extensions->append(QString::fromLatin1(ext)); m_output->moveCursor(QTextCursor::Start); 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; diff --git a/examples/opengl/legacy/overpainting/glwidget.cpp b/examples/opengl/legacy/overpainting/glwidget.cpp index 1ec7bd731c..f98d043c5c 100644 --- a/examples/opengl/legacy/overpainting/glwidget.cpp +++ b/examples/opengl/legacy/overpainting/glwidget.cpp @@ -201,7 +201,7 @@ void GLWidget::paintEvent(QPaintEvent *event) //! [10] QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); - foreach (Bubble *bubble, bubbles) { + for (Bubble *bubble : qAsConst(bubbles)) { if (bubble->rect().intersects(event->rect())) bubble->drawBubble(&painter); } diff --git a/examples/opengl/qopenglwidget/glwidget.cpp b/examples/opengl/qopenglwidget/glwidget.cpp index 3fe919f94b..946b2bec67 100644 --- a/examples/opengl/qopenglwidget/glwidget.cpp +++ b/examples/opengl/qopenglwidget/glwidget.cpp @@ -385,10 +385,10 @@ void GLWidget::paintGL() painter.endNativePainting(); - if (m_showBubbles) - foreach (Bubble *bubble, m_bubbles) { + if (m_showBubbles) { + for (Bubble *bubble : qAsConst(m_bubbles)) bubble->drawBubble(&painter); - } + } if (const int elapsed = m_time.elapsed()) { QString framesPerSecond; diff --git a/examples/opengl/qopenglwidget/mainwindow.cpp b/examples/opengl/qopenglwidget/mainwindow.cpp index 4bd123628f..6fab3df79e 100644 --- a/examples/opengl/qopenglwidget/mainwindow.cpp +++ b/examples/opengl/qopenglwidget/mainwindow.cpp @@ -176,7 +176,7 @@ void MainWindow::timerUsageChanged(bool enabled) m_timer->start(); } else { m_timer->stop(); - foreach (QOpenGLWidget *w, m_glWidgets) + for (QOpenGLWidget *w : qAsConst(m_glWidgets)) w->update(); } } |