Krita Source Code Documentation
Loading...
Searching...
No Matches
KisOverlayPaintDeviceWrapper.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2021 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7#ifndef KISOVERLAYPAINTDEVICEWRAPPER_H
8#define KISOVERLAYPAINTDEVICEWRAPPER_H
9
10#include <kis_types.h>
11#include "kritaimage_export.h"
12
13class KoColorSpace;
14
15
67class KRITAIMAGE_EXPORT KisOverlayPaintDeviceWrapper
68{
69public:
71 NormalMode = 0,
73 LazyPreciseMode
74 };
75
76public:
99 KisOverlayPaintDeviceWrapper(KisPaintDeviceSP source, int numOverlays = 1, OverlayMode mode = NormalMode, const KoColorSpace *forcedOverlayColorSpace = nullptr);
100
102
103 void setExternalDestination(KisPaintDeviceSP device);
104 KisPaintDeviceSP externalDestination() const;
105
106 KisPaintDeviceSP source() const;
107 KisPaintDeviceSP overlay(int index = 0) const;
108
109 void readRect(const QRect &rc);
110 void writeRect(const QRect &rc, int index = 0);
111
112 void readRects(const QVector<QRect> &rects);
113 void writeRects(const QVector<QRect> &rects, int index = 0);
114
115 const KoColorSpace* overlayColorSpace() const;
116
129 KisPaintDeviceSP createPreciseCompositionSourceDevice();
130
131 void beginTransaction(KUndo2Command *parent = 0);
132 KUndo2Command *endTransaction();
133
134private:
135
137 struct Private;
138 const QScopedPointer<Private> m_d;
139};
140
141#endif // KISOVERLAYPAINTDEVICEWRAPPER_H
KisMagneticGraph::vertex_descriptor source(typename KisMagneticGraph::edge_descriptor e, KisMagneticGraph g)
const QScopedPointer< Private > m_d