1
0
Fork 0

fgelev: short circuit reading image files.

This commit is contained in:
Mathias Froehlich 2012-08-25 12:04:50 +02:00
parent 7a0db802d2
commit 05af83a03e

View 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)
@ -141,6 +153,7 @@ 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");