Save provisory work GUI
This commit is contained in:
parent
7c79cc7184
commit
cf214c7a1b
@ -1118,7 +1118,7 @@ void Crop::update(int todo)
|
||||
locwavCurveden, locwavdenutili,
|
||||
LHutili, HHutili, cclocalcurve2, localcutili, rgblocalcurve2, localrgbutili, localexutili, exlocalcurve2, hltonecurveloc2, shtonecurveloc2, tonecurveloc2, lightCurveloc2,
|
||||
huerefblu, chromarefblu, lumarefblu, huere, chromare, lumare, sobelre, lastsav,
|
||||
parent->locallColorMask, parent->locallColorMaskinv, parent->locallExpMask, parent->locallExpMaskinv, parent->locallSHMask, parent->locallSHMaskinv, parent->locallvibMask, parent->locallcbMask, parent->locallretiMask, parent->locallsoftMask, parent->localltmMask, parent->locallblMask,
|
||||
parent->locallColorMask, parent->locallColorMaskinv, parent->locallExpMask, parent->locallExpMaskinv, parent->locallSHMask, parent->locallSHMaskinv, parent->locallvibMask, parent->localllcMask, parent->locallcbMask, parent->locallretiMask, parent->locallsoftMask, parent->localltmMask, parent->locallblMask,
|
||||
minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax);
|
||||
if (parent->locallListener) {
|
||||
parent->locallListener->minmaxChanged(maxCD, minCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax);
|
||||
@ -1152,7 +1152,7 @@ void Crop::update(int todo)
|
||||
loccompwavCurve, loccompwavutili,
|
||||
locwavCurveden, locwavdenutili,
|
||||
LHutili, HHutili, cclocalcurve2, localcutili, rgblocalcurve2, localrgbutili, localexutili, exlocalcurve2, hltonecurveloc2, shtonecurveloc2, tonecurveloc2, lightCurveloc2,
|
||||
huerefblu, chromarefblu, lumarefblu, huere, chromare, lumare, sobelre, lastsav, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
huerefblu, chromarefblu, lumarefblu, huere, chromare, lumare, sobelre, lastsav, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax);
|
||||
}
|
||||
|
||||
|
@ -1239,7 +1239,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
||||
locwavCurveden, locwavdenutili,
|
||||
LHutili, HHutili, cclocalcurve, localcutili, rgblocalcurve, localrgbutili, localexutili, exlocalcurve, hltonecurveloc, shtonecurveloc, tonecurveloc, lightCurveloc,
|
||||
huerblu, chromarblu, lumarblu, huer, chromar, lumar, sobeler, lastsav,
|
||||
locallColorMask, locallColorMaskinv, locallExpMask, locallExpMaskinv, locallSHMask, locallSHMaskinv, locallvibMask, locallcbMask, locallretiMask, locallsoftMask, localltmMask, locallblMask,
|
||||
locallColorMask, locallColorMaskinv, locallExpMask, locallExpMaskinv, locallSHMask, locallSHMaskinv, locallvibMask, localllcMask, locallcbMask, locallretiMask, locallsoftMask, localltmMask, locallblMask,
|
||||
minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax);
|
||||
|
||||
if (locallListener) {
|
||||
@ -1278,7 +1278,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
||||
loccompwavCurve, loccompwavutili,
|
||||
locwavCurveden, locwavdenutili,
|
||||
LHutili, HHutili, cclocalcurve, localcutili, rgblocalcurve, localrgbutili, localexutili, exlocalcurve, hltonecurveloc, shtonecurveloc, tonecurveloc, lightCurveloc,
|
||||
huerblu, chromarblu, lumarblu, huer, chromar, lumar, sobeler, lastsav, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
huerblu, chromarblu, lumarblu, huer, chromar, lumar, sobeler, lastsav, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax);
|
||||
}
|
||||
|
||||
|
@ -357,6 +357,7 @@ protected:
|
||||
int locallSHMask;
|
||||
int locallSHMaskinv;
|
||||
int locallvibMask;
|
||||
int localllcMask;
|
||||
int locallcbMask;
|
||||
int locallretiMask;
|
||||
int locallsoftMask;
|
||||
@ -431,7 +432,7 @@ public:
|
||||
updaterThreadStart.unlock();
|
||||
}
|
||||
|
||||
void setLocallabMaskVisibility (int locallColorMask, int locallColorMaskinv, int locallExpMask, int locallExpMaskinv, int locallSHMask, int locallSHMaskinv, int locallvibMask, int locallcbMask, int locallretiMask, int locallsoftMask, int localltmMask, int locallblMask) override
|
||||
void setLocallabMaskVisibility (int locallColorMask, int locallColorMaskinv, int locallExpMask, int locallExpMaskinv, int locallSHMask, int locallSHMaskinv, int locallvibMask, int localllcMask, int locallcbMask, int locallretiMask, int locallsoftMask, int localltmMask, int locallblMask) override
|
||||
{
|
||||
this->locallColorMask = locallColorMask;
|
||||
this->locallColorMaskinv = locallColorMaskinv;
|
||||
@ -440,6 +441,7 @@ public:
|
||||
this->locallSHMask = locallSHMask;
|
||||
this->locallvibMask = locallvibMask;
|
||||
this->locallSHMaskinv = locallSHMaskinv;
|
||||
this->localllcMask = localllcMask;
|
||||
this->locallcbMask = locallcbMask;
|
||||
this->locallretiMask = locallretiMask;
|
||||
this->locallsoftMask = locallsoftMask;
|
||||
|
@ -304,7 +304,7 @@ public:
|
||||
const LocwavCurve & locwavCurveden, bool & locwavdenutili,
|
||||
bool &LHutili, bool &HHutili, LUTf & cclocalcurve, bool & localcutili, LUTf & rgblocalcurve, bool & localrgbutili, bool & localexutili, LUTf & exlocalcurve, LUTf & hltonecurveloc, LUTf & shtonecurveloc, LUTf & tonecurveloc, LUTf & lightCurveloc,
|
||||
double & huerefblur, double &chromarefblur, double & lumarefblur, double &hueref, double &chromaref, double &lumaref, double &sobelref, int &lastsav,
|
||||
int llColorMask, int llColorMaskinv, int llExpMask, int llExpMaskinv, int llSHMask, int llSHMaskinv, int llvibMask, int llcbMask, int llretiMask, int llsoftMask, int lltmMask, int llblMask,
|
||||
int llColorMask, int llColorMaskinv, int llExpMask, int llExpMaskinv, int llSHMask, int llSHMaskinv, int llvibMask, int lllcMask, int llcbMask, int llretiMask, int llsoftMask, int lltmMask, int llblMask,
|
||||
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);
|
||||
|
@ -312,6 +312,7 @@ struct local_params {
|
||||
int showmaskSHmet;
|
||||
int showmaskSHmetinv;
|
||||
int showmaskvibmet;
|
||||
int showmasklcmet;
|
||||
int showmaskcbmet;
|
||||
int showmaskretimet;
|
||||
int showmasksoftmet;
|
||||
@ -389,6 +390,7 @@ struct local_params {
|
||||
bool enaSHMask;
|
||||
bool enaSHMaskinv;
|
||||
bool enavibMask;
|
||||
bool enalcMask;
|
||||
bool enacbMask;
|
||||
bool enaretiMask;
|
||||
bool enaretiMasktmap;
|
||||
@ -498,7 +500,7 @@ static void SobelCannyLuma(float **sobelL, float **luma, int bfw, int bfh, float
|
||||
|
||||
|
||||
|
||||
static void calcLocalParams(int sp, int oW, int oH, const LocallabParams& locallab, struct local_params& lp, int llColorMask, int llColorMaskinv, int llExpMask, int llExpMaskinv, int llSHMask, int llSHMaskinv, int llvibMask, 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, int llColorMask, int llColorMaskinv, int llExpMask, int llExpMaskinv, int llSHMask, int llSHMaskinv, int llvibMask, int lllcMask, int llcbMask, int llretiMask, int llsoftMask, int lltmMask, int llblMask, const LocwavCurve & locwavCurveden, bool & locwavdenutili)
|
||||
{
|
||||
int w = oW;
|
||||
int h = oH;
|
||||
@ -585,22 +587,24 @@ static void calcLocalParams(int sp, int oW, int oH, const LocallabParams& locall
|
||||
lp.showmaskSHmet = llSHMask;
|
||||
lp.showmaskSHmetinv = llSHMaskinv;
|
||||
lp.showmaskvibmet = llvibMask;
|
||||
lp.showmasklcmet = lllcMask;
|
||||
lp.showmaskcbmet = llcbMask;
|
||||
lp.showmaskretimet = llretiMask;
|
||||
lp.showmasksoftmet = llsoftMask;
|
||||
lp.showmasktmmet = lltmMask;
|
||||
lp.showmaskblmet = llblMask;
|
||||
lp.enaColorMask = locallab.spots.at(sp).enaColorMask && llColorMask == 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 && 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 && 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 && 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 && llExpMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0;
|
||||
lp.enaSHMaskinv = locallab.spots.at(sp).enaSHMask && llSHMaskinv == 0 && llColorMask == 0 && llExpMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0;
|
||||
lp.enacbMask = locallab.spots.at(sp).enacbMask && llcbMask == 0 && llColorMask == 0 && llExpMask == 0 && llSHMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0;
|
||||
lp.enaretiMask = locallab.spots.at(sp).enaretiMask && 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 && llColorMask == 0 && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && llretiMask == 0 && llblMask == 0 && llvibMask == 0;
|
||||
lp.enablMask = locallab.spots.at(sp).enablMask && llblMask == 0 && llColorMask == 0 && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llvibMask == 0;
|
||||
lp.enavibMask = locallab.spots.at(sp).enavibMask && llvibMask == 0 && llColorMask == 0 && llExpMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llSHMask == 0;
|
||||
lp.enaColorMask = locallab.spots.at(sp).enaColorMask && llColorMask == 0 && lllcMask == 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 && lllcMask == 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 && lllcMask == 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 && lllcMask == 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 && lllcMask == 0 && llExpMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0;
|
||||
lp.enaSHMaskinv = locallab.spots.at(sp).enaSHMask && llSHMaskinv == 0 && lllcMask == 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 && llColorMask == 0 && llExpMask == 0 && llSHMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0;
|
||||
lp.enaretiMask = locallab.spots.at(sp).enaretiMask && lllcMask == 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 && 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 && 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 && 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 && llColorMask == 0 && llExpMask == 0 && llSHMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0;
|
||||
|
||||
if (locallab.spots.at(sp).softMethod == "soft") {
|
||||
lp.softmet = 0;
|
||||
@ -1090,20 +1094,20 @@ static void calcLocalParams(int sp, int oW, int oH, const LocallabParams& locall
|
||||
lp.detailsh = locallab.spots.at(sp).detailSH;
|
||||
lp.threshol = thresho;
|
||||
lp.chromacb = chromcbdl;
|
||||
lp.colorena = locallab.spots.at(sp).expcolor && llExpMask == 0 && llSHMask == 0 && llcbMask == 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 && llSHMask == 0 && llcbMask == 0 && llretiMask == 0 && llColorMask == 0 && lltmMask == 0 && llvibMask == 0;
|
||||
lp.tonemapena = locallab.spots.at(sp).exptonemap && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && llretiMask == 0 && llColorMask == 0 && llvibMask == 0;
|
||||
lp.retiena = locallab.spots.at(sp).expreti && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && llColorMask == 0 && lltmMask == 0 && llvibMask == 0 && llSHMask == 0;
|
||||
lp.colorena = locallab.spots.at(sp).expcolor && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && lllcMask == 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 && llSHMask == 0 && llcbMask == 0 && lllcMask == 0 && llretiMask == 0 && llColorMask == 0 && lltmMask == 0 && llvibMask == 0;
|
||||
lp.tonemapena = locallab.spots.at(sp).exptonemap && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && lllcMask == 0 && llretiMask == 0 && llColorMask == 0 && llvibMask == 0;
|
||||
lp.retiena = locallab.spots.at(sp).expreti && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && lllcMask == 0 && llColorMask == 0 && lltmMask == 0 && llvibMask == 0 && llSHMask == 0;
|
||||
lp.sharpena = locallab.spots.at(sp).expsharp;
|
||||
lp.lcena = locallab.spots.at(sp).expcontrast;
|
||||
lp.lcena = locallab.spots.at(sp).expcontrast && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && llColorMask == 0 && lltmMask == 0 && llvibMask == 0 && llSHMask == 0;
|
||||
lp.sfena = locallab.spots.at(sp).expsoft;
|
||||
lp.cbdlena = locallab.spots.at(sp).expcbdl && llExpMask == 0 && llSHMask == 0 && llretiMask == 0 && llColorMask == 0 && lltmMask == 0 && llvibMask == 0;
|
||||
lp.cbdlena = locallab.spots.at(sp).expcbdl && llExpMask == 0 && llSHMask == 0 && llretiMask == 0 && lllcMask == 0 && lllcMask == 0 && llColorMask == 0 && lltmMask == 0 && llvibMask == 0;
|
||||
lp.expvib = locallab.spots.at(sp).expvibrance;
|
||||
lp.sensv = local_sensiv;
|
||||
lp.past = chromaPastel;
|
||||
lp.satur = chromaSatur;
|
||||
|
||||
lp.exposena = locallab.spots.at(sp).expexpose && llColorMask == 0 && llSHMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llvibMask == 0; // Exposure tool is deactivated if Color & Light mask SHmask is visible
|
||||
lp.exposena = locallab.spots.at(sp).expexpose && llColorMask == 0 && llSHMask == 0 && lllcMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llvibMask == 0; // Exposure tool is deactivated if Color & Light mask SHmask is visible
|
||||
lp.cut_past = cupas;
|
||||
lp.blac = locallab.spots.at(sp).black;
|
||||
lp.shcomp = locallab.spots.at(sp).shcompr;
|
||||
@ -1115,7 +1119,7 @@ static void calcLocalParams(int sp, int oW, int oH, const LocallabParams& locall
|
||||
lp.expchroma = locallab.spots.at(sp).expchroma / 100.;
|
||||
lp.sensex = local_sensiex;
|
||||
lp.war = local_warm;
|
||||
lp.hsena = locallab.spots.at(sp).expshadhigh && llColorMask == 0 && llExpMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llvibMask == 0;// Shadow Highlight tool is deactivated if Color & Light mask or SHmask is visible
|
||||
lp.hsena = locallab.spots.at(sp).expshadhigh && llColorMask == 0 && llExpMask == 0 && llcbMask == 0 && lllcMask == 0 && llretiMask == 0 && lltmMask == 0 && llvibMask == 0;// Shadow Highlight tool is deactivated if Color & Light mask or SHmask is visible
|
||||
lp.highlihs = highhs;
|
||||
lp.shadowhs = shadhs;
|
||||
lp.radiushs = radhs;
|
||||
@ -1124,7 +1128,7 @@ static void calcLocalParams(int sp, int oW, int oH, const LocallabParams& locall
|
||||
lp.senshs = local_sensihs;
|
||||
lp.ftwlc = fftwlc;
|
||||
lp.ftwreti = fftwreti;
|
||||
lp.vibena = locallab.spots.at(sp).expvibrance && llColorMask == 0 && llExpMask == 0 && llcbMask == 0 && llretiMask == 0 && llcbMask == 0 && lltmMask == 0 && llSHMask == 0;// vibrance tool is deactivated if Color & Light mask or SHmask is visible
|
||||
lp.vibena = locallab.spots.at(sp).expvibrance && llColorMask == 0 && llExpMask == 0 && llcbMask == 0 && lllcMask == 0 && llretiMask == 0 && llcbMask == 0 && lltmMask == 0 && llSHMask == 0;// vibrance tool is deactivated if Color & Light mask or SHmask is visible
|
||||
|
||||
}
|
||||
|
||||
@ -5582,7 +5586,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, locwavCurveden, locwavdenutili);
|
||||
calcLocalParams(sp, oW, oH, params->locallab, lp, 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;
|
||||
@ -9053,7 +9057,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
||||
const LocwavCurve & locwavCurveden, bool & locwavdenutili,
|
||||
bool & LHutili, bool & HHutili, LUTf & cclocalcurve, bool & localcutili, LUTf & rgblocalcurve, bool & localrgbutili, bool & localexutili, LUTf & exlocalcurve, LUTf & hltonecurveloc, LUTf & shtonecurveloc, LUTf & tonecurveloc, LUTf & lightCurveloc,
|
||||
double & huerefblur, double & chromarefblur, double & lumarefblur, double & hueref, double & chromaref, double & lumaref, double & sobelref, int &lastsav,
|
||||
int llColorMask, int llColorMaskinv, int llExpMask, int llExpMaskinv, int llSHMask, int llSHMaskinv, int llvibMask, int llcbMask, int llretiMask, int llsoftMask, int lltmMask, int llblMask,
|
||||
int llColorMask, int llColorMaskinv, int llExpMask, int llExpMaskinv, int llSHMask, int llSHMaskinv, int llvibMask, int lllcMask, int llcbMask, int llretiMask, int llsoftMask, int lltmMask, int llblMask,
|
||||
float & minCD, float & maxCD, float & mini, float & maxi, float & Tmean, float & Tsigma, float & Tmin, float & Tmax)
|
||||
{
|
||||
//general call of others functions : important return hueref, chromaref, lumaref
|
||||
@ -9069,7 +9073,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
||||
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
|
||||
int delxy = 0;
|
||||
struct local_params lp;
|
||||
calcLocalParams(sp, oW, oH, params->locallab, lp, llColorMask, llColorMaskinv, llExpMask, llExpMaskinv, llSHMask, llSHMaskinv, llvibMask, llcbMask, llretiMask, llsoftMask, lltmMask, llblMask, locwavCurveden, locwavdenutili);
|
||||
calcLocalParams(sp, oW, oH, params->locallab, lp, llColorMask, llColorMaskinv, llExpMask, llExpMaskinv, llSHMask, llSHMaskinv, llvibMask, lllcMask, llcbMask, llretiMask, llsoftMask, lltmMask, llblMask, locwavCurveden, locwavdenutili);
|
||||
|
||||
const float radius = lp.rad / (sk * 1.4f); //0 to 70 ==> see skip
|
||||
int strred = 1;//(lp.strucc - 1);
|
||||
|
@ -900,6 +900,10 @@ enum ProcEventCode {
|
||||
EvlocallabLLmasklcshape = 871,
|
||||
EvLocallabEnalcMask = 872,
|
||||
EvlocallabshowmasklcMethod = 873,
|
||||
Evlocallabblendmasklc = 874,
|
||||
Evlocallabradmasklc = 875,
|
||||
Evlocallabchromasklc = 876,
|
||||
EvlocallabLmasklcshape = 877,
|
||||
NUMOFEVENTS
|
||||
};
|
||||
|
||||
|
@ -2747,6 +2747,10 @@ LocallabParams::LocallabSpot::LocallabSpot() :
|
||||
LLmasklccurve{(double)FCT_MinMaxCPoints, 0.0, 1.0, 0.35, 0.35, 0.50, 1.0, 0.35, 0.35, 1.0, 1.0, 0.35, 0.35},
|
||||
HHmasklccurve{(double)FCT_MinMaxCPoints, 0.0, 1.0, 0.35, 0.35, 0.50, 1.0, 0.35, 0.35, 1.0, 1.0, 0.35, 0.35},
|
||||
enalcMask(false),
|
||||
blendmasklc(0),
|
||||
radmasklc(0.0),
|
||||
chromasklc(0.0),
|
||||
Lmasklccurve{(double)DCT_NURBS, 0.0, 0.0, 1.0, 1.0},
|
||||
|
||||
// Contrast by detail levels
|
||||
expcbdl(false),
|
||||
@ -3148,6 +3152,10 @@ bool LocallabParams::LocallabSpot::operator ==(const LocallabSpot& other) const
|
||||
&& LLmasklccurve == other.LLmasklccurve
|
||||
&& HHmasklccurve == other.HHmasklccurve
|
||||
&& enalcMask == other.enalcMask
|
||||
&& blendmasklc == other.blendmasklc
|
||||
&& radmasklc == other.radmasklc
|
||||
&& chromasklc == other.chromasklc
|
||||
&& Lmasklccurve == other.Lmasklccurve
|
||||
// Constrast by detail levels
|
||||
&& expcbdl == other.expcbdl
|
||||
&& [this, &other]()->bool {
|
||||
@ -4529,6 +4537,10 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).LLmasklccurve, "Locallab", "LLmasklcCurve_" + std::to_string(i), spot.LLmasklccurve, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).HHmasklccurve, "Locallab", "HHmasklcCurve_" + std::to_string(i), spot.HHmasklccurve, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).enalcMask, "Locallab", "EnalcMask_" + std::to_string(i), spot.enalcMask, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).blendmasklc, "Locallab", "Blendmasklc_" + std::to_string(i), spot.blendmasklc, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).radmasklc, "Locallab", "Radmasklc_" + std::to_string(i), spot.radmasklc, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).chromasklc, "Locallab", "Chromasklc_" + std::to_string(i), spot.chromasklc, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).Lmasklccurve, "Locallab", "LmasklcCurve_" + std::to_string(i), spot.Lmasklccurve, keyFile);
|
||||
|
||||
// Contrast by detail levels
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).expcbdl, "Locallab", "Expcbdl_" + std::to_string(i), spot.expcbdl, keyFile);
|
||||
@ -6059,6 +6071,10 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
|
||||
assignFromKeyfile(keyFile, "Locallab", "LLmasklcCurve_" + std::to_string(i), pedited, spot.LLmasklccurve, spotEdited.LLmasklccurve);
|
||||
assignFromKeyfile(keyFile, "Locallab", "HHmasklcCurve_" + std::to_string(i), pedited, spot.HHmasklccurve, spotEdited.HHmasklccurve);
|
||||
assignFromKeyfile(keyFile, "Locallab", "EnalcMask_" + std::to_string(i), pedited, spot.enalcMask, spotEdited.enalcMask);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Blendmasklc_" + std::to_string(i), pedited, spot.blendmasklc, spotEdited.blendmasklc);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Radmasklc_" + std::to_string(i), pedited, spot.radmasklc, spotEdited.radmasklc);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Chromasklc_" + std::to_string(i), pedited, spot.chromasklc, spotEdited.chromasklc);
|
||||
assignFromKeyfile(keyFile, "Locallab", "LmasklcCurve_" + std::to_string(i), pedited, spot.Lmasklccurve, spotEdited.Lmasklccurve);
|
||||
|
||||
if (keyFile.has_key("Locallab", "CSThreshold_" + std::to_string(i))) {
|
||||
|
||||
|
@ -1290,6 +1290,10 @@ struct LocallabParams {
|
||||
std::vector<double> LLmasklccurve;
|
||||
std::vector<double> HHmasklccurve;
|
||||
bool enalcMask;
|
||||
int blendmasklc;
|
||||
double radmasklc;
|
||||
double chromasklc;
|
||||
std::vector<double> Lmasklccurve;
|
||||
|
||||
// Contrast by detail levels
|
||||
bool expcbdl;
|
||||
|
@ -903,7 +903,11 @@ int refreshmap[rtengine::NUMOFEVENTS] = {
|
||||
LUMINANCECURVE, //EvlocallabCCmasklcshape
|
||||
LUMINANCECURVE, //EvlocallabLLmasklcshape
|
||||
LUMINANCECURVE, //EvlocallabEnalcMask
|
||||
LUMINANCECURVE //EvlocallabshowmasklcMethod
|
||||
LUMINANCECURVE, //EvlocallabshowmasklcMethod
|
||||
LUMINANCECURVE, //Evlocallabblendmasklc
|
||||
LUMINANCECURVE, // Evlocallabradmasklc
|
||||
LUMINANCECURVE, //Evlocallabchromasklc
|
||||
LUMINANCECURVE //EvlocallabLmasklcshape
|
||||
|
||||
};
|
||||
|
||||
|
@ -524,7 +524,7 @@ public:
|
||||
|
||||
virtual void updateUnLock() = 0;
|
||||
|
||||
virtual void setLocallabMaskVisibility(int locallColorMask, int locallColorMaskinv, int locallExpMask, int locallExpMaskinv, int locallvibMask, int locallSHMask, int locallSHMaskinv, int locallcbMask, int locallretiMask, int locallsoftMask, int localltmMask, int locallblMask) = 0;
|
||||
virtual void setLocallabMaskVisibility(int locallColorMask, int locallColorMaskinv, int locallExpMask, int locallExpMaskinv, int locallvibMask, int locallSHMask, int locallSHMaskinv, int localllcMask, int locallcbMask, int locallretiMask, int locallsoftMask, int localltmMask, int locallblMask) = 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
|
||||
|
@ -1313,7 +1313,7 @@ private:
|
||||
loccompwavCurve, loccompwavutili,
|
||||
locwavCurveden, locwavdenutili,
|
||||
LHutili, HHutili, cclocalcurve, localcutili, rgblocalcurve, localrgbutili, localexutili, exlocalcurve, hltonecurveloc, shtonecurveloc, tonecurveloc, lightCurveloc,
|
||||
huerefblu, chromarefblu, lumarefblu, huere, chromare, lumare, sobelre, lastsav, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
huerefblu, chromarefblu, lumarefblu, huere, chromare, lumare, sobelre, lastsav, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax);
|
||||
|
||||
lastorigView->CopyFrom(labView);
|
||||
|
@ -357,6 +357,9 @@ Locallab::Locallab():
|
||||
wavshapecomp(static_cast<FlatCurveEditor*>(LocalcurveEditorwavcomp->addCurve(CT_Flat, "", nullptr, false, false))),
|
||||
|
||||
masklcCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK"))),
|
||||
mask2lcCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK2"))),
|
||||
|
||||
Lmasklcshape(static_cast<DiagonalCurveEditor*>(mask2lcCurveEditorG->addCurve(CT_Diagonal, "L(L)"))),
|
||||
CCmasklcshape(static_cast<FlatCurveEditor*>(masklcCurveEditorG->addCurve(CT_Flat, "C(C)", nullptr, false, false))),
|
||||
LLmasklcshape(static_cast<FlatCurveEditor*>(masklcCurveEditorG->addCurve(CT_Flat, "L(L)", nullptr, false, false))),
|
||||
HHmasklcshape(static_cast<FlatCurveEditor *>(masklcCurveEditorG->addCurve(CT_Flat, "LC(H)", nullptr, false, true))),
|
||||
@ -575,6 +578,9 @@ sigma(Gtk::manage(new Adjuster(M("TP_LOCALLAB_SIGMAWAV"), 0.2, 2.5, 0.01, 1.))),
|
||||
fatdet(Gtk::manage(new Adjuster(M("TP_LOCALLAB_FATDETAIL"), -100., 300., 1., 0.))),
|
||||
fatanch(Gtk::manage(new Adjuster(M("TP_LOCALLAB_FATANCHOR"), 1., 100., 1., 50., Gtk::manage(new RTImage("circle-black-small.png")), Gtk::manage(new RTImage("circle-white-small.png"))))),
|
||||
fatres(Gtk::manage(new Adjuster(M("TP_LOCALLAB_FATRES"), 0., 100., 1., 0.))),
|
||||
blendmasklc(Gtk::manage(new Adjuster(M("TP_LOCALLAB_BLENDMASKCOL"), -100, 100, 1, 0))),
|
||||
radmasklc(Gtk::manage(new Adjuster(M("TP_LOCALLAB_RADMASKCOL"), -10.0, 1000.0, 0.1, 0.))),
|
||||
chromasklc(Gtk::manage(new Adjuster(M("TP_LOCALLAB_CHROMASKCOL"), -100.0, 100.0, 0.1, 0.))),
|
||||
|
||||
multiplier(
|
||||
[this]() -> std::array<Adjuster*, 6> {
|
||||
@ -2900,6 +2906,10 @@ pe(nullptr)
|
||||
claricres->setAdjusterListener(this);
|
||||
|
||||
sensilc->setAdjusterListener(this);
|
||||
blendmasklc->setAdjusterListener(this);
|
||||
radmasklc->setLogScale(10, -10);
|
||||
radmasklc->setAdjusterListener(this);
|
||||
chromasklc->setAdjusterListener(this);
|
||||
|
||||
|
||||
|
||||
@ -3032,6 +3042,19 @@ pe(nullptr)
|
||||
|
||||
masklcCurveEditorG->curveListComplete();
|
||||
|
||||
mask2lcCurveEditorG->setCurveListener(this);
|
||||
Lmasklcshape->setResetCurve(DiagonalCurveType(defSpot.Lmasklccurve.at(0)), defSpot.Lmasklccurve);
|
||||
|
||||
if (showtooltip) {
|
||||
Lmasklcshape->setTooltip(M("TP_LOCALLAB_LMASK_LL_TOOLTIP"));
|
||||
}
|
||||
|
||||
const std::vector<GradientMilestone>& mLmasklcshape = zero_one_shape;
|
||||
Lmasklcshape->setBottomBarBgGradient(mLmasklcshape);
|
||||
Lmasklcshape->setLeftBarBgGradient(mLmasklcshape);
|
||||
mask2lcCurveEditorG->curveListComplete();
|
||||
|
||||
|
||||
enalcMaskConn = enalcMask->signal_toggled().connect(sigc::mem_fun(*this, &Locallab::enalcMaskChanged));
|
||||
|
||||
showmasklcMethod->append(M("TP_LOCALLAB_SHOWMNONE"));
|
||||
@ -3051,8 +3074,10 @@ pe(nullptr)
|
||||
masklcBox->pack_start(*showmasklcMethod, Gtk::PACK_SHRINK, 4);
|
||||
masklcBox->pack_start(*enalcMask, Gtk::PACK_SHRINK, 0);
|
||||
masklcBox->pack_start(*masklcCurveEditorG, Gtk::PACK_SHRINK, 4); // Padding is mandatory to correct behavior of curve editor
|
||||
// maskcbBox->pack_start(*blendmaskcb, Gtk::PACK_SHRINK, 0);
|
||||
// maskcbBox->pack_start(*radmaskcb, Gtk::PACK_SHRINK, 0);
|
||||
masklcBox->pack_start(*blendmasklc, Gtk::PACK_SHRINK, 0);
|
||||
masklcBox->pack_start(*radmasklc, Gtk::PACK_SHRINK, 0);
|
||||
masklcBox->pack_start(*chromasklc, Gtk::PACK_SHRINK, 0);
|
||||
masklcBox->pack_start(*mask2lcCurveEditorG, Gtk::PACK_SHRINK, 4); // Padding is mandatory to correct behavior of curve editor
|
||||
|
||||
if (complexsoft < 1) {
|
||||
// maskcbBox->pack_start(*lapmaskcb, Gtk::PACK_SHRINK, 0);
|
||||
@ -3741,6 +3766,7 @@ Locallab::~Locallab()
|
||||
delete maskretiCurveEditorG;
|
||||
delete mask2retiCurveEditorG;
|
||||
delete maskcbCurveEditorG;
|
||||
delete mask2lcCurveEditorG;
|
||||
delete mask2cbCurveEditorG;
|
||||
}
|
||||
|
||||
@ -5248,6 +5274,10 @@ void Locallab::write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited
|
||||
pp->locallab.spots.at(pp->locallab.selspot).CCmasklccurve = CCmasklcshape->getCurve();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).HHmasklccurve = HHmasklcshape->getCurve();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).enalcMask = enalcMask->get_active();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).blendmasklc = blendmasklc->getIntValue();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).radmasklc = radmasklc->getValue();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).chromasklc = chromasklc->getValue();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).Lmasklccurve = Lmasklcshape->getCurve();
|
||||
|
||||
// Contrast by detail levels
|
||||
pp->locallab.spots.at(pp->locallab.selspot).expcbdl = expcbdl->getEnabled();
|
||||
@ -5647,6 +5677,10 @@ void Locallab::write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited
|
||||
pe->locallab.spots.at(pp->locallab.selspot).LLmasklccurve = pe->locallab.spots.at(pp->locallab.selspot).LLmasklccurve || !LLmasklcshape->isUnChanged();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).HHmasklccurve = pe->locallab.spots.at(pp->locallab.selspot).HHmasklccurve || !HHmasklcshape->isUnChanged();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).enalcMask = pe->locallab.spots.at(pp->locallab.selspot).enalcMask || !enalcMask->get_inconsistent();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).blendmasklc = pe->locallab.spots.at(pp->locallab.selspot).blendmasklc || blendmasklc->getEditedState();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).radmasklc = pe->locallab.spots.at(pp->locallab.selspot).radmasklc || radmasklc->getEditedState();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).chromasklc = pe->locallab.spots.at(pp->locallab.selspot).chromasklc || chromasklc->getEditedState();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).Lmasklccurve = pe->locallab.spots.at(pp->locallab.selspot).Lmasklccurve || !Lmasklcshape->isUnChanged();
|
||||
|
||||
|
||||
// Contrast by detail levels
|
||||
@ -6050,6 +6084,11 @@ void Locallab::write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).HHmasklccurve = pedited->locallab.spots.at(pp->locallab.selspot).HHmasklccurve || !HHmasklcshape->isUnChanged();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).enalcMask = pedited->locallab.spots.at(pp->locallab.selspot).enalcMask || !enalcMask->get_inconsistent();
|
||||
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).blendmasklc = pedited->locallab.spots.at(pp->locallab.selspot).blendmasklc || blendmasklc->getEditedState();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).radmasklc = pedited->locallab.spots.at(pp->locallab.selspot).radmasklc || radmasklc->getEditedState();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).chromasklc = pedited->locallab.spots.at(pp->locallab.selspot).chromasklc || chromasklc->getEditedState();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).Lmasklccurve = pedited->locallab.spots.at(pp->locallab.selspot).Lmasklccurve || !Lmasklcshape->isUnChanged();
|
||||
|
||||
// Contrast by detail levels
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).expcbdl = pedited->locallab.spots.at(pp->locallab.selspot).expcbdl || !expcbdl->get_inconsistent();
|
||||
|
||||
@ -6566,6 +6605,12 @@ void Locallab::curveChanged(CurveEditor* ce)
|
||||
}
|
||||
}
|
||||
|
||||
if (ce == Lmasklcshape) {
|
||||
if (listener) {
|
||||
listener->panelChanged(EvlocallabLmasklcshape, M("HISTORY_CUSTOMCURVE"));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
//denoise
|
||||
if (getEnabled() && expdenoi->getEnabled()) {
|
||||
@ -8701,6 +8746,9 @@ void Locallab::setDefaults(const rtengine::procparams::ProcParams * defParams, c
|
||||
clarisoft->setDefault(defSpot->clarisoft);
|
||||
sensilc->setDefault((double)defSpot->sensilc);
|
||||
csThreshold->setDefault<int>(defSpot->csthreshold);
|
||||
blendmasklc->setDefault((double)defSpot->blendmasklc);
|
||||
radmasklc->setDefault(defSpot->radmasklc);
|
||||
chromasklc->setDefault(defSpot->chromasklc);
|
||||
|
||||
// Contrast by detail levels
|
||||
for (int i = 0; i < 6; i++) {
|
||||
@ -8937,6 +8985,9 @@ void Locallab::setDefaults(const rtengine::procparams::ProcParams * defParams, c
|
||||
clarisoft->setDefaultEditedState(Irrelevant);
|
||||
sensilc->setDefaultEditedState(Irrelevant);
|
||||
csThreshold->setDefaultEditedState(Irrelevant);
|
||||
blendmasklc->setDefaultEditedState(Irrelevant);
|
||||
radmasklc->setDefaultEditedState(Irrelevant);
|
||||
chromasklc->setDefaultEditedState(Irrelevant);
|
||||
|
||||
// Contrast by detail levels
|
||||
for (int i = 0; i < 6; i++) {
|
||||
@ -9178,6 +9229,9 @@ void Locallab::setDefaults(const rtengine::procparams::ProcParams * defParams, c
|
||||
clarisoft->setDefaultEditedState(defSpotState->clarisoft ? Edited : UnEdited);
|
||||
sensilc->setDefaultEditedState(defSpotState->sensilc ? Edited : UnEdited);
|
||||
csThreshold->setDefaultEditedState(defSpotState->csthreshold ? Edited : UnEdited);
|
||||
blendmasklc->setDefaultEditedState(defSpotState->blendmasklc ? Edited : UnEdited);
|
||||
radmasklc->setDefaultEditedState(defSpotState->radmasklc ? Edited : UnEdited);
|
||||
chromasklc->setDefaultEditedState(defSpotState->chromasklc ? Edited : UnEdited);
|
||||
|
||||
// Contrast by detail levels
|
||||
for (int i = 0; i < 6; i++) {
|
||||
@ -10385,6 +10439,25 @@ void Locallab::adjusterChanged(Adjuster * a, double newval)
|
||||
listener->panelChanged(Evlocallabsensilc, sensilc->getTextValue());
|
||||
}
|
||||
}
|
||||
|
||||
if (a == blendmasklc) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabblendmasklc, blendmasklc->getTextValue());
|
||||
}
|
||||
}
|
||||
|
||||
if (a == radmasklc) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabradmasklc, radmasklc->getTextValue());
|
||||
}
|
||||
}
|
||||
|
||||
if (a == chromasklc) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabchromasklc, chromasklc->getTextValue());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Contrast by detail levels
|
||||
@ -10842,6 +10915,9 @@ void Locallab::setBatchMode(bool batchMode)
|
||||
clarisoft->showEditedCB();
|
||||
csThreshold->showEditedCB();
|
||||
sensilc->showEditedCB();
|
||||
blendmasklc->showEditedCB();
|
||||
radmasklc->showEditedCB();
|
||||
chromasklc->showEditedCB();
|
||||
|
||||
// Contrast by detail levels
|
||||
for (int i = 0; i < 6; i++) {
|
||||
@ -11931,6 +12007,10 @@ void Locallab::updateLocallabGUI(const rtengine::procparams::ProcParams* pp, con
|
||||
LLmasklcshape->setCurve(pp->locallab.spots.at(index).LLmasklccurve);
|
||||
HHmasklcshape->setCurve(pp->locallab.spots.at(index).HHmasklccurve);
|
||||
enalcMask->set_active(pp->locallab.spots.at(index).enalcMask);
|
||||
blendmasklc->setValue(pp->locallab.spots.at(index).blendmasklc);
|
||||
radmasklc->setValue(pp->locallab.spots.at(index).radmasklc);
|
||||
chromasklc->setValue(pp->locallab.spots.at(index).chromasklc);
|
||||
Lmasklcshape->setCurve(pp->locallab.spots.at(index).Lmasklccurve);
|
||||
|
||||
if (fftwlc->get_active()) {
|
||||
lcradius->setLimits(20, 1000, 1, 80);
|
||||
@ -12421,6 +12501,10 @@ void Locallab::updateLocallabGUI(const rtengine::procparams::ProcParams* pp, con
|
||||
HHmasklcshape->setUnChanged(!spotState->HHmasklccurve);
|
||||
CCmasklcshape->setUnChanged(!spotState->CCmasklccurve);
|
||||
enalcMask->set_inconsistent(multiImage && !spotState->enalcMask);
|
||||
blendmasklc->setEditedState(spotState->blendmasklc ? Edited : UnEdited);
|
||||
radmasklc->setEditedState(spotState->radmasklc ? Edited : UnEdited);
|
||||
chromasklc->setEditedState(spotState->chromasklc ? Edited : UnEdited);
|
||||
Lmasklcshape->setUnChanged(!spotState->Lmasklccurve);
|
||||
|
||||
if (!spotState->retinexMethod) {
|
||||
localcontMethod->set_active_text(M("GENERAL_UNCHANGED"));
|
||||
|
@ -174,7 +174,8 @@ private:
|
||||
CurveEditorGroup* const LocalcurveEditorwavcomp;
|
||||
FlatCurveEditor* const wavshapecomp;
|
||||
CurveEditorGroup* const masklcCurveEditorG;
|
||||
// DiagonalCurveEditor* const Lmasklcshape;
|
||||
CurveEditorGroup* const mask2lcCurveEditorG;
|
||||
DiagonalCurveEditor* const Lmasklcshape;
|
||||
FlatCurveEditor* const CCmasklcshape;
|
||||
FlatCurveEditor* const LLmasklcshape;
|
||||
FlatCurveEditor* const HHmasklcshape;
|
||||
@ -372,6 +373,9 @@ private:
|
||||
Adjuster* const fatdet;
|
||||
Adjuster* const fatanch;
|
||||
Adjuster* const fatres;
|
||||
Adjuster* const blendmasklc;
|
||||
Adjuster* const radmasklc;
|
||||
Adjuster* const chromasklc;
|
||||
// Contrast by detail levels
|
||||
const std::array<Adjuster*, 6> multiplier;
|
||||
Adjuster* const chromacbdl;
|
||||
|
@ -1284,6 +1284,10 @@ void ParamsEdited::initFrom(const std::vector<rtengine::procparams::ProcParams>&
|
||||
locallab.spots.at(j).LLmasklccurve = locallab.spots.at(j).LLmasklccurve && pSpot.LLmasklccurve == otherSpot.LLmasklccurve;
|
||||
locallab.spots.at(j).HHmasklccurve = locallab.spots.at(j).HHmasklccurve && pSpot.HHmasklccurve == otherSpot.HHmasklccurve;
|
||||
locallab.spots.at(j).enalcMask = locallab.spots.at(j).enalcMask && pSpot.enalcMask == otherSpot.enalcMask;
|
||||
locallab.spots.at(j).blendmasklc = locallab.spots.at(j).blendmasklc && pSpot.blendmasklc == otherSpot.blendmasklc;
|
||||
locallab.spots.at(j).radmasklc = locallab.spots.at(j).radmasklc && pSpot.radmaskcb == otherSpot.radmasklc;
|
||||
locallab.spots.at(j).chromasklc = locallab.spots.at(j).chromasklc && pSpot.chromasklc == otherSpot.chromasklc;
|
||||
locallab.spots.at(j).Lmasklccurve = locallab.spots.at(j).Lmasklccurve && pSpot.Lmasklccurve == otherSpot.Lmasklccurve;
|
||||
|
||||
// Contrast by detail levels
|
||||
locallab.spots.at(j).expcbdl = locallab.spots.at(j).expcbdl && pSpot.expcbdl == otherSpot.expcbdl;
|
||||
@ -4102,6 +4106,23 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng
|
||||
toEdit.locallab.spots.at(i).enalcMask = mods.locallab.spots.at(i).enalcMask;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).blendmasklc) {
|
||||
toEdit.locallab.spots.at(i).blendmasklc = mods.locallab.spots.at(i).blendmasklc;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).radmasklc) {
|
||||
toEdit.locallab.spots.at(i).radmasklc = mods.locallab.spots.at(i).radmasklc;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).chromasklc) {
|
||||
toEdit.locallab.spots.at(i).chromasklc = mods.locallab.spots.at(i).chromasklc;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).Lmasklccurve) {
|
||||
toEdit.locallab.spots.at(i).Lmasklccurve = mods.locallab.spots.at(i).Lmasklccurve;
|
||||
}
|
||||
|
||||
|
||||
// Contrast by detail levels
|
||||
if (locallab.spots.at(i).expcbdl) {
|
||||
toEdit.locallab.spots.at(i).expcbdl = mods.locallab.spots.at(i).expcbdl;
|
||||
@ -5596,6 +5617,10 @@ LocallabParamsEdited::LocallabSpotEdited::LocallabSpotEdited(bool v) :
|
||||
LLmasklccurve(v),
|
||||
HHmasklccurve(v),
|
||||
enalcMask(v),
|
||||
blendmasklc(v),
|
||||
radmasklc(v),
|
||||
chromasklc(v),
|
||||
Lmasklccurve(v),
|
||||
|
||||
// Contrast by detail levels
|
||||
expcbdl(v),
|
||||
@ -5987,6 +6012,10 @@ void LocallabParamsEdited::LocallabSpotEdited::set(bool v)
|
||||
LLmasklccurve = v;
|
||||
HHmasklccurve = v;
|
||||
enalcMask = v;
|
||||
blendmasklc = v;
|
||||
radmasklc = v;
|
||||
chromasklc = v;
|
||||
Lmasklccurve = v;
|
||||
// Contrast by detail levels
|
||||
expcbdl = v;
|
||||
|
||||
|
@ -716,6 +716,10 @@ public:
|
||||
bool LLmasklccurve;
|
||||
bool HHmasklccurve;
|
||||
bool enalcMask;
|
||||
bool blendmasklc;
|
||||
bool radmasklc;
|
||||
bool chromasklc;
|
||||
bool Lmasklccurve;
|
||||
// Contrast by detail levels
|
||||
bool expcbdl;
|
||||
bool mult[6];
|
||||
|
@ -509,9 +509,9 @@ void ToolPanelCoordinator::panelChanged(const rtengine::ProcEvent& event, const
|
||||
// Manage Locallab mask visibility
|
||||
if (event == rtengine::EvlocallabshowmaskcolMethod || event == rtengine::EvlocallabshowmaskcolMethodinv ||event == rtengine::EvlocallabshowmaskexpMethod ||event == rtengine::EvlocallabshowmaskexpMethodinv
|
||||
|| event == rtengine::EvlocallabshowmaskSHMethod || event == rtengine::EvlocallabshowmaskSHMethodinv || event == rtengine::EvlocallabshowmaskvibMethod || event == rtengine::EvlocallabshowmasksoftMethod
|
||||
|| event == rtengine::EvlocallabshowmaskcbMethod || event == rtengine::EvlocallabshowmaskretiMethod || event == rtengine::EvlocallabshowmasktmMethod || event == rtengine::EvlocallabshowmaskblMethod) {
|
||||
|| event == rtengine::EvlocallabshowmaskcbMethod || event == rtengine::EvlocallabshowmasklcMethod || event == rtengine::EvlocallabshowmaskretiMethod || event == rtengine::EvlocallabshowmasktmMethod || event == rtengine::EvlocallabshowmaskblMethod) {
|
||||
Locallab::llMaskVisibility* maskStruc = locallab->getMaskVisibility();
|
||||
ipc->setLocallabMaskVisibility(maskStruc->colorMask, maskStruc->colorMaskinv, maskStruc->expMask, maskStruc->expMaskinv, maskStruc->SHMask, maskStruc->SHMaskinv, maskStruc->vibMask, maskStruc->cbMask, maskStruc->retiMask, maskStruc->softMask, maskStruc->tmMask, maskStruc->blMask);
|
||||
ipc->setLocallabMaskVisibility(maskStruc->colorMask, maskStruc->colorMaskinv, maskStruc->expMask, maskStruc->expMaskinv, maskStruc->SHMask, maskStruc->SHMaskinv, maskStruc->vibMask, maskStruc->lcMask, maskStruc->cbMask, maskStruc->retiMask, maskStruc->softMask, maskStruc->tmMask, maskStruc->blMask);
|
||||
}
|
||||
|
||||
ipc->endUpdateParams(changeFlags); // starts the IPC processing
|
||||
@ -619,7 +619,7 @@ void ToolPanelCoordinator::profileChange(
|
||||
// Reset Locallab mask visibility when a picture is loaded
|
||||
if (event == rtengine::EvPhotoLoaded) {
|
||||
locallab->resetMaskVisibility();
|
||||
ipc->setLocallabMaskVisibility(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
||||
ipc->setLocallabMaskVisibility(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
||||
}
|
||||
|
||||
// start the IPC processing
|
||||
|
Loading…
x
Reference in New Issue
Block a user