Issue #1260: Added exception to checkOpenGLVersion to highlight OpenGL ES incompatibility on Raspberry Pi (#1264)

* checkOpenGLVersion exception for OpenGL ES

* checkOpenGLVersion exception

* checkOpenGLVersion exception

* python 2/3 compatibility

* Refactoring checkOpenGLVersion

Since the original goal of `checkOpenGLVersion` is to re-throw an exception or notify the user about a wrong OpenGL version in another exception, this commit unifies the two exception messages from `checkOpenGLVersion`.
Further, it corrects ">" to ">=" in the error message (originally my fault).
And it corrects verNumber to be an integer and not a boolean (there was a " < 2" too much at the end of the line).
Finally, since the opportunity was there, the method is further refactored, comments and a docstring are added.

Co-authored-by: 2xB <2xb@users.noreply.github.com>
This commit is contained in:
jeremysee2 2020-06-22 04:59:44 +08:00 committed by GitHub
parent e5a1327041
commit f81768ac59
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -425,14 +425,34 @@ class GLViewWidget(QtOpenGL.QGLWidget):
self.keyTimer.stop()
def checkOpenGLVersion(self, msg):
## Only to be called from within exception handler.
ver = glGetString(GL_VERSION).split()[0]
if int(ver.split(b'.')[0]) < 2:
"""
Give exception additional context about version support.
Only to be called from within exception handler.
As this check is only performed on error,
unsupported versions might still work!
"""
# Check for unsupported version
verString = glGetString(GL_VERSION)
ver = verString.split()[0]
# If not OpenGL ES...
if str(ver.split(b'.')[0]).isdigit():
verNumber = int(ver.split(b'.')[0])
# ...and version is supported:
if verNumber >= 2:
# OpenGL version is fine, raise the original exception
raise
# Print original exception
from .. import debug
debug.printExc()
raise Exception(msg + " The original exception is printed above; however, pyqtgraph requires OpenGL version 2.0 or greater for many of its 3D features and your OpenGL version is %s. Installing updated display drivers may resolve this issue." % ver)
else:
raise
# Notify about unsupported version
raise Exception(
msg + "\n" + \
"pyqtgraph.opengl: Requires >= OpenGL 2.0 (not ES); Found %s" % verString
)
def readQImage(self):
"""