9#include <QGlobalStatic>
10#include <QApplication>
39 moveToThread(qApp->thread());
54 QSet<KisPaintDevice*> &devices,
57 qint64 &projectionsSize,
60 if (dev && !devices.contains(dev.
data())) {
61 devices.insert(dev.
data());
64 qint64 temporaryData = 0;
68 memBound += imageData + temporaryData + lodData;
73 layersSize += imageData + temporaryData;
75 projectionsSize += imageData + temporaryData;
83 QSet<KisPaintDevice*> &devices,
85 qint64 &projectionsSize,
90 const bool originalIsProjection =
91 node->inherits(
"KisGroupLayer") ||
92 node->inherits(
"KisAdjustmentLayer");
96 addDevice(node->
original(), originalIsProjection, devices, memBound, layersSize, projectionsSize, lodSize);
97 addDevice(node->
projection(),
true, devices, memBound, layersSize, projectionsSize, lodSize);
102 layersSize, projectionsSize, lodSize);
111 qint64 &projectionsSize,
118 QSet<KisPaintDevice*> devices;
166 m_d->updateCompressor.start();
Q_GLOBAL_STATIC(KisStoragePluginRegistry, s_instance)
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
int tilesHardLimit() const
int tilesSoftLimit() const
void estimateMemoryStats(qint64 &imageData, qint64 &temporaryData, qint64 &lodData) const
void tryForceUpdateMemoryStatisticsWhileIdle()
MemoryStatistics memoryStatistics()
static KisTileDataStore * instance()
#define KIS_SAFE_ASSERT_RECOVER_NOOP(cond)
qint64 calculateNodeMemoryHiBoundStep(KisNodeSP node, QSet< KisPaintDevice * > &devices, qint64 &layersSize, qint64 &projectionsSize, qint64 &lodSize)
qint64 calculateNodeMemoryHiBound(KisNodeSP node, qint64 &layersSize, qint64 &projectionsSize, qint64 &lodSize)
void addDevice(KisPaintDeviceSP dev, bool isProjection, QSet< KisPaintDevice * > &devices, qint64 &memBound, qint64 &layersSize, qint64 &projectionsSize, qint64 &lodSize)
virtual KisPaintDeviceSP projection() const =0
virtual KisPaintDeviceSP original() const =0
virtual KisPaintDeviceSP paintDevice() const =0
qint64 historicalMemorySize
const QScopedPointer< Private > m_d
KisSignalCompressor updateCompressor
Statistics fetchMemoryStatistics(KisImageSP image) const
void notifyImageChanged()
static KisMemoryStatisticsServer * instance()
Private(KisMemoryStatisticsServer *q)
void tryForceUpdateMemoryStatisticsWhileIdle()
KisMemoryStatisticsServer()
~KisMemoryStatisticsServer() override
void sigUpdateMemoryStatistics()
KisNodeSP firstChild() const
KisNodeSP nextSibling() const
qint64 historicalMemorySize