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

Reply via email to