summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2021-02-11 16:17:55 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-02-13 12:21:03 +0000
commit95191e55e198200ae443f6f8ce41d60b0c064a50 (patch)
treecb41a5a8bcd5136816e3b784484f5ed9ec57ee0e /src/gui
parent83dcbf75ad232421070fbe1b461c54b5ffe9783d (diff)
Extend colorspace testing and fix bug it uncovered
When changing transferfunction the look-up-tables needs to be regenerated. Change-Id: I83ca5fe570f85d478a374f52c0a82db84e70c3b8 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io> (cherry picked from commit b2631c72c0628e68c0fae7567fd12e6646455efc) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/painting/qcolorspace.cpp2
-rw-r--r--src/gui/painting/qcolortrc_p.h2
2 files changed, 3 insertions, 1 deletions
diff --git a/src/gui/painting/qcolorspace.cpp b/src/gui/painting/qcolorspace.cpp
index e6f3db8f45..e1f8d0b63b 100644
--- a/src/gui/painting/qcolorspace.cpp
+++ b/src/gui/painting/qcolorspace.cpp
@@ -403,6 +403,7 @@ void QColorSpacePrivate::setTransferFunctionTables(const QList<uint16_t> &redTra
trc[2].m_type = QColorTrc::Type::Table;
trc[2].m_table = blueTable;
}
+ lut.generated.storeRelease(0);
}
void QColorSpacePrivate::setTransferFunction()
@@ -438,6 +439,7 @@ void QColorSpacePrivate::setTransferFunction()
}
trc[1] = trc[0];
trc[2] = trc[0];
+ lut.generated.storeRelease(0);
}
QColorTransform QColorSpacePrivate::transformationToColorSpace(const QColorSpacePrivate *out) const
diff --git a/src/gui/painting/qcolortrc_p.h b/src/gui/painting/qcolortrc_p.h
index 3ef9d442fc..058be3c7ce 100644
--- a/src/gui/painting/qcolortrc_p.h
+++ b/src/gui/painting/qcolortrc_p.h
@@ -114,7 +114,7 @@ public:
if (x >= 0.0f && x <= 1.0f)
return applyInverse(x);
if (m_type == Type::Function)
- return std::copysign(applyInverse(x), x);
+ return std::copysign(applyInverse(std::abs(x)), x);
if (m_type == Type::Table)
return x < 0.0f ? 0.0f : 1.0f;
return x;