diff options
Diffstat (limited to 'examples/qwindow-compositor/surfacerenderer.h')
-rw-r--r-- | examples/qwindow-compositor/surfacerenderer.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/examples/qwindow-compositor/surfacerenderer.h b/examples/qwindow-compositor/surfacerenderer.h new file mode 100644 index 0000000..df60b9d --- /dev/null +++ b/examples/qwindow-compositor/surfacerenderer.h @@ -0,0 +1,29 @@ +#ifndef SURFACERENDERER_H +#define SURFACERENDERER_H + +#include <QOpenGLContext> +#include <QGLShaderProgram> +#include <QWindow> + +class SurfaceRenderer +{ +public: + SurfaceRenderer(QOpenGLContext *context, QWindow *surface); + + void drawImage(const QImage &image, const QRect &geometry); + void drawTexture(int textureId, const QRect &geometry, int depth = 0); + GLuint textureFromImage(const QImage &image); + +private: + + QOpenGLContext *m_context; + QWindow *m_surface; + QGLShaderProgram *m_shaderProgram; + QMatrix4x4 m_transformMatrix; + + int m_matrixLocation; + int m_vertexCoordEntry; + int m_textureCoordEntry; +}; + +#endif // SURFACERENDERER_H |