[osg-users] [Crash issue] How to add&remove drawable (geometry) property.
Jinh Tang
peter.wang1013 at gmail.com
Thu Jul 26 03:10:45 PDT 2018
Hi,
I am doing them real-time rendering application development with Qt + OSG.
I created several threads to create new Geometry and in GUI - main threads, try to remove the old one and add new ones.
1, already set node and geometry to user dynamic.
geometry->setDataVariance(osg::Object::DYNAMIC)
geode_->setDataVariance(osg::Object::DYNAMIC);
2, already used osg smart point everywhere.
3, geometry is created in other threads. and post to a global queue.
4, in Main thread. PaintGL event will add&remove geometry in "autoAddRemove" function.
void OSGMeshRender::paintGL() {
autoAddRemove();
viewer_->frame();
}
5, the setup work for qt+osg is almost same like this blog, nothing speical.
vicrucann.github.io/tutorials/cmake-qt-osg-1/
I got below crash sometimes when I add&remove drawable.
0000082`873ba218 : nvoglv64+0x927b51
00000075`2b19bf61 : osg156_osgrd!osg::GLBufferObject::deleteGLObject+0x69 [c:\users\code\openscenegraph-openscenegraph-3.6.0\src\osg\bufferobject.cpp @ 253]
00000075`2b19bf61 : osg156_osgrd!osg::GLBufferObjectSet::flushDeletedGLBufferObjects+0x25e [c:\users\code\openscenegraph-openscenegraph-3.6.0\src\osg\bufferobject.cpp @ 554]
0000018c`3829dc50 : osg156_osgrd!osg::GLBufferObjectManager::flushDeletedGLObjects+0x7e [c:\users\code\openscenegraph-openscenegraph-3.6.0\src\osg\bufferobject.cpp @ 984]
*** WARNING: Unable to verify checksum for osg156-osgUtilrd.dll
0000018c`2e070d90 : osg156_osgrd!osg::ContextData::flushDeletedGLObjects+0x65 [c:\users\code\openscenegraph-openscenegraph-3.6.0\src\osg\contextdata.cpp @ 88]
*** WARNING: Unable to verify checksum for osg156-osgViewerrd.dll
0000018c`37fcbb60 : osg156_osgUtilrd!osgUtil::SceneView::draw+0xdb [c:\users\code\openscenegraph-openscenegraph-3.6.0\src\osgutil\sceneview.cpp @ 987]
0000018d`01da2350 : osg156_osgViewerrd!osgViewer::Renderer::cull_draw+0x309 [c:\users\code\openscenegraph-openscenegraph-3.6.0\src\osgviewer\renderer.cpp @ 887]
00000000`00000000 : osg156_osgrd!osg::GraphicsContext::runOperations+0x99 [c:\users\code\openscenegraph-openscenegraph-3.6.0\src\osg\graphicscontext.cpp @ 696]
00000000`000003f9 : osg156_osgViewerrd!osgViewer::ViewerBase::renderingTraversals+0xc2d [c:\users\code\openscenegraph-openscenegraph-3.6.0\src\osgviewer\viewerbase.cpp @ 8
00000000`000003f9 :
osg156_osgViewerrd!osgViewer::ViewerBase::frame
attached windbg callstack.
any suggestion? fully appreciate!!!
...
Thank you!
Cheers,
------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=74388#74388
More information about the osg-users
mailing list