From 06a7b5ff784c2b5be90be2e15b4993626290d0aa Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Tue, 6 Dec 2022 10:42:59 +0100 Subject: [PATCH] Fix wrong to linear conversion Causing bad rendering of gamma corrected text on non-standard image format paint devices. Fixes: QTBUG-109169 Change-Id: I6d95e9a42b9ccac609071123dd4535d25e225a29 Reviewed-by: Fabian Vogt Reviewed-by: Eirik Aavitsland (cherry picked from commit a09c33e1f7b5999a16bce9dd23ef8ca33d519210) Reviewed-by: Qt Cherry-pick Bot --- src/gui/painting/qcolortrclut_p.h | 1 + src/gui/painting/qdrawhelper.cpp | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gui/painting/qcolortrclut_p.h b/src/gui/painting/qcolortrclut_p.h index 1b312d4a787..c6b73d9f69d 100644 --- a/src/gui/painting/qcolortrclut_p.h +++ b/src/gui/painting/qcolortrclut_p.h @@ -82,6 +82,7 @@ public: return QRgba64::fromRgba64(r, g, b, qAlpha(rgb32) * 257); #endif } + QRgba64 toLinear64(QRgba64) const = delete; QRgb toLinear(QRgb rgb32) const { diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp index 35c44b82864..39ea82e9107 100644 --- a/src/gui/painting/qdrawhelper.cpp +++ b/src/gui/painting/qdrawhelper.cpp @@ -5615,7 +5615,7 @@ static inline void alphargbblend_argb32(quint32 *dst, uint coverage, const QRgba static inline void rgbBlendPixel(QRgba64 &dst, int coverage, QRgba64 slinear, const QColorTrcLut *colorProfile) { // Do a gammacorrected RGB alphablend... - const QRgba64 dlinear = colorProfile ? colorProfile->toLinear64(dst) : dst; + const QRgba64 dlinear = colorProfile ? colorProfile->toLinear(dst) : dst; QRgba64 blend = rgbBlend(dlinear, slinear, coverage);