summaryrefslogtreecommitdiffstats
path: root/tests/manual/stereographicsview/mygraphicsview.h
diff options
context:
space:
mode:
Diffstat (limited to 'tests/manual/stereographicsview/mygraphicsview.h')
-rw-r--r--tests/manual/stereographicsview/mygraphicsview.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/tests/manual/stereographicsview/mygraphicsview.h b/tests/manual/stereographicsview/mygraphicsview.h
new file mode 100644
index 0000000000..57cf902d5d
--- /dev/null
+++ b/tests/manual/stereographicsview/mygraphicsview.h
@@ -0,0 +1,47 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
+
+#ifndef MYGRAPHICSVIEW_H
+#define MYGRAPHICSVIEW_H
+
+#include <QOpenGLFunctions>
+#include <QGraphicsView>
+#include <QOpenGLShaderProgram>
+#include <QOpenGLBuffer>
+#include <QMatrix4x4>
+#include <QOpenGLWidget>
+
+class MyGraphicsView : public QGraphicsView, protected QOpenGLFunctions
+{
+public:
+ MyGraphicsView(QWidget *parent = nullptr);
+ MyGraphicsView(QGraphicsScene *scene, QWidget *parent = nullptr);
+
+ void saveImage(QOpenGLWidget::TargetBuffer targetBuffer);
+
+protected:
+ void drawBackground(QPainter *painter, const QRectF &rect) override;
+
+ void resizeEvent(QResizeEvent *event) override;
+
+private:
+ void init();
+ void initShaders();
+ void initCube();
+
+ void draw(QOpenGLWidget::TargetBuffer targetBuffer);
+
+ void resize(int w, int h);
+
+
+ bool m_initialized = false;
+
+ QOpenGLShaderProgram m_program;
+ QMatrix4x4 m_projection;
+ QOpenGLBuffer m_arrayBuf;
+ QOpenGLBuffer m_indexBuf;
+
+ qreal m_yaw = 0;
+};
+
+#endif // MYGRAPHICSVIEW_H