summaryrefslogtreecommitdiffstats
path: root/examples/opengl/threadedqopenglwidget/glwidget.cpp
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.agocs@qt.io>2023-02-27 12:37:30 +0100
committerLaszlo Agocs <laszlo.agocs@qt.io>2023-02-28 14:28:51 +0100
commit6462a454e3d53c3711817b510cff59c136711b9e (patch)
tree29afaf653198da1e8eac0d15f2a878fb947abc0c /examples/opengl/threadedqopenglwidget/glwidget.cpp
parent86a517ac786c90b9ce8deb502c413287e31058c2 (diff)
Remove threadeqopenglwidget example
It is neither documented nor very useful, and it has platform-specific issues as reported over the years. Remove it now as part of the example revamp initiative. Task-number: QTBUG-50278 Task-number: QTBUG-110093 Task-number: QTBUG-76054 Task-number: QTBUG-43209 Pick-to: 6.5 Change-Id: I6dadaf4162b4c19411c544b9f204c19e37aa740d Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Diffstat (limited to 'examples/opengl/threadedqopenglwidget/glwidget.cpp')
-rw-r--r--examples/opengl/threadedqopenglwidget/glwidget.cpp71
1 files changed, 0 insertions, 71 deletions
diff --git a/examples/opengl/threadedqopenglwidget/glwidget.cpp b/examples/opengl/threadedqopenglwidget/glwidget.cpp
deleted file mode 100644
index 6fbc61dd44d..00000000000
--- a/examples/opengl/threadedqopenglwidget/glwidget.cpp
+++ /dev/null
@@ -1,71 +0,0 @@
-// Copyright (C) 2022 The Qt Company Ltd.
-// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-#include "glwidget.h"
-#include "renderer.h"
-
-#include <qmath.h>
-#include <QGuiApplication>
-
-GLWidget::GLWidget(QWidget *parent)
- : QOpenGLWidget(parent)
-{
- setMinimumSize(300, 250);
-
- connect(this, &QOpenGLWidget::aboutToCompose, this, &GLWidget::onAboutToCompose);
- connect(this, &QOpenGLWidget::frameSwapped, this, &GLWidget::onFrameSwapped);
- connect(this, &QOpenGLWidget::aboutToResize, this, &GLWidget::onAboutToResize);
- connect(this, &QOpenGLWidget::resized, this, &GLWidget::onResized);
-
- m_thread = new QThread;
- m_renderer = new Renderer(this);
- m_renderer->moveToThread(m_thread);
- connect(m_thread, &QThread::finished, m_renderer, &QObject::deleteLater);
-
- connect(this, &GLWidget::renderRequested, m_renderer, &Renderer::render);
- connect(m_renderer, &Renderer::contextWanted, this, &GLWidget::grabContext);
-
- m_thread->start();
-}
-
-GLWidget::~GLWidget()
-{
- m_renderer->prepareExit();
- m_thread->quit();
- m_thread->wait();
- delete m_thread;
-}
-
-void GLWidget::onAboutToCompose()
-{
- // We are on the gui thread here. Composition is about to
- // begin. Wait until the render thread finishes.
- m_renderer->lockRenderer();
-}
-
-void GLWidget::onFrameSwapped()
-{
- m_renderer->unlockRenderer();
- // Assuming a blocking swap, our animation is driven purely by the
- // vsync in this example.
- emit renderRequested();
-}
-
-void GLWidget::onAboutToResize()
-{
- m_renderer->lockRenderer();
-}
-
-void GLWidget::onResized()
-{
- m_renderer->unlockRenderer();
-}
-
-void GLWidget::grabContext()
-{
- m_renderer->lockRenderer();
- QMutexLocker lock(m_renderer->grabMutex());
- context()->moveToThread(m_thread);
- m_renderer->grabCond()->wakeAll();
- m_renderer->unlockRenderer();
-}