]> git.mxchange.org Git - flightgear.git/blobdiff - utils/fgelev/fgelev.cxx
Revive master sound enable switch.
[flightgear.git] / utils / fgelev / fgelev.cxx
index a868d605f3bccf2c446738ec4fc57cc4de9fcc3e..90d7eb4f57d979c4f40dcd2df0eb9b59d02a7677 100644 (file)
@@ -25,6 +25,7 @@
 #include <iomanip>
 
 #include <osg/ArgumentParser>
+#include <osg/Image>
 
 #include <simgear/props/props.hxx>
 #include <simgear/props/props_io.hxx>
@@ -38,6 +39,7 @@
 #include <simgear/scene/model/BVHPageNodeOSG.hxx>
 #include <simgear/scene/model/ModelRegistry.hxx>
 #include <simgear/scene/util/SGReaderWriterOptions.hxx>
+#include <simgear/scene/util/OptionsReadFileCallback.hxx>
 #include <simgear/scene/tgdb/userdata.hxx>
 
 namespace sg = simgear;
@@ -60,6 +62,16 @@ private:
     sg::BVHPager& _pager;
 };
 
+// Short circuit reading image files.
+class ReadFileCallback : public sg::OptionsReadFileCallback {
+public:
+    virtual ~ReadFileCallback()
+    { }
+
+    virtual osgDB::ReaderWriter::ReadResult readImage(const std::string& name, const osgDB::Options*)
+    { return new osg::Image; }
+};
+
 static bool
 intersect(sg::BVHNode& node, sg::BVHPager& pager,
           const SGVec3d& start, SGVec3d& end, double offset)
@@ -112,10 +124,6 @@ main(int argc, char** argv)
                << "Probably FG_ROOT is not properly set.");
     }
 
-    /// dont need that here
-    props->getNode("sim/rendering/random-objects", true)->setBoolValue(false);
-    props->getNode("sim/rendering/random-vegetation", true)->setBoolValue(false);
-
     /// now set up the simgears required model stuff
 
     simgear::ResourceManager::instance()->addBasePath(fg_root, simgear::ResourceManager::PRIORITY_DEFAULT);
@@ -145,9 +153,14 @@ main(int argc, char** argv)
                                              options->getDatabasePathList());
     options->setMaterialLib(ml);
     options->setPropertyNode(props);
+    options->setReadFileCallback(new ReadFileCallback);
     options->setPluginStringData("SimGear::FG_ROOT", fg_root);
     // we do not need the builtin boundingvolumes
     options->setPluginStringData("SimGear::BOUNDINGVOLUMES", "OFF");
+    // And we only want terrain, no objects on top.
+    options->setPluginStringData("SimGear::FG_ONLY_TERRAIN", "ON");
+    props->getNode("sim/rendering/random-objects", true)->setBoolValue(false);
+    props->getNode("sim/rendering/random-vegetation", true)->setBoolValue(false);
 
     // Here, all arguments are processed
     arguments.reportRemainingOptionsAsUnrecognized();