summaryrefslogtreecommitdiffstats
path: root/examples/qwindow-compositor/surfacerenderer.h
blob: abfb554b0e7b6fa054d9c0f11a40f51a7ce9c3e3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#ifndef SURFACERENDERER_H
#define SURFACERENDERER_H

#include <QOpenGLContext>
#include <QOpenGLShaderProgram>
#include <QWindow>

class SurfaceRenderer
{
public:
    SurfaceRenderer(QOpenGLContext *context, QWindow *surface);

    void drawImage(const QImage &image, const QRectF &geometry);
    void drawTexture(int textureId, const QRectF &geometry, int depth = 0);
    GLuint textureFromImage(const QImage &image);

private:

    QOpenGLContext *m_context;
    QWindow *m_surface;
    QOpenGLShaderProgram *m_shaderProgram;
    QMatrix4x4 m_transformMatrix;

    int m_matrixLocation;
    int m_vertexCoordEntry;
    int m_textureCoordEntry;
};

#endif // SURFACERENDERER_H