From df8367558ba81c34a8fb67852685f2ec4e97349b Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Thu, 29 Aug 2019 22:07:15 +0200 Subject: [PATCH] Do not treat white balance changes as related to panning if before and after uses camera whitebalance --- rtengine/improccoordinator.cc | 2 +- rtengine/procparams.cc | 15 +++++++++++++++ rtengine/procparams.h | 1 + 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 766c7ba84..daadcb16c 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -1520,7 +1520,7 @@ void ImProcCoordinator::process() || params->rgbCurves != nextParams->rgbCurves || params->colorToning != nextParams->colorToning || params->vibrance != nextParams->vibrance - || params->wb != nextParams->wb + || params->wb.isPanningRelatedChange(nextParams->wb) || params->colorappearance != nextParams->colorappearance || params->epd != nextParams->epd || params->fattal != nextParams->fattal diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index 9fbc260ce..f14d72871 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -1233,6 +1233,21 @@ WBParams::WBParams() : { } +bool WBParams::isPanningRelatedChange(const WBParams& other) const +{ + return ! + (enabled == other.enabled + && ((method == "Camera" && other.method == "Camera") + || + (method == other.method + && temperature == other.temperature + && green == other.green + && equal == other.equal + && tempBias == other.tempBias) + ) + ); +} + bool WBParams::operator ==(const WBParams& other) const { return diff --git a/rtengine/procparams.h b/rtengine/procparams.h index 2d042f571..6ae807d7e 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -598,6 +598,7 @@ struct WBParams { WBParams(); + bool isPanningRelatedChange(const WBParams& other) const; bool operator ==(const WBParams& other) const; bool operator !=(const WBParams& other) const;