#include <osgDB/ReadFile>
#include <simgear/debug/logstream.hxx>
+#include <simgear/structure/OSGVersion.hxx>
#include "modellib.hxx"
#include "SGReaderWriterXMLOptions.hxx"
void SGPagedLOD::forceLoad(osgDB::DatabasePager *dbp)
{
- //SG_LOG(SG_GENERAL, SG_ALERT, "SGPagedLOD::forceLoad(" << getFileName(getNumChildren()) << ")");
- setTimeStamp(getNumChildren(),0);
+ //SG_LOG(SG_GENERAL, SG_ALERT, "SGPagedLOD::forceLoad(" <<
+ //getFileName(getNumChildren()) << ")");
+ unsigned childNum = getNumChildren();
+ setTimeStamp(childNum, 0);
double priority=1.0;
- dbp->requestNodeFile(getFileName(getNumChildren()),this,priority,0, _readerWriterOptions.get());
+ dbp->requestNodeFile(getFileName(childNum),this,priority,0,
+#if SG_OSG_VERSION >= 25001
+ getDatabaseRequest(childNum),
+#endif
+ _readerWriterOptions.get());
}
// pointer to ssg range selector for this tile
osg::ref_ptr<osg::LOD> _node;
+ // Reference to DatabaseRequest object set and used by the
+ // osgDB::DatabasePager.
+ osg::ref_ptr<osg::Referenced> _databaseRequest;
static bool obj_load( const std::string& path,
osg::Group* geometry,
inline bool get_inner_ring() const { return is_inner_ring; }
inline void set_inner_ring( bool val ) { is_inner_ring = val; }
+
+ // Get the ref_ptr to the DatabaseRequest object, in order to pass
+ // this to the pager.
+ osg::ref_ptr<osg::Referenced>& getDatabaseRequest()
+ {
+ return _databaseRequest;
+ }
};
class ModelLoadHelper {
exception.hxx \
event_mgr.hxx \
subsystem_mgr.hxx \
+ OSGVersion.hxx \
SGAtomic.hxx \
SGBinding.hxx \
SGExpression.hxx \
--- /dev/null
+// OSGVersion.hxx - transform OpenSceneGraph version to something useful
+//
+// Copyright (C) 2008 Tim Moore timoore@redhat.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Library General Public
+// License as published by the Free Software Foundation; either
+// version 2 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Library General Public License for more details.
+//
+// You should have received a copy of the GNU Library General Public
+// License along with this library; if not, write to the
+// Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+// Boston, MA 02111-1307, USA.
+
+#ifndef SIMGEAR_OSGVERSION_HXX
+#define SIMGEAR_OSGVERSION_HXX 1
+#include <osg/Version>
+#define SG_OSG_VERSION \
+ ((OPENSCENEGRAPH_MAJOR_VERSION*10000)\
+ + (OPENSCENEGRAPH_MINOR_VERSION*1000) + OPENSCENEGRAPH_PATCH_VERSION)
+#endif