Hi Robert, I tried but failed to reproduce the problem in the osg examples. It must be some subtle difference in the way I set up my scene in my app. I changed my viewer to the QOSGWidget implementation instead of using the GraphicsWindowEmbedded in a QGLWidget and that fixed the crash. Sorry I couldn't reproduce it, but at least there is a work around if others run into this issue.
Cheers, Morne On Fri, Jan 30, 2009 at 4:59 PM, Robert Osfield <robert.osfi...@gmail.com> wrote: > Hi Morne, > > Can you get osgshadow to crash? If others can redproduce this problem > there the chances of fixing it promptly go up. > > Robert. > > On Fri, Jan 30, 2009 at 4:33 PM, Morné Pistorius > <mpistorius....@googlemail.com> wrote: >> Hi guys, >> >> I am testing the current trunk version of OSG in my application (was >> previously using v2.6.1) and I get a crash on shutdown when trying to >> destroy a osgShadow::ShadowedScene. This only occurs when I have a >> shadowTechnique set and is caused by destroying the shader program. I >> am using OSG in Qt derived from a QGLWidget (yes I know I should >> rather use the QWidget implementation, I am busy porting to that, but >> this used to work fine in 2.6.1 so I thought I would flag it :) >> >> I will see if this still happens when not using the GL Adapterwidget, >> and report back. >> >> Below is a stack trace of the relevant bits: >> >>> osg54-osg.dll!osg::Referenced::~Referenced() Line 262 + 0x5 bytes >>> C++ >> osg54-osg.dll!osg::Program::PerContextProgram::~PerContextProgram() >> Line 425 + 0x14b bytes C++ >> osg54-osg.dll!osg::Program::PerContextProgram::`vector deleting >> destructor'() + 0x3d bytes C++ >> >> osg54-osg.dll!std::_Destroy_range<osg::ref_ptr<osg::Program::PerContextProgram>,std::allocator<osg::ref_ptr<osg::Program::PerContextProgram> >>> >(osg::ref_ptr<osg::Program::PerContextProgram> * _First=0x02eb7b48, >> osg::ref_ptr<osg::Program::PerContextProgram> * _Last=0x02eb7b50, >> std::allocator<osg::ref_ptr<osg::Program::PerContextProgram> > & >> _Al={...}, std::_Nonscalar_ptr_iterator_tag __formal={...}) Line 235 >> + 0x30 bytes C++ >> osg54-osg.dll!osg::Program::~Program() Line 122 + 0xa8 bytes C++ >> osg54-osgShadow.dll!osg::Program::`scalar deleting destructor'() + >> 0x9 bytes C++ >> osg54-osg.dll!std::_Tree<std::_Tmap_traits<std::pair<enum >> osg::StateAttribute::Type,unsigned >> int>,std::pair<osg::ref_ptr<osg::StateAttribute>,unsigned >> int>,std::less<std::pair<enum osg::StateAttribute::Type,unsigned int> >>>,std::allocator<std::pair<std::pair<enum >> osg::StateAttribute::Type,unsigned int> const >> ,std::pair<osg::ref_ptr<osg::StateAttribute>,unsigned int> > >,0> >>>::_Erase(std::_Tree_nod<std::_Tmap_traits<std::pair<enum >> osg::StateAttribute::Type,unsigned >> int>,std::pair<osg::ref_ptr<osg::StateAttribute>,unsigned >> int>,std::less<std::pair<enum osg::StateAttribute::Type,unsigned int> >>>,std::allocator<std::pair<std::pair<enum >> osg::StateAttribute::Type,unsigned int> const >> ,std::pair<osg::ref_ptr<osg::StateAttribute>,unsigned int> > >,0> >>>::_Node * _Rootnode=0x02eb7bf8) Line 1078 C++ >> osg54-osg.dll!osg::StateSet::clear() Line 556 + 0x26 bytes C++ >> osg54-osg.dll!osg::StateSet::~StateSet() Line 173 C++ >> osg54-osgShadow.dll!osg::StateSet::`scalar deleting destructor'() + >> 0x9 bytes C++ >> osg54-osg.dll!osg::Referenced::unref() Line 176 + 0xf bytes C++ >> osg54-osgShadow.dll!osgShadow::ShadowMap::~ShadowMap() Line 91 + >> 0xfb bytes C++ >> osg54-osgShadow.dll!osgShadow::SoftShadowMap::~SoftShadowMap() Line >> 73 + 0x7e bytes C++ >> RiverTestApp.exe!osgShadow::SoftShadowMap::`scalar deleting >> destructor'() + 0x10 bytes C++ >> osg54-osg.dll!osg::Referenced::unref() Line 176 + 0xf bytes C++ >> >> osg54-osgShadow.dll!osgShadow::ShadowedScene::setShadowTechnique(osgShadow::ShadowTechnique >> * technique=0x00000000) Line 76 C++ >> osg54-osgShadow.dll!osgShadow::ShadowedScene::~ShadowedScene() Line >> 50 C++ >> RiverTestApp.exe!VOSGShadowedScene::~VOSGShadowedScene() + 0x10 >> bytes C++ >> RiverTestApp.exe!VOSGShadowedScene::`scalar deleting destructor'() >> + 0xf bytes C++ >> >> osg54-osg.dll!std::_Destroy_range<osg::ref_ptr<osg::Node>,std::allocator<osg::ref_ptr<osg::Node> >>> >(osg::ref_ptr<osg::Node> * _First=0x02e74f50, >> osg::ref_ptr<osg::Node> * _Last=0x02e74f5c, >> std::allocator<osg::ref_ptr<osg::Node> > & _Al={...}, >> std::_Nonscalar_ptr_iterator_tag __formal={...}) Line 235 + 0x30 >> bytes C++ >> osg54-osg.dll!osg::Group::~Group() Line 53 + 0x26 bytes C++ >> RiverTestApp.exe!VOSGScene::~VOSGScene() Line 25 + 0x19 bytes C++ >> RiverTestApp.exe!VRiver3DScene::~VRiver3DScene() Line 103 + 0x21 >> bytes C++ >> RiverTestApp.exe!VRiver3DScene::`scalar deleting destructor'() + >> 0xf bytes C++ >> osg54-osg.dll!osg::Referenced::unref() Line 176 + 0xf bytes C++ >> RiverTestApp.exe!osg::ref_ptr<VOSGScene>::~ref_ptr<VOSGScene>() >> Line 33 + 0x1a bytes C++ >> >> Cheers, >> Morne >> _______________________________________________ >> 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