8#ifndef KIS_TILE_DATA_STORE_H_
9#define KIS_TILE_DATA_STORE_H_
11#include "kritaimage_export.h"
13#include <QReadWriteLock>
35 void debugPrintList();
48 void tryForceUpdateMemoryStatisticsWhileIdle();
56 return m_numTiles.loadAcquire() + m_swappedStore.numTiles();
64 return m_numTiles.loadAcquire();
69 m_swapper.checkFreeMemory();
77 return m_memoryMetric.loadAcquire();
91 return allocTileData(pixelSize, defPixel);
136 KisTileData *allocTileData(qint32 pixelSize,
const quint8 *defPixel);
139 inline void unregisterTileDataImp(
KisTileData *td);
142 friend class DeadlockyThread;
143 friend class KisLowMemoryTests;
147 friend class KisTiledDataManagerTest;
148 void testingSuspendPooler();
149 void testingResumePooler();
151 friend class KisLowMemoryBenchmark;
152 void testingRereadConfig();
157 friend class KisTileDataStoreTest;
158 friend class KisTileDataPoolerTest;
177 unsigned long long __MiB = 1ULL << 20;
float value(const T *src, size_t ch)
PythonPluginManager * instance
KisTileDataPooler m_pooler
qint32 numTilesInMemory() const
KisTileData * createDefaultTileData(qint32 pixelSize, const quint8 *defPixel)
KisTileDataSwapper m_swapper
KisSwappedDataStore m_swappedStore
QAtomicInt m_memoryMetric
QReadWriteLock m_iteratorLock
ConcurrentMap< int, KisTileData * > m_tileDataMap
void freeRegisteredTiles()
qint64 memoryMetric() const
static const qint32 HEIGHT
static const qint32 WIDTH
qint64 historicalMemorySize