Ok, just change that line for:

 viewer->setThreadingModel(osgViewer::Viewer::ThreadPerContext);

This is what I meant in the first place.

Hope it works.

2008/3/18, Wiedemann, Rudolf, OPS3 <[EMAIL PROTECTED]>:
>
>  Hi Nicolas,
>
> I'm using the svn version of OSG (revision 7946).
> When I add
>   viewer->setThreadingModel( osgViewer::ViewerBase::SingleThreaded );
> to the example code below, some more of the frames are rendered, but not
> all.
>
> Rudi
>
>  ------------------------------
> *Von:* [EMAIL PROTECTED] [mailto:
> [EMAIL PROTECTED] *Im Auftrag von *nicolas peña
> *Gesendet:* Montag, 17. März 2008 21:24
> *An:* OpenSceneGraph Users
> *Betreff:* Re: [osg-users] More than one viewer
>
> What version of OSG are you using?
> What threading model? I had similar issues and setting the threading
>  model to one thread per context solved them.
>
> Cheers,
>       Nicolas.
>
> 2008/3/17, Wiedemann, Rudolf, OPS3 <[EMAIL PROTECTED]>:
> >
> > Hi,
> >
> > I want to create a viewer, render some frames, then destroy the viewer
> > and create a second one etc (see code below/ zip-file).
> > The first viewer renders corectly, the second sometimes, too. But then I
> > get only black images.
> > Does someone has an idea what's going wrong?
> >
> > Thanks in advance!
> > Rudi
> >
> >   #include <iostream>
> >
> >   #include <osg/Referenced>
> >   #include <osgDB/ReadFile>
> >   #include <osgDB/WriteFile>
> >   #include <osgViewer/Viewer>
> >
> >   void render( unsigned int x, unsigned int y, unsigned int width,
> > unsigned int height, double posx )
> >   {
> >     osg::ref_ptr< osgViewer::Viewer > viewer = new osgViewer::Viewer;
> >     viewer->setUpViewInWindow( x, y, width, height );
> >     viewer->setSceneData( osgDB::readNodeFile( "cow.osg" ) );
> >     viewer->getCamera()->setViewMatrixAsLookAt( osg::Vec3d( posx, -15.0,
> > 0.0 ),
> >                                                 osg::Vec3d( 0.0, 0.0,
> > 0.0 ),
> >                                                 osg::Vec3d( 0.0, 0.0,
> > 1.0 ) );
> >     viewer->frame();
> >
> >     sleep( 1 );
> >     viewer = 0;
> >   }
> >
> >   int main( int argc, char * argv[] )
> >   {
> >     double posx = 0.0;
> >     osg::ref_ptr< osgViewer::Viewer > viewer;
> >     for( unsigned int i = 0; i < 4; i++ )
> >     {
> >       std::cout << "creating viewer #1" << std::endl;
> >       render( 10, 20, 500, 250, posx );
> >
> >       std::cout << "creating viewer #2" << std::endl;
> >       render( 600, 50, 112, 80, -posx );
> >
> >       posx += 5.0;
> >     }
> >
> >     return 0;
> >   }
> >
> > _______________________________________________
> > osg-users mailing list
> > osg-users@lists.openscenegraph.org
> >
> > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
> >
> >
> >
>
> _______________________________________________
> osg-users mailing list
> osg-users@lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
>
_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to