diff --git a/examples/osgviewerQt/osgviewerQt.cpp b/examples/osgviewerQt/osgviewerQt.cpp index e2e1f3fcc..ec4c302c4 100644 --- a/examples/osgviewerQt/osgviewerQt.cpp +++ b/examples/osgviewerQt/osgviewerQt.cpp @@ -105,6 +105,12 @@ int main( int argc, char** argv ) while (arguments.read("--DrawThreadPerContext")) threadingModel = osgViewer::ViewerBase::DrawThreadPerContext; while (arguments.read("--CullThreadPerCameraDrawThreadPerContext")) threadingModel = osgViewer::ViewerBase::CullThreadPerCameraDrawThreadPerContext; +#if QT_VERSION >= 0x040800 + // Required for multithreaded QGLWidget on Linux/X11, see http://blog.qt.io/blog/2011/06/03/threaded-opengl-in-4-8/ + if (threadingModel != osgViewer::ViewerBase::SingleThreaded) + QApplication::setAttribute(Qt::AA_X11InitThreads); +#endif + QApplication app(argc, argv); ViewerWidget* viewWidget = new ViewerWidget(0, Qt::Widget, threadingModel); viewWidget->setGeometry( 100, 100, 800, 600 );