]> 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 d45c1bb177c183c2fa1134f799aebb59896ff159..69f8dc21edcf4a8dc6c21fd6ea136bf587fd3ed5 100644 (file)
 #ifndef SGPAGEDLOD_HXX
 #define SGPAGEDLOD_HXX 1
 
+#include <simgear/structure/OSGVersion.hxx>
+
+#define SG_PAGEDLOD_HAS_OPTIONS \
+    (SG_OSG_VERSION >= 29005)
+
 #include <osg/PagedLOD>
+#include <osgDB/Registry>
 #include <osgDB/ReaderWriter>
 #include <simgear/props/props.hxx>
 
@@ -36,27 +42,34 @@ public:
 
     SGPagedLOD(const SGPagedLOD&,const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY);
 
-    META_Node(osg, PagedLOD);
+    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 *o) {
-        _readerWriterOptions=o;
-        _readerWriterOptions->setObjectCacheHint(osgDB::ReaderWriter::Options::CACHE_NONE);
-    }
+    void setReaderWriterOptions(osgDB::ReaderWriter::Options *options);
 
-    osgDB::ReaderWriter::Options * getReaderWriterOptions() {
+    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;
-    SGPropertyNode_ptr _props;
+#endif
+private:
+    static bool _cache;
 };
 }
 #endif