Moved compile setup from osgViewer::ViewerBase into osgViewer::Renderer to

avoid threading issues associated with compile running in a parallel with 
update/cull on the first frame.

Also added automatic recompile when a new SceneData is applied to a View.
This commit is contained in:
Robert Osfield
2008-05-10 17:04:02 +00:00
parent 0dfba5dbe5
commit 4d7b2edd4c
4 changed files with 43 additions and 7 deletions

View File

@@ -1634,6 +1634,10 @@ void View::assignSceneDataToCameras()
{
_camera->removeChildren(0,_camera->getNumChildren());
if (sceneData) _camera->addChild(sceneData);
Renderer* renderer = dynamic_cast<Renderer*>(_camera->getRenderer());
if (renderer) renderer->setCompileOnNextDraw(true);
}
for(unsigned i=0; i<getNumSlaves(); ++i)
@@ -1643,6 +1647,9 @@ void View::assignSceneDataToCameras()
{
slave._camera->removeChildren(0,slave._camera->getNumChildren());
if (sceneData) slave._camera->addChild(sceneData);
Renderer* renderer = dynamic_cast<Renderer*>(slave._camera->getRenderer());
if (renderer) renderer->setCompileOnNextDraw(true);
}
}
}