1
0
Fork 0

Make flightgear compile with todays osg trunk.

Modified Files:
	src/Scenery/SceneryPager.cxx src/Scenery/SceneryPager.hxx
	src/Scenery/tilemgr.cxx
This commit is contained in:
frohlich 2009-05-16 08:16:20 +00:00 committed by Tim Moore
parent 1e776b903f
commit 047af7dec4
3 changed files with 18 additions and 49 deletions

View file

@ -41,40 +41,34 @@ SceneryPager::~SceneryPager()
}
void SceneryPager::requestNodeFile(const std::string& fileName, Group* group,
float priority,
const FrameStamp* framestamp
#ifdef FGOSGPAGER25
, ref_ptr<Referenced>& databaseRequest
float priority, const FrameStamp* framestamp,
ref_ptr<Referenced>& 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<simgear::SGPagedLOD*>(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<Referenced>& 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<OpenThreads::Mutex>
lock(_fileRequestQueue->_childrenToDeleteListMutex);
ObjectList& deleteList = _fileRequestQueue->_childrenToDeleteList;
#else
OpenThreads::ScopedLock<OpenThreads::Mutex>
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();
}

View file

@ -19,6 +19,7 @@
// $Id$
#ifndef FLIGHTGEAR_SCENERYPAGERHXX
#define FLIGHTGEAR_SCENERYPAGERHXX 1
#include <string>
#include <vector>
@ -28,11 +29,6 @@
#include <simgear/structure/OSGVersion.hxx>
// 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<osg::Referenced>&
databaseRequest
const osg::FrameStamp* framestamp,
osg::ref_ptr<osg::Referenced>& 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<osg::Referenced>& 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<Referenced>& 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

View file

@ -282,9 +282,7 @@ public:
entry->getNode(),
entry->get_inner_ring() ? 10.0f : 1.0f,
_framestamp,
#ifdef FGOSGPAGER25
entry->getDatabaseRequest(),
#endif
_options);
}
}