Krita Source Code Documentation
Loading...
Searching...
No Matches
KisTiledExtentManager.h
Go to the documentation of this file.
1
/*
2
* SPDX-FileCopyrightText: 2017 Dmitry Kazakov <dimula73@gmail.com>
3
* SPDX-FileCopyrightText: 2018 Andrey Kamakin <a.kamakin@icloud.com>
4
*
5
* SPDX-License-Identifier: GPL-2.0-or-later
6
*/
7
8
#ifndef KISTILEDEXTENTMANAGER_H
9
#define KISTILEDEXTENTMANAGER_H
10
11
#include <QReadWriteLock>
12
#include <QMap>
13
#include <QRect>
14
#include "kritaimage_export.h"
15
16
17
class
KRITAIMAGE_EXPORT
KisTiledExtentManager
18
{
19
static
const
qint32 InitialBufferSize = 256;
20
21
class
KRITAIMAGE_EXPORT
Data
22
{
23
public
:
24
Data
();
25
~Data
();
26
27
bool
add(qint32 index);
28
bool
remove(qint32 index);
29
void
replace(
const
QVector<qint32>
&indexes);
30
void
clear();
31
bool
isEmpty();
32
qint32 min();
33
qint32 max();
34
35
public
:
36
QReadWriteLock
m_extentLock
;
37
38
private
:
39
inline
void
unsafeAdd(qint32 index);
40
inline
void
unsafeMigrate(qint32 index);
41
inline
void
migrate(qint32 index);
42
inline
void
updateMin();
43
inline
void
updateMax();
44
45
private
:
46
qint32
m_min
;
47
qint32
m_max
;
48
qint32
m_offset
;
49
qint32
m_capacity
;
50
qint32
m_count
;
51
QAtomicInt *
m_buffer
;
52
QReadWriteLock
m_migrationLock
;
53
};
54
55
public
:
56
KisTiledExtentManager
();
57
58
void
notifyTileAdded(qint32 col, qint32 row);
59
void
notifyTileRemoved(qint32 col, qint32 row);
60
void
replaceTileStats(
const
QVector<QPoint>
&indexes);
61
void
clear();
62
QRect extent()
const
;
63
64
private
:
65
void
updateExtent();
66
friend
class
KisTiledDataManagerTest;
67
68
private
:
69
mutable
QReadWriteLock
m_extentLock
;
70
QRect
m_currentExtent
;
71
Data
m_colsData
;
72
Data
m_rowsData
;
73
};
74
75
#endif
// KISTILEDEXTENTMANAGER_H
KisTiledExtentManager::Data
Definition
KisTiledExtentManager.h:22
KisTiledExtentManager::Data::m_capacity
qint32 m_capacity
Definition
KisTiledExtentManager.h:49
KisTiledExtentManager::Data::m_count
qint32 m_count
Definition
KisTiledExtentManager.h:50
KisTiledExtentManager::Data::m_offset
qint32 m_offset
Definition
KisTiledExtentManager.h:48
KisTiledExtentManager::Data::m_max
qint32 m_max
Definition
KisTiledExtentManager.h:47
KisTiledExtentManager::Data::m_extentLock
QReadWriteLock m_extentLock
Definition
KisTiledExtentManager.h:36
KisTiledExtentManager::Data::m_buffer
QAtomicInt * m_buffer
Definition
KisTiledExtentManager.h:51
KisTiledExtentManager::Data::m_migrationLock
QReadWriteLock m_migrationLock
Definition
KisTiledExtentManager.h:52
KisTiledExtentManager::Data::m_min
qint32 m_min
Definition
KisTiledExtentManager.h:46
KisTiledExtentManager
Definition
KisTiledExtentManager.h:18
KisTiledExtentManager::m_currentExtent
QRect m_currentExtent
Definition
KisTiledExtentManager.h:70
KisTiledExtentManager::m_extentLock
QReadWriteLock m_extentLock
Definition
KisTiledExtentManager.h:69
KisTiledExtentManager::m_colsData
Data m_colsData
Definition
KisTiledExtentManager.h:71
KisTiledExtentManager::m_rowsData
Data m_rowsData
Definition
KisTiledExtentManager.h:72
QList
Definition
KisQStringListFwd.h:16
libs
image
tiles3
KisTiledExtentManager.h
Generated at
2025-11-04 02:30:02+01:00
from
Krita
branch
master
, commit
c9dde2e79561a8aea4a7e8d9ac99c98a7bac9e52