From 7d1372cae02f9b5af2bcf2e9cdc53b8bab05b6bb Mon Sep 17 00:00:00 2001 From: Mathias Froehlich Date: Sat, 17 Dec 2011 08:28:33 +0100 Subject: [PATCH] fgviewer: Improove reader/writer option command line handling. --- utils/fgviewer/fgviewer.cxx | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/utils/fgviewer/fgviewer.cxx b/utils/fgviewer/fgviewer.cxx index e9ee59b0f..a120d4d72 100644 --- a/utils/fgviewer/fgviewer.cxx +++ b/utils/fgviewer/fgviewer.cxx @@ -171,13 +171,18 @@ main(int argc, char** argv) } simgear::SGModelLib::init(fg_root, props); - // The file path list must be set in the registry. - osgDB::Registry::instance()->getDataFilePathList() = filePathList; - - simgear::SGReaderWriterOptions* options = new simgear::SGReaderWriterOptions; + // Set up the reader/writer options + osg::ref_ptr options; + if (osgDB::Options* ropt = osgDB::Registry::instance()->getOptions()) + options = new simgear::SGReaderWriterOptions(*ropt); + else + options = new simgear::SGReaderWriterOptions; options->getDatabasePathList() = filePathList; options->setMaterialLib(ml); options->setPropertyNode(props); + options->setPluginStringData("SimGear::FG_ROOT", fg_root); + options->setPluginStringData("SimGear::FG_SCENERY", fg_scenery); + osgDB::Registry::instance()->setOptions(options.get()); // Here, all arguments are processed arguments.reportRemainingOptionsAsUnrecognized(); @@ -185,7 +190,7 @@ main(int argc, char** argv) // read the scene from the list of file specified command line args. osg::ref_ptr loadedModel; - loadedModel = osgDB::readNodeFiles(arguments, options); + loadedModel = osgDB::readNodeFiles(arguments, options.get()); // if no model has been successfully loaded report failure. if (!loadedModel.valid()) {