From 40aa7d2034900c23bef68f22d37555cb03cb481a Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sun, 19 May 2019 13:20:34 +0200 Subject: [PATCH 1/3] Fix memory leak in preferences dialog --- rtgui/preferences.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtgui/preferences.cc b/rtgui/preferences.cc index b37fc537a..b7d10c8de 100644 --- a/rtgui/preferences.cc +++ b/rtgui/preferences.cc @@ -1450,7 +1450,7 @@ Gtk::Widget* Preferences::getSoundsPanel () swSounds = Gtk::manage(new Gtk::ScrolledWindow()); swSounds->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); - Gtk::VBox* vbSounds = new Gtk::VBox (); + Gtk::VBox* vbSounds = Gtk::manage(new Gtk::VBox ()); ckbSndEnable = Gtk::manage ( new Gtk::CheckButton (M ("GENERAL_ENABLE"))); sndEnableConn = ckbSndEnable->signal_toggled().connect (sigc::mem_fun (*this, &Preferences::sndEnableToggled)); From 6958d46e70c5eebd518ea2dfcb9976ee33d3423f Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sun, 19 May 2019 16:06:54 +0200 Subject: [PATCH 2/3] Don't preprocess and demosaic again when using coarse rotation or flip, fixes #5327 --- rtengine/refreshmap.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rtengine/refreshmap.cc b/rtengine/refreshmap.cc index 7a5214d75..d741b1744 100644 --- a/rtengine/refreshmap.cc +++ b/rtengine/refreshmap.cc @@ -83,9 +83,9 @@ int refreshmap[rtengine::NUMOFEVENTS] = { RGBCURVE, // EvSHSHTonalW, RGBCURVE, // EvSHLContrast, RETINEX, // EvSHRadius, - ALL, // EvCTRotate, - ALL, // EvCTHFlip, - ALL, // EvCTVFlip, + ALLNORAW, // EvCTRotate, + ALLNORAW, // EvCTHFlip, + ALLNORAW, // EvCTVFlip, TRANSFORM, // EvROTDegree, TRANSFORM, // EvTransAutoFill, TRANSFORM, // EvDISTAmount, From 18d977502d4a51058c190908d2d01a9e81a96a8d Mon Sep 17 00:00:00 2001 From: Desmis Date: Sun, 19 May 2019 18:12:46 +0200 Subject: [PATCH 3/3] Improve Tone-mapping iterates --- rtengine/dcrop.cc | 4 ++-- rtengine/improccoordinator.cc | 4 ++-- rtengine/ipwavelet.cc | 2 +- rtengine/simpleprocess.cc | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index 62f6dad7c..f235d8d29 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -877,7 +877,7 @@ void Crop::update(int todo) parent->ipf.labColorCorrectionRegions(labnCrop); if ((params.colorappearance.enabled && !params.colorappearance.tonecie) || (!params.colorappearance.enabled)) { - parent->ipf.EPDToneMap(labnCrop, 5, skip); + parent->ipf.EPDToneMap(labnCrop, 0, skip); } //parent->ipf.EPDToneMap(labnCrop, 5, 1); //Go with much fewer than normal iterates for fast redisplay. @@ -1024,7 +1024,7 @@ void Crop::update(int todo) float d, dj, yb; // not used after this block parent->ipf.ciecam_02float(cieCrop, float (adap), 1, 2, labnCrop, ¶ms, parent->customColCurve1, parent->customColCurve2, parent->customColCurve3, - dummy, dummy, parent->CAMBrightCurveJ, parent->CAMBrightCurveQ, parent->CAMMean, 5, skip, execsharp, d, dj, yb, 1, parent->sharpMask); + dummy, dummy, parent->CAMBrightCurveJ, parent->CAMBrightCurveQ, parent->CAMMean, 0, skip, execsharp, d, dj, yb, 1, parent->sharpMask); } else { // CIECAM is disabled, we free up its image buffer to save some space if (cieCrop) { diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index ec047f853..01f9892bf 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -778,7 +778,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) ipf.labColorCorrectionRegions(nprevl); if ((params->colorappearance.enabled && !params->colorappearance.tonecie) || (!params->colorappearance.enabled)) { - ipf.EPDToneMap(nprevl, 5, scale); + ipf.EPDToneMap(nprevl, 0, scale); } // for all treatments Defringe, Sharpening, Contrast detail , Microcontrast they are activated if "CIECAM" function are disabled @@ -922,7 +922,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) CAMBrightCurveJ.dirty = true; CAMBrightCurveQ.dirty = true; - ipf.ciecam_02float(ncie, float (adap), pW, 2, nprevl, params.get(), customColCurve1, customColCurve2, customColCurve3, histLCAM, histCCAM, CAMBrightCurveJ, CAMBrightCurveQ, CAMMean, 5, scale, execsharp, d, dj, yb, 1); + ipf.ciecam_02float(ncie, float (adap), pW, 2, nprevl, params.get(), customColCurve1, customColCurve2, customColCurve3, histLCAM, histCCAM, CAMBrightCurveJ, CAMBrightCurveQ, CAMMean, 0 , scale, execsharp, d, dj, yb, 1); if ((params->colorappearance.autodegree || params->colorappearance.autodegreeout) && acListener && params->colorappearance.enabled) { acListener->autoCamChanged(100.* (double)d, 100.* (double)dj); diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index d3595b42c..e6e84bc50 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -1668,7 +1668,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * //tone mapping if(cp.tonemap && cp.contmet == 2 && cp.resena) { //iterate = 5 - EPDToneMapResid(WavCoeffs_L0, 5, skip, cp, W_L, H_L, max0, min0); + EPDToneMapResid(WavCoeffs_L0, 0, skip, cp, W_L, H_L, max0, min0); } diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index ff2b234a3..8b9bee738 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -1066,7 +1066,7 @@ private: ipf.chromiLuminanceCurve (nullptr, 1, labView, labView, curve1, curve2, satcurve, lhskcurve, clcurve, lumacurve, utili, autili, butili, ccutili, cclutili, clcutili, dummy, dummy); if ((params.colorappearance.enabled && !params.colorappearance.tonecie) || (!params.colorappearance.enabled)) { - ipf.EPDToneMap (labView, 5, 1); + ipf.EPDToneMap (labView, 0, 1); } @@ -1177,7 +1177,7 @@ private: float CAMMean = NAN; float d, dj, yb; - ipf.ciecam_02float (cieView, float (adap), 1, 2, labView, ¶ms, customColCurve1, customColCurve2, customColCurve3, dummy, dummy, CAMBrightCurveJ, CAMBrightCurveQ, CAMMean, 5, 1, true, d, dj, yb, 1); + ipf.ciecam_02float (cieView, float (adap), 1, 2, labView, ¶ms, customColCurve1, customColCurve2, customColCurve3, dummy, dummy, CAMBrightCurveJ, CAMBrightCurveQ, CAMMean, 0, 1, true, d, dj, yb, 1); } delete cieView;