<html><head></head><body><p dir="ltr">Hi Daniel,<br>
We are also using OSG together with modeen shaders like geometry shaders. We have to do a lot of online presentations and online support. This works perfect with TeamViewer. May this be an option for you?</p>
<br><br><div class="gmail_quote">On 9. September 2016 18:04:13 MESZ, Daniel Neos <daniel.rd@hotmail.de> wrote:<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<pre class="k9mail">Hi,<br /><br />my Applcation mainly uses Qt(with QOpenGlWidget) and OpensceneGraph, thus it relies heavily on OpenGL.<br /><br />Since the Remote Desktop Protocol(RDP) poorly supports OpenGL, there is no trivial way to run<br />my application over Windows Remote Desktop. Hence, I choose to use Softwarerendering as a fallback.<br /><br />I can tell Qt which opengl version to use programmatically with QCoreApplication::setAttribute(Qt::AA_UseDesktopOpenGL, true);<br />or QCoreApplication::setAttribute(Qt::AA_UseSoftwareOpenGL, true);<br /><br />But osg seems to strictly link against opengl.dll from the desktop version, no matter if i am delay loading the osg*.dll i am using or not.<br /><br />When delay loading the osg*.dll , the desktop version will be loaded when the application makes it first contact with osg-related stuff, <br />in my case it is an objects which inherits from QOpenGLWidget integrating the openscenegraph view<br /><br /><br />Code:<br /><
br
/>OSGWidget::OSGWidget(QWidget* parent, Qt::WindowFlags f)<br /> : QOpenGLWidget(parent, f)<br /> , m_graphicsWindow(new osgViewer::GraphicsWindowEmbedded(x(),<br /> y(),<br /> width(),<br /> height()))<br /> , m_geometry(new osg::Geometry())<br /> , m_isInitialized(false)<br /> , m_compositeViewer(new osgViewer::CompositeViewer)<br /> , m_camera(new osg::Camera)<br /> , m_view(new OsgView)<br /> , m_geometryNode(new osg::Geode)<br /> , m_pickEventHandler(new PickEventHandler(static_cast<OSGWidget&>(*this)))<br /> , m_camManipulator(new OsgCameraManipulator)<br /> , m_depthData(nullptr)<br /> , m_markedPoint(QPoint(DepthDataSet::InvalidPixelCoordinateValue, DepthDataSet::InvalidPixelCoordinateValue))<br /> , m_isMarkedPointVisible(false)<br /> , m_isRendering(false)<br />{<br />}<br /><br /><br /><br /><br /><br />Everything works fine using the desktop version of openg. But If I am trying to link agains
t the
opengl32sw.dll(from Qt), <br />osg seems to ignore it and links the desktopOpenGL.<br /><br />The leads to the problem that the application crashes in the deep of osg.<br />To be more specific, here is an excerpt of the callstack from top to bottom.<br /><br />->OSGWidget::paintGL()<br /> ->m_compositeViewer->renderingTraversals()<br /> -> ViewerBase::makeCurrent()<br /> -> osg::GraphicsContext::makeCurrent() <br /> -> osg::State::initializeExtensionProcs()<br /><br /><br />Here I need to say that my first step is trying to run the application with<br />software rendering only, before switching to Remote Desktop.<br /><br /><br />I suspect that the mixture of the opengl32.dll versions leads to crash the application or maybe<br />even somethings is wrong with the opengl32sw.dll from Qt. But everything non-related to osg seems<br />to be displayed fine. I am using osg 3.4.0 and Qt 5.7<br /><br /><br />So how can I run osg Code based on Software rendering
?<br
/><br /><br /><br /><br /><br />Thank you!<br /><br />Cheers,<br />Daniel[/b][/code]<br /><br />------------------<br />Read this topic online here:<br /><a href="http://forum.openscenegraph.org/viewtopic.php?p=68563#68563">http://forum.openscenegraph.org/viewtopic.php?p=68563#68563</a><br /><br /><br /><br /><br /><br /><hr /><br />osg-users mailing list<br />osg-users@lists.openscenegraph.org<br /><a href="http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org">http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org</a><br /></pre></blockquote></div></body></html>