<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">It would be easy enough to wrap all the Qt supported versions/profiles to PyQt but that would add another 23 modules which I don't really want to do.<br></blockquote><div><br></div><div>I thought it might be something like that.  It definitely seems sensible to not add a bunch of modules that will usually be unused.  However, not having them means that basically all PyQt deployments are going to fail when you try and use this direct OpenGL functionality (since there _are_ so many versions people will have).</div></div><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">PyQt currently only implements 2.0, 2.1 and 4.1Core. You can specify an explicit version by passing a suitably configured QOpenGLVersionProfile instance to versionFunctions()</blockquote><div><br></div><div>Looking into how to make a proper QOpenGLVersionProfile, I came across this link:</div><div><br></div><div><a href="https://mail.python.org/pipermail/python-list/2016-October/715229.html">https://mail.python.org/pipermail/python-list/2016-October/715229.html</a><br></div><div><br></div><div>From that I am now a wee bit further.  No error, but I also get "None" for the GL strings:</div><div><br></div><div><font face="monospace, monospace">```</font></div><div><font face="monospace, monospace">>>> import sys</font></div><div><font face="monospace, monospace">>>> from PyQt5 import Qt, QtWidgets, QtOpenGL, QtGui</font></div><div><font face="monospace, monospace">>>> app = QtWidgets.QApplication(sys.argv)</font></div><div><font face="monospace, monospace">>>> glw = QtOpenGL.QGLWidget()</font></div><div><font face="monospace, monospace">>>> glw.glInit()</font></div><div><font face="monospace, monospace">>>> ctx = Qt.QOpenGLContext.currentContext()</font></div><div><font face="monospace, monospace">>>> sf = QtGui.QSurfaceFormat()</font></div><div><font face="monospace, monospace">>>> vp = QtGui.QOpenGLVersionProfile(sf)</font></div><div><font face="monospace, monospace">>>> vf = ctx.versionFunctions(vp)</font></div><div><font face="monospace, monospace">>>> # No error! \o/  But...</font></div><div><font face="monospace, monospace">>>> vf.glGetString(vf.GL_RENDERER)</font></div><div><font face="monospace, monospace">>>> vf.glGetString(vf.GL_VERSION)</font></div><div><font face="monospace, monospace">>>> vf.glGetString(vf.GL_VENDOR)</font></div><div><font face="monospace, monospace">>>> vf.GL_RENDERER</font></div><div><font face="monospace, monospace">7937</font></div><div><font face="monospace, monospace">```</font></div><div><br></div><div>All of those are obviously None.  Is this an actual NULL return due to a problem, or is it a stub function return because the QOpenGLVersionProfile wasn't actually configured suitably? I have no idea.</div><div><br></div><div>The above sequence seems to have gone with version 2.0, per this error:</div><div><br></div><div><font face="monospace, monospace">```</font></div><div><font face="monospace, monospace">>>> vf.foo</font></div><div><font face="monospace, monospace">Traceback (most recent call last):</font></div><div><font face="monospace, monospace">  File "<input>", line 1, in <module></font></div><div><font face="monospace, monospace">    vf.foo</font></div><div><font face="monospace, monospace">AttributeError: 'QOpenGLFunctions_2_0' object has no attribute 'foo'</font></div><div><font face="monospace, monospace">```</font></div><div><br></div><div>I _think_ this is what I expected after reading that Qt drops to 2.0 for compatibility (at least for Qt Quick).</div><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
I know almost nothing about OpenGL and have been looking for years for somebody knowledgeable to help (by answering my dumb questions rather than writing code), but with no look so far.<br></blockquote><div><br></div><div>I really wish I could help here, but I also know very little about OpenGL. Sorry. :(</div><div><br></div><div>Russ</div><div><br></div></div>
</div></div>