mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-06-04 19:12:42 +00:00
Optimization of the configuration layer:
The values of StaticPrintConfig derived objects were searched by a name walking through a huge chained if. Now they are being mapped with a std::map. Also initialization of StaticPrintConfig classes from their ConfigOptionDef defaults is done by maintaining a single global definition of each StaticPrintConfig derived class, and a new instance is initialized from this static copy. Also the ConfigOption instances are casted using static_cast wherever possible, and their types are verified by a virtual type() method. This approach avoids insiginificant performance penalty of a dynamic_cast. Also the compare and clone methods were added to ConfigOption, and the cloning & compare work on binary values, not by serialization.
This commit is contained in:
@@ -64,7 +64,7 @@ void PlaceholderParser::update_timestamp()
|
||||
void PlaceholderParser::apply_config(const DynamicPrintConfig &config)
|
||||
{
|
||||
for (const t_config_option_key &opt_key : config.keys()) {
|
||||
const ConfigOptionDef* def = config.def->get(opt_key);
|
||||
const ConfigOptionDef* def = config.def()->get(opt_key);
|
||||
if (def->multiline || opt_key == "post_process")
|
||||
continue;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user