qmlfrontend/gameview.h
branchqmlfrontend
changeset 12876 b544bbbd0696
child 12883 adb1fccc706a
equal deleted inserted replaced
12863:fe16fa088b69 12876:b544bbbd0696
       
     1 #ifndef GAMEVIEW_H
       
     2 #define GAMEVIEW_H
       
     3 
       
     4 #include <QQuickItem>
       
     5 
       
     6 #include <QtGui/QOpenGLFunctions>
       
     7 #include <QtGui/QOpenGLShaderProgram>
       
     8 
       
     9 class GameViewRenderer : public QObject, protected QOpenGLFunctions {
       
    10     Q_OBJECT
       
    11 public:
       
    12     GameViewRenderer()
       
    13         : m_delta(0)
       
    14     {
       
    15     }
       
    16     ~GameViewRenderer();
       
    17 
       
    18     void tick(quint32 delta) { m_delta = delta; }
       
    19     void setViewportSize(const QSize& size) { m_viewportSize = size; }
       
    20     void setWindow(QQuickWindow* window) { m_window = window; }
       
    21 
       
    22 public slots:
       
    23     void paint();
       
    24 
       
    25 private:
       
    26     QSize m_viewportSize;
       
    27     quint32 m_delta;
       
    28     QQuickWindow* m_window;
       
    29 };
       
    30 
       
    31 class GameView : public QQuickItem {
       
    32     Q_OBJECT
       
    33 
       
    34 public:
       
    35     GameView();
       
    36 
       
    37     Q_INVOKABLE void tick(quint32 delta);
       
    38 
       
    39 signals:
       
    40     void tChanged();
       
    41 
       
    42 public slots:
       
    43     void sync();
       
    44     void cleanup();
       
    45 
       
    46 private slots:
       
    47     void handleWindowChanged(QQuickWindow* win);
       
    48 
       
    49 private:
       
    50     quint32 m_delta;
       
    51     GameViewRenderer* m_renderer;
       
    52 };
       
    53 
       
    54 #endif // GAMEVIEW_H