Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_mask.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2006 Boudewijn Rempt <boud@valdyas.org>
3 * SPDX-FileCopyrightText: 2009 Dmitry Kazakov <dimula73@gmail.com>
4 *
5 *
6 * SPDX-License-Identifier: GPL-2.0-or-later
7 */
8#ifndef _KIS_MASK_
9#define _KIS_MASK_
10
11#include <QRect>
12
13#include "kis_types.h"
14#include "kis_global.h"
15#include "kis_node.h"
17#include "KisRenderPassFlags.h"
18
19#include <kritaimage_export.h>
20
56class KRITAIMAGE_EXPORT KisMask : public KisNode, public KisIndirectPaintingSupport
57{
58
59 Q_OBJECT
60
61public:
62
66 KisMask(KisImageWSP image, const QString &name);
67
71 KisMask(const KisMask& rhs);
72
73 ~KisMask() override;
74
75 void setImage(KisImageWSP image) override;
76
77 bool allowAsChild(KisNodeSP node) const override;
78
85 void initSelection(KisSelectionSP copyFrom, KisLayerSP parentLayer);
86
93 void initSelection(KisPaintDeviceSP copyFromDevice, KisLayerSP parentLayer);
94
99 void initSelection(KisLayerSP parentLayer);
100
101 const KoColorSpace * colorSpace() const override;
102 const KoCompositeOp * compositeOp() const override;
103
109
113 KisPaintDeviceSP paintDevice() const override;
114
118 KisPaintDeviceSP original() const override;
119
123 KisPaintDeviceSP projection() const override;
124
126
131 void setSelection(KisSelectionSP selection);
132
136 void select(const QRect & rc, quint8 selectedness = MAX_SELECTED);
137
141 QRect extent() const override;
142 QRect exactBounds() const override;
143
147 qint32 x() const override;
148
152 void setX(qint32 x) override;
153
157 qint32 y() const override;
158
162 void setY(qint32 y) override;
163
175 virtual QRect nonDependentExtent() const;
176
177 QRect needRect(const QRect &rect, PositionToFilthy pos = N_FILTHY) const override;
178 QRect changeRect(const QRect &rect, PositionToFilthy pos = N_FILTHY) const override;
179 QImage createThumbnail(qint32 w, qint32 h, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio) override;
180 int thumbnailSeqNo() const override;
181
182 void testingInitSelection(const QRect &rect, KisLayerSP parentLayer);
183
184 bool supportsLodPainting() const override;
185
186protected:
191 void apply(KisPaintDeviceSP projection, const QRect & applyRect, const QRect & needRect, PositionToFilthy maskPos, KisRenderPassFlags flags) const;
192
193 virtual void mergeInMaskInternal(KisPaintDeviceSP projection,
194 KisSelectionSP effectiveSelection,
195 const QRect &applyRect, const QRect &preparedNeedRect,
196 PositionToFilthy maskPos,
197 KisRenderPassFlags flags) const;
198
204 virtual void flattenSelectionProjection(KisSelectionSP selection, const QRect &dirtyRect) const;
205
206 virtual QRect decorateRect(KisPaintDeviceSP &src,
207 KisPaintDeviceSP &dst,
208 const QRect & rc,
209 PositionToFilthy maskPos,
210 KisRenderPassFlags flags) const;
211
212 virtual bool paintsOutsideSelection() const;
213
214 KisKeyframeChannel *requestKeyframeChannel(const QString &id) override;
215 bool supportsKeyframeChannel(const QString &id) override;
216
217 void baseNodeChangedCallback() override;
218
219private:
221
222private:
223
224 struct Private;
225
226 Private * const m_d;
227
228};
229
230
231#endif
KisKeyframeChannel stores and manages KisKeyframes. Maps units of time to virtual keyframe values....
const quint8 MAX_SELECTED
Definition kis_global.h:32
virtual bool supportsLodPainting() const
virtual KisPaintDeviceSP projection() const =0
virtual qint32 y() const
virtual QRect exactBounds() const
virtual QImage createThumbnail(qint32 w, qint32 h, Qt::AspectRatioMode aspectRatioMode=Qt::IgnoreAspectRatio)
virtual KisKeyframeChannel * requestKeyframeChannel(const QString &id)
virtual KisPaintDeviceSP original() const =0
virtual void setX(qint32)
virtual void setY(qint32)
virtual const KoColorSpace * colorSpace() const =0
virtual int thumbnailSeqNo() const
QString compositeOp
virtual qint32 x() const
virtual QRect extent() const
virtual KisPaintDeviceSP paintDevice() const =0
virtual bool supportsKeyframeChannel(const QString &id)
KisAbstractProjectionPlaneSP projectionPlane() const override
KisSelectionSP selection() const
Private *const m_d
Definition kis_mask.h:226
void baseNodeChangedCallback() override
Definition kis_node.cpp:329
void setImage(KisImageWSP newImage) override
Definition kis_node.cpp:254
virtual QRect changeRect(const QRect &rect, PositionToFilthy pos=N_FILTHY) const
Definition kis_node.cpp:224
virtual QRect needRect(const QRect &rect, PositionToFilthy pos=N_FILTHY) const
Definition kis_node.cpp:218
PositionToFilthy
Definition kis_node.h:58
virtual bool allowAsChild(KisNodeSP) const =0