Call QColorTransformPrivate::applyReturnGray directly
Change-Id: I03434d11cf0ee734b4c0300db9b675fe393ccfab Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
This commit is contained in:
parent
d9b63c90bf
commit
3fc1adcda5
@ -1423,7 +1423,7 @@ static void convert_ARGB_to_gray8(QImageData *dest, const QImageData *src, Qt::I
|
|||||||
|
|
||||||
for (int i = 0; i < src->height; ++i) {
|
for (int i = 0; i < src->height; ++i) {
|
||||||
const QRgb *src_line = reinterpret_cast<const QRgb *>(src_data);
|
const QRgb *src_line = reinterpret_cast<const QRgb *>(src_data);
|
||||||
tfd->apply(dest_data, src_line, src->width, flags);
|
tfd->applyReturnGray(dest_data, src_line, src->width, flags);
|
||||||
src_data += sbpl;
|
src_data += sbpl;
|
||||||
dest_data += dbpl;
|
dest_data += dbpl;
|
||||||
}
|
}
|
||||||
@ -1460,7 +1460,7 @@ static void convert_ARGB_to_gray16(QImageData *dest, const QImageData *src, Qt::
|
|||||||
const int len = std::min(src->width - j, BufferSize);
|
const int len = std::min(src->width - j, BufferSize);
|
||||||
for (int k = 0; k < len; ++k)
|
for (int k = 0; k < len; ++k)
|
||||||
tmp_line[k] = QRgba64::fromArgb32(src_line[j + k]);
|
tmp_line[k] = QRgba64::fromArgb32(src_line[j + k]);
|
||||||
tfd->apply(dest_line + j, tmp_line, len, flags);
|
tfd->applyReturnGray(dest_line + j, tmp_line, len, flags);
|
||||||
j += len;
|
j += len;
|
||||||
}
|
}
|
||||||
src_data += sbpl;
|
src_data += sbpl;
|
||||||
@ -1497,7 +1497,7 @@ static void convert_RGBA64_to_gray8(QImageData *dest, const QImageData *src, Qt:
|
|||||||
int j = 0;
|
int j = 0;
|
||||||
while (j < src->width) {
|
while (j < src->width) {
|
||||||
const int len = std::min(src->width - j, BufferSize);
|
const int len = std::min(src->width - j, BufferSize);
|
||||||
tfd->apply(gray_line, src_line + j, len, flags);
|
tfd->applyReturnGray(gray_line, src_line + j, len, flags);
|
||||||
for (int k = 0; k < len; ++k)
|
for (int k = 0; k < len; ++k)
|
||||||
dest_line[j + k] = qt_div_257(gray_line[k]);
|
dest_line[j + k] = qt_div_257(gray_line[k]);
|
||||||
j += len;
|
j += len;
|
||||||
@ -1532,7 +1532,7 @@ static void convert_RGBA64_to_gray16(QImageData *dest, const QImageData *src, Qt
|
|||||||
for (int i = 0; i < src->height; ++i) {
|
for (int i = 0; i < src->height; ++i) {
|
||||||
const QRgba64 *src_line = reinterpret_cast<const QRgba64 *>(src_data);
|
const QRgba64 *src_line = reinterpret_cast<const QRgba64 *>(src_data);
|
||||||
quint16 *dest_line = reinterpret_cast<quint16 *>(dest_data);
|
quint16 *dest_line = reinterpret_cast<quint16 *>(dest_data);
|
||||||
tfd->apply(dest_line, src_line, src->width, flags);
|
tfd->applyReturnGray(dest_line, src_line, src->width, flags);
|
||||||
src_data += sbpl;
|
src_data += sbpl;
|
||||||
dest_data += dbpl;
|
dest_data += dbpl;
|
||||||
}
|
}
|
||||||
|
@ -1254,6 +1254,11 @@ void QColorTransformPrivate::apply(T *dst, const T *src, qsizetype count, Transf
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\internal
|
||||||
|
Is to be called on a color-transform to XYZ, returns only luminance values.
|
||||||
|
|
||||||
|
*/
|
||||||
template<typename D, typename S>
|
template<typename D, typename S>
|
||||||
void QColorTransformPrivate::applyReturnGray(D *dst, const S *src, qsizetype count, TransformFlags flags) const
|
void QColorTransformPrivate::applyReturnGray(D *dst, const S *src, qsizetype count, TransformFlags flags) const
|
||||||
{
|
{
|
||||||
@ -1358,26 +1363,9 @@ void QColorTransformPrivate::apply(QRgbaFloat32 *dst, const QRgbaFloat32 *src, q
|
|||||||
apply<QRgbaFloat32>(dst, src, count, flags);
|
apply<QRgbaFloat32>(dst, src, count, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
|
||||||
\internal
|
|
||||||
Is to be called on a color-transform to XYZ, returns only luminance values.
|
|
||||||
|
|
||||||
*/
|
|
||||||
void QColorTransformPrivate::apply(quint8 *dst, const QRgb *src, qsizetype count, TransformFlags flags) const
|
|
||||||
{
|
|
||||||
applyReturnGray<quint8, QRgb>(dst, src, count, flags);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\internal
|
|
||||||
Is to be called on a color-transform to XYZ, returns only luminance values.
|
|
||||||
|
|
||||||
*/
|
|
||||||
void QColorTransformPrivate::apply(quint16 *dst, const QRgba64 *src, qsizetype count, TransformFlags flags) const
|
|
||||||
{
|
|
||||||
applyReturnGray<quint16, QRgba64>(dst, src, count, flags);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
template void QColorTransformPrivate::applyReturnGray<quint8, QRgb>(quint8 *dst, const QRgb *src, qsizetype count, TransformFlags flags) const;
|
||||||
|
template void QColorTransformPrivate::applyReturnGray<quint16, QRgba64>(quint16 *dst, const QRgba64 *src, qsizetype count, TransformFlags flags) const;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\internal
|
\internal
|
||||||
|
@ -51,8 +51,6 @@ public:
|
|||||||
void apply(QRgba64 *dst, const QRgba64 *src, qsizetype count, TransformFlags flags = Unpremultiplied) const;
|
void apply(QRgba64 *dst, const QRgba64 *src, qsizetype count, TransformFlags flags = Unpremultiplied) const;
|
||||||
void apply(QRgbaFloat32 *dst, const QRgbaFloat32 *src, qsizetype count,
|
void apply(QRgbaFloat32 *dst, const QRgbaFloat32 *src, qsizetype count,
|
||||||
TransformFlags flags = Unpremultiplied) const;
|
TransformFlags flags = Unpremultiplied) const;
|
||||||
void apply(quint8 *dst, const QRgb *src, qsizetype count, TransformFlags flags = Unpremultiplied) const;
|
|
||||||
void apply(quint16 *dst, const QRgba64 *src, qsizetype count, TransformFlags flags = Unpremultiplied) const;
|
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
void apply(T *dst, const T *src, qsizetype count, TransformFlags flags) const;
|
void apply(T *dst, const T *src, qsizetype count, TransformFlags flags) const;
|
||||||
|
@ -629,7 +629,7 @@ static void QT_FASTCALL destStoreGray8(QRasterBuffer *rasterBuffer, int x, int y
|
|||||||
QColorTransform tf = QColorSpacePrivate::get(fromCS)->transformationToXYZ();
|
QColorTransform tf = QColorSpacePrivate::get(fromCS)->transformationToXYZ();
|
||||||
QColorTransformPrivate *tfd = QColorTransformPrivate::get(tf);
|
QColorTransformPrivate *tfd = QColorTransformPrivate::get(tf);
|
||||||
|
|
||||||
tfd->apply(data, buffer, length, QColorTransformPrivate::InputPremultiplied);
|
tfd->applyReturnGray(data, buffer, length, QColorTransformPrivate::InputPremultiplied);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -653,7 +653,7 @@ static void QT_FASTCALL destStoreGray16(QRasterBuffer *rasterBuffer, int x, int
|
|||||||
QRgba64 tmp_line[BufferSize];
|
QRgba64 tmp_line[BufferSize];
|
||||||
for (int k = 0; k < length; ++k)
|
for (int k = 0; k < length; ++k)
|
||||||
tmp_line[k] = QRgba64::fromArgb32(buffer[k]);
|
tmp_line[k] = QRgba64::fromArgb32(buffer[k]);
|
||||||
tfd->apply(data, tmp_line, length, QColorTransformPrivate::InputPremultiplied);
|
tfd->applyReturnGray(data, tmp_line, length, QColorTransformPrivate::InputPremultiplied);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -731,7 +731,7 @@ static void QT_FASTCALL destStore64Gray8(QRasterBuffer *rasterBuffer, int x, int
|
|||||||
QColorTransformPrivate *tfd = QColorTransformPrivate::get(tf);
|
QColorTransformPrivate *tfd = QColorTransformPrivate::get(tf);
|
||||||
|
|
||||||
quint16 gray_line[BufferSize];
|
quint16 gray_line[BufferSize];
|
||||||
tfd->apply(gray_line, buffer, length, QColorTransformPrivate::InputPremultiplied);
|
tfd->applyReturnGray(gray_line, buffer, length, QColorTransformPrivate::InputPremultiplied);
|
||||||
for (int k = 0; k < length; ++k)
|
for (int k = 0; k < length; ++k)
|
||||||
data[k] = qt_div_257(gray_line[k]);
|
data[k] = qt_div_257(gray_line[k]);
|
||||||
}
|
}
|
||||||
@ -753,7 +753,7 @@ static void QT_FASTCALL destStore64Gray16(QRasterBuffer *rasterBuffer, int x, in
|
|||||||
QColorSpace fromCS = rasterBuffer->colorSpace.isValid() ? rasterBuffer->colorSpace : QColorSpace::SRgb;
|
QColorSpace fromCS = rasterBuffer->colorSpace.isValid() ? rasterBuffer->colorSpace : QColorSpace::SRgb;
|
||||||
QColorTransform tf = QColorSpacePrivate::get(fromCS)->transformationToXYZ();
|
QColorTransform tf = QColorSpacePrivate::get(fromCS)->transformationToXYZ();
|
||||||
QColorTransformPrivate *tfd = QColorTransformPrivate::get(tf);
|
QColorTransformPrivate *tfd = QColorTransformPrivate::get(tf);
|
||||||
tfd->apply(data, buffer, length, QColorTransformPrivate::InputPremultiplied);
|
tfd->applyReturnGray(data, buffer, length, QColorTransformPrivate::InputPremultiplied);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user