Thank you Robert, That's given me a 'framework' to work within..
Kind regards, Stephen. On Jan 23, 2008, at 5:20 PM, Robert Osfield wrote: > On Jan 23, 2008 9:28 AM, Stephen Northcott <[EMAIL PROTECTED] > > wrote: >> My question was simply is there anything I need to be aware of other >> than the usual push'es and pops that we do then splicing pure openGL >> and OSG together? > > There is no low difference w.r.t OpenGL/OSG integration in 2.x > relative to 1.x, both requiring you to insulate the OpenGL state > changes done by both your OpenGL calls and the ones that OSG does and > visa-versa. > >> And in the old OSG demo main loops we had several calls. cull, draw >> etc. Now we only have one call. >> When is it save to manipulate the OpenGL pipeline, should we do any >> waiting before or after the viewer.frame() call? >> OR can we just blast away at OpenGL as we wish outside of this call? > > viewer.frame() just a high level convinience function, have a look at > the implementation and you'll find its equivalent to: > > viewer.advance(); > viewer.eventTraversal(); > viewer.updateTraversal(); > viewer.renderingTraversals(); > > This is actually not too far away from the osgProducer::Viewer days, > save for the meaning of frame() now encompasses all that is required > to do a frame() and that sync() is now embedded in > renderingTraversals(). > > W.r.t when you can safely call OpenGL, just like before its only safe > to do so from the thread that has the OpenGL context current. This is > the same Producer/osgProducer/osgViewer in fact any OpenGL app. The > different between osgProducer and osgViewer is that the former could > only run single threaded when one has one window, while the later can > run multi-threaded even in the case of one window apps, and by default > will run multi-threaded if you have mult-core CPU. > > The upshot of this is that you cannot assume the main thread has > graphics context, and its not not safe to call OpenGL from the main > loop unless you explictly select SingleThreaded. > > The next question has to be well how to do you do safe OpenGL calls > with the new multi-threaded viewer? The easiest way is to add a > Camera post DrawCallback to the master Camera. > > Robert. > _______________________________________________ > osg-users mailing list > [email protected] > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org _______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

