[osg-users] NodeVisitors and Synchronization

Argentieri, John-P63223 John.Argentieri at gdc4s.com
Tue Sep 30 13:26:10 PDT 2008

Let's forget semantics then.
If I run the following code:
Node.accept( NodeVisitor& );
What thread calls the NodeVisitor's various accept() methods? Or at
least what stage of execution? Does the accept() call block until the
NodeVisitor traverses the scene graph, or does it happen in the Viewer's
update traversal? 


From: osg-users-bounces at lists.openscenegraph.org
[mailto:osg-users-bounces at lists.openscenegraph.org] On Behalf Of
Tomlinson, Gordon
Sent: Tuesday, September 30, 2008 2:44 PM
To: OpenSceneGraph Users
Subject: Re: [osg-users] NodeVisitors and Synchronization

You should not be doing this from the GUI thread, you should be doing
this typically in the OSG app thread, so you need to have some form of
messaging between the GUI and APP threads, such that you can kick off
your traversals at the appropriate time


Gordon Tomlinson

Product Manager 3D
Email  : gtomlinson @ overwatch.textron.com

(C): (+1) 571-265-2612
(W): (+1) 703-437-7651

"Self defence is not a function of learning tricks 
but is a function of how quickly and intensely one 
can arouse one's instinct for survival" 
- Master Tambo Tetsura



From: osg-users-bounces at lists.openscenegraph.org
[mailto:osg-users-bounces at lists.openscenegraph.org] On Behalf Of
Argentieri, John-P63223
Sent: Tuesday, September 30, 2008 2:09 PM
To: osg-users at openscenegraph.org
Subject: [osg-users] NodeVisitors and Synchronization


Once I've called Node::accept(NodeVisitor&), does osgViewer::Viewer wait
until the update traversal to let the NodeVisitor perform it's
traversal? If I am in the GUI thread when I call accept(), does
NodeVisitor::apply happen in the GUI thread? Or does it happen in an
osgViewer thread based on the threading model?

I'm trying to make sure my NodeVisitor's have done their work before
reacting to osg::Camera's PostDraw callback. 

I am considering having nodes accept all visitors, waiting for a single
update callback, then registering for the osg::Camera's postdraw
callback. Do you guys think that will solve my synchronization problem?


John Argentieri 
Software Engineer 
C4 Systems 
John.Argentieri at gdc4s.com 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20080930/bedb20c9/attachment-0003.htm>

More information about the osg-users mailing list