--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qmlfrontend/game_view.h Wed Nov 07 15:59:51 2018 +0100
@@ -0,0 +1,51 @@
+#ifndef GAMEVIEW_H
+#define GAMEVIEW_H
+
+#include <QQuickItem>
+
+#include <QtGui/QOpenGLFunctions>
+#include <QtGui/QOpenGLShaderProgram>
+
+class GameViewRenderer : public QObject, protected QOpenGLFunctions {
+ Q_OBJECT
+ public:
+ GameViewRenderer() : m_delta(0) {}
+ ~GameViewRenderer();
+
+ void tick(quint32 delta) { m_delta = delta; }
+ void setViewportSize(const QSize& size);
+
+ public slots:
+ void paint();
+
+ private:
+ quint32 m_delta;
+};
+
+class GameView : public QQuickItem {
+ Q_OBJECT
+
+ public:
+ GameView();
+
+ Q_INVOKABLE void tick(quint32 delta);
+
+ signals:
+ void tChanged();
+
+ public slots:
+ void sync();
+ void cleanup();
+
+ private slots:
+ void handleWindowChanged(QQuickWindow* win);
+
+ private:
+ quint32 m_delta;
+ GameViewRenderer* m_renderer;
+ bool m_windowChanged;
+ qint32 m_centerX;
+ qint32 m_centerY;
+};
+
+#endif // GAMEVIEW_H