made lensfun-based correction compatible with auto fill mode
This commit is contained in:
parent
489b641c8b
commit
e4ba4d19f5
@ -969,10 +969,6 @@ double ImProcFunctions::getTransformAutoFill (int oW, int oH, const LensCorrecti
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (pLCPMap && !pLCPMap->supportsAutoFill()) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
double scaleU = 2, scaleL = 0.001; // upper and lower border, iterate inbetween
|
||||
|
||||
do {
|
||||
|
@ -140,7 +140,6 @@ class LensCorrection {
|
||||
public:
|
||||
virtual ~LensCorrection() {}
|
||||
virtual void correctDistortion(double &x, double &y, int cx, int cy, double scale) const = 0;
|
||||
virtual bool supportsAutoFill() const = 0;
|
||||
virtual bool supportsCA() const = 0;
|
||||
virtual void correctCA(double &x, double &y, int channel) const = 0;
|
||||
virtual void processVignetteLine(int width, int y, float *line) const = 0;
|
||||
@ -167,7 +166,6 @@ public:
|
||||
|
||||
void correctDistortion(double &x, double &y, int cx, int cy, double scale) const; // MUST be the first stage
|
||||
bool supportsCA() const { return enableCA; }
|
||||
bool supportsAutoFill() const { return true; }
|
||||
void correctCA(double& x, double& y, int channel) const;
|
||||
void processVignetteLine(int width, int y, float *line) const;
|
||||
void processVignetteLine3Channels(int width, int y, float *line) const;
|
||||
|
@ -72,6 +72,8 @@ void LFModifier::correctDistortion(double &x, double &y, int cx, int cy, double
|
||||
x -= cx;
|
||||
y -= cy;
|
||||
}
|
||||
x *= scale;
|
||||
y *= scale;
|
||||
}
|
||||
|
||||
|
||||
|
@ -34,7 +34,6 @@ public:
|
||||
bool ok() const;
|
||||
|
||||
void correctDistortion(double &x, double &y, int cx, int cy, double scale) const;
|
||||
bool supportsAutoFill() const { return false; }
|
||||
bool supportsCA() const { return false; }
|
||||
void correctCA(double &x, double &y, int channel) const {}
|
||||
void processVignetteLine(int width, int y, float *line) const;
|
||||
|
@ -39,7 +39,6 @@ LensProfilePanel::LensProfilePanel () :
|
||||
useCAChanged(false),
|
||||
isRaw(true),
|
||||
metadata(nullptr),
|
||||
lensgeomLcpFill(nullptr),
|
||||
useLensfunChanged(false),
|
||||
lensfunAutoChanged(false),
|
||||
lensfunCameraChanged(false),
|
||||
@ -220,7 +219,6 @@ void LensProfilePanel::read(const rtengine::procparams::ProcParams* pp, const Pa
|
||||
corrOff->set_active(true);
|
||||
}
|
||||
|
||||
setAutoFill();
|
||||
enableListener ();
|
||||
conUseDist.block(false);
|
||||
}
|
||||
@ -516,8 +514,6 @@ void LensProfilePanel::onCorrModeChanged()
|
||||
mode = M("GENERAL_UNCHANGED");
|
||||
}
|
||||
|
||||
setAutoFill();
|
||||
|
||||
if (listener) {
|
||||
listener->panelChanged(EvLensCorrMode, mode);
|
||||
}
|
||||
@ -537,23 +533,6 @@ bool LensProfilePanel::checkLensfunCanCorrect(bool automatch)
|
||||
}
|
||||
|
||||
|
||||
void LensProfilePanel::setAutoFill()
|
||||
{
|
||||
if (lensgeomLcpFill) {
|
||||
bool b = lensgeomLcpFill->disableListener();
|
||||
if (corrLensfunAuto->get_active() || corrLensfunManual->get_active()) {
|
||||
lensgeomLcpFill->getFill()->set_active(true);
|
||||
lensgeomLcpFill->getFill()->set_sensitive(false);
|
||||
} else {
|
||||
lensgeomLcpFill->getFill()->set_sensitive(true);
|
||||
}
|
||||
if (b) {
|
||||
lensgeomLcpFill->enableListener();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// LFDbHelper
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@ -40,7 +40,6 @@ protected:
|
||||
bool allowFocusDep;
|
||||
bool isRaw;
|
||||
const rtengine::ImageMetaData* metadata;
|
||||
LensGeometry *lensgeomLcpFill;
|
||||
|
||||
Gtk::RadioButton::Group corrGroup;
|
||||
Gtk::RadioButton *corrOff;
|
||||
@ -87,7 +86,6 @@ protected:
|
||||
bool setLensfunCamera(const Glib::ustring &make, const Glib::ustring &model);
|
||||
bool setLensfunLens(const Glib::ustring &lens);
|
||||
bool checkLensfunCanCorrect(bool automatch);
|
||||
void setAutoFill();
|
||||
|
||||
public:
|
||||
|
||||
@ -102,10 +100,6 @@ public:
|
||||
void onUseDistChanged();
|
||||
void onUseVignChanged();
|
||||
void onUseCAChanged();
|
||||
void setLensGeomRef( LensGeometry *foo)
|
||||
{
|
||||
lensgeomLcpFill = foo ;
|
||||
};
|
||||
|
||||
void setBatchMode(bool yes);
|
||||
|
||||
|
@ -53,7 +53,6 @@ ToolPanelCoordinator::ToolPanelCoordinator () : ipc (nullptr), hasChanged (false
|
||||
colortoning = Gtk::manage (new ColorToning ());
|
||||
lensgeom = Gtk::manage (new LensGeometry ());
|
||||
lensProf = Gtk::manage (new LensProfilePanel ());
|
||||
lensProf->setLensGeomRef (lensgeom);
|
||||
distortion = Gtk::manage (new Distortion ());
|
||||
rotate = Gtk::manage (new Rotate ());
|
||||
vibrance = Gtk::manage (new Vibrance ());
|
||||
|
Loading…
x
Reference in New Issue
Block a user