From 047af7dec4c9fa508e700d9fe11b416bfe8028cd Mon Sep 17 00:00:00 2001 From: frohlich Date: Sat, 16 May 2009 08:16:20 +0000 Subject: [PATCH] Make flightgear compile with todays osg trunk. Modified Files: src/Scenery/SceneryPager.cxx src/Scenery/SceneryPager.hxx src/Scenery/tilemgr.cxx --- src/Scenery/SceneryPager.cxx | 36 ++++++++++-------------------------- src/Scenery/SceneryPager.hxx | 29 ++++++++--------------------- src/Scenery/tilemgr.cxx | 2 -- 3 files changed, 18 insertions(+), 49 deletions(-) diff --git a/src/Scenery/SceneryPager.cxx b/src/Scenery/SceneryPager.cxx index 159cc51f1..e63969e62 100644 --- a/src/Scenery/SceneryPager.cxx +++ b/src/Scenery/SceneryPager.cxx @@ -41,40 +41,34 @@ SceneryPager::~SceneryPager() } void SceneryPager::requestNodeFile(const std::string& fileName, Group* group, - float priority, - const FrameStamp* framestamp -#ifdef FGOSGPAGER25 - , ref_ptr& databaseRequest + float priority, const FrameStamp* framestamp, + ref_ptr& databaseRequest, +#if SG_OSG_MIN_VERSION_REQUIRED(2,9,5) + const osg::Referenced* options +#else + osgDB::ReaderWriter::Options* options #endif - ) + ) { simgear::SGPagedLOD *sgplod = dynamic_cast(group); if(sgplod) DatabasePager::requestNodeFile(fileName, group, priority, framestamp, -#ifdef FGOSGPAGER25 databaseRequest, -#endif sgplod->getReaderWriterOptions()); else - DatabasePager::requestNodeFile(fileName, group, priority, framestamp -#ifdef FGOSGPAGER25 - , databaseRequest -#endif - ); + DatabasePager::requestNodeFile(fileName, group, priority, framestamp, + databaseRequest, + options); } void SceneryPager::queueRequest(const std::string& fileName, Group* group, float priority, FrameStamp* frameStamp, -#ifdef FGOSGPAGER25 ref_ptr& databaseRequest, -#endif osgDB::ReaderWriter::Options* options) { _pagerRequests.push_back(PagerRequest(fileName, group, priority, frameStamp, -#ifdef FGOSGPAGER25 databaseRequest, -#endif options)); } @@ -90,15 +84,9 @@ void SceneryPager::signalEndFrame() bool arePagerRequests = false; if (!_deleteRequests.empty()) { areDeleteRequests = true; -#ifdef FGOSGPAGER25 OpenThreads::ScopedLock lock(_fileRequestQueue->_childrenToDeleteListMutex); ObjectList& deleteList = _fileRequestQueue->_childrenToDeleteList; -#else - OpenThreads::ScopedLock - lock(_childrenToDeleteListMutex); - ObjectList& deleteList = _childrenToDeleteList; -#endif deleteList.insert(deleteList.end(), _deleteRequests.begin(), _deleteRequests.end()); @@ -111,11 +99,7 @@ void SceneryPager::signalEndFrame() _pagerRequests.clear(); } if (areDeleteRequests && !arePagerRequests) { -#ifdef FGOSGPAGER25 _fileRequestQueue->updateBlock(); -#else - updateDatabasePagerThreadBlock(); -#endif } DatabasePager::signalEndFrame(); } diff --git a/src/Scenery/SceneryPager.hxx b/src/Scenery/SceneryPager.hxx index d7237af48..ba018993c 100644 --- a/src/Scenery/SceneryPager.hxx +++ b/src/Scenery/SceneryPager.hxx @@ -19,6 +19,7 @@ // $Id$ #ifndef FLIGHTGEAR_SCENERYPAGERHXX +#define FLIGHTGEAR_SCENERYPAGERHXX 1 #include #include @@ -28,11 +29,6 @@ #include -// Pager request change in OpenSceneGraph 2.5.1 -#if SG_OSG_VERSION >= 25001 -#define FGOSGPAGER25 -#endif - namespace flightgear { class SceneryPager : public osgDB::DatabasePager @@ -45,17 +41,17 @@ public: // reimplement to add readerWriterOptions from SGPagedLOD virtual void requestNodeFile(const std::string& fileName, osg::Group* group, float priority, - const osg::FrameStamp* framestamp -#ifdef FGOSGPAGER25 - , osg::ref_ptr& - databaseRequest + const osg::FrameStamp* framestamp, + osg::ref_ptr& databaseRequest, +#if SG_OSG_MIN_VERSION_REQUIRED(2,9,5) + const osg::Referenced* options +#else + osgDB::ReaderWriter::Options* options #endif - ); + ); void queueRequest(const std::string& fileName, osg::Group* node, float priority, osg::FrameStamp* frameStamp, -#ifdef FGOSGPAGER25 osg::ref_ptr& databaseRequest, -#endif osgDB::ReaderWriter::Options* options); // This is passed a ref_ptr so that it can "take ownership" of the // node to delete and decrement its refcount while holding the @@ -74,17 +70,11 @@ protected: PagerRequest(const std::string& fileName, osg::Group* group, float priority, osg::FrameStamp* frameStamp, -#ifdef FGOSGPAGER25 osg::ref_ptr& databaseRequest, -#endif osgDB::ReaderWriter::Options* options): _fileName(fileName), _group(group), _priority(priority), _frameStamp(frameStamp), _options(options), -#ifdef FGOSGPAGER25 _databaseRequest(&databaseRequest) -#else - _databaseRequest(0) -#endif {} void doRequest(SceneryPager* pager) @@ -92,9 +82,7 @@ protected: if (_group->getNumChildren() == 0) pager->requestNodeFile(_fileName, _group.get(), _priority, _frameStamp.get(), -#ifdef FGOSGPAGER25 *_databaseRequest, -#endif _options.get()); } @@ -112,5 +100,4 @@ protected: virtual ~SceneryPager(); }; } -#define FLIGHTGEAR_SCENERYPAGERHXX 1 #endif diff --git a/src/Scenery/tilemgr.cxx b/src/Scenery/tilemgr.cxx index 315558e02..03434daa2 100644 --- a/src/Scenery/tilemgr.cxx +++ b/src/Scenery/tilemgr.cxx @@ -282,9 +282,7 @@ public: entry->getNode(), entry->get_inner_ring() ? 10.0f : 1.0f, _framestamp, -#ifdef FGOSGPAGER25 entry->getDatabaseRequest(), -#endif _options); } }