diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index 8b8e5dba2..ddc360003 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -1100,65 +1100,8 @@ void Crop::update(int todo) } if (sp + 1u < params.locallab.spots.size()) { - // do not do this for last spot as it is not needed anymore + // do not copy for last spot as it is not needed anymore lastorigCrop->CopyFrom(labnCrop); - lllocalcurve2.clear(); - lclocalcurve2.clear(); - cllocalcurve2.clear(); - lightCurveloc2.clear(); - rgblocalcurve2.clear(); - cclocalcurve2.clear(); - exlocalcurve2.clear(); - lmasklocalcurve2.clear(); - lmaskexplocalcurve2.clear(); - lmaskSHlocalcurve2.clear(); - lmaskviblocalcurve2.clear(); - lmasktmlocalcurve2.clear(); - lmaskretilocalcurve2.clear(); - lmaskcblocalcurve2.clear(); - lmaskbllocalcurve2.clear(); - hltonecurveloc2.clear(); - shtonecurveloc2.clear(); - tonecurveloc2.clear(); - locRETgainCurve.Reset(); - locRETtransCurve.Reset(); - loclhCurve.Reset(); - lochhCurve.Reset(); - locccmasCurve.Reset(); - locllmasCurve.Reset(); - lochhmasCurve.Reset(); - lochhhmasCurve.Reset(); - locllmasexpCurve.Reset(); - locccmasexpCurve.Reset(); - lochhmasexpCurve.Reset(); - locllmasSHCurve.Reset(); - locccmasSHCurve.Reset(); - lochhmasSHCurve.Reset(); - locllmasvibCurve.Reset(); - locccmasvibCurve.Reset(); - lochhmasvibCurve.Reset(); - locllmascbCurve.Reset(); - locccmascbCurve.Reset(); - lochhmascbCurve.Reset(); - locllmasretiCurve.Reset(); - locccmasretiCurve.Reset(); - lochhmasretiCurve.Reset(); - locllmastmCurve.Reset(); - locccmastmCurve.Reset(); - lochhmastmCurve.Reset(); - locllmasblCurve.Reset(); - locccmasblCurve.Reset(); - lochhmasblCurve.Reset(); - locllmaslcCurve.Reset(); - locccmaslcCurve.Reset(); - lochhmaslcCurve.Reset(); - locwavCurve.Reset(); - loclevwavCurve.Reset(); - locconwavCurve.Reset(); - locconwavCurve.Reset(); - locwavCurveden.Reset(); - loclmasCurveblwav.Reset(); - loclmasCurvecolwav.Reset(); } if (skip <= 2) { diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 2221a53f3..52cf79203 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -1214,7 +1214,10 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) huerblu, chromarblu, lumarblu, huer, chromar, lumar, sobeler, lastsav, false, 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); + if (sp + 1u < params->locallab.spots.size()) { + // do not copy for last spot as it is not needed anymore + lastorigimp->CopyFrom(nprevl); + } // Save Locallab Retinex min/max for current spot LocallabListener::locallabRetiMinMax retiMinMax; @@ -1241,74 +1244,6 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) locallref.at(sp).lumar = lumar; locallref.at(sp).huer = huer; } - - /* - //very bad idea : it's the story of the cat biting its tail - // brings big bugs.. - //restore ref values - huerefs[sp] = huer; - chromarefs[sp] = chromar; - lumarefs[sp] = lumar ; - sobelrefs[sp] = sobeler; - */ - lllocalcurve.clear(); - lclocalcurve.clear(); - cllocalcurve.clear(); - lightCurveloc.clear(); - cclocalcurve.clear(); - rgblocalcurve.clear(); - exlocalcurve.clear(); - lmasklocalcurve.clear(); - lmaskexplocalcurve.clear(); - lmaskSHlocalcurve.clear(); - lmaskviblocalcurve.clear(); - lmasktmlocalcurve.clear(); - lmaskretilocalcurve.clear(); - lmaskcblocalcurve.clear(); - lmaskbllocalcurve.clear(); - lmasklclocalcurve.clear(); - hltonecurveloc.clear(); - shtonecurveloc.clear(); - tonecurveloc.clear(); - locRETgainCurve.Reset(); - locRETtransCurve.Reset(); - loclhCurve.Reset(); - lochhCurve.Reset(); - locccmasCurve.Reset(); - locllmasCurve.Reset(); - lochhmasCurve.Reset(); - lochhhmasCurve.Reset(); - locllmasexpCurve.Reset(); - locccmasexpCurve.Reset(); - lochhmasexpCurve.Reset(); - locllmasSHCurve.Reset(); - locccmasSHCurve.Reset(); - lochhmasSHCurve.Reset(); - locllmasvibCurve.Reset(); - locccmasvibCurve.Reset(); - lochhmasvibCurve.Reset(); - locllmascbCurve.Reset(); - locccmascbCurve.Reset(); - lochhmascbCurve.Reset(); - locllmasretiCurve.Reset(); - locccmasretiCurve.Reset(); - lochhmasretiCurve.Reset(); - locllmastmCurve.Reset(); - locccmastmCurve.Reset(); - lochhmastmCurve.Reset(); - locllmasblCurve.Reset(); - locccmasblCurve.Reset(); - lochhmasblCurve.Reset(); - locllmaslcCurve.Reset(); - locccmaslcCurve.Reset(); - lochhmaslcCurve.Reset(); - locwavCurve.Reset(); - loclevwavCurve.Reset(); - locconwavCurve.Reset(); - locwavCurveden.Reset(); - locwavCurve.Reset(); - loclmasCurveblwav.Reset(); - loclmasCurvecolwav.Reset(); } // Transmit Locallab reference values and Locallab Retinex min/max to LocallabListener diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index 4d31559b3..e28efb8c7 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -1296,26 +1296,6 @@ private: } else { ipf.calc_ref(sp, labView, labView, 0, 0, fw, fh, 1, huerefblu, chromarefblu, lumarefblu, huere, chromare, lumare, sobelre, avge, locwavCurveden, locwavdenutili); } - - // Clear local curves - lllocalcurve.clear(); - lclocalcurve.clear(); - cllocalcurve.clear(); - cclocalcurve.clear(); - rgblocalcurve.clear(); - exlocalcurve.clear(); - hltonecurveloc.clear(); - lmasklocalcurve.clear(); - lmaskexplocalcurve.clear(); - lmaskSHlocalcurve.clear(); - lmaskviblocalcurve.clear(); - lmasktmlocalcurve.clear(); - lmaskretilocalcurve.clear(); - lmaskcblocalcurve.clear(); - lmaskbllocalcurve.clear(); - shtonecurveloc.clear(); - tonecurveloc.clear(); - lightCurveloc.clear(); } t2.set();