Added collateReferencesToDependentCameras() and clearReferencesToDependentCameras() methods into RenderStage and SceneView, and use
of these methods in src/osgViewer/Renderer.cpp to make sure that the draw thread keeps references to all in scene graph Cameras that are being used by the drawing threads, to keep the Camera's alive even when the main thread removes these Cameras from the scene graph.
This commit is contained in:
@@ -1728,3 +1728,17 @@ bool SceneView::getStats(Statistics& stats)
|
||||
return _renderStage->getStats(stats);
|
||||
}
|
||||
}
|
||||
|
||||
void SceneView::collateReferencesToDependentCameras()
|
||||
{
|
||||
if (_renderStage.valid()) _renderStage->collateReferencesToDependentCameras();
|
||||
if (_renderStageLeft.valid()) _renderStageLeft->collateReferencesToDependentCameras();
|
||||
if (_renderStageRight.valid()) _renderStageRight->collateReferencesToDependentCameras();
|
||||
}
|
||||
|
||||
void SceneView::clearReferencesToDependentCameras()
|
||||
{
|
||||
if (_renderStage.valid()) _renderStage->clearReferencesToDependentCameras();
|
||||
if (_renderStageLeft.valid()) _renderStageLeft->clearReferencesToDependentCameras();
|
||||
if (_renderStageRight.valid()) _renderStageRight->clearReferencesToDependentCameras();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user