Hi Robert,

as already written, the problem is an invalidated _extensions object.
It seems to be invalidated by the State destructor, which causes the destructor of the GLExtensions object to be called. (I've got there using a memory breakpoint) I've attached a callstack for analysis. (i've added a destructor for the GLExtensions for testing)

Cheers
Sebastian


<snip>
     osg116-osgd.dll!osg::Referenced::~Referenced()  Line 234 C++
osg116-osgd.dll!osg::GLExtensions::~GLExtensions() + 0x28 bytes C++ osg116-osgd.dll!osg::GLExtensions::`vector deleting destructor'() + 0x7d bytes C++ osg116-osgd.dll!osg::Referenced::signalObserversAndDelete(bool signalDelete, bool doDelete) Line 324 + 0x31 bytes C++
     osg116-osgd.dll!osg::Referenced::unref()  Line 200    C++
osg116-osgd.dll!osg::ref_ptr<osg::GLExtensions>::operator=(osg::GLExtensions * ptr) Line 59 C++ osg116-osgd.dll!osg::GLExtensions::Set(unsigned int contextID, osg::GLExtensions * extensions) Line 429 C++
>    osg116-osgd.dll!osg::State::~State()  Line 136    C++
osg116-osgUtild.dll!osg::State::`scalar deleting destructor'() + 0x2d bytes C++ osg116-osgd.dll!osg::Referenced::signalObserversAndDelete(bool signalDelete, bool doDelete) Line 324 + 0x31 bytes C++
     osg116-osgd.dll!osg::Referenced::unref()  Line 200    C++
osg116-osgUtild.dll!osg::ref_ptr<osg::State>::operator=(osg::State * ptr) Line 59 C++ osg116-osgUtild.dll!osg::RenderInfo::setState(osg::State * state) Line 57 + 0x32 bytes C++ osg116-osgUtild.dll!osgUtil::SceneView::setState(osg::State * state) Line 184 + 0x3b bytes C++ osg116-osgViewerd.dll!osgViewer::Renderer::updateSceneView(osgUtil::SceneView * sceneView) Line 517 C++
     osg116-osgViewerd.dll!osgViewer::Renderer::cull()  Line 625    C++
osg116-osgViewerd.dll!osgViewer::ViewerBase::renderingTraversals() Line 826 C++ osg116-osgViewerd.dll!osgViewer::ViewerBase::frame(double simulationTime) Line 677 C++
     osg116-osgViewerd.dll!osgViewer::ViewerBase::run()  Line 647    C++
     osg116-osgViewerd.dll!osgViewer::Viewer::run()  Line 420 C++
RenderTest_d.exe!main(int argc, char * * argv) Line 66 + 0xb bytes C++
     RenderTest_d.exe!__tmainCRTStartup()  Line 555 + 0x19 bytes    C
     RenderTest_d.exe!mainCRTStartup()  Line 371    C
</snip>

Hi Robert,

would you expect problems with old osgTerrain databases (build with ~3.2.0, osgb format)? I have some strange behaviour with a huge database, which simply not displayed anymore and somehow breaks state (See attached picture).
Also there is a warning coming from an optimzer I guess:

Warning: CollectLowestTransformsVisitor::removeTransforms() error, encountered a NULL Transform pointer

A second, much smaller database is sometimes displayed, but crashes the viewer sometimes.
Unfortunately my first email, containing a database didn't get through.

It is really hard to find the culprit.

Any hints?

I'll investigate the issue further ...

Cheers
Sebastian

_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to