#define SGPAGEDLOD_HXX 1
#include <simgear/structure/OSGVersion.hxx>
+
+#define SG_PAGEDLOD_HAS_OPTIONS \
+ (SG_OSG_VERSION >= 29005)
+
#include <osg/PagedLOD>
-#if SG_OSG_MIN_VERSION_REQUIRED(2,9,5)
-#include <osgDB/Options>
-#endif
+#include <osgDB/Registry>
#include <osgDB/ReaderWriter>
#include <simgear/props/props.hxx>
META_Node(simgear, SGPagedLOD);
// virtual void traverse(osg::NodeVisitor& nv);
- virtual void forceLoad(osgDB::DatabasePager* dbp);
+ virtual void forceLoad(osgDB::DatabasePager* dbp,
+ osg::FrameStamp* framestamp,
+ osg::NodePath& path);
// reimplemented to notify the loading through ModelData
bool addChild(osg::Node *child);
- void setReaderWriterOptions(osgDB::ReaderWriter::Options *options) {
- _readerWriterOptions = options;
- options->setObjectCacheHint(osgDB::ReaderWriter::Options::CACHE_NONE);
-#if SG_OSG_MIN_VERSION_REQUIRED(2,9,5)
- setDatabaseOptions(options);
-#endif
- }
+ void setReaderWriterOptions(osgDB::ReaderWriter::Options *options);
osgDB::ReaderWriter::Options* getReaderWriterOptions() {
+#if SG_PAGEDLOD_HAS_OPTIONS
+ return static_cast<osgDB::ReaderWriter::Options*>(getDatabaseOptions());
+#else
return _readerWriterOptions.get();
+#endif
}
+ static void setRenderingCache(bool cache) {_cache = cache;}
protected:
virtual ~SGPagedLOD();
+#if !SG_PAGEDLOD_HAS_OPTIONS
osg::ref_ptr<osgDB::ReaderWriter::Options> _readerWriterOptions;
+#endif
+private:
+ static bool _cache;
};
}
#endif