Introduction of IncrementalCompileOperation support to DatabasePager.

This commit is contained in:
Robert Osfield
2010-10-14 18:16:03 +00:00
parent 00fe3c0417
commit 6ed74470b2
9 changed files with 141 additions and 35 deletions

View File

@@ -1601,6 +1601,11 @@ void View::assignSceneDataToCameras()
{
// OSG_NOTICE<<"View::assignSceneDataToCameras()"<<std::endl;
if (_scene.valid() && _scene->getDatabasePager() && getViewerBase())
{
_scene->getDatabasePager()->setIncrementalCompileOperation(getViewerBase()->getIncrementalCompileOperation());
}
osg::Node* sceneData = _scene.valid() ? _scene->getSceneData() : 0;
if (_cameraManipulator.valid())

View File

@@ -66,6 +66,11 @@ Viewer::Viewer(osg::ArgumentParser& arguments)
//arguments.getApplicationUsage()->addCommandLineOption("--collar","");
//arguments.getApplicationUsage()->addCommandLineOption("--im","");
if (arguments.read("--ico"))
{
setIncrementalCompileOperation(new osgUtil::IncrementalCompileOperation());
}
std::string filename;
bool readConfig = false;
while (arguments.read("-c",filename))

View File

@@ -563,6 +563,17 @@ void ViewerBase::setIncrementalCompileOperation(osgUtil::IncrementalCompileOpera
// assign new operation
_incrementalCompileOperation = ico;
Scenes scenes;
getScenes(scenes,false);
for(Scenes::iterator itr = scenes.begin();
itr != scenes.end();
++itr)
{
osgDB::DatabasePager* dp = (*itr)->getDatabasePager();
dp->setIncrementalCompileOperation(ico);
}
if (_incrementalCompileOperation) _incrementalCompileOperation->assignContexts(contexts);
}