From fb06a4dcfd4071a1d9f429a31df5f24677559b41 Mon Sep 17 00:00:00 2001 From: Desmis Date: Tue, 23 Jun 2020 12:00:23 +0200 Subject: [PATCH] Pass GUI parameters mask to rtengine and iplocallab.cc --- rtdata/languages/default | 38 ++++++++++---------- rtengine/dcrop.cc | 4 +-- rtengine/improccoordinator.cc | 3 +- rtengine/improccoordinator.h | 4 ++- rtengine/improcfun.h | 2 +- rtengine/iplocallab.cc | 65 ++++++++++++++++++++--------------- rtengine/procevents.h | 39 ++++++++++----------- rtengine/refreshmap.cc | 1 - rtengine/rtengine.h | 2 +- rtengine/simpleprocess.cc | 2 +- rtgui/locallabtools.h | 6 ++-- rtgui/locallabtools2.cc | 36 +++++++++---------- rtgui/toolpanelcoord.cc | 6 ++-- 13 files changed, 109 insertions(+), 99 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index cf0b41ac3..297466f2a 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -1168,25 +1168,25 @@ HISTORY_MSG_927;Local - Shadow mask HISTORY_MSG_928;Local - Common color mask HISTORY_MSG_929;Local - Mask common scope HISTORY_MSG_930;Local - Mask Common blend -HISTORY_MSG_932;Local - Mask Common enable -HISTORY_MSG_933;Local - Mask Common radius soft -HISTORY_MSG_934;Local - Mask Common laplacian -HISTORY_MSG_935;Local - Mask Common chroma -HISTORY_MSG_936;Local - Mask Common gamma -HISTORY_MSG_937;Local - Mask Common slope -HISTORY_MSG_938;Local - Mask Common curve C(C) -HISTORY_MSG_939;Local - Mask Common curve L(L) -HISTORY_MSG_940;Local - Mask Common curve LC(H) -HISTORY_MSG_941;Local - Mask Common structure as tool -HISTORY_MSG_942;Local - Mask Common structure strength -HISTORY_MSG_943;Local - Mask Common H(H) curve -HISTORY_MSG_944;Local - Mask Common FFT -HISTORY_MSG_945;Local - Mask Common Blur radius -HISTORY_MSG_946;Local - Mask Common contrast threshold -HISTORY_MSG_947;Local - Mask Common shadows -HISTORY_MSG_948;Local - Mask Common Contrast curve -HISTORY_MSG_949;Local - Mask Common Wavelet curve -HISTORY_MSG_950;Local - Mask Common Threshold levels +HISTORY_MSG_931;Local - Mask Common enable +HISTORY_MSG_932;Local - Mask Common radius soft +HISTORY_MSG_933;Local - Mask Common laplacian +HISTORY_MSG_934;Local - Mask Common chroma +HISTORY_MSG_935;Local - Mask Common gamma +HISTORY_MSG_936;Local - Mask Common slope +HISTORY_MSG_937;Local - Mask Common curve C(C) +HISTORY_MSG_938;Local - Mask Common curve L(L) +HISTORY_MSG_939;Local - Mask Common curve LC(H) +HISTORY_MSG_940;Local - Mask Common structure as tool +HISTORY_MSG_941;Local - Mask Common structure strength +HISTORY_MSG_942;Local - Mask Common H(H) curve +HISTORY_MSG_943;Local - Mask Common FFT +HISTORY_MSG_944;Local - Mask Common Blur radius +HISTORY_MSG_945;Local - Mask Common contrast threshold +HISTORY_MSG_946;Local - Mask Common shadows +HISTORY_MSG_947;Local - Mask Common Contrast curve +HISTORY_MSG_948;Local - Mask Common Wavelet curve +HISTORY_MSG_949;Local - Mask Common Threshold levels HISTORY_MSG_CAT02PRESET;Cat02 automatic preset HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index 20f7835d8..ab5ec0196 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -1168,7 +1168,7 @@ void Crop::update(int todo) LHutili, HHutili, cclocalcurve2, localcutili, rgblocalcurve2, localrgbutili, localexutili, exlocalcurve2, hltonecurveloc2, shtonecurveloc2, tonecurveloc2, lightCurveloc2, huerefblu, chromarefblu, lumarefblu, huere, chromare, lumare, sobelre, lastsav, parent->previewDeltaE, parent->locallColorMask, parent->locallColorMaskinv, parent->locallExpMask, parent->locallExpMaskinv, parent->locallSHMask, parent->locallSHMaskinv, parent->locallvibMask, parent->localllcMask, parent->locallsharMask, parent->locallcbMask, parent->locallretiMask, parent->locallsoftMask, parent->localltmMask, parent->locallblMask, - minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax); + parent->locall_Mask, minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax); } else { parent->ipf.Lab_Local(1, sp, (float**)shbuffer, labnCrop, labnCrop, reservCrop, lastorigCrop, cropx / skip, cropy / skip, skips(parent->fw, skip), skips(parent->fh, skip), skip, locRETgainCurve, locRETtransCurve, lllocalcurve2,locallutili, @@ -1208,7 +1208,7 @@ void Crop::update(int todo) locedgwavCurve, locedgwavutili, loclmasCurve_wav,lmasutili_wav, LHutili, HHutili, cclocalcurve2, localcutili, rgblocalcurve2, localrgbutili, localexutili, exlocalcurve2, hltonecurveloc2, shtonecurveloc2, tonecurveloc2, lightCurveloc2, - huerefblu, chromarefblu, lumarefblu, huere, chromare, lumare, sobelre, lastsav, false, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + huerefblu, chromarefblu, lumarefblu, huere, chromare, lumare, sobelre, lastsav, false, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax); } diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 5e3aaa0fc..53a30daa5 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -305,6 +305,7 @@ ImProcCoordinator::ImProcCoordinator() : localltmMask(0), locallblMask(0), locallsharMask(0), + locall_Mask(0), retistrsav(nullptr) { } @@ -1348,7 +1349,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) locedgwavCurve, locedgwavutili, loclmasCurve_wav, lmasutili_wav, LHutili, HHutili, cclocalcurve, localcutili, rgblocalcurve, localrgbutili, localexutili, exlocalcurve, hltonecurveloc, shtonecurveloc, tonecurveloc, lightCurveloc, - huerblu, chromarblu, lumarblu, huer, chromar, lumar, sobeler, lastsav, false, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + huerblu, chromarblu, lumarblu, huer, chromar, lumar, sobeler, lastsav, false, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax); lastorigimp->CopyFrom(nprevl); diff --git a/rtengine/improccoordinator.h b/rtengine/improccoordinator.h index 8ad20f0d8..129161a34 100644 --- a/rtengine/improccoordinator.h +++ b/rtengine/improccoordinator.h @@ -398,6 +398,7 @@ protected: int localltmMask; int locallblMask; int locallsharMask; + int locall_Mask; public: @@ -468,7 +469,7 @@ public: updaterThreadStart.unlock(); } - void setLocallabMaskVisibility(bool previewDeltaE, int locallColorMask, int locallColorMaskinv, int locallExpMask, int locallExpMaskinv, int locallSHMask, int locallSHMaskinv, int locallvibMask, int locallsoftMask, int locallblMask, int localltmMask, int locallretiMask, int locallsharMask, int localllcMask, int locallcbMask) override + void setLocallabMaskVisibility(bool previewDeltaE, int locallColorMask, int locallColorMaskinv, int locallExpMask, int locallExpMaskinv, int locallSHMask, int locallSHMaskinv, int locallvibMask, int locallsoftMask, int locallblMask, int localltmMask, int locallretiMask, int locallsharMask, int localllcMask, int locallcbMask, int locall_Mask) override { this->previewDeltaE = previewDeltaE; this->locallColorMask = locallColorMask; @@ -485,6 +486,7 @@ public: this->locallsharMask = locallsharMask; this->localllcMask = localllcMask; this->locallcbMask = locallcbMask; + this->locall_Mask = locall_Mask; } void setProgressListener (ProgressListener* pl) override diff --git a/rtengine/improcfun.h b/rtengine/improcfun.h index d09a1aabd..31c8cdefc 100644 --- a/rtengine/improcfun.h +++ b/rtengine/improcfun.h @@ -325,7 +325,7 @@ public: const LocwavCurve& loclmasCurve_wav, bool lmasutili_wav, bool LHutili, bool HHutili, const LUTf& cclocalcurve, bool localcutili, const LUTf& rgblocalcurve, bool localrgbutili, bool localexutili, const LUTf& exlocalcurve, const LUTf& hltonecurveloc, const LUTf& shtonecurveloc, const LUTf& tonecurveloc, const LUTf& lightCurveloc, double& huerefblur, double &chromarefblur, double& lumarefblur, double &hueref, double &chromaref, double &lumaref, double &sobelref, int &lastsav, - bool prevDeltaE, int llColorMask, int llColorMaskinv, int llExpMask, int llExpMaskinv, int llSHMask, int llSHMaskinv, int llvibMask, int lllcMask, int llsharMask, int llcbMask, int llretiMask, int llsoftMask, int lltmMask, int llblMask, + bool prevDeltaE, int llColorMask, int llColorMaskinv, int llExpMask, int llExpMaskinv, int llSHMask, int llSHMaskinv, int llvibMask, int lllcMask, int llsharMask, int llcbMask, int llretiMask, int llsoftMask, int lltmMask, int llblMask, int ll_Mask, float &minCD, float &maxCD, float &mini, float &maxi, float &Tmean, float &Tsigma, float &Tmin, float &Tmax); void addGaNoise(LabImage *lab, LabImage *dst, const float mean, const float variance, const int sk); diff --git a/rtengine/iplocallab.cc b/rtengine/iplocallab.cc index 65c0e120b..97fd43a0d 100644 --- a/rtengine/iplocallab.cc +++ b/rtengine/iplocallab.cc @@ -522,6 +522,7 @@ struct local_params { int showmasksoftmet; int showmasktmmet; int showmaskblmet; + int showmask_met; bool fftbl; float laplacexp; float balanexp; @@ -571,6 +572,7 @@ struct local_params { bool hsena; bool vibena; bool logena; + bool maskena; bool cut_past; float past; float satur; @@ -605,6 +607,7 @@ struct local_params { bool enaretiMasktmap; bool enatmMask; bool enablMask; + bool ena_Mask; int highlihs; int shadowhs; int radiushs; @@ -637,7 +640,7 @@ struct local_params { }; -static void calcLocalParams(int sp, int oW, int oH, const LocallabParams& locallab, struct local_params& lp, bool prevDeltaE, int llColorMask, int llColorMaskinv, int llExpMask, int llExpMaskinv, int llSHMask, int llSHMaskinv, int llvibMask, int lllcMask, int llsharMask, int llcbMask, int llretiMask, int llsoftMask, int lltmMask, int llblMask, const LocwavCurve & locwavCurveden, bool locwavdenutili) +static void calcLocalParams(int sp, int oW, int oH, const LocallabParams& locallab, struct local_params& lp, bool prevDeltaE, int llColorMask, int llColorMaskinv, int llExpMask, int llExpMaskinv, int llSHMask, int llSHMaskinv, int llvibMask, int lllcMask, int llsharMask, int llcbMask, int llretiMask, int llsoftMask, int lltmMask, int llblMask, int ll_Mask, const LocwavCurve & locwavCurveden, bool locwavdenutili) { int w = oW; int h = oH; @@ -729,19 +732,23 @@ static void calcLocalParams(int sp, int oW, int oH, const LocallabParams& locall lp.showmasktmmet = lltmMask; lp.showmaskblmet = llblMask; - lp.enaColorMask = locallab.spots.at(sp).enaColorMask && llsoftMask == 0 && llColorMask == 0 && lllcMask == 0 && llsharMask == 0 && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0;// Exposure mask is deactivated if Color & Light mask is visible - lp.enaColorMaskinv = locallab.spots.at(sp).enaColorMask && llColorMaskinv == 0 && llsoftMask == 0 && lllcMask == 0 && llsharMask == 0 && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0;// Exposure mask is deactivated if Color & Light mask is visible - lp.enaExpMask = locallab.spots.at(sp).enaExpMask && llExpMask == 0 && llColorMask == 0 && llsoftMask == 0 && lllcMask == 0 && llsharMask == 0 && llSHMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0;// Exposure mask is deactivated if Color & Light mask is visible - lp.enaExpMaskinv = locallab.spots.at(sp).enaExpMask && llExpMaskinv == 0 && llColorMask == 0 && llsoftMask == 0 && lllcMask == 0 && llsharMask == 0 && llSHMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0;// Exposure mask is deactivated if Color & Light mask is visible - lp.enaSHMask = locallab.spots.at(sp).enaSHMask && llSHMask == 0 && llColorMask == 0 && llsoftMask == 0 && lllcMask == 0 && llsharMask == 0 && llExpMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0; - lp.enaSHMaskinv = locallab.spots.at(sp).enaSHMask && llSHMaskinv == 0 && lllcMask == 0 && llsoftMask == 0 && llsharMask == 0 && llColorMask == 0 && llExpMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0; - lp.enacbMask = locallab.spots.at(sp).enacbMask && llcbMask == 0 && lllcMask == 0 && llsoftMask == 0 && llsharMask == 0 && llColorMask == 0 && llExpMask == 0 && llSHMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0; - lp.enaretiMask = locallab.spots.at(sp).enaretiMask && lllcMask == 0 && llsharMask == 0 && llsoftMask == 0 && llretiMask == 0 && llColorMask == 0 && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0; - lp.enatmMask = locallab.spots.at(sp).enatmMask && lltmMask == 0 && lllcMask == 0 && llsoftMask == 0 && llsharMask == 0 && llColorMask == 0 && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && llretiMask == 0 && llblMask == 0 && llvibMask == 0; - lp.enablMask = locallab.spots.at(sp).enablMask && llblMask == 0 && lllcMask == 0 && llsoftMask == 0 && llsharMask == 0 && llColorMask == 0 && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llvibMask == 0; - lp.enavibMask = locallab.spots.at(sp).enavibMask && llvibMask == 0 && lllcMask == 0 && llsoftMask == 0 && llsharMask == 0 && llColorMask == 0 && llExpMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llSHMask == 0; - lp.enalcMask = locallab.spots.at(sp).enalcMask && lllcMask == 0 && llcbMask == 0 && llsoftMask == 0 && llsharMask == 0 && llColorMask == 0 && llExpMask == 0 && llSHMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0; - lp.enasharMask = lllcMask == 0 && llcbMask == 0 && llsharMask == 0 && llsoftMask == 0 && llColorMask == 0 && llExpMask == 0 && llSHMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0; + lp.showmask_met = ll_Mask; + printf("mask=%i \n", lp.showmask_met); + + lp.enaColorMask = locallab.spots.at(sp).enaColorMask && llsoftMask == 0 && llColorMask == 0 && lllcMask == 0 && llsharMask == 0 && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0 && ll_Mask == 0;// Exposure mask is deactivated if Color & Light mask is visible + lp.enaColorMaskinv = locallab.spots.at(sp).enaColorMask && llColorMaskinv == 0 && llsoftMask == 0 && lllcMask == 0 && llsharMask == 0 && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0 && ll_Mask == 0;// Exposure mask is deactivated if Color & Light mask is visible + lp.enaExpMask = locallab.spots.at(sp).enaExpMask && llExpMask == 0 && llColorMask == 0 && llsoftMask == 0 && lllcMask == 0 && llsharMask == 0 && llSHMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0 && ll_Mask == 0;// Exposure mask is deactivated if Color & Light mask is visible + lp.enaExpMaskinv = locallab.spots.at(sp).enaExpMask && llExpMaskinv == 0 && llColorMask == 0 && llsoftMask == 0 && lllcMask == 0 && llsharMask == 0 && llSHMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0 && ll_Mask == 0;// Exposure mask is deactivated if Color & Light mask is visible + lp.enaSHMask = locallab.spots.at(sp).enaSHMask && llSHMask == 0 && llColorMask == 0 && llsoftMask == 0 && lllcMask == 0 && llsharMask == 0 && llExpMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0 && ll_Mask == 0; + lp.enaSHMaskinv = locallab.spots.at(sp).enaSHMask && llSHMaskinv == 0 && lllcMask == 0 && llsoftMask == 0 && llsharMask == 0 && llColorMask == 0 && llExpMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0 && ll_Mask == 0; + lp.enacbMask = locallab.spots.at(sp).enacbMask && llcbMask == 0 && lllcMask == 0 && llsoftMask == 0 && llsharMask == 0 && llColorMask == 0 && llExpMask == 0 && llSHMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0 && ll_Mask == 0; + lp.enaretiMask = locallab.spots.at(sp).enaretiMask && lllcMask == 0 && llsharMask == 0 && llsoftMask == 0 && llretiMask == 0 && llColorMask == 0 && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0 && ll_Mask == 0; + lp.enatmMask = locallab.spots.at(sp).enatmMask && lltmMask == 0 && lllcMask == 0 && llsoftMask == 0 && llsharMask == 0 && llColorMask == 0 && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && llretiMask == 0 && llblMask == 0 && llvibMask == 0 && ll_Mask == 0; + lp.enablMask = locallab.spots.at(sp).enablMask && llblMask == 0 && lllcMask == 0 && llsoftMask == 0 && llsharMask == 0 && llColorMask == 0 && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llvibMask == 0 && ll_Mask == 0; + lp.enavibMask = locallab.spots.at(sp).enavibMask && llvibMask == 0 && lllcMask == 0 && llsoftMask == 0 && llsharMask == 0 && llColorMask == 0 && llExpMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llSHMask == 0 && ll_Mask == 0; + lp.enalcMask = locallab.spots.at(sp).enalcMask && lllcMask == 0 && llcbMask == 0 && llsoftMask == 0 && llsharMask == 0 && llColorMask == 0 && llExpMask == 0 && llSHMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0 && ll_Mask == 0 ; + lp.enasharMask = lllcMask == 0 && llcbMask == 0 && llsharMask == 0 && llsoftMask == 0 && llColorMask == 0 && llExpMask == 0 && llSHMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0 && ll_Mask == 0; + lp.ena_Mask = locallab.spots.at(sp).enamask && lllcMask == 0 && llcbMask == 0 && llsoftMask == 0 && llsharMask == 0 && llColorMask == 0 && llExpMask == 0 && llSHMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0; // printf("llColorMask=%i lllcMask=%i llExpMask=%i llSHMask=%i llcbMask=%i llretiMask=%i lltmMask=%i llblMask=%i llvibMask=%i\n", llColorMask, lllcMask, llExpMask, llSHMask, llcbMask, llretiMask, lltmMask, llblMask, llvibMask); if (locallab.spots.at(sp).softMethod == "soft") { @@ -1301,17 +1308,19 @@ static void calcLocalParams(int sp, int oW, int oH, const LocallabParams& locall lp.threshol = thresho; lp.chromacb = chromcbdl; lp.expvib = locallab.spots.at(sp).expvibrance; - lp.colorena = locallab.spots.at(sp).expcolor && llExpMask == 0 && llsoftMask == 0 && llSHMask == 0 && llcbMask == 0 && lllcMask == 0 && llsharMask == 0 && llretiMask == 0 && lltmMask == 0 && llvibMask == 0; // Color & Light tool is deactivated if Exposure mask is visible or SHMask - lp.blurena = locallab.spots.at(sp).expblur && llExpMask == 0 && llsoftMask == 0 && llSHMask == 0 && llcbMask == 0 && lllcMask == 0 && llsharMask == 0 && llretiMask == 0 && llColorMask == 0 && lltmMask == 0 && llvibMask == 0; - lp.tonemapena = locallab.spots.at(sp).exptonemap && llExpMask == 0 && llsoftMask == 0 && llSHMask == 0 && llcbMask == 0 && lllcMask == 0 && llsharMask == 0 && llretiMask == 0 && llColorMask == 0 && llvibMask == 0; - lp.retiena = locallab.spots.at(sp).expreti && llExpMask == 0 && llsoftMask == 0 && llSHMask == 0 && llcbMask == 0 && lllcMask == 0 && llsharMask == 0 && llColorMask == 0 && lltmMask == 0 && llvibMask == 0 && llSHMask == 0; - lp.lcena = locallab.spots.at(sp).expcontrast && llExpMask == 0 && llsoftMask == 0 && llSHMask == 0 && llcbMask == 0 && llsharMask == 0 && llColorMask == 0 && lltmMask == 0 && llvibMask == 0 && llSHMask == 0; - lp.cbdlena = locallab.spots.at(sp).expcbdl && llExpMask == 0 && llsoftMask == 0 && llSHMask == 0 && llretiMask == 0 && lllcMask == 0 && llsharMask == 0 && lllcMask == 0 && llColorMask == 0 && lltmMask == 0 && llvibMask == 0; - lp.exposena = locallab.spots.at(sp).expexpose && llColorMask == 0 && llsoftMask == 0 && llSHMask == 0 && lllcMask == 0 && llsharMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llvibMask == 0; // Exposure tool is deactivated if Color & Light mask SHmask is visible - lp.hsena = locallab.spots.at(sp).expshadhigh && llColorMask == 0 && llsoftMask == 0 && llExpMask == 0 && llcbMask == 0 && lllcMask == 0 && llsharMask == 0 && llretiMask == 0 && lltmMask == 0 && llvibMask == 0;// Shadow Highlight tool is deactivated if Color & Light mask or SHmask is visible - lp.vibena = locallab.spots.at(sp).expvibrance && llColorMask == 0 && llsoftMask == 0 && llExpMask == 0 && llcbMask == 0 && lllcMask == 0 && llsharMask == 0 && llretiMask == 0 && llcbMask == 0 && lltmMask == 0 && llSHMask == 0;// vibrance tool is deactivated if Color & Light mask or SHmask is visible - lp.sharpena = locallab.spots.at(sp).expsharp && llColorMask == 0 && llsoftMask == 0 && llExpMask == 0 && llcbMask == 0 && lllcMask == 0 && llretiMask == 0 && llcbMask == 0 && lltmMask == 0 && llSHMask == 0 && llvibMask == 0; - lp.sfena = locallab.spots.at(sp).expsoft && llColorMask == 0 && llExpMask == 0 && llcbMask == 0 && lllcMask == 0 && llretiMask == 0 && llcbMask == 0 && lltmMask == 0 && llSHMask == 0 && llvibMask == 0; + lp.colorena = locallab.spots.at(sp).expcolor && llExpMask == 0 && llsoftMask == 0 && llSHMask == 0 && llcbMask == 0 && lllcMask == 0 && llsharMask == 0 && llretiMask == 0 && lltmMask == 0 && llvibMask == 0 && ll_Mask == 0; // Color & Light tool is deactivated if Exposure mask is visible or SHMask + lp.blurena = locallab.spots.at(sp).expblur && llExpMask == 0 && llsoftMask == 0 && llSHMask == 0 && llcbMask == 0 && lllcMask == 0 && llsharMask == 0 && llretiMask == 0 && llColorMask == 0 && lltmMask == 0 && llvibMask == 0 && ll_Mask == 0; + lp.tonemapena = locallab.spots.at(sp).exptonemap && llExpMask == 0 && llsoftMask == 0 && llSHMask == 0 && llcbMask == 0 && lllcMask == 0 && llsharMask == 0 && llretiMask == 0 && llColorMask == 0 && llvibMask == 0 && ll_Mask == 0; + lp.retiena = locallab.spots.at(sp).expreti && llExpMask == 0 && llsoftMask == 0 && llSHMask == 0 && llcbMask == 0 && lllcMask == 0 && llsharMask == 0 && llColorMask == 0 && lltmMask == 0 && llvibMask == 0 && llSHMask == 0 && ll_Mask == 0; + lp.lcena = locallab.spots.at(sp).expcontrast && llExpMask == 0 && llsoftMask == 0 && llSHMask == 0 && llcbMask == 0 && llsharMask == 0 && llColorMask == 0 && lltmMask == 0 && llvibMask == 0 && llSHMask == 0 && ll_Mask == 0; + lp.cbdlena = locallab.spots.at(sp).expcbdl && llExpMask == 0 && llsoftMask == 0 && llSHMask == 0 && llretiMask == 0 && lllcMask == 0 && llsharMask == 0 && lllcMask == 0 && llColorMask == 0 && lltmMask == 0 && llvibMask == 0 && ll_Mask == 0; + lp.exposena = locallab.spots.at(sp).expexpose && llColorMask == 0 && llsoftMask == 0 && llSHMask == 0 && lllcMask == 0 && llsharMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llvibMask == 0 && ll_Mask == 0; // Exposure tool is deactivated if Color & Light mask SHmask is visible + lp.hsena = locallab.spots.at(sp).expshadhigh && llColorMask == 0 && llsoftMask == 0 && llExpMask == 0 && llcbMask == 0 && lllcMask == 0 && llsharMask == 0 && llretiMask == 0 && lltmMask == 0 && llvibMask == 0 && ll_Mask == 0;// Shadow Highlight tool is deactivated if Color & Light mask or SHmask is visible + lp.vibena = locallab.spots.at(sp).expvibrance && llColorMask == 0 && llsoftMask == 0 && llExpMask == 0 && llcbMask == 0 && lllcMask == 0 && llsharMask == 0 && llretiMask == 0 && llcbMask == 0 && lltmMask == 0 && llSHMask == 0 && ll_Mask == 0;// vibrance tool is deactivated if Color & Light mask or SHmask is visible + lp.sharpena = locallab.spots.at(sp).expsharp && llColorMask == 0 && llsoftMask == 0 && llExpMask == 0 && llcbMask == 0 && lllcMask == 0 && llretiMask == 0 && llcbMask == 0 && lltmMask == 0 && llSHMask == 0 && llvibMask == 0 && ll_Mask == 0; + lp.sfena = locallab.spots.at(sp).expsoft && llColorMask == 0 && llExpMask == 0 && llcbMask == 0 && lllcMask == 0 && llretiMask == 0 && llcbMask == 0 && lltmMask == 0 && llSHMask == 0 && llvibMask == 0 && ll_Mask == 0; + lp.maskena = locallab.spots.at(sp).expmask && llColorMask == 0 && llsoftMask == 0 && llExpMask == 0 && llcbMask == 0 && lllcMask == 0 && llsharMask == 0 && llretiMask == 0 && llcbMask == 0 && lltmMask == 0 && llSHMask == 0;// vibrance tool is deactivated if Color & Light mask or SHmask is visible + lp.sensv = local_sensiv; lp.past = chromaPastel; lp.satur = chromaSatur; @@ -5491,7 +5500,7 @@ void ImProcFunctions::calc_ref(int sp, LabImage * original, LabImage * transform if (params->locallab.enabled) { //always calculate hueref, chromaref, lumaref before others operations use in normal mode for all modules exceprt denoise struct local_params lp; - calcLocalParams(sp, oW, oH, params->locallab, lp, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, locwavCurveden, locwavdenutili); + calcLocalParams(sp, oW, oH, params->locallab, lp, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, locwavCurveden, locwavdenutili); int begy = lp.yc - lp.lyT; int begx = lp.xc - lp.lxL; int yEn = lp.yc + lp.ly; @@ -9553,7 +9562,7 @@ void ImProcFunctions::Lab_Local( bool LHutili, bool HHutili, const LUTf& cclocalcurve, bool localcutili, const LUTf& rgblocalcurve, bool localrgbutili, bool localexutili, const LUTf& exlocalcurve, const LUTf& hltonecurveloc, const LUTf& shtonecurveloc, const LUTf& tonecurveloc, const LUTf& lightCurveloc, double& huerefblur, double& chromarefblur, double& lumarefblur, double& hueref, double& chromaref, double& lumaref, double& sobelref, int &lastsav, - bool prevDeltaE, int llColorMask, int llColorMaskinv, int llExpMask, int llExpMaskinv, int llSHMask, int llSHMaskinv, int llvibMask, int lllcMask, int llsharMask, int llcbMask, int llretiMask, int llsoftMask, int lltmMask, int llblMask, + bool prevDeltaE, int llColorMask, int llColorMaskinv, int llExpMask, int llExpMaskinv, int llSHMask, int llSHMaskinv, int llvibMask, int lllcMask, int llsharMask, int llcbMask, int llretiMask, int llsoftMask, int lltmMask, int llblMask, int ll_Mask, float& minCD, float& maxCD, float& mini, float& maxi, float& Tmean, float& Tsigma, float& Tmin, float& Tmax ) { @@ -9566,7 +9575,7 @@ void ImProcFunctions::Lab_Local( constexpr int del = 3; // to avoid crash with [loy - begy] and [lox - begx] and bfh bfw // with gtk2 [loy - begy-1] [lox - begx -1 ] and del = 1 struct local_params lp; - calcLocalParams(sp, oW, oH, params->locallab, lp, prevDeltaE, llColorMask, llColorMaskinv, llExpMask, llExpMaskinv, llSHMask, llSHMaskinv, llvibMask, lllcMask, llsharMask, llcbMask, llretiMask, llsoftMask, lltmMask, llblMask, locwavCurveden, locwavdenutili); + calcLocalParams(sp, oW, oH, params->locallab, lp, prevDeltaE, llColorMask, llColorMaskinv, llExpMask, llExpMaskinv, llSHMask, llSHMaskinv, llvibMask, lllcMask, llsharMask, llcbMask, llretiMask, llsoftMask, lltmMask, llblMask, ll_Mask, locwavCurveden, locwavdenutili); const float radius = lp.rad / (sk * 1.4f); //0 to 70 ==> see skip int levred; diff --git a/rtengine/procevents.h b/rtengine/procevents.h index fe429d7d8..63d8d7082 100644 --- a/rtengine/procevents.h +++ b/rtengine/procevents.h @@ -953,26 +953,25 @@ enum ProcEventCode { EvLocena_mask = 927, Evlocallabsensimask = 928, Evlocallabblendmask = 929, - EvlocallabshowmaskmaskMethod = 930, - EvLocallabEnaMask = 931, - Evlocallabradmask = 932, - Evlocallablapmask = 933, - Evlocallabchromask = 934, - Evlocallabgammask = 935, - Evlocallabslopmask = 936, - EvlocallabCCmask_shape = 937, - EvlocallabLLmask_shape = 938, - EvlocallabHHmask_shape = 939, - EvLocallabtoolmask = 940, - Evlocallabstrumaskmask = 941, - EvlocallabHHhmask_shape = 942, - EvLocallabfftmask = 943, - Evlocallabblurmask = 944, - Evlocallabcontmask = 945, - Evlocallabshadmask = 946, - EvlocallabLmask_shape = 947, - EvlocallabLLmask_shapewav = 948, - EvlocallabcsThresholdmask = 949, + EvLocallabEnaMask = 930, + Evlocallabradmask = 931, + Evlocallablapmask = 932, + Evlocallabchromask = 933, + Evlocallabgammask = 934, + Evlocallabslopmask = 935, + EvlocallabCCmask_shape = 936, + EvlocallabLLmask_shape = 937, + EvlocallabHHmask_shape = 938, + EvLocallabtoolmask = 939, + Evlocallabstrumaskmask = 940, + EvlocallabHHhmask_shape = 941, + EvLocallabfftmask = 942, + Evlocallabblurmask = 943, + Evlocallabcontmask = 944, + Evlocallabshadmask = 945, + EvlocallabLmask_shape = 946, + EvlocallabLLmask_shapewav = 947, + EvlocallabcsThresholdmask = 948, NUMOFEVENTS }; diff --git a/rtengine/refreshmap.cc b/rtengine/refreshmap.cc index 03e37988f..d145b3f38 100644 --- a/rtengine/refreshmap.cc +++ b/rtengine/refreshmap.cc @@ -957,7 +957,6 @@ int refreshmap[rtengine::NUMOFEVENTS] = { LUMINANCECURVE, // EvLocenamask LUMINANCECURVE, // Evlocallabsensimask LUMINANCECURVE, // Evlocallabblendmask - LUMINANCECURVE, // EvlocallabshowmaskmaskMethod LUMINANCECURVE, // EvLocallabEna_Mask LUMINANCECURVE, // Evlocallabradmask LUMINANCECURVE, // Evlocallablapmask diff --git a/rtengine/rtengine.h b/rtengine/rtengine.h index 7561d68aa..1671ae1f5 100644 --- a/rtengine/rtengine.h +++ b/rtengine/rtengine.h @@ -549,7 +549,7 @@ public: virtual void updateUnLock() = 0; - virtual void setLocallabMaskVisibility(bool previewDeltaE, int locallColorMask, int locallColorMaskinv, int locallExpMask, int locallExpMaskinv, int locallSHMask, int locallSHMaskinv, int locallvibMask, int locallsoftMask, int locallblMask, int localltmMask, int locallretiMask, int locallsharMask, int localllcMask, int locallcbMask) = 0; + virtual void setLocallabMaskVisibility(bool previewDeltaE, int locallColorMask, int locallColorMaskinv, int locallExpMask, int locallExpMaskinv, int locallSHMask, int locallSHMaskinv, int locallvibMask, int locallsoftMask, int locallblMask, int localltmMask, int locallretiMask, int locallsharMask, int localllcMask, int locallcbMask, int locall_Mask) = 0; /** Creates and returns a Crop instance that acts as a window on the image * @param editDataProvider pointer to the EditDataProvider that communicates with the EditSubscriber diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index d991a0f9f..e68a1b92c 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -1367,7 +1367,7 @@ private: locedgwavCurve, locedgwavutili, loclmasCurve_wav,lmasutili_wav, LHutili, HHutili, cclocalcurve, localcutili, rgblocalcurve, localrgbutili, localexutili, exlocalcurve, hltonecurveloc, shtonecurveloc, tonecurveloc, lightCurveloc, - huerefblu, chromarefblu, lumarefblu, huere, chromare, lumare, sobelre, lastsav, false, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + huerefblu, chromarefblu, lumarefblu, huere, chromare, lumare, sobelre, lastsav, false, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax); lastorigView->CopyFrom(labView); diff --git a/rtgui/locallabtools.h b/rtgui/locallabtools.h index 17b31fac5..32b833d04 100644 --- a/rtgui/locallabtools.h +++ b/rtgui/locallabtools.h @@ -1206,7 +1206,7 @@ class LocallabMask: private: Adjuster* const sensimask; Adjuster* const blendmask; - MyComboBoxText* const showmaskMethod; + MyComboBoxText* const showmask_Method; Gtk::CheckButton* const enamask; CurveEditorGroup* const mask_CurveEditorG; FlatCurveEditor* const CCmask_shape; @@ -1234,7 +1234,7 @@ private: FlatCurveEditor* const LLmask_shapewav; ThresholdAdjuster* const csThresholdmask; - sigc::connection showmaskMethodConn, enamaskConn, toolmaskConn, fftmaskConn; + sigc::connection showmask_MethodConn, enamaskConn, toolmaskConn, fftmaskConn; public: LocallabMask(); @@ -1262,7 +1262,7 @@ public: private: void enabledChanged() override; - void showmaskMethodChanged(); + void showmask_MethodChanged(); void enamaskChanged(); void toolmaskChanged(); void convertParamToNormal() override; diff --git a/rtgui/locallabtools2.cc b/rtgui/locallabtools2.cc index 2d94407d0..52526cf5f 100644 --- a/rtgui/locallabtools2.cc +++ b/rtgui/locallabtools2.cc @@ -4732,7 +4732,7 @@ LocallabMask::LocallabMask(): // Comon mask specific widgets sensimask(Gtk::manage(new Adjuster(M("TP_LOCALLAB_SENSI"), 0, 100, 1, 60))), blendmask(Gtk::manage(new Adjuster(M("TP_LOCALLAB_BLENDMASKCOL"), -100, 100, 1, 0))), - showmaskMethod(Gtk::manage(new MyComboBoxText())), + showmask_Method(Gtk::manage(new MyComboBoxText())), enamask(Gtk::manage(new Gtk::CheckButton(M("TP_LOCALLAB_ENABLE_MASK")))), mask_CurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASKCOL"))), CCmask_shape(static_cast(mask_CurveEditorG->addCurve(CT_Flat, "C(C)", nullptr, false, false))), @@ -4768,13 +4768,13 @@ LocallabMask::LocallabMask(): sensimask->setAdjusterListener(this); blendmask->setAdjusterListener(this); - showmaskMethod->append(M("TP_LOCALLAB_SHOWMNONE")); - showmaskMethod->append(M("TP_LOCALLAB_SHOWMODIFMASK")); - showmaskMethod->append(M("TP_LOCALLAB_SHOWMASK")); - showmaskMethod->append(M("TP_LOCALLAB_SHOWREF")); - showmaskMethod->set_active(0); - showmaskMethod->set_tooltip_markup(M("TP_LOCALLAB_SHOWMASKCOL_TOOLTIP")); - showmaskMethodConn = showmaskMethod->signal_changed().connect(sigc::mem_fun(*this, &LocallabMask::showmaskMethodChanged)); + showmask_Method->append(M("TP_LOCALLAB_SHOWMNONE")); + showmask_Method->append(M("TP_LOCALLAB_SHOWMODIFMASK")); + showmask_Method->append(M("TP_LOCALLAB_SHOWMASK")); + showmask_Method->append(M("TP_LOCALLAB_SHOWREF")); + showmask_Method->set_active(0); + showmask_Method->set_tooltip_markup(M("TP_LOCALLAB_SHOWMASKCOL_TOOLTIP")); + showmask_MethodConn = showmask_Method->signal_changed().connect(sigc::mem_fun(*this, &LocallabMask::showmask_MethodChanged)); enamaskConn = enamask->signal_toggled().connect(sigc::mem_fun(*this, &LocallabMask::enamaskChanged)); mask_CurveEditorG->setCurveListener(this); @@ -4843,7 +4843,7 @@ LocallabMask::LocallabMask(): pack_start(*blendmask, Gtk::PACK_SHRINK, 0); ToolParamBlock* const maskmaskBox = Gtk::manage(new ToolParamBlock()); - maskmaskBox->pack_start(*showmaskMethod, Gtk::PACK_SHRINK, 4); + maskmaskBox->pack_start(*showmask_Method, Gtk::PACK_SHRINK, 4); maskmaskBox->pack_start(*mask_CurveEditorG, Gtk::PACK_SHRINK, 4); // Padding is mandatory to correct behavior of curve editor maskmaskBox->pack_start(*enamask, Gtk::PACK_SHRINK, 0); @@ -4882,22 +4882,22 @@ LocallabMask::LocallabMask(): bool LocallabMask::isMaskViewActive() { - return ((showmaskMethod->get_active_row_number() != 0)); + return ((showmask_Method->get_active_row_number() != 0)); } void LocallabMask::resetMaskView() { - showmaskMethodConn.block(true); + showmask_MethodConn.block(true); - showmaskMethod->set_active(0); + showmask_Method->set_active(0); - showmaskMethodConn.block(false); + showmask_MethodConn.block(false); } void LocallabMask::getMaskView(int &colorMask, int &colorMaskinv, int &expMask, int &expMaskinv, int &shMask, int &shMaskinv, int &vibMask, int &softMask, int &blMask, int &tmMask, int &retiMask, int &sharMask, int &lcMask, int &cbMask, int &maskMask) { - colorMask = showmaskMethod->get_active_row_number(); + maskMask = showmask_Method->get_active_row_number(); } void LocallabMask::updateAdviceTooltips(const bool showTooltips) @@ -4947,7 +4947,7 @@ LocallabMask::~LocallabMask() void LocallabMask::disableListener() { LocallabTool::disableListener(); - showmaskMethodConn.block(true); + showmask_MethodConn.block(true); enamaskConn.block(true); toolmaskConn.block(true); fftmaskConn.block(true); @@ -4957,14 +4957,14 @@ void LocallabMask::disableListener() void LocallabMask::enableListener() { LocallabTool::enableListener(); - showmaskMethodConn.block(false); + showmask_MethodConn.block(false); enamaskConn.block(false); toolmaskConn.block(false); fftmaskConn.block(false); } -void LocallabMask::showmaskMethodChanged() +void LocallabMask::showmask_MethodChanged() { // If mask preview is activated, deactivate all other tool mask preview @@ -4973,7 +4973,7 @@ void LocallabMask::showmaskMethodChanged() } if (listener) { - listener->panelChanged(EvlocallabshowmaskmaskMethod, ""); + listener->panelChanged(EvlocallabshowmaskMethod, ""); } } diff --git a/rtgui/toolpanelcoord.cc b/rtgui/toolpanelcoord.cc index 70ae232a4..53ad0cbe5 100644 --- a/rtgui/toolpanelcoord.cc +++ b/rtgui/toolpanelcoord.cc @@ -534,12 +534,12 @@ void ToolPanelCoordinator::panelChanged(const rtengine::ProcEvent& event, const ipc->setLocallabMaskVisibility(maskStruc.previewDeltaE, maskStruc.colorMask, maskStruc.colorMaskinv, maskStruc.expMask, maskStruc.expMaskinv, maskStruc.SHMask, maskStruc.SHMaskinv, maskStruc.vibMask, maskStruc.softMask, maskStruc.blMask, maskStruc.tmMask, maskStruc.retiMask, maskStruc.sharMask, - maskStruc.lcMask, maskStruc.cbMask); + maskStruc.lcMask, maskStruc.cbMask, maskStruc.maskMask); } else if (event == rtengine::EvLocallabSpotCreated || event == rtengine::EvLocallabSpotSelectedWithMask || event == rtengine::EvLocallabSpotDeleted || event == rtengine::Evlocallabshowreset || event == rtengine::EvlocallabToolRemovedWithRefresh) { locallab->resetMaskVisibility(); - ipc->setLocallabMaskVisibility(false, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); + ipc->setLocallabMaskVisibility(false, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } ipc->endUpdateParams(changeFlags); // starts the IPC processing @@ -649,7 +649,7 @@ void ToolPanelCoordinator::profileChange( // Reset Locallab mask visibility locallab->resetMaskVisibility(); - ipc->setLocallabMaskVisibility(false, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); + ipc->setLocallabMaskVisibility(false, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); // start the IPC processing if (filterRawRefresh) {