Hi Rômulo, Without the the line numbers on the source we can't match up the stack trace crash point to lines of code.
Robert. On Thu, 27 Sep 2018 at 20:45, Rômulo Cerqueira <romulogcerque...@gmail.com> wrote: > > Hi, > > I have tried to read image from RTT (where the image is "not attached", but > available on buffer) using a osg::Camera::DrawCallback, the compilation is > working, however the executable brings me a segmentation fault during image > rendering. How can I solve this? > > > > Code: > WindowCaptureScreen::WindowCaptureScreen(osg::ref_ptr<osg::GraphicsContext> > gfxc, osg::Texture2D* tex) { > _mutex = new OpenThreads::Mutex(); > _condition = new OpenThreads::Condition(); > _image = new osg::Image(); > > // checks the GraficContext from the camera viewer > if (gfxc->getTraits()) { > _tex = tex; > int width = gfxc->getTraits()->width; > int height = gfxc->getTraits()->height; > _image->allocateImage(width, height, 1, GL_RGBA, GL_FLOAT); > } > } > > WindowCaptureScreen::~WindowCaptureScreen() { > delete (_condition); > delete (_mutex); > } > > osg::ref_ptr<osg::Image> WindowCaptureScreen::captureImage() { > //wait to finish the capture image in call back > _condition->wait(_mutex); > > return _image; > } > > void WindowCaptureScreen::operator ()(osg::RenderInfo& renderInfo) const { > osg::ref_ptr<osg::GraphicsContext> gfxc = > renderInfo.getState()->getGraphicsContext(); > > if (gfxc->getTraits()) { > _mutex->lock(); > > // read the color buffer as 32-bit floating point > renderInfo.getState()->applyTextureAttribute(0, _tex); > > // THE PROGRAM CRASHES HERE > _image->readImageFromCurrentTexture(renderInfo.getContextID(), true, > GL_FLOAT); > > // grants the access to image > _condition->signal(); > _mutex->unlock(); > } > } > > > > > Output from GDB: > > > Code: > #0 0xffffffffffffff88 in ?? () > #1 0x00007fffef1ee39d in normal_depth_map::WindowCaptureScreen::operator() > (this=0x7fffb53ee7a0, renderInfo=...) > at > /home/romulo/dev/sonarsim/simulation/normal_depth_map/src/ImageViewerCaptureTool.cpp:158 > #2 0x00007fffebb43b10 in osgUtil::RenderStage::draw(osg::RenderInfo&, > osgUtil::RenderLeaf*&) () > from target:/usr/lib/x86_64-linux-gnu/libosgUtil.so.100 > #3 0x00007fffebb4bdb7 in osgUtil::SceneView::draw() () from > target:/usr/lib/x86_64-linux-gnu/libosgUtil.so.100 > #4 0x00007fffec31c03f in osgViewer::Renderer::draw() () from > target:/usr/lib/x86_64-linux-gnu/libosgViewer.so.100 > #5 0x00007fffef557d49 in osg::GraphicsContext::runOperations() () > from target:/usr/lib/x86_64-linux-gnu/libosg.so.100 > #6 0x00007fffef5a7bbf in osg::OperationThread::run() () from > target:/usr/lib/x86_64-linux-gnu/libosg.so.100 > #7 0x00007fffef5596f8 in osg::GraphicsThread::run() () from > target:/usr/lib/x86_64-linux-gnu/libosg.so.100 > #8 0x00007fffecbd06c8 in > OpenThreads::ThreadPrivateActions::StartThread(void*) () > from target:/usr/lib/x86_64-linux-gnu/libOpenThreads.so.20 > #9 0x00007ffff60246ba in start_thread (arg=0x7fffa7efe700) at > pthread_create.c:333 > #10 0x00007ffff130f41d in clone () at > ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 > > > > > Thanks in advance, > > Cheers, > Rômulo > > ------------------ > Read this topic online here: > http://forum.openscenegraph.org/viewtopic.php?p=74982#74982 > > > > > > _______________________________________________ > 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