summaryrefslogtreecommitdiffstats
path: root/examples/opengl/threadedqopenglwidget/glwidget.h
diff options
context:
space:
mode:
Diffstat (limited to 'examples/opengl/threadedqopenglwidget/glwidget.h')
-rw-r--r--examples/opengl/threadedqopenglwidget/glwidget.h57
1 files changed, 4 insertions, 53 deletions
diff --git a/examples/opengl/threadedqopenglwidget/glwidget.h b/examples/opengl/threadedqopenglwidget/glwidget.h
index 2bff56c471e..86a1da4fc2f 100644
--- a/examples/opengl/threadedqopenglwidget/glwidget.h
+++ b/examples/opengl/threadedqopenglwidget/glwidget.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2022 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the examples of the Qt Toolkit.
@@ -52,59 +52,10 @@
#define GLWIDGET_H
#include <QOpenGLWidget>
-#include <QOpenGLFunctions>
-#include <QOpenGLShaderProgram>
-#include <QOpenGLBuffer>
-#include <QVector3D>
-#include <QMatrix4x4>
-#include <QThread>
-#include <QMutex>
-#include <QWaitCondition>
-#include <QElapsedTimer>
-class GLWidget;
+QT_FORWARD_DECLARE_CLASS(QThread)
-class Renderer : public QObject, protected QOpenGLFunctions
-{
- Q_OBJECT
-
-public:
- Renderer(GLWidget *w);
- void lockRenderer() { m_renderMutex.lock(); }
- void unlockRenderer() { m_renderMutex.unlock(); }
- QMutex *grabMutex() { return &m_grabMutex; }
- QWaitCondition *grabCond() { return &m_grabCond; }
- void prepareExit() { m_exiting = true; m_grabCond.wakeAll(); }
-
-signals:
- void contextWanted();
-
-public slots:
- void render();
-
-private:
- void paintQtLogo();
- void createGeometry();
- void quad(qreal x1, qreal y1, qreal x2, qreal y2, qreal x3, qreal y3, qreal x4, qreal y4);
- void extrude(qreal x1, qreal y1, qreal x2, qreal y2);
-
- bool m_inited = false;
- qreal m_fAngle = 0;
- qreal m_fScale = 1;
- QList<QVector3D> vertices;
- QList<QVector3D> normals;
- QOpenGLShaderProgram program;
- QOpenGLBuffer vbo;
- int vertexAttr = 0;
- int normalAttr = 0;
- int matrixUniform = 0;
- GLWidget *m_glwidget = nullptr;
- QMutex m_renderMutex;
- QElapsedTimer m_elapsed;
- QMutex m_grabMutex;
- QWaitCondition m_grabCond;
- bool m_exiting = false;
-};
+class Renderer;
class GLWidget : public QOpenGLWidget
{
@@ -133,4 +84,4 @@ private:
Renderer *m_renderer;
};
-#endif
+#endif // GLWIDGET_H