OSG
3.4.0
|
#include <DatabasePager.h>
Classes | |
struct | DatabaseRequest |
class | DatabaseThread |
struct | PagedLODList |
struct | ReadQueue |
struct | RequestQueue |
Public Types | |
enum | DrawablePolicy { DO_NOT_MODIFY_DRAWABLE_SETTINGS, USE_DISPLAY_LISTS, USE_VERTEX_BUFFER_OBJECTS, USE_VERTEX_ARRAYS } |
typedef OpenThreads::Thread::ThreadPriority | ThreadPriority |
typedef std::set< osg::ref_ptr < osg::StateSet > > | StateSetList |
typedef std::vector < osg::ref_ptr< osg::Drawable > > | DrawableList |
typedef std::list < osg::ref_ptr< osg::Object > > | ObjectList |
Static Public Member Functions | |
static osg::ref_ptr < DatabasePager > & | prototype () |
static DatabasePager * | create () |
![]() | |
static OpenThreads::Mutex * | getGlobalReferencedMutex () |
static void | setThreadSafeReferenceCounting (bool enableThreadSafeReferenceCounting) |
static bool | getThreadSafeReferenceCounting () |
static void | setDeleteHandler (DeleteHandler *handler) |
static DeleteHandler * | getDeleteHandler () |
Protected Types | |
typedef std::vector < osg::ref_ptr< DatabaseThread > > | DatabaseThreadList |
Protected Member Functions | |
virtual | ~DatabasePager () |
void | compileCompleted (DatabaseRequest *databaseRequest) |
virtual void | removeExpiredSubgraphs (const osg::FrameStamp &frameStamp) |
void | addLoadedDataToSceneGraph (const osg::FrameStamp &frameStamp) |
![]() | |
virtual | ~DatabaseRequestHandler () |
![]() | |
virtual | ~Referenced () |
void | signalObserversAndDelete (bool signalDelete, bool doDelete) const |
void | deleteUsingDeleteHandler () const |
Friends | |
class | DatabaseThread |
struct | DatabaseRequest |
class | FindCompileableGLObjectsVisitor |
struct | DatabasePagerCompileCompletedCallback |
class | FindPagedLODsVisitor |
struct | SortFileRequestFunctor |
Database paging class which manages the loading of files in a background thread, and synchronizing of loaded models with the main scene graph.
Definition at line 49 of file DatabasePager.h.
|
protected |
Definition at line 388 of file DatabasePager.h.
typedef std::vector< osg::ref_ptr<osg::Drawable> > osgDB::DatabasePager::DrawableList |
Definition at line 272 of file DatabasePager.h.
typedef std::list< osg::ref_ptr<osg::Object> > osgDB::DatabasePager::ObjectList |
Definition at line 274 of file DatabasePager.h.
typedef std::set< osg::ref_ptr<osg::StateSet> > osgDB::DatabasePager::StateSetList |
Definition at line 271 of file DatabasePager.h.
Definition at line 53 of file DatabasePager.h.
Enumerator | |
---|---|
DO_NOT_MODIFY_DRAWABLE_SETTINGS | |
USE_DISPLAY_LISTS | |
USE_VERTEX_BUFFER_OBJECTS | |
USE_VERTEX_ARRAYS |
Definition at line 204 of file DatabasePager.h.
osgDB::DatabasePager::DatabasePager | ( | ) |
osgDB::DatabasePager::DatabasePager | ( | const DatabasePager & | rhs | ) |
|
protectedvirtual |
|
virtual |
|
protected |
Add the loaded data to the scene graph.
|
virtual |
Cancel the database pager thread(s).
|
inlinevirtual |
Definition at line 59 of file DatabasePager.h.
|
virtual |
Clear all internally cached structures.
|
inlinevirtual |
Create a shallow copy on the DatabasePager.
Definition at line 62 of file DatabasePager.h.
|
protected |
|
static |
create a DatabasePager by cloning DatabasePager::prototype().
|
inline |
Get whether new database request calls are accepted or ignored.
Definition at line 149 of file DatabasePager.h.
|
inline |
Get whether newly loaded textures should have a PixelBufferObject assigned to them..
Definition at line 223 of file DatabasePager.h.
|
inline |
Get the average time between the first request for a tile to be loaded and the time of its merge into the main scene graph.
Definition at line 266 of file DatabasePager.h.
|
inline |
Get whether the database pager thread should is paused or not.
Definition at line 143 of file DatabasePager.h.
|
inline |
Definition at line 133 of file DatabasePager.h.
|
inline |
Definition at line 135 of file DatabasePager.h.
|
inline |
Report how many items are in the _dataToCompileList queue
Definition at line 251 of file DatabasePager.h.
|
inline |
Report how many items are in the _dataToMergeList queue
Definition at line 254 of file DatabasePager.h.
|
inline |
Get whether the removed subgraphs should be deleted in the database thread or not.
Definition at line 202 of file DatabasePager.h.
|
inline |
Get whether the database pager should pre compile OpenGL objects before allowing them to be merged into the scene graph.
Definition at line 185 of file DatabasePager.h.
|
inline |
Get how loaded drawables should be handled w.r.t their display list/vertex buffer object/vertex array settings.
Definition at line 216 of file DatabasePager.h.
|
inline |
Report how many items are in the _fileRequestList queue
Definition at line 248 of file DatabasePager.h.
|
inline |
Get the incremental compile operation.
Definition at line 174 of file DatabasePager.h.
|
inline |
Definition at line 290 of file DatabasePager.h.
|
inline |
Definition at line 291 of file DatabasePager.h.
|
inline |
Set whether newly loaded textures should have their MaxAnisotopy set to a specified value.
Definition at line 237 of file DatabasePager.h.
|
inline |
Get the maximum time between the first request for a tile to be loaded and the time of its merge into the main scene graph.
Definition at line 263 of file DatabasePager.h.
|
inline |
Get the minimum time between the first request for a tile to be loaded and the time of its merge into the main scene graph.
Definition at line 260 of file DatabasePager.h.
|
inline |
Definition at line 137 of file DatabasePager.h.
|
inline |
Get the number of frames that are currently active.
Definition at line 152 of file DatabasePager.h.
bool osgDB::DatabasePager::getRequestsInProgress | ( | ) | const |
Report whether any requests are in the pager.
|
inline |
Get the target maximum number of PagedLOD to maintain in memory.
Definition at line 195 of file DatabasePager.h.
|
inline |
Get whether newly loaded textures should have their UnrefImageDataAfterApply set to a specified value.
Definition at line 230 of file DatabasePager.h.
|
virtual |
|
static |
get the prototype singleton used by DatabasePager::create().
|
virtual |
Find all PagedLOD nodes in a subgraph and register them with the DatabasePager so it can keep track of expired nodes. note, should be only be called from the update thread.
|
protectedvirtual |
Iterate through the active PagedLOD nodes children removing children which havn't been visited since specified expiryTime. note, should be only be called from the update thread.
|
virtual |
Add a request to load a node file to end the database request list.
Implements osg::NodeVisitor::DatabaseRequestHandler.
bool osgDB::DatabasePager::requiresUpdateSceneGraph | ( | ) | const |
Return true if there are pending updates to the scene graph that require a call to updateSceneGraph(double).
void osgDB::DatabasePager::resetStats | ( | ) |
Reset the Stats variables.
|
inline |
Set whether new database request calls are accepted or ignored.
Definition at line 146 of file DatabasePager.h.
|
inline |
Set whether newly loaded textures should have a PixelBufferObject assigned to them to aid download to the GPU.
Definition at line 220 of file DatabasePager.h.
void osgDB::DatabasePager::setDatabasePagerThreadPause | ( | bool | pause | ) |
Set whether the database pager thread should be paused or not.
|
inline |
Set whether the removed subgraphs should be deleted in the database thread or not.
Definition at line 199 of file DatabasePager.h.
|
inline |
Set whether the database pager should pre compile OpenGL objects before allowing them to be merged into the scene graph. Pre compilation helps reduce the chances of frame drops, but also slows the speed at which tiles are merged as they have to be compiled first.
Definition at line 181 of file DatabasePager.h.
|
inline |
Set how loaded drawables should be handled w.r.t their display list/vertex buffer object/vertex array settings.
Definition at line 213 of file DatabasePager.h.
void osgDB::DatabasePager::setIncrementalCompileOperation | ( | osgUtil::IncrementalCompileOperation * | ico | ) |
Set the incremental compile operation. Used to manage the OpenGL object compilation and merging of subgraphs in a way that avoids overloading the rendering of frame with too many new objects in one frame.
|
inline |
Definition at line 289 of file DatabasePager.h.
|
inline |
Set whether newly loaded textures should have their MaxAnisotopy set to a specified value.
Definition at line 234 of file DatabasePager.h.
int osgDB::DatabasePager::setSchedulePriority | ( | OpenThreads::Thread::ThreadPriority | priority | ) |
Set the priority of the database pager thread(s).
|
inline |
Set the target maximum number of PagedLOD to maintain in memory. Note, if more than the target number are required for rendering of a frame then these active PagedLOD are excempt from being expiried. But once the number of active drops back below the target the inactive PagedLOD will be trimmed back to the target number.
Definition at line 192 of file DatabasePager.h.
|
inline |
Set whether newly loaded textures should have their UnrefImageDataAfterApply set to a specified value.
Definition at line 227 of file DatabasePager.h.
void osgDB::DatabasePager::setUpThreads | ( | unsigned int | totalNumThreads = 2 , |
unsigned int | numHttpThreads = 1 |
||
) |
|
virtual |
Signal the database thread that the update, cull and draw has begun for a new frame. Note, this is called by the application so that the database pager can go to sleep while the CPU is busy on the main rendering threads.
|
virtual |
Signal the database thread that the update, cull and draw dispatch has completed. Note, this is called by the application so that the database pager can go to wake back up now the main rendering threads are iddle waiting for the next frame.
|
virtual |
Merge the changes to the scene graph by calling calling removeExpiredSubgraphs then addLoadedDataToSceneGraph. Note, must only be called from single thread update phase.
|
friend |
Definition at line 413 of file DatabasePager.h.
|
friend |
Definition at line 298 of file DatabasePager.h.
|
friend |
Definition at line 297 of file DatabasePager.h.
|
friend |
Definition at line 410 of file DatabasePager.h.
|
friend |
Definition at line 416 of file DatabasePager.h.
|
friend |
Definition at line 419 of file DatabasePager.h.
|
protected |
Definition at line 439 of file DatabasePager.h.
|
protected |
Definition at line 464 of file DatabasePager.h.
|
protected |
Definition at line 455 of file DatabasePager.h.
|
protected |
Definition at line 458 of file DatabasePager.h.
|
protected |
Definition at line 456 of file DatabasePager.h.
|
protected |
Definition at line 440 of file DatabasePager.h.
|
protected |
Definition at line 442 of file DatabasePager.h.
|
protected |
Definition at line 450 of file DatabasePager.h.
|
protected |
Definition at line 451 of file DatabasePager.h.
|
protected |
Definition at line 461 of file DatabasePager.h.
|
protected |
Definition at line 438 of file DatabasePager.h.
|
protected |
Definition at line 468 of file DatabasePager.h.
|
protected |
Definition at line 424 of file DatabasePager.h.
|
protected |
Definition at line 453 of file DatabasePager.h.
|
protected |
Definition at line 448 of file DatabasePager.h.
|
protected |
Definition at line 446 of file DatabasePager.h.
|
protected |
Definition at line 449 of file DatabasePager.h.
|
protected |
Definition at line 469 of file DatabasePager.h.
|
protected |
Definition at line 477 of file DatabasePager.h.
|
protected |
Definition at line 473 of file DatabasePager.h.
|
protected |
Definition at line 472 of file DatabasePager.h.
|
protected |
Definition at line 444 of file DatabasePager.h.
|
mutableprotected |
Definition at line 445 of file DatabasePager.h.
|
protected |
Definition at line 475 of file DatabasePager.h.
|
protected |
Definition at line 423 of file DatabasePager.h.
|
protected |
Definition at line 425 of file DatabasePager.h.
|
protected |
Definition at line 466 of file DatabasePager.h.
|
protected |
Definition at line 474 of file DatabasePager.h.
|
protected |
Definition at line 459 of file DatabasePager.h.
|
protected |
Definition at line 457 of file DatabasePager.h.