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

Reply via email to