The osgviewerQT example with the --QOSGWidget option has exposed some problems
at the juction of OSG and the windowing system. I was aware of a problem
running this on Mac OS X for a couple of weeks, but didn't pay much attention to
it. I spent some time testing on a variey of Linux systems and found a problem
there too. Please note I'm running OSG version 2.6.0.
On Mac OS X osgviewerQT crashes after getting a BadWindow error from
XGetWindowAttributes when called by osgViewer::GraphicsWindowX11::setWindow.
The window attributes are garbage values.
More curious, I tested two nearly identical systems and the example run OK on
one and crashed on the other.
$ osgviewerQT cow.osg --QOSGWidget --CompositeViewer
--- OK on system 1 ---
Fedora w/2.6.9-5.ELsmp kernel
OpenGL renderer string: Quadro FX 3450/4000 SDI/PCI/SSE2
OpenGL version string: 2.1.1 NVIDIA 100.14.19
--- Crashes on system 2 ---
Fedora w/2.6.9-5.ELsmp kernel
OpenGL renderer string: Quadro FX 3450/4000 SDI/PCI/SSE2
OpenGL version string: 2.0.0 NVIDIA 76.76
Program received signal SIGABRT, Aborted.
0x004417a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
(gdb) where
#0 0x004417a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
#1 0x00a6d955 in raise () from /lib/tls/libc.so.6
#2 0x00a6f319 in abort () from /lib/tls/libc.so.6
#3 0x0054d557 in __cxa_call_unexpected () from /usr/lib/libstdc++.so.5
#4 0x0054d5a4 in std::terminate () from /usr/lib/libstdc++.so.5
#5 0x0054d716 in __cxa_throw () from /usr/lib/libstdc++.so.5
#6 0x00503e33 in std::__throw_logic_error () from /usr/lib/libstdc++.so.5
#7 0x00540fc2 in std::string::_M_replace_safe<char const*> () from
/usr/lib/libstdc++.so.5
#8 0x0053d894 in std::basic_string<char, std::char_traits<char>,
std::allocator<char> >::basic_string () from
#/usr/lib/libstdc++.so.5
#9 0x00fdf661 in osg::getGLVersionNumber () at
/usr/osg/OpenSceneGraph-2.6.0/src/osg/GLExtensions.cpp:47
#10 0x010adf34 in osg::State::initializeExtensionProcs (this=0x9196ce8) at
#/usr/osg/OpenSceneGraph-2.6.0/src/osg/State.cpp:757
#11 0x00961c1f in osgUtil::SceneView::draw (this=0x919d898) at
#/usr/osg/OpenSceneGraph-2.6.0/src/osgUtil/SceneView.cpp:988
#12 0x0063dd6a in osgViewer::Renderer::cull_draw (this=0x919d6d8) at
#/usr/osg/OpenSceneGraph-2.6.0/src/osgViewer/Renderer.cpp:535
#13 0x0063e83f in osgViewer::Renderer::operator() (this=0x919d6d8,
context=0x90e79f8) at
#/usr/osg/OpenSceneGraph-2.6.0/src/osgViewer/Renderer.cpp:636
#14 0x01028521 in osg::GraphicsContext::runOperations (this=0x90e79f8) at
#/usr/osg/OpenSceneGraph-2.6.0/src/osg/GraphicsContext.cpp:688
#15 0x00685289 in osgViewer::ViewerBase::renderingTraversals (this=0x90e6b88) at
#/usr/osg/OpenSceneGraph-2.6.0/src/osgViewer/ViewerBase.cpp:694
#16 0x00684a80 in osgViewer::ViewerBase::frame (this=0x90e6b88,
simulationTime=1.7976931348623157e+308) at
#/usr/osg/OpenSceneGraph-2.6.0/src/osgViewer/ViewerBase.cpp:592
#17 0x0805b4c7 in CompositeViewerQOSG::paintEvent (this=0x90e6b88,
event=0xbff758c0) at
#/usr/osg/OpenSceneGraph-2.6.0/examples/osgviewerQT/QOSGWidget.cpp:296
#18 0x0350c0bc in QWidget::event () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#19 0x034778f9 in QApplication::internalNotify () from
/usr/lib/qt-3.3/lib/libqt-mt.so.3
#20 0x03477a8a in QApplication::notify () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#21 0x03445f4c in QWidget::repaint () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#22 0x03507e0b in QWidget::repaint () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#23 0x0380ac13 in QWidget::qt_invoke () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#24 0x034d6450 in QObject::activate_signal () from
/usr/lib/qt-3.3/lib/libqt-mt.so.3
#25 0x034d6b2a in QObject::activate_signal () from
/usr/lib/qt-3.3/lib/libqt-mt.so.3
#26 0x0380929d in QTimer::timeout () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#27 0x034f615c in QTimer::event () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#28 0x034778f9 in QApplication::internalNotify () from
/usr/lib/qt-3.3/lib/libqt-mt.so.3
#29 0x03477a8a in QApplication::notify () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#30 0x0346bc6e in QEventLoop::activateTimers () from
/usr/lib/qt-3.3/lib/libqt-mt.so.3
#31 0x03427c2e in QEventLoop::processEvents () from
/usr/lib/qt-3.3/lib/libqt-mt.so.3
#32 0x0348cf25 in QEventLoop::enterLoop () from
/usr/lib/qt-3.3/lib/libqt-mt.so.3
#33 0x0348ce7e in QEventLoop::exec () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#34 0x03476afb in QApplication::exec () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#35 0x08058ac3 in mainQOSGWidget ([EMAIL PROTECTED], [EMAIL PROTECTED]) at
#/usr/osg/OpenSceneGraph-2.6.0/examples/osgviewerQT/QOSGWidget.cpp:383
#36 0x0805e927 in main (argc=2, argv=0xbff76184) at
#/usr/osg/OpenSceneGraph-2.6.0/examples/osgviewerQT/osgviewerQT.cpp:51
(gdb)
Is the driver on system 2 known to be buggy?
I saw the thread on the affect of the locale setting on getGLVersionNumber, but
I don't think that's the problem here. Local is LC_ALL=C on both of these systems.
I'll be glad to provide more specific information if that will help smooth out
the wrinkles with Qt integration here.
-Don Leich
>
> Hi all,
>
> I would like to know if in a correctly configured Linux, the osgviewerQT
> example works with the --QOSGWidget option ?
>
> I am asking that because we are currently trying to achieve something
> similar with WinForms on Linux (using Mono), and we are following the
> same way than the QT example and the QOSGWidget. The big deal is that we
> are working with VMWare, without real graphics drivers, and this example
> crash the same way as our application. That's why we would like to know
> if it's related to VMWare or not.
>
> Thanks in advance !
>
> --
> Serge Lages
> http://www.tharsis-software.com
>
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org