@@ -29,12 +29,18 @@ class GLViewWidget(QtOpenGL.QGLWidget):
self.keysPressed={}
self.keyTimer=QtCore.QTimer()
self.keyTimer.timeout.connect(self.evalKeyState)
self.makeCurrent()
defaddItem(self,item):
self.items.append(item)
ifhasattr(item,'initializeGL'):
self.makeCurrent()
item.initializeGL()
try:
item.initializeGL()
except:
self.checkOpenGLVersion('Error while adding item %s to GLViewWidget.'%str(item))
item._setView(self)
#print "set view", item, self, item.view()
self.update()
...
...
@@ -100,9 +106,15 @@ class GLViewWidget(QtOpenGL.QGLWidget):
glPushAttrib(GL_ALL_ATTRIB_BITS)
i.paint()
except:
importsys
sys.excepthook(*sys.exc_info())
print("Error while drawing item",i)
importpyqtgraph.debug
pyqtgraph.debug.printExc()
msg="Error while drawing item %s."%str(item)
ver=glGetString(GL_VERSION).split()[0]
ifint(ver.split('.')[0])<2:
print(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:
print(msg)
finally:
glPopAttrib(GL_ALL_ATTRIB_BITS)
else:
...
...
@@ -237,4 +249,15 @@ class GLViewWidget(QtOpenGL.QGLWidget):
else:
self.keyTimer.stop()
defcheckOpenGLVersion(self,msg):
## Only to be called from within exception handler.
ver=glGetString(GL_VERSION).split()[0]
ifint(ver.split('.')[0])<2:
importpyqtgraph.debug
pyqtgraph.debug.printExc()
raiseException(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)