qmlfrontend/game_view.h
changeset 14154 8354b390f1a2
parent 14143 745c73e0e644
child 14290 92e5682810d4
--- /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