From e94c3334f94be76f25e98677fd2d534ac95f5e32 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Mon, 13 Jul 2015 16:03:51 +0000 Subject: [PATCH] Standardize the call to setUpThreading() in CompositeViewer/Viewer::realize(). Standardize the call to scene->resizeGLObjects(). git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14944 16af8721-9629-0410-8352-f15c8da7e697 --- src/osgViewer/CompositeViewer.cpp | 5 +++-- src/osgViewer/Viewer.cpp | 1 + src/osgViewer/ViewerBase.cpp | 11 +++++++++++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/osgViewer/CompositeViewer.cpp b/src/osgViewer/CompositeViewer.cpp index 9d21a09c7..ebede960d 100644 --- a/src/osgViewer/CompositeViewer.cpp +++ b/src/osgViewer/CompositeViewer.cpp @@ -639,14 +639,15 @@ void CompositeViewer::realize() } - startThreading(); - // initialize the global timer to be relative to the current time. osg::Timer::instance()->setStartTick(); // pass on the start tick to all the associated eventqueues setStartTick(osg::Timer::instance()->getStartTick()); + // configure threading. + setUpThreading(); + if (osg::DisplaySettings::instance()->getCompileContextsHint()) { int numProcessors = OpenThreads::GetNumberOfProcessors(); diff --git a/src/osgViewer/Viewer.cpp b/src/osgViewer/Viewer.cpp index ab4adb867..bd9b84787 100644 --- a/src/osgViewer/Viewer.cpp +++ b/src/osgViewer/Viewer.cpp @@ -587,6 +587,7 @@ void Viewer::realize() // pass on the start tick to all the associated event queues setStartTick(osg::Timer::instance()->getStartTick()); + // configure threading. setUpThreading(); if (osg::DisplaySettings::instance()->getCompileContextsHint()) diff --git a/src/osgViewer/ViewerBase.cpp b/src/osgViewer/ViewerBase.cpp index 425ee82dd..ea70af49b 100644 --- a/src/osgViewer/ViewerBase.cpp +++ b/src/osgViewer/ViewerBase.cpp @@ -177,6 +177,17 @@ void ViewerBase::setUpThreading() Scenes scenes; getScenes(scenes); + + for(Scenes::iterator scitr = scenes.begin(); + scitr != scenes.end(); + ++scitr) + { + if ((*scitr)->getSceneData()) + { + // update the scene graph so that it has enough GL object buffer memory for the graphics contexts that will be using it. + (*scitr)->getSceneData()->resizeGLObjectBuffers(osg::DisplaySettings::instance()->getMaxNumberOfGraphicsContexts()); + } + } } } }