From a9e67318e6a8924c4b5461656bcc6a80720ae899 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. Pick-to: 6.4 6.2 5.15 Fixes: QTBUG-109169 Change-Id: I6d95e9a42b9ccac609071123dd4535d25e225a29 Reviewed-by: Fabian Vogt Reviewed-by: Eirik Aavitsland (cherry picked from commit a09c33e1f7b5999a16bce9dd23ef8ca33d519210) --- 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 76a6a60803..24fd522e6c 100644 --- a/src/gui/painting/qcolortrclut_p.h +++ b/src/gui/painting/qcolortrclut_p.h @@ -118,6 +118,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 a61793508a..5ba2d277b7 100644 --- a/src/gui/painting/qdrawhelper.cpp +++ b/src/gui/painting/qdrawhelper.cpp @@ -6091,7 +6091,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); -- 2.38.1