diff -r fe16fa088b69 -r b544bbbd0696 qmlfrontend/gameview.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/qmlfrontend/gameview.h Tue Jan 02 23:45:18 2018 +0100 @@ -0,0 +1,54 @@ +#ifndef GAMEVIEW_H +#define GAMEVIEW_H + +#include + +#include +#include + +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) { m_viewportSize = size; } + void setWindow(QQuickWindow* window) { m_window = window; } + +public slots: + void paint(); + +private: + QSize m_viewportSize; + quint32 m_delta; + QQuickWindow* m_window; +}; + +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; +}; + +#endif // GAMEVIEW_H