Hi Sebastian, I haven't had chance to try and reproduce the bug yet. The description sounds like there an initialization order issue with the osg::State. In theory the osg::State object now does the initalization, and the osg::GraphicsContext on the first makeCurrent() should ensure that it's set up correctly, in theory this should be the first set of OpenGL calls made.
What is application you are testing within? What is the platform? Robert. On 19 January 2015 at 10:07, Sebastian Messerschmidt < [email protected]> wrote: > 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 > [email protected] > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > >
_______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

