OSG DatabasePager interface change in 2.5.1

Move OSG version macro from FlightGear to simgear
This commit is contained in:
timoore
2008-06-02 20:22:16 +00:00
parent 0826b7c3ca
commit 4fe43c3e50
4 changed files with 47 additions and 3 deletions

View File

@@ -17,6 +17,7 @@
#include <osgDB/ReadFile>
#include <simgear/debug/logstream.hxx>
#include <simgear/structure/OSGVersion.hxx>
#include "modellib.hxx"
#include "SGReaderWriterXMLOptions.hxx"
@@ -68,9 +69,15 @@ bool SGPagedLOD::addChild(osg::Node *child)
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());
}

View File

@@ -73,6 +73,9 @@ private:
// 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,
@@ -169,6 +172,13 @@ public:
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 {

View File

@@ -8,6 +8,7 @@ include_HEADERS = \
exception.hxx \
event_mgr.hxx \
subsystem_mgr.hxx \
OSGVersion.hxx \
SGAtomic.hxx \
SGBinding.hxx \
SGExpression.hxx \

View File

@@ -0,0 +1,26 @@
// 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