From 3fc1adcda5fc64a92bf5f5016fc276545105887e Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Fri, 23 Feb 2024 13:55:29 +0100 Subject: [PATCH] Call QColorTransformPrivate::applyReturnGray directly Change-Id: I03434d11cf0ee734b4c0300db9b675fe393ccfab Reviewed-by: Giuseppe D'Angelo --- src/gui/image/qimage_conversions.cpp | 8 ++++---- src/gui/painting/qcolortransform.cpp | 26 +++++++------------------- src/gui/painting/qcolortransform_p.h | 2 -- src/gui/painting/qdrawhelper.cpp | 8 ++++---- 4 files changed, 15 insertions(+), 29 deletions(-) diff --git a/src/gui/image/qimage_conversions.cpp b/src/gui/image/qimage_conversions.cpp index be1ad2df829..35990021236 100644 --- a/src/gui/image/qimage_conversions.cpp +++ b/src/gui/image/qimage_conversions.cpp @@ -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) { const QRgb *src_line = reinterpret_cast(src_data); - tfd->apply(dest_data, src_line, src->width, flags); + tfd->applyReturnGray(dest_data, src_line, src->width, flags); src_data += sbpl; 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); for (int k = 0; k < len; ++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; } src_data += sbpl; @@ -1497,7 +1497,7 @@ static void convert_RGBA64_to_gray8(QImageData *dest, const QImageData *src, Qt: int j = 0; while (j < src->width) { 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) dest_line[j + k] = qt_div_257(gray_line[k]); 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) { const QRgba64 *src_line = reinterpret_cast(src_data); quint16 *dest_line = reinterpret_cast(dest_data); - tfd->apply(dest_line, src_line, src->width, flags); + tfd->applyReturnGray(dest_line, src_line, src->width, flags); src_data += sbpl; dest_data += dbpl; } diff --git a/src/gui/painting/qcolortransform.cpp b/src/gui/painting/qcolortransform.cpp index 579d99d09c4..76d3dfacc86 100644 --- a/src/gui/painting/qcolortransform.cpp +++ b/src/gui/painting/qcolortransform.cpp @@ -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 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(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(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(dst, src, count, flags); -} +template void QColorTransformPrivate::applyReturnGray(quint8 *dst, const QRgb *src, qsizetype count, TransformFlags flags) const; +template void QColorTransformPrivate::applyReturnGray(quint16 *dst, const QRgba64 *src, qsizetype count, TransformFlags flags) const; /*! \internal diff --git a/src/gui/painting/qcolortransform_p.h b/src/gui/painting/qcolortransform_p.h index e5be45bb207..1361060b738 100644 --- a/src/gui/painting/qcolortransform_p.h +++ b/src/gui/painting/qcolortransform_p.h @@ -51,8 +51,6 @@ public: void apply(QRgba64 *dst, const QRgba64 *src, qsizetype count, TransformFlags flags = Unpremultiplied) const; void apply(QRgbaFloat32 *dst, const QRgbaFloat32 *src, qsizetype count, 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 void apply(T *dst, const T *src, qsizetype count, TransformFlags flags) const; diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp index 1846fd6ffcd..218c9d16561 100644 --- a/src/gui/painting/qdrawhelper.cpp +++ b/src/gui/painting/qdrawhelper.cpp @@ -629,7 +629,7 @@ static void QT_FASTCALL destStoreGray8(QRasterBuffer *rasterBuffer, int x, int y QColorTransform tf = QColorSpacePrivate::get(fromCS)->transformationToXYZ(); 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]; for (int k = 0; k < length; ++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); 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) 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; QColorTransform tf = QColorSpacePrivate::get(fromCS)->transformationToXYZ(); QColorTransformPrivate *tfd = QColorTransformPrivate::get(tf); - tfd->apply(data, buffer, length, QColorTransformPrivate::InputPremultiplied); + tfd->applyReturnGray(data, buffer, length, QColorTransformPrivate::InputPremultiplied); } }