CbDL badly interacts with Graduated and Vignetting Filter if CbDL is set to 'before Black-and-White', fixes #3473

This commit is contained in:
heckflosse
2016-10-21 00:41:27 +02:00
parent 0ba6258fc8
commit 8cad2f8863
2 changed files with 12 additions and 10 deletions

View File

@@ -372,19 +372,21 @@ void ImProcCoordinator::updatePreviewImage (int todo, Crop* cropCall)
// Remove transformation if unneeded
bool needstransform = ipf.needsTransform();
if (!needstransform && orig_prev != oprevi) {
if (!needstransform && !((todo & (M_TRANSFORM)) && params.dirpyrequalizer.cbdlMethod == "bef" && params.dirpyrequalizer.enabled && !params.colorappearance.enabled) && orig_prev != oprevi) {
delete oprevi;
oprevi = orig_prev;
}
if (needstransform && orig_prev == oprevi) {
oprevi = new Imagefloat (pW, pH);
if ((needstransform || ((todo & (M_TRANSFORM)) && params.dirpyrequalizer.cbdlMethod == "bef" && params.dirpyrequalizer.enabled && !params.colorappearance.enabled)) ) {
if(!oprevi || oprevi == orig_prev)
oprevi = new Imagefloat (pW, pH);
if ((todo & M_TRANSFORM) && needstransform)
ipf.transform (orig_prev, oprevi, 0, 0, 0, 0, pW, pH, fw, fh, imgsrc->getMetaData()->getFocalLen(),
imgsrc->getMetaData()->getFocalLen35mm(), imgsrc->getMetaData()->getFocusDist(), imgsrc->getRotateDegree(), false);
else
orig_prev->copyData(oprevi);
}
if ((todo & M_TRANSFORM) && needstransform)
ipf.transform (orig_prev, oprevi, 0, 0, 0, 0, pW, pH, fw, fh, imgsrc->getMetaData()->getFocalLen(),
imgsrc->getMetaData()->getFocalLen35mm(), imgsrc->getMetaData()->getFocusDist(), imgsrc->getRotateDegree(), false);
if ((todo & (M_TRANSFORM)) && params.dirpyrequalizer.cbdlMethod == "bef" && params.dirpyrequalizer.enabled && !params.colorappearance.enabled) {
const int W = oprevi->getWidth();
const int H = oprevi->getHeight();