8#ifndef KIS_TILE_DATA_INTERFACE_H_
9#define KIS_TILE_DATA_INTERFACE_H_
11#include <QReadWriteLock>
24#define __TILE_DATA_WIDTH 64
25#define __TILE_DATA_HEIGHT 64
40 bool push(
int pixelSize, quint8 *&ptr)
60 bool pop(
int pixelSize, quint8 *&ptr)
108 inline quint8* data()
const;
109 inline void setData(
const quint8 *data);
110 inline quint32 pixelSize()
const;
116 inline bool acquire();
122 inline bool release();
129 inline bool ref()
const;
147 inline void blockSwapping();
148 inline void unblockSwapping();
154 inline void setSwapChunk(
KisChunk chunk);
159 inline bool mementoed()
const;
160 inline void setMementoed(
bool value);
165 inline int age()
const;
166 inline void resetAge();
167 inline void markOld();
173 inline qint32 numUsers()
const;
181 inline bool historical()
const;
188 void releaseMemory();
199 void allocateMemory();
209 static void releaseInternalPools();
212 void fillWithPixel(
const quint8 *defPixel);
214 static quint8* allocateData(
const qint32 pixelSize);
215 static void freeData(quint8 *ptr,
const qint32 pixelSize);
218 friend class KisTileDataPoolerTest;
246 int m_tileNumber = -1;
284 friend class KisLowMemoryTests;
float value(const T *src, size_t ch)
QReadWriteLock m_swapLock
EnumTileDataState m_state
KisTileDataStore * m_store
KisTileDataCache m_clonesStack
static SimpleCache m_cache
static const qint32 HEIGHT
static const qint32 WIDTH
bool pop(int pixelSize, quint8 *&ptr)
KisLocklessStack< quint8 * > m_16Pool
bool push(int pixelSize, quint8 *&ptr)
QReadWriteLock m_cacheLock
KisLocklessStack< quint8 * > m_4Pool
KisLocklessStack< quint8 * > m_8Pool
KisTileDataList::iterator KisTileDataListIterator
KisTileDataList::const_iterator KisTileDataListConstIterator
QLinkedList< KisTileData * > KisTileDataList
KisLocklessStack< KisTileData * > KisTileDataCache