diff options
Diffstat (limited to 'examples/opengl/threadedqopenglwidget/glwidget.h')
-rw-r--r-- | examples/opengl/threadedqopenglwidget/glwidget.h | 57 |
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 |