|
Public Types |
| typedef OpenThreads::Thread::ThreadPriority | ThreadPriority |
typedef std::list< osg::ref_ptr<
osg::PagedLOD > > | PagedLODList |
typedef std::set< osg::ref_ptr<
osg::StateSet > > | StateSetList |
typedef std::vector< osg::ref_ptr<
osg::Drawable > > | DrawableList |
typedef std::pair< StateSetList,
DrawableList > | DataToCompile |
typedef std::map< unsigned
int, DataToCompile > | DataToCompileMap |
typedef std::set< unsigned
int > | ActiveGraphicsContexts |
| enum | DrawablePolicy { DO_NOT_MODIFY_DRAWABLE_SETTINGS,
USE_DISPLAY_LISTS,
USE_VERTEX_BUFFER_OBJECTS,
USE_VERTEX_ARRAYS
} |
Public Member Functions |
| | DatabasePager () |
| virtual void | requestNodeFile (const std::string &fileName, osg::Group *group, float priority, const osg::FrameStamp *framestamp) |
| | Add a request to load a node file to end the the database request list.
|
| virtual void | run () |
| | Run does the database paging.
|
| virtual int | cancel () |
| | Cancel the database pager thread.
|
| virtual void | clear () |
| | Clear all internally cached structures.
|
| void | setDatabasePagerThreadPause (bool pause) |
| | Set whether the database pager thread should be paused or not.
|
| bool | getDatabasePagerThreadPause () const |
| | Get whether the database pager thread should is paused or not.
|
| void | setAcceptNewDatabaseRequests (bool acceptNewRequests) |
| | Set whether new database request calls are accepted or ignored.
|
| bool | getAcceptNewDatabaseRequests () const |
| | Get whether new database request calls are accepted or ignored.
|
| void | setUseFrameBlock (bool useFrameBlock) |
| | Set the use of the frame block which, if enabled, blocks the DatabasePager from executing which the current frame is being drawn.
|
| bool | getUseFrameBlock () const |
| | Get the whether UseFrameBlock is on or off.
|
| osg::Block * | getFrameBlock () |
| void | setThreadPriorityDuringFrame (ThreadPriority duringFrame) |
| | Set the priority of the database pager thread during the frame (i.e.
|
| ThreadPriority | getThreadPriorityDuringFrame () const |
| | Get the priority of the database pager thread during the frame.
|
| void | setThreadPriorityOutwithFrame (ThreadPriority outwithFrame) |
| | Set the priority of the database pager thread when the frame is not being exectuted (i.e.
|
| ThreadPriority | getThreadPriorityOutwithFrame () const |
| | Get the priority of the database pager thread when the frame is not being exectuted.
|
| int | getNumFramesActive () const |
| | Get the number of frames that are currently active.
|
| virtual void | signalBeginFrame (const osg::FrameStamp *framestamp) |
| | Signal the database thread that the update, cull and draw has begun for a new frame.
|
| virtual void | signalEndFrame () |
| | Signal the database thread that the update, cull and draw dispatch has completed.
|
| virtual void | registerPagedLODs (osg::Node *subgraph) |
| | Find all PagedLOD nodes in a subgraph and register them with the DatabasePager so it can keep track of expired nodes.
|
| void | setDoPreCompile (bool flag) |
| | Set whether the database pager should pre compile OpenGL objects before allowing them to be merged into the scene graph.
|
| bool | getDoPreCompile () const |
| | Get whether the database pager should pre compile OpenGL objects before allowing them to be merged into the scene graph.
|
| void | setTargetFrameRate (double tfr) |
| | Set the target frame rate that the DatabasePager should assume.
|
| double | getTargetFrameRate () const |
| | Get the target frame rate that the DatabasePager should assume.
|
| void | setMinimumTimeAvailableForGLCompileAndDeletePerFrame (double ta) |
| | Set the minimum amount of time (in seconds) that should be made available for compiling and delete OpenGL objects per frame.
|
| double | getMinimumTimeAvailableForGLCompileAndDeletePerFrame () const |
| | Get the minimum amount of time that should be made available for compiling and delete OpenGL objects per frame.
|
| void | setMaximumNumOfObjectsToCompilePerFrame (unsigned int num) |
| | Set the maximum number of OpenGL objects that the page should attempt to compile per frame.
|
| unsigned int | getMaximumNumOfObjectsToCompilePerFrame () const |
| | Get the maximum number of OpenGL objects that the page should attempt to compile per frame.
|
| void | setExpiryDelay (double expiryDelay) |
| | Set the amount of time that a subgraph will be kept without being visited in the cull traversal before being removed.
|
| double | getExpiryDelay () const |
| | Get the amount of time that a subgraph will be kept without being visited in the cull traversal before being removed.
|
| void | setDeleteRemovedSubgraphsInDatabaseThread (bool flag) |
| | Set whether the removed subgraphs should be deleted in the database thread or not.
|
| bool | getDeleteRemovedSubgraphsInDatabaseThread () const |
| | Get whether the removed subgraphs should be deleted in the database thread or not.
|
| void | setDrawablePolicy (DrawablePolicy policy) |
| | Set how loaded drawables should be handled w.r.t their display list/vertex buffer object/vertex array settings.
|
| DrawablePolicy | getDrawablePolicy () const |
| | Get how loaded drawables should be handled w.r.t their display list/vertex buffer object/vertex array settings.
|
| void | setUnrefImageDataAfterApplyPolicy (bool changeAutoUnRef, bool valueAutoUnRef) |
| | Set whether newly loaded textures should have their UnrefImageDataAfterApply set to a specified value.
|
| void | getUnrefImageDataAfterApplyPolicy (bool &changeAutoUnRef, bool &valueAutoUnRef) const |
| | Get whether newly loaded textures should have their UnrefImageDataAfterApply set to a specified value.
|
| void | setMaxAnisotropyPolicy (bool changeAnisotropy, float valueAnisotropy) |
| | Set whether newly loaded textures should have their MaxAnisotopy set to a specified value.
|
| void | getMaxAnisotropyPolicy (bool &changeAnisotropy, float &valueAnisotropy) const |
| | Set whether newly loaded textures should have their MaxAnisotopy set to a specified value.
|
| bool | requiresUpdateSceneGraph () const |
| | Return true if there are pending updates to the scene graph that require a call to updateSceneGraph(double).
|
| virtual void | updateSceneGraph (double currentFrameTime) |
| | Merge the changes to the scene graph by calling calling removeExpiredSubgraphs then addLoadedDataToSceneGraph.
|
| void | setCompileGLObjectsForContextID (unsigned int contextID, bool on) |
| | Turn the compilation of rendering objects for specfied graphics context on (true) or off(false).
|
| bool | getCompileGLObjectsForContextID (unsigned int contextID) |
| | Get whether the compilation of rendering objects for specfied graphics context on (true) or off(false).
|
| bool | requiresCompileGLObjects () const |
| | Return true if there are pending compile operations that are required.
|
| virtual void | compileGLObjects (osg::State &state, double &availableTime) |
| | Compile the rendering objects (display lists,texture objects, VBO's) on loaded subgraph.
|
Protected Types |
typedef std::vector< osg::ref_ptr<
DatabaseRequest > > | DatabaseRequestList |
typedef std::vector< osg::ref_ptr<
osg::Object > > | ObjectList |
Protected Member Functions |
| virtual | ~DatabasePager () |
| void | updateDatabasePagerThreadBlock () |
| void | updateFrameBlock (int delta) |
| virtual void | removeExpiredSubgraphs (double currentFrameTime) |
| | Iterate through the active PagedLOD nodes children removing children which havn't been visited since specified expiryTime.
|
| void | addLoadedDataToSceneGraph (double currentFrameTime) |
| | Add the loaded data to the scene graph.
|
Protected Attributes |
| OpenThreads::Mutex | _run_mutex |
| bool | _startThreadCalled |
| osg::ref_ptr< osg::Block > | _databasePagerThreadBlock |
| bool | _done |
| bool | _acceptNewRequests |
| bool | _databasePagerThreadPaused |
| bool | _useFrameBlock |
| int | _numFramesActive |
| OpenThreads::Mutex | _numFramesActiveMutex |
| osg::ref_ptr< osg::Block > | _frameBlock |
| int | _frameNumber |
| ThreadPriority | _threadPriorityDuringFrame |
| ThreadPriority | _threadPriorityOutwithFrame |
| DatabaseRequestList | _fileRequestList |
| OpenThreads::Mutex | _fileRequestListMutex |
| DatabaseRequestList | _dataToCompileList |
| OpenThreads::Mutex | _dataToCompileListMutex |
| DrawablePolicy | _drawablePolicy |
| bool | _changeAutoUnRef |
| bool | _valueAutoUnRef |
| bool | _changeAnisotropy |
| float | _valueAnisotropy |
| bool | _deleteRemovedSubgraphsInDatabaseThread |
| ObjectList | _childrenToDeleteList |
| OpenThreads::Mutex | _childrenToDeleteListMutex |
| DatabaseRequestList | _dataToMergeList |
| OpenThreads::Mutex | _dataToMergeListMutex |
| PagedLODList | _activePagedLODList |
| PagedLODList | _inactivePagedLODList |
| double | _expiryDelay |
| ActiveGraphicsContexts | _activeGraphicsContexts |
| bool | _doPreCompile |
| double | _targetFrameRate |
| double | _minimumTimeAvailableForGLCompileAndDeletePerFrame |
| unsigned int | _maximumNumOfObjectsToCompilePerFrame |