11#include <QMutexLocker>
12#include <QThreadStorage>
21 KoColorConversionTransformation::ConversionFlags _conversionFlags)
64typedef QPair<KoColorConversionCacheKey, KoCachedColorConversionTransformation>
FastPathCacheItem;
67 QMultiHash< KoColorConversionCacheKey, CachedTransformation*>
cache;
89 KoColorConversionTransformation::ConversionFlags _conversionFlags)
97 if (cacheItem->first == key) {
98 return cacheItem->second;
106 if (cachedTransfos.size() != 0) {
123 return cacheItem->second;
131 QMultiHash< KoColorConversionCacheKey, CachedTransformation*>::iterator endIt =
d->
cache.end();
132 for (QMultiHash< KoColorConversionCacheKey, CachedTransformation*>::iterator it =
d->
cache.begin(); it != endIt;) {
133 if (it.key().src == cs || it.key().dst == cs) {
134 Q_ASSERT(it.value()->isNotInUse());
153 : m_transfo(rhs.m_transfo)
uint qHash(const KoColorConversionCacheKey &key)
QPair< KoColorConversionCacheKey, KoCachedColorConversionTransformation > FastPathCacheItem
~KoColorConversionCache()
KoCachedColorConversionTransformation cachedConverter(const KoColorSpace *src, const KoColorSpace *dst, KoColorConversionTransformation::Intent _renderingIntent, KoColorConversionTransformation::ConversionFlags conversionFlags)
void colorSpaceIsDestroyed(const KoColorSpace *src)
bool operator==(const KoColorConversionCacheKey &rhs) const
KoColorConversionTransformation::ConversionFlags conversionFlags
KoColorConversionTransformation::Intent renderingIntent
KoColorConversionCacheKey(const KoColorSpace *_src, const KoColorSpace *_dst, KoColorConversionTransformation::Intent _renderingIntent, KoColorConversionTransformation::ConversionFlags _conversionFlags)
QThreadStorage< FastPathCacheItem * > fastStorage
QMultiHash< KoColorConversionCacheKey, CachedTransformation * > cache