Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_datamanager.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2004 Boudewijn Rempt <boud@valdyas.org>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6#ifndef KIS_DATAMANAGER_H_
7#define KIS_DATAMANAGER_H_
8
9#include <QtGlobal>
10
11class QRect;
13class QIODevice;
14
16#include <tiles3/kis_memento.h>
17
18#define ACTUAL_DATAMGR KisTiledDataManager
19
33class KisDataManager : public ACTUAL_DATAMGR
34{
35
36public:
37
45KisDataManager(quint32 pixelSize, const quint8 *defPixel) : ACTUAL_DATAMGR(pixelSize, defPixel) {}
46 KisDataManager(const KisDataManager& dm) : ACTUAL_DATAMGR(dm) { }
47
48 ~KisDataManager() override {
49 }
50
51public:
56 inline void setDefaultPixel(const quint8 *defPixel) {
57 return ACTUAL_DATAMGR::setDefaultPixel(defPixel);
58 }
59
63 inline const quint8 *defaultPixel() const {
64 return ACTUAL_DATAMGR::defaultPixel();
65 }
66
74 return ACTUAL_DATAMGR::getMemento();
75 }
76
83 inline void rollback(KisMementoSP memento) {
84 ACTUAL_DATAMGR::rollback(memento);
85 }
86
94 inline void rollforward(KisMementoSP memento) {
95 ACTUAL_DATAMGR::rollforward(memento);
96 }
97
102 inline bool hasCurrentMemento() const {
103 return ACTUAL_DATAMGR::hasCurrentMemento();
104 }
105
106public:
107
112 inline bool write(KisPaintDeviceWriter &writer) {
113 return ACTUAL_DATAMGR::write(writer);
114 }
115
116 inline bool read(QIODevice *io) {
117 return ACTUAL_DATAMGR::read(io);
118 }
119
120 inline void purge(const QRect& area) {
121 ACTUAL_DATAMGR::purge(area);
122 }
123
130 static inline void releaseInternalPools() {
131 ACTUAL_DATAMGR::releaseInternalPools();
132 }
133
134public:
135
139 inline quint32 pixelSize() const {
140 return ACTUAL_DATAMGR::pixelSize();
141 }
142
146 inline void extent(qint32 &x, qint32 &y, qint32 &w, qint32 &h) const {
147 return ACTUAL_DATAMGR::extent(x, y, w, h);
148 }
149
150 QRect extent() const {
151 return ACTUAL_DATAMGR::extent();
152 }
153
155 return ACTUAL_DATAMGR::region();
156 }
157
158public:
159
163 inline void setExtent(qint32 x, qint32 y, qint32 w, qint32 h) {
164 return ACTUAL_DATAMGR::setExtent(x, y, w, h);
165 }
166
167 inline void setExtent(const QRect & rect) {
168 setExtent(rect.x(), rect.y(), rect.width(), rect.height());
169 }
170
171public:
172
176 inline void clear(qint32 x, qint32 y,
177 qint32 w, qint32 h,
178 quint8 def) {
179 ACTUAL_DATAMGR::clear(x, y, w, h, def);
180 }
181
185 inline void clear(qint32 x, qint32 y,
186 qint32 w, qint32 h,
187 const quint8 * def) {
188 ACTUAL_DATAMGR::clear(x, y, w, h, def);
189 }
190
191
195 inline void clear() {
196 ACTUAL_DATAMGR::clear();
197 }
198
199public:
200
207 inline void bitBlt(KisTiledDataManagerSP srcDM, const QRect &rect) {
208 ACTUAL_DATAMGR::bitBlt(const_cast<KisTiledDataManager*>(srcDM.data()), rect);
209 }
210
214 inline void bitBltOldData(KisTiledDataManagerSP srcDM, const QRect &rect) {
215 ACTUAL_DATAMGR::bitBltOldData(const_cast<KisTiledDataManager*>(srcDM.data()), rect);
216 }
217
225 inline void bitBltRough(KisTiledDataManagerSP srcDM, const QRect &rect) {
226 ACTUAL_DATAMGR::bitBltRough(const_cast<KisTiledDataManager*>(srcDM.data()), rect);
227 }
228
232 inline void bitBltRoughOldData(KisTiledDataManagerSP srcDM, const QRect &rect) {
233 ACTUAL_DATAMGR::bitBltRoughOldData(const_cast<KisTiledDataManager*>(srcDM.data()), rect);
234 }
235
236public:
237
241 inline void setPixel(qint32 x, qint32 y, const quint8 * data) {
242 ACTUAL_DATAMGR::setPixel(x, y, data);
243 }
244
245
250 inline void readBytes(quint8 * data,
251 qint32 x, qint32 y,
252 qint32 w, qint32 h,
253 qint32 dataRowStride = -1) const {
254 ACTUAL_DATAMGR::readBytes(data, x, y, w, h, dataRowStride);
255 }
256
261 inline void writeBytes(const quint8 * data,
262 qint32 x, qint32 y,
263 qint32 w, qint32 h,
264 qint32 dataRowStride = -1) {
265 ACTUAL_DATAMGR::writeBytes(data, x, y, w, h, dataRowStride);
266 }
267
268
281 QVector<quint8*> readPlanarBytes(QVector<qint32> channelsizes, qint32 x, qint32 y, qint32 w, qint32 h) const {
282 return ACTUAL_DATAMGR::readPlanarBytes(channelsizes, x, y, w, h);
283 }
284
306 void writePlanarBytes(QVector<quint8*> planes, QVector<qint32> channelsizes, qint32 x, qint32 y, qint32 w, qint32 h) {
307 ACTUAL_DATAMGR::writePlanarBytes(planes, channelsizes, x, y, w, h);
308 }
309
310
315 inline qint32 numContiguousColumns(qint32 x, qint32 minY, qint32 maxY) const {
316 return ACTUAL_DATAMGR::numContiguousColumns(x, minY, maxY);
317 }
318
319
324 inline qint32 numContiguousRows(qint32 y, qint32 minX, qint32 maxX) const {
325 return ACTUAL_DATAMGR::numContiguousRows(y, minX, maxX);
326 }
327
328
333 inline qint32 rowStride(qint32 x, qint32 y) const {
334 return ACTUAL_DATAMGR::rowStride(x, y);
335 }
336
337protected:
338 friend class KisRectIterator;
339 friend class KisHLineIterator;
340 friend class KisVLineIterator;
341};
342
343
344#endif // KIS_DATAMANAGER_H_
345
void clear(qint32 x, qint32 y, qint32 w, qint32 h, quint8 def)
void purge(const QRect &area)
void setPixel(qint32 x, qint32 y, const quint8 *data)
bool hasCurrentMemento() const
~KisDataManager() override
void readBytes(quint8 *data, qint32 x, qint32 y, qint32 w, qint32 h, qint32 dataRowStride=-1) const
void setDefaultPixel(const quint8 *defPixel)
KisDataManager(const KisDataManager &dm)
bool read(QIODevice *io)
KisMementoSP getMemento()
QRect extent() const
void setExtent(qint32 x, qint32 y, qint32 w, qint32 h)
void writeBytes(const quint8 *data, qint32 x, qint32 y, qint32 w, qint32 h, qint32 dataRowStride=-1)
void bitBltRough(KisTiledDataManagerSP srcDM, const QRect &rect)
void rollforward(KisMementoSP memento)
bool write(KisPaintDeviceWriter &writer)
QVector< quint8 * > readPlanarBytes(QVector< qint32 > channelsizes, qint32 x, qint32 y, qint32 w, qint32 h) const
friend class KisVLineIterator
void bitBltOldData(KisTiledDataManagerSP srcDM, const QRect &rect)
friend class KisRectIterator
void writePlanarBytes(QVector< quint8 * > planes, QVector< qint32 > channelsizes, qint32 x, qint32 y, qint32 w, qint32 h)
qint32 numContiguousRows(qint32 y, qint32 minX, qint32 maxX) const
void setExtent(const QRect &rect)
friend class KisHLineIterator
void extent(qint32 &x, qint32 &y, qint32 &w, qint32 &h) const
void rollback(KisMementoSP memento)
KisRegion region() const
KisDataManager(quint32 pixelSize, const quint8 *defPixel)
void bitBltRoughOldData(KisTiledDataManagerSP srcDM, const QRect &rect)
void clear(qint32 x, qint32 y, qint32 w, qint32 h, const quint8 *def)
qint32 numContiguousColumns(qint32 x, qint32 minY, qint32 maxY) const
qint32 rowStride(qint32 x, qint32 y) const
quint32 pixelSize() const
static void releaseInternalPools()
void bitBlt(KisTiledDataManagerSP srcDM, const QRect &rect)
const quint8 * defaultPixel() const