diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index 4550eac52..8aafac91c 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -992,6 +992,12 @@ void Crop::update(int todo) LabImage *unshar = nullptr; Glib::ustring provis; LabImage *provradius = nullptr; + bool procont = WaveParams.expcontrast; + bool prochro = WaveParams.expchroma; + bool proedge = WaveParams.expedge; + bool profin = WaveParams.expfinal; + bool proton = WaveParams.exptoning; + bool pronois = WaveParams.expnoise; if(WaveParams.showmask) { // WaveParams.showmask = false; @@ -1023,8 +1029,27 @@ void Crop::update(int todo) params.wavelet.Backmethod = "grey"; } + if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { + WaveParams.expcontrast = false; + WaveParams.expchroma = false; + WaveParams.expedge = false; + WaveParams.expfinal = false; + WaveParams.exptoning = false; + WaveParams.expnoise = false; + } + parent->ipf.ip_wavelet(labnCrop, labnCrop, kall, WaveParams, wavCLVCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, parent->wavclCurve, skip); + if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { + WaveParams.expcontrast = procont; + WaveParams.expchroma = prochro; + WaveParams.expedge = proedge; + WaveParams.expfinal = profin; + WaveParams.exptoning = proton; + WaveParams.expnoise = pronois; + } + + if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { float mL = (float)(WaveParams.mergeL / 100.f); diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index c64fe9746..a4e95aacf 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -856,6 +856,12 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) LabImage *unshar = nullptr; Glib::ustring provis; LabImage *provradius = nullptr; + bool procont = WaveParams.expcontrast; + bool prochro = WaveParams.expchroma; + bool proedge = WaveParams.expedge; + bool profin = WaveParams.expfinal; + bool proton = WaveParams.exptoning; + bool pronois = WaveParams.expnoise; if(WaveParams.showmask) { // WaveParams.showmask = false; @@ -887,8 +893,27 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) params->wavelet.Backmethod = "grey"; } + if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { + WaveParams.expcontrast = false; + WaveParams.expchroma = false; + WaveParams.expedge = false; + WaveParams.expfinal = false; + WaveParams.exptoning = false; + WaveParams.expnoise = false; + } + ipf.ip_wavelet(nprevl, nprevl, kall, WaveParams, wavCLVCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, scale); + + if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { + WaveParams.expcontrast = procont; + WaveParams.expchroma = prochro; + WaveParams.expedge = proedge; + WaveParams.expfinal = profin; + WaveParams.exptoning = proton; + WaveParams.expnoise = pronois; + } + if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { float mL = (float)(WaveParams.mergeL / 100.f); float mC = (float)(WaveParams.mergeC / 100.f); @@ -924,17 +949,6 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) if (WaveParams.softrad > 0.f) { array2D ble(pW, pH); array2D guid(pW, pH); - /* - #ifdef _OPENMP - const int numThreads = omp_get_max_threads(); - #endif - - bool multiTh = false; - - if (numThreads > 1) { - multiTh = true; - } - */ #ifdef _OPENMP #pragma omp parallel for #endif @@ -973,6 +987,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) } + } ipf.softLight(nprevl); diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index dcf66ca5e..dbc2f9168 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -1129,6 +1129,13 @@ private: WavOpacityCurveW waOpacityCurveW; WavOpacityCurveWL waOpacityCurveWL; LabImage *provradius = nullptr; + bool procont = WaveParams.expcontrast; + bool prochro = WaveParams.expchroma; + bool proedge = WaveParams.expedge; + bool profin = WaveParams.expfinal; + bool proton = WaveParams.exptoning; + bool pronois = WaveParams.expnoise; + /* if(WaveParams.showmask) { WaveParams.showmask = false; @@ -1153,8 +1160,26 @@ private: params.wavelet.CLmethod = provis; } + if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { + WaveParams.expcontrast = false; + WaveParams.expchroma = false; + WaveParams.expedge = false; + WaveParams.expfinal = false; + WaveParams.exptoning = false; + WaveParams.expnoise = false; + } + ipf.ip_wavelet(labView, labView, 2, WaveParams, wavCLVCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, 1); + if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { + WaveParams.expcontrast = procont; + WaveParams.expchroma = prochro; + WaveParams.expedge = proedge; + WaveParams.expfinal = profin; + WaveParams.exptoning = proton; + WaveParams.expnoise = pronois; + } + if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { float mL = (float)(WaveParams.mergeL / 100.f); float mC = (float)(WaveParams.mergeC / 100.f);