Krita Source Code Documentation
Loading...
Searching...
No Matches
KisGLImageWidget.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2019 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7#ifndef KISGLIMAGEWIDGET_H
8#define KISGLIMAGEWIDGET_H
9
10#include <QOpenGLWidget>
11#include <QOpenGLFunctions>
12#include <QOpenGLTexture>
13#include <QOpenGLShaderProgram>
14#include <QOpenGLVertexArrayObject>
15#include <QOpenGLBuffer>
16#include <KisGLImageF16.h>
18
19class KisGLImageWidget : public QOpenGLWidget, protected QOpenGLFunctions
20{
21 Q_OBJECT
22public:
23 KisGLImageWidget(QWidget *parent = nullptr);
25 QWidget *parent = nullptr);
26
28
29 void initializeGL() override;
30 void paintGL() override;
31
32 void loadImage(const KisGLImageF16 &image);
33
34 void paintEvent(QPaintEvent *event) override;
35 void resizeEvent(QResizeEvent *event) override;
36
37 QSize sizeHint() const override;
38
39public Q_SLOTS:
40
41private Q_SLOTS:
43
44private:
45 void updateVerticesBuffer(const QRect &rect);
46
47private:
49
50 QScopedPointer<QOpenGLShaderProgram> m_shader;
51 QOpenGLVertexArrayObject m_vao;
52 QOpenGLBuffer m_verticesBuffer;
54 QOpenGLTexture m_texture;
55
57};
58
59#endif // KISGLIMAGEWIDGET_H
QOpenGLBuffer m_verticesBuffer
QOpenGLVertexArrayObject m_vao
QOpenGLBuffer m_textureVerticesBuffer
KisGLImageF16 m_sourceImage
KisGLImageWidget(QWidget *parent=nullptr)
void updateVerticesBuffer(const QRect &rect)
QOpenGLTexture m_texture
void loadImage(const KisGLImageF16 &image)
QSize sizeHint() const override
void resizeEvent(QResizeEvent *event) override
QScopedPointer< QOpenGLShaderProgram > m_shader
void paintGL() override
void initializeGL() override
void paintEvent(QPaintEvent *event) override