Fix rtengine::min()
for NaNs (#3742)
Also fix `LuminanceToneCurve::Apply()`. Kudos to @heckflosse!
This commit is contained in:
@@ -994,8 +994,9 @@ inline void LuminanceToneCurve::Apply(float &r, float &g, float &b) const
|
|||||||
assert (lutToneCurve);
|
assert (lutToneCurve);
|
||||||
|
|
||||||
float currLuminance = r * 0.2126729f + g * 0.7151521f + b * 0.0721750f;
|
float currLuminance = r * 0.2126729f + g * 0.7151521f + b * 0.0721750f;
|
||||||
float newLuminance = lutToneCurve[currLuminance];
|
const float newLuminance = lutToneCurve[currLuminance];
|
||||||
float coef = newLuminance / currLuminance;
|
currLuminance = currLuminance == 0.f ? 0.00001f : currLuminance;
|
||||||
|
const float coef = newLuminance / currLuminance;
|
||||||
r = LIM<float>(r * coef, 0.f, 65535.f);
|
r = LIM<float>(r * coef, 0.f, 65535.f);
|
||||||
g = LIM<float>(g * coef, 0.f, 65535.f);
|
g = LIM<float>(g * coef, 0.f, 65535.f);
|
||||||
b = LIM<float>(b * coef, 0.f, 65535.f);
|
b = LIM<float>(b * coef, 0.f, 65535.f);
|
||||||
|
@@ -42,7 +42,7 @@ constexpr const T& min(const T& a)
|
|||||||
template<typename T>
|
template<typename T>
|
||||||
constexpr const T& min(const T& a, const T& b)
|
constexpr const T& min(const T& a, const T& b)
|
||||||
{
|
{
|
||||||
return a < b ? a : b;
|
return b < a ? b : a;
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename T, typename... ARGS>
|
template<typename T, typename... ARGS>
|
||||||
|
Reference in New Issue
Block a user