Added support for different threading models in osgViewer::Viewer

This commit is contained in:
Robert Osfield
2007-01-02 17:39:31 +00:00
parent b315ed4d58
commit f14aa7ef66
4 changed files with 180 additions and 71 deletions

View File

@@ -35,6 +35,19 @@ class OSGVIEWER_EXPORT Viewer : public osgViewer::View
void setDone(bool done) { _done = done; }
bool done() { return _done; }
enum ThreadingModel
{
SingleThreaded,
ThreadPerContext,
ThreadPerCamera
};
/** Set the threading model the rendering traversals will use.*/
void setThreadingModel(ThreadingModel threadingModel);
/** Get the threading model the rendering traversals will use.*/
ThreadingModel getThreadingModel() const { return _threadingModel; }
/** Render a complete new frame.
* Calls frameAdvance(), frameEventTraversal(), frameUpateTraversal(), frameRenderingTraversals(). */
@@ -70,6 +83,8 @@ class OSGVIEWER_EXPORT Viewer : public osgViewer::View
bool _firstFrame;
bool _done;
ThreadingModel _threadingModel;
osg::ref_ptr<osg::BarrierOperation> _startRenderingBarrier;
osg::ref_ptr<osg::BarrierOperation> _endRenderingDispatchBarrier;