From ec16f43f8697ef3b21a90da966f1d32330ea9d84 Mon Sep 17 00:00:00 2001 From: Mathias Froehlich Date: Tue, 8 Nov 2011 21:25:10 +0100 Subject: [PATCH] Use deferred models for scenery tile models. Instead of PagedLOD nodes use ProxyNodes for models in scenery tiles. This should lower the amount of PagedLOD nodes in the active scene. Since the models are part of the to level tiles they are then paged out once the tile is paged out. --- src/Scenery/SceneryPager.cxx | 20 -------------------- src/Scenery/SceneryPager.hxx | 10 ---------- src/Scenery/tilemgr.cxx | 5 +++-- 3 files changed, 3 insertions(+), 32 deletions(-) diff --git a/src/Scenery/SceneryPager.cxx b/src/Scenery/SceneryPager.cxx index 9328973ef..7d76ba727 100644 --- a/src/Scenery/SceneryPager.cxx +++ b/src/Scenery/SceneryPager.cxx @@ -20,7 +20,6 @@ # include #endif -#include #include #include "SceneryPager.hxx" #include @@ -44,25 +43,6 @@ SceneryPager::~SceneryPager() { } -#if SG_PAGEDLOD_HAS_OPTIONS -#else -void SceneryPager::requestNodeFile(const std::string& fileName, Group* group, - float priority, const FrameStamp* framestamp, - ref_ptr& databaseRequest, - osgDB::ReaderWriter::Options* options) -{ - simgear::SGPagedLOD *sgplod = dynamic_cast(group); - if(sgplod) - DatabasePager::requestNodeFile(fileName, group, priority, framestamp, - databaseRequest, - sgplod->getReaderWriterOptions()); - else - DatabasePager::requestNodeFile(fileName, group, priority, framestamp, - databaseRequest, - options); -} -#endif - void SceneryPager::queueRequest(const std::string& fileName, Group* group, float priority, FrameStamp* frameStamp, ref_ptr& databaseRequest, diff --git a/src/Scenery/SceneryPager.hxx b/src/Scenery/SceneryPager.hxx index 04e6ef5c4..d8f519a1b 100644 --- a/src/Scenery/SceneryPager.hxx +++ b/src/Scenery/SceneryPager.hxx @@ -28,7 +28,6 @@ #include #include -#include namespace flightgear { @@ -39,15 +38,6 @@ public: SceneryPager(const SceneryPager& rhs); // Unhide DatabasePager::requestNodeFile using osgDB::DatabasePager::requestNodeFile; - // reimplement to add readerWriterOptions from SGPagedLOD -#if SG_PAGEDLOD_HAS_OPTIONS -#else - virtual void requestNodeFile(const std::string& fileName, osg::Group* group, - float priority, - const osg::FrameStamp* framestamp, - osg::ref_ptr& databaseRequest, - osgDB::ReaderWriter::Options* options); -#endif void queueRequest(const std::string& fileName, osg::Group* node, float priority, osg::FrameStamp* frameStamp, osg::ref_ptr& databaseRequest, diff --git a/src/Scenery/tilemgr.cxx b/src/Scenery/tilemgr.cxx index 5d7821307..e511213f8 100644 --- a/src/Scenery/tilemgr.cxx +++ b/src/Scenery/tilemgr.cxx @@ -29,6 +29,7 @@ #include #include +#include #include #include @@ -275,8 +276,8 @@ FGTileMgr::loadTileModel(const string& modelPath, bool cacheModel) new FGNasalModelData); else result= - SGModelLib::loadPagedModel(fullPath.str(), globals->get_props(), - new FGNasalModelData); + SGModelLib::loadDeferedModel(fullPath.str(), globals->get_props(), + new FGNasalModelData); } catch (const sg_io_exception& exc) { string m(exc.getMessage()); m += " "; -- 2.39.5