]> git.mxchange.org Git - simgear.git/blobdiff - simgear/scene/model/SGPagedLOD.hxx
Merge branch 'next' of git.gitorious.org:fg/simgear into next
[simgear.git] / simgear / scene / model / SGPagedLOD.hxx
index 7bf54266ce9b1f50452f7d18a28189f4159b7161..69f8dc21edcf4a8dc6c21fd6ea136bf587fd3ed5 100644 (file)
 #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>
 
@@ -43,26 +45,31 @@ public:
     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