57 if (updateRect.isEmpty())
return info;
62 auto needCreateProofingTransform =
64 return !
m_d->proofingTransform &&
65 m_d->proofingConfig &&
70 if (convertColorSpace && needCreateProofingTransform()) {
72 QWriteLocker locker(&
m_d->lock);
73 if (needCreateProofingTransform()) {
75 m_d->proofingConfig->proofingDepth,
76 m_d->proofingConfig->proofingProfile);
78 KoColorConversionTransformation::ConversionFlags displayFlags =
m_d->proofingConfig->determineDisplayFlags(
m_d->conversionOptions.m_conversionFlags);
82 m_d->conversionOptions.m_destinationColorSpace,
84 m_d->proofingConfig->conversionIntent,
86 m_d->proofingConfig->useBlackPointCompensationFirstTransform,
87 m_d->proofingConfig->warningColor,
92 QReadLocker locker(&
m_d->lock);
103 QRect artificialRect =
kisGrowRect(updateRect,
m_d->textureBorder);
106 int firstColumn =
xToCol(artificialRect.left());
107 int lastColumn =
xToCol(artificialRect.right());
108 int firstRow =
yToRow(artificialRect.top());
109 int lastRow =
yToRow(artificialRect.bottom());
113 if (!
m_d->channelFlags.isEmpty() &&
119 qint32 numItems = (lastColumn - firstColumn + 1) * (lastRow - firstRow + 1);
122 QRect alignedUpdateRect = updateRect;
123 QRect alignedBounds =
bounds;
130 for (
int col = firstColumn; col <= lastColumn; col++) {
131 for (
int row = firstRow; row <= lastRow; row++) {
137 alignedTileTextureRect,
143 if (tileInfo->valid()) {
144 tileInfo->retrieveData(projection,
channelFlags,
m_d->onlyOneChannelSelected,
m_d->selectedChannelIndex);
146 if (convertColorSpace) {
147 if (
m_d->proofingTransform) {
148 tileInfo->proofTo(
m_d->conversionOptions.m_destinationColorSpace,
m_d->proofingConfig->displayFlags,
m_d->proofingTransform.data());
150 tileInfo->convertTo(
m_d->conversionOptions.m_destinationColorSpace,
m_d->conversionOptions.m_renderingIntent,
m_d->conversionOptions.m_conversionFlags);
157 dbgUI <<
"Trying to create an empty tileinfo record" << col << row << alignedTileTextureRect << updateRect <<
bounds;
static KoColorConversionTransformation * generateProofingTransform(const KoColorSpace *srcCS, const KoColorSpace *dstCS, const KoColorSpace *proofingSpace, KoColorConversionTransformation::Intent renderingIntent, KoColorConversionTransformation::Intent proofingIntent, bool bpcFirstTransform, KoColor gamutWarning, KoColorConversionTransformation::ConversionFlags displayConversionFlags)