some enhancements of the Fast Export functionality
- remember fast export options across RT sessions - added option to use a dedicated "Fast Export" pipeline, trading speed for quality (resizes early instead of at the end)
This commit is contained in:
@@ -39,6 +39,8 @@ ExportPanel::ExportPanel () : listener (nullptr)
|
||||
pack_start(*labExportTitle, Gtk::PACK_SHRINK, 4);
|
||||
|
||||
bypass_ALL = Gtk::manage ( new Gtk::CheckButton (M("EXPORT_BYPASS_ALL")));
|
||||
use_fast_pipeline = Gtk::manage ( new Gtk::CheckButton (M("EXPORT_USE_FAST_PIPELINE")));
|
||||
use_fast_pipeline->set_tooltip_text(M("EXPORT_USE_FAST_PIPELINE_TIP"));
|
||||
bypass_sharpening = Gtk::manage ( new Gtk::CheckButton (M("EXPORT_BYPASS_SHARPENING")));
|
||||
bypass_sharpenEdge = Gtk::manage ( new Gtk::CheckButton (M("EXPORT_BYPASS_SHARPENEDGE")));
|
||||
bypass_sharpenMicro = Gtk::manage ( new Gtk::CheckButton (M("EXPORT_BYPASS_SHARPENMICRO")));
|
||||
@@ -96,6 +98,7 @@ ExportPanel::ExportPanel () : listener (nullptr)
|
||||
// ----------------------------------------------------------------
|
||||
|
||||
// start global packing
|
||||
pack_start(*use_fast_pipeline , Gtk::PACK_SHRINK, 4);
|
||||
pack_start(*bypass_ALL , Gtk::PACK_SHRINK, 4);
|
||||
pack_start(*Gtk::manage(new Gtk::HSeparator ()), Gtk::PACK_SHRINK, 4);
|
||||
pack_start(*bypass_sharpening , Gtk::PACK_SHRINK, 4);
|
||||
@@ -224,40 +227,48 @@ void ExportPanel::FastExportPressed ()
|
||||
|
||||
void ExportPanel::SaveSettingsAsDefault()
|
||||
{
|
||||
bool changed = false;
|
||||
#define FE_OPT_STORE_(n, v) \
|
||||
do { \
|
||||
if (n != v) { \
|
||||
n = v; \
|
||||
changed = true; \
|
||||
} \
|
||||
} while (false)
|
||||
// Save fast export settings to options
|
||||
options.fastexport_bypass_sharpening = bypass_sharpening->get_active ();
|
||||
options.fastexport_bypass_sharpenEdge = bypass_sharpenEdge->get_active ();
|
||||
options.fastexport_bypass_sharpenMicro = bypass_sharpenMicro->get_active ();
|
||||
FE_OPT_STORE_(options.fastexport_bypass_sharpening, bypass_sharpening->get_active ());
|
||||
FE_OPT_STORE_(options.fastexport_bypass_sharpenEdge, bypass_sharpenEdge->get_active ());
|
||||
FE_OPT_STORE_(options.fastexport_bypass_sharpenMicro, bypass_sharpenMicro->get_active ());
|
||||
//options.fastexport_bypass_lumaDenoise = bypass_lumaDenoise->get_active ();
|
||||
//options.fastexport_bypass_colorDenoise = bypass_colorDenoise->get_active ();
|
||||
options.fastexport_bypass_defringe = bypass_defringe->get_active ();
|
||||
options.fastexport_bypass_dirpyrDenoise = bypass_dirpyrDenoise->get_active ();
|
||||
options.fastexport_bypass_sh_hq = bypass_sh_hq->get_active ();
|
||||
options.fastexport_bypass_dirpyrequalizer = bypass_dirpyrequalizer->get_active ();
|
||||
options.fastexport_bypass_wavelet = bypass_wavelet->get_active ();
|
||||
FE_OPT_STORE_(options.fastexport_bypass_defringe, bypass_defringe->get_active ());
|
||||
FE_OPT_STORE_(options.fastexport_bypass_dirpyrDenoise, bypass_dirpyrDenoise->get_active ());
|
||||
FE_OPT_STORE_(options.fastexport_bypass_sh_hq, bypass_sh_hq->get_active ());
|
||||
FE_OPT_STORE_(options.fastexport_bypass_dirpyrequalizer, bypass_dirpyrequalizer->get_active ());
|
||||
FE_OPT_STORE_(options.fastexport_bypass_wavelet, bypass_wavelet->get_active ());
|
||||
//options.fastexport_bypass_raw_bayer_all_enhance = bypass_raw_all_enhance->get_active ();
|
||||
options.fastexport_bypass_raw_bayer_dcb_iterations = bypass_raw_bayer_dcb_iterations->get_active ();
|
||||
options.fastexport_bypass_raw_bayer_dcb_enhance = bypass_raw_bayer_dcb_enhance->get_active ();
|
||||
options.fastexport_bypass_raw_bayer_lmmse_iterations = bypass_raw_bayer_lmmse_iterations->get_active();
|
||||
options.fastexport_bypass_raw_bayer_linenoise = bypass_raw_bayer_linenoise->get_active ();
|
||||
options.fastexport_bypass_raw_bayer_greenthresh = bypass_raw_bayer_greenthresh->get_active ();
|
||||
options.fastexport_bypass_raw_ccSteps = bypass_raw_ccSteps->get_active ();
|
||||
options.fastexport_bypass_raw_ca = bypass_raw_ca->get_active ();
|
||||
options.fastexport_bypass_raw_df = bypass_raw_df->get_active ();
|
||||
options.fastexport_bypass_raw_ff = bypass_raw_ff->get_active ();
|
||||
FE_OPT_STORE_(options.fastexport_bypass_raw_bayer_dcb_iterations, bypass_raw_bayer_dcb_iterations->get_active ());
|
||||
FE_OPT_STORE_(options.fastexport_bypass_raw_bayer_dcb_enhance, bypass_raw_bayer_dcb_enhance->get_active ());
|
||||
FE_OPT_STORE_(options.fastexport_bypass_raw_bayer_lmmse_iterations, bypass_raw_bayer_lmmse_iterations->get_active());
|
||||
FE_OPT_STORE_(options.fastexport_bypass_raw_bayer_linenoise, bypass_raw_bayer_linenoise->get_active ());
|
||||
FE_OPT_STORE_(options.fastexport_bypass_raw_bayer_greenthresh, bypass_raw_bayer_greenthresh->get_active ());
|
||||
FE_OPT_STORE_(options.fastexport_bypass_raw_ccSteps, bypass_raw_ccSteps->get_active ());
|
||||
FE_OPT_STORE_(options.fastexport_bypass_raw_ca, bypass_raw_ca->get_active ());
|
||||
FE_OPT_STORE_(options.fastexport_bypass_raw_df, bypass_raw_df->get_active ());
|
||||
FE_OPT_STORE_(options.fastexport_bypass_raw_ff, bypass_raw_ff->get_active ());
|
||||
|
||||
//saving Bayer demosaic_method
|
||||
int currentRow = raw_bayer_method->get_active_row_number();
|
||||
|
||||
if( currentRow >= 0 && currentRow < procparams::RAWParams::BayerSensor::numMethods) {
|
||||
options.fastexport_raw_bayer_method = procparams::RAWParams::BayerSensor::methodstring[currentRow];
|
||||
FE_OPT_STORE_(options.fastexport_raw_bayer_method, procparams::RAWParams::BayerSensor::methodstring[currentRow]);
|
||||
}
|
||||
|
||||
//saving X-Trans demosaic_method
|
||||
currentRow = raw_xtrans_method->get_active_row_number();
|
||||
|
||||
if( currentRow >= 0 && currentRow < procparams::RAWParams::XTransSensor::numMethods) {
|
||||
options.fastexport_raw_xtrans_method = procparams::RAWParams::XTransSensor::methodstring[currentRow];
|
||||
FE_OPT_STORE_(options.fastexport_raw_xtrans_method, procparams::RAWParams::XTransSensor::methodstring[currentRow]);
|
||||
}
|
||||
|
||||
// options.fastexport_icm_input = icm_input ;
|
||||
@@ -269,9 +280,16 @@ void ExportPanel::SaveSettingsAsDefault()
|
||||
// options.fastexport_resize_appliesTo = resize_appliesTo;
|
||||
// options.fastexport_resize_dataspec = resize_dataspec ;
|
||||
|
||||
options.fastexport_resize_method = "Lanczos";
|
||||
options.fastexport_resize_width = MaxWidth->get_value_as_int ();
|
||||
options.fastexport_resize_height = MaxHeight->get_value_as_int ();
|
||||
FE_OPT_STORE_(options.fastexport_resize_method, "Lanczos");
|
||||
FE_OPT_STORE_(options.fastexport_resize_width, MaxWidth->get_value_as_int ());
|
||||
FE_OPT_STORE_(options.fastexport_resize_height, MaxHeight->get_value_as_int ());
|
||||
|
||||
FE_OPT_STORE_(options.fastexport_use_fast_pipeline, use_fast_pipeline->get_active());
|
||||
#undef FE_OPT_STORE_
|
||||
|
||||
if (changed) {
|
||||
Options::save();
|
||||
}
|
||||
}
|
||||
|
||||
void ExportPanel::LoadDefaultSettings()
|
||||
@@ -327,6 +345,8 @@ void ExportPanel::LoadDefaultSettings()
|
||||
|
||||
MaxWidth->set_value(options.fastexport_resize_width);
|
||||
MaxHeight->set_value(options.fastexport_resize_height);
|
||||
|
||||
use_fast_pipeline->set_active(options.fastexport_use_fast_pipeline);
|
||||
}
|
||||
|
||||
void ExportPanel::LoadSettings()
|
||||
|
Reference in New Issue
Block a user