Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_opengl_canvas2.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2006 Boudewijn Rempt <boud@valdyas.org>
3 * SPDX-FileCopyrightText: 2015 Michael Abrahams <miabraha@gmail.com>
4 *
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 */
7
8#ifndef KIS_OPENGL_CANVAS_2_H
9#define KIS_OPENGL_CANVAS_2_H
10
11#include <QOpenGLWidget>
14
15#include "kritaui_export.h"
16#include "kis_ui_types.h"
17
18class KisCanvas2;
19class QOpenGLShaderProgram;
20class QPainterPath;
22
30class KRITAUI_EXPORT KisOpenGLCanvas2
31 : public QOpenGLWidget
32 , public KisCanvasWidgetBase
33{
34 Q_OBJECT
35
36public:
37
39 KisCoordinatesConverter *coordinatesConverter,
40 QWidget *parent, KisImageWSP image,
41 const KisDisplayConfig &displayConfig,
43 BitDepthMode bitDepthRequest);
44
45 ~KisOpenGLCanvas2() override;
46
47public: // QOpenGLWidget
48
49 void resizeGL(int width, int height) override;
50 void initializeGL() override;
51 void paintGL() override;
52 void paintEvent(QPaintEvent *e) override;
53
54 QVariant inputMethodQuery(Qt::InputMethodQuery query) const override;
55 void inputMethodEvent(QInputMethodEvent *event) override;
56
57 void focusInEvent(QFocusEvent *event) override;
58 void focusOutEvent(QFocusEvent *event) override;
59
60 void hideEvent(QHideEvent *event) override;
61 void showEvent(QShowEvent *event) override;
62
63public:
64 void paintToolOutline(const KisOptimizedBrushOutline &path, int thickness = 1);
65
66
67public: // Implement kis_abstract_canvas_widget interface
68 void setDisplayFilter(QSharedPointer<KisDisplayFilter> displayFilter) override;
69 void notifyImageColorSpaceChanged(const KoColorSpace *cs) override;
70
71 void setWrapAroundViewingMode(bool value) override;
72 bool wrapAroundViewingMode() const override;
75
76 void channelSelectionChanged(const QBitArray &channelFlags) override;
77 void setDisplayConfig(const KisDisplayConfig &config) override;
78 void finishResizingImage(qint32 w, qint32 h) override;
79 KisUpdateInfoSP startUpdateCanvasProjection(const QRect & rc) override;
80 QRect updateCanvasProjection(KisUpdateInfoSP info) override;
82 void updateCanvasImage(const QRect &imageUpdateRect) override;
83 void updateCanvasDecorations(const QRect &decoUpdateRect) override;
84
85
86 QWidget *widget() override {
87 return this;
88 }
89
90 bool isBusy() const override;
91 void setLodResetInProgress(bool value) override;
92
93 KisOpenGLImageTexturesSP openGLImageTextures() const;
94
95 BitDepthMode currentBitDepthMode() const override;
96 QString currentBitDepthUserReport() const override;
97
98public Q_SLOTS:
99 void slotConfigChanged();
100 void slotPixelGridModeChanged();
101 void slotUpdateCursorColor();
102
103private Q_SLOTS:
104 void slotShowFloatingMessage(const QString &message, int timeout, bool priority);
105
106protected: // KisCanvasWidgetBase
107 bool callFocusNextPrevChild(bool next) override;
108
109private:
110 struct Private;
111 Private * const d;
112
113 class CanvasBridge;
114};
115
116#endif // KIS_OPENGL_CANVAS_2_H
float value(const T *src, size_t ch)
WrapAroundAxis
virtual void setLodResetInProgress(bool value)=0
virtual bool wrapAroundViewingMode() const =0
virtual void channelSelectionChanged(const QBitArray &channelFlags)=0
virtual void setDisplayFilter(QSharedPointer< KisDisplayFilter > displayFilter)=0
set the specified display filter on the canvas
virtual void updateCanvasDecorations(const QRect &decoUpdateRect)=0
virtual void notifyImageColorSpaceChanged(const KoColorSpace *cs)=0
set/update the color space of the attached image
virtual KisUpdateInfoSP startUpdateCanvasProjection(const QRect &rc)=0
virtual bool isBusy() const =0
virtual void finishResizingImage(qint32 w, qint32 h)=0
virtual WrapAroundAxis wrapAroundViewingModeAxis() const =0
virtual void updateCanvasImage(const QRect &imageUpdateRect)=0
virtual void setDisplayConfig(const KisDisplayConfig &config)=0
virtual bool callFocusNextPrevChild(bool next)=0
To be implemented by the derived canvas.
QString currentBitDepthUserReport() const override
void setWrapAroundViewingMode(bool value) override
BitDepthMode currentBitDepthMode() const override
QVector< QRect > updateCanvasProjection(const QVector< KisUpdateInfoSP > &infoObjects) override
void setWrapAroundViewingModeAxis(WrapAroundAxis value) override
KisDisplayConfig This class keeps track of the color management configuration for image to display....
QWidget * widget() override