Improvements to DatabasePager

This commit is contained in:
Robert Osfield
2003-10-10 19:25:14 +00:00
parent b9423da386
commit fad832425f
4 changed files with 53 additions and 12 deletions

View File

@@ -243,7 +243,7 @@ class SG_EXPORT NodeVisitor : public virtual Referenced
class DatabaseRequestHandler : public osg::Referenced
{
public:
virtual void requestNodeFile(const std::string& fileName,osg::Group* group) = 0;
virtual void requestNodeFile(const std::string& fileName,osg::Group* group, float priority, const FrameStamp* framestamp) = 0;
protected:
virtual ~DatabaseRequestHandler() {}

View File

@@ -38,7 +38,7 @@ class OSGDB_EXPORT DatabasePager : public osg::NodeVisitor::DatabaseRequestHandl
DatabasePager();
/** Add a request to load a node file to end the the database request list.*/
virtual void requestNodeFile(const std::string& fileName,osg::Group* group);
virtual void requestNodeFile(const std::string& fileName,osg::Group* group, float priority, const osg::FrameStamp* framestamp);
/** run does the database paging.*/
virtual void run();
@@ -113,17 +113,18 @@ class OSGDB_EXPORT DatabasePager : public osg::NodeVisitor::DatabaseRequestHandl
typedef std::set<unsigned int> ActiveGraphicsContexts;
protected :
virtual ~DatabasePager();
struct DatabaseRequest : public osg::Referenced
{
DatabaseRequest():
_numOfRequests(0)
{}
std::string _fileName;
double _timestampFirstRequest;
float _priorityFirstRequest;
double _timestampLastRequest;
float _priorityLastRequest;
unsigned int _numOfRequests;
osg::ref_ptr<osg::Group> _groupForAddingLoadedSubgraph;
osg::ref_ptr<osg::Node> _loadedModel;
@@ -133,6 +134,10 @@ class OSGDB_EXPORT DatabasePager : public osg::NodeVisitor::DatabaseRequestHandl
typedef std::vector< osg::ref_ptr<DatabaseRequest> > DatabaseRequestList;
protected :
virtual ~DatabasePager();
DatabaseRequestList _fileRequestList;
OpenThreads::Mutex _fileRequestListMutex;