From 5c0fb93de8aebf9d62d187b84a502435f38fdc7b Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Wed, 16 Jun 2010 08:09:13 +0000 Subject: [PATCH] Re-enabled call to ShareStateManager. --- src/osgDB/DatabasePager.cpp | 53 +++++++++++++++++++++++++++++++++---- 1 file changed, 48 insertions(+), 5 deletions(-) diff --git a/src/osgDB/DatabasePager.cpp b/src/osgDB/DatabasePager.cpp index e15680564..adcf9edaf 100644 --- a/src/osgDB/DatabasePager.cpp +++ b/src/osgDB/DatabasePager.cpp @@ -681,7 +681,8 @@ DatabasePager::DatabaseThread::DatabaseThread(DatabasePager* pager, Mode mode, c _active(false), _pager(pager), _mode(mode), - _name(name) + _name(name), + _tickSinceStartOfIteration(0) { } @@ -690,9 +691,9 @@ DatabasePager::DatabaseThread::DatabaseThread(const DatabaseThread& dt, Database _active(false), _pager(pager), _mode(dt._mode), - _name(dt._name) + _name(dt._name), + _tickSinceStartOfIteration(0) { - } DatabasePager::DatabaseThread::~DatabaseThread() @@ -741,6 +742,11 @@ int DatabasePager::DatabaseThread::cancel() } +double DatabasePager::DatabaseThread::getTimeSinceStartOfIteration() const +{ + return osg::Timer::instance()->delta_s(_tickSinceStartOfIteration, osg::Timer::instance()->tick()); +} + void DatabasePager::DatabaseThread::run() { OSG_INFO<<_name<<": DatabasePager::DatabaseThread::run"<tick(); + read_queue->block(); + _tickSinceStartOfIteration = osg::Timer::instance()->tick(); + _active = true; OSG_INFO<<_name<<": _pager->size()= "<size()<<" to delete = "<_childrenToDeleteList.size()<get(); + if (thread->getActive()) + { + ++numThreadsActive; + } + } + + if (numThreadsActive>0) + { + OSG_NOTICE<<"DatabasePager::updateSceneGraph()"<get(); + + double t = thread->getTimeSinceStartOfIteration(); + if (thread->getActive()) + { + OSG_NOTICE<<" "<getName()<<" active for "<getName()<<" inactive for "<_frameNumberLastRequest<_groupForAddingLoadedSubgraph; -#if 0 if (osgDB::Registry::instance()->getSharedStateManager()) osgDB::Registry::instance()->getSharedStateManager()->share(databaseRequest->_loadedModel.get()); -#endif osg::PagedLOD* plod = dynamic_cast(group); if (plod)