diff --git a/src/osgProducer/OsgCameraGroup.cpp b/src/osgProducer/OsgCameraGroup.cpp index 4ef4cd53e..2035a0ac7 100644 --- a/src/osgProducer/OsgCameraGroup.cpp +++ b/src/osgProducer/OsgCameraGroup.cpp @@ -457,38 +457,6 @@ bool OsgCameraGroup::realize( ThreadingModel thread_model ) return realize(); } - -// small visitor to check for the existance of particle systems, -// which currently arn't thread safe, so we would need to disable -// multithreading of cull and draw. -class SearchForSpecialNodes : public osg::NodeVisitor -{ -public: - SearchForSpecialNodes(): - osg::NodeVisitor(osg::NodeVisitor::TRAVERSE_ALL_CHILDREN), - _foundParticles(false), - _foundPagedLOD(false) - { - } - - virtual void apply(osg::Node& node) - { - if (strcmp(node.libraryName(),"osgParticle")==0 && strcmp(node.className(),"PrecipitationEffect")!=0) _foundParticles = true; - - if (!_foundParticles || - !_foundPagedLOD) traverse(node); - } - - virtual void apply(osg::PagedLOD& node) - { - _foundPagedLOD = true; - apply((osg::Node&)node); - } - - bool _foundParticles; - bool _foundPagedLOD; -}; - bool OsgCameraGroup::realize() { if( _initialized ) return _realized; @@ -669,23 +637,6 @@ bool OsgCameraGroup::realize() setUpSceneViewsWithData(); - // if we are multi-threaded check to see if particle exists in the scene - // if so we need to disable multi-threading of cameras. - if (_threadModel == Producer::CameraGroup::ThreadPerCamera) - { - if (getTopMostSceneData()) - { - SearchForSpecialNodes sfsn; - getTopMostSceneData()->accept(sfsn); - if (sfsn._foundParticles) - { - osg::notify(osg::INFO)<<"Warning: disabling multi-threading of cull and draw"<