From 1ff505432c4496b71bf03db35f5fde19cc1eecaa Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Thu, 29 Aug 2019 21:04:56 +0200 Subject: [PATCH] Do not treat changes of tonecurve.fromHistMatching as related to panning --- rtengine/improccoordinator.cc | 2 +- rtengine/procparams.cc | 23 +++++++++++++++++++++++ rtengine/procparams.h | 1 + 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 6f471eedf..766c7ba84 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -1514,7 +1514,7 @@ void ImProcCoordinator::process() while (changeSinceLast) { const bool panningRelatedChange = - params->toneCurve != nextParams->toneCurve + params->toneCurve.isPanningRelatedChange(nextParams->toneCurve) || params->labCurve != nextParams->labCurve || params->localContrast != nextParams->localContrast || params->rgbCurves != nextParams->rgbCurves diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index 66837f89b..9fbc260ce 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -330,6 +330,29 @@ ToneCurveParams::ToneCurveParams() : { } +bool ToneCurveParams::isPanningRelatedChange(const ToneCurveParams& other) const +{ + return ! + (autoexp == other.autoexp + && clip == other.clip + && hrenabled == other.hrenabled + && method == other.method + && expcomp == other.expcomp + && curve == other.curve + && curve2 == other.curve2 + && curveMode == other.curveMode + && curveMode2 == other.curveMode2 + && brightness == other.brightness + && black == other.black + && contrast == other.contrast + && saturation == other.saturation + && shcompr == other.shcompr + && hlcompr == other.hlcompr + && hlcomprthresh == other.hlcomprthresh + && histmatching == other.histmatching + && clampOOG == other.clampOOG); +} + bool ToneCurveParams::operator ==(const ToneCurveParams& other) const { return diff --git a/rtengine/procparams.h b/rtengine/procparams.h index 369af85fa..2d042f571 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -284,6 +284,7 @@ struct ToneCurveParams { ToneCurveParams(); + bool isPanningRelatedChange(const ToneCurveParams& other) const; bool operator ==(const ToneCurveParams& other) const; bool operator !=(const ToneCurveParams& other) const;