Hi,

I'm writing a small test program (source below) that is doing its own viewer 
loop.  This program runs fine if I run it using viewerWindow->show.  If I run 
it with my own viewer loop it crashes the fist time it calls frame with a 
Segmentation fault in osg::LightModel::apply (see stack trace below).

OSG v 2.8.1 
Qt 4 (Eclipse integration version 1.6.1) environment 
Linux using Eclipse in debug mode 

I got ViewerQT from the Qt integration example AdapterWidget.cpp. 

I got the viewer loop code from the Quick Start Guide.  I noticed some examples 
had viewerWindow->realize in them so I tried it with and without that.  It 
didn't make any difference.  

Any ideas of what the problem is?


ViewerQT        *viewerWindow = new ViewerQT;

viewerWindow->setCameraManipulator (new osgGA::TrackballManipulator);
viewerWindow->setSceneData 
(osgDB::readNodeFile("/home/zacharyh/OpenSceneGraph-Data-2.8.0/cow.osg"));


// display the scene graph /////////////////////


#define loop

#ifndef loop

viewerWindow->show ();

#else

viewerWindow->getCamera ()->setProjectionMatrixAsPerspective (40., 1., 1., 60. 
* 36.);
// Create a matrix to specify a distance from the viewpoint.
osg::Matrix trans;
trans.makeTranslate (0., 0., 0.);

double angle (0.);      // Rotation angle (in radians)

viewerWindow->realize ();       // crashes with and without this

while ( ! viewerWindow->done ())
        { // do view loop
        // Create the rotation matrix.
        osg::Matrix rot;
        rot.makeRotate (angle, osg::Vec3 (0., 0., 1.));
//      angle += 0.01;
        // Set the view matrix (the concatenation of the rotation and
        //   translation matrices).
        viewerWindow->getCamera ()->setViewMatrix (rot * trans);
        // Draw the next frame.
        viewerWindow->frame ();
        } // do view loop

#endif
a.connect (&a, SIGNAL (lastWindowClosed ()), &a, SLOT (quit ()));

return a.exec ();




gdb Debugger (6/9/10 10:15 AM) (Suspended)      
        Thread [1] (Suspended: Signal 'SIGSEGV' received. Description: 
Segmentation fault.)     
                18 osg::LightModel::apply(osg::State&) const()  0x0027778a      
                17 osg::State::applyAttribute()  0x002d33b0     
                16 osg::State::applyAttributeList()  0x002d3613 
                15 osg::State::apply()  0x002ce9b1      
                14 osgUtil::RenderLeaf::render()  0x016f6b1e    
                13 osgUtil::RenderBin::drawImplementation()  0x016f0d13 
                12 osgUtil::RenderStage::drawImplementation()  0x016f93c4       
                11 osgUtil::RenderBin::draw()  0x016f09a0       
                10 osgUtil::RenderStage::drawInner()  0x016f9776        
                9 osgUtil::RenderStage::draw()  0x016fd51d      
                8 osgUtil::SceneView::draw()  0x017065af        
                7 osgViewer::Renderer::cull_draw()  0x00480cb0  
                6 osgViewer::Renderer::operator()()  0x0047e208 
                5 osg::GraphicsContext::runOperations()  0x0024b928     
                4 osgViewer::ViewerBase::renderingTraversals()  0x004bfb42      
                3 osgViewer::ViewerBase::frame()  0x004bd8dd    
                2 shotTrail() 
/home/zacharyh/workspace/osgViewerQt/ShotTrail.cpp:86 0x0805454d  
                1 main() /home/zacharyh/workspace/osgViewerQt/main.cpp:40 
0x0805edf5    


Thank you!

Cheers,
Zachary

------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=28752#28752





_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to