Merge branch 'refactor'
[profile/ivi/qtwayland.git] / examples / qwindow-compositor / surfacerenderer.h
1 #ifndef SURFACERENDERER_H
2 #define SURFACERENDERER_H
3
4 #include <QOpenGLContext>
5 #include <QGLShaderProgram>
6 #include <QWindow>
7
8 class SurfaceRenderer
9 {
10 public:
11     SurfaceRenderer(QOpenGLContext *context, QWindow *surface);
12
13     void drawImage(const QImage &image, const QRect &geometry);
14     void drawTexture(int textureId, const QRect &geometry, int depth = 0);
15     GLuint textureFromImage(const QImage &image);
16
17 private:
18
19     QOpenGLContext *m_context;
20     QWindow *m_surface;
21     QGLShaderProgram *m_shaderProgram;
22     QMatrix4x4 m_transformMatrix;
23
24     int m_matrixLocation;
25     int m_vertexCoordEntry;
26     int m_textureCoordEntry;
27 };
28
29 #endif // SURFACERENDERER_H