From aa389dbcae57d5245912cef11a5166c86e29c5fd Mon Sep 17 00:00:00 2001 From: Desmis Date: Sat, 29 Feb 2020 12:51:17 +0100 Subject: [PATCH] Ciecam02 fixed bad temp and tint cat02preset --- rtengine/improccoordinator.cc | 5 +++++ rtengine/rtengine.h | 2 ++ rtgui/colorappearance.cc | 16 ++++++++++++++++ rtgui/colorappearance.h | 1 + 4 files changed, 24 insertions(+) diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index fc3b29b9f..1f3c91922 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -1159,6 +1159,11 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) if (params->colorappearance.autoybscen && acListener && params->colorappearance.enabled && !params->colorappearance.presetcat02) { acListener->ybCamChanged((int) yb); //real value Yb scene } + + if (params->colorappearance.enabled && params->colorappearance.presetcat02) { + acListener->wbCamChanged(params->wb.temperature, params->wb.green); //real temp and tint + } + } else { // CIECAM is disabled, we free up its image buffer to save some space if (ncie) { diff --git a/rtengine/rtengine.h b/rtengine/rtengine.h index 2d98c4ac2..e6074d50b 100644 --- a/rtengine/rtengine.h +++ b/rtengine/rtengine.h @@ -355,6 +355,8 @@ public : virtual void autoCamChanged(double ccam, double ccamout) = 0; virtual void adapCamChanged(double cadap) = 0; virtual void ybCamChanged(int yb) = 0; + virtual void wbCamChanged(double tem, double tin) = 0; + }; class AutoChromaListener diff --git a/rtgui/colorappearance.cc b/rtgui/colorappearance.cc index eed1c074b..262045d12 100644 --- a/rtgui/colorappearance.cc +++ b/rtgui/colorappearance.cc @@ -1631,6 +1631,22 @@ void ColorAppearance::adapCamChanged (double cadap) ); } + +void ColorAppearance::wbCamChanged (double temp, double tin) +{ + + idle_register.add( + [this, temp, tin]() -> bool + { + disableListener(); + tempout->setValue(temp); + greenout->setValue(tin); + enableListener(); + return false; + } + ); +} + void ColorAppearance::ybCamChanged (int ybsc) { if(presetcat02->get_active()){ diff --git a/rtgui/colorappearance.h b/rtgui/colorappearance.h index 7379eb9b0..2f060edea 100644 --- a/rtgui/colorappearance.h +++ b/rtgui/colorappearance.h @@ -63,6 +63,7 @@ public: void autoCamChanged (double ccam, double ccamout) override; bool autoCamComputed_ (); void adapCamChanged (double cadap) override; + void wbCamChanged(double tem, double tin) override; bool adapCamComputed_ (); void ybCamChanged (int yb) override; bool ybCamComputed_ ();