prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  [CI-fail] GLScatterPlotItem failing on Windows Builds
  ```
  Traceback (most recent call last):
  
    File "c:\hostedtoolcache\windows\python\3.7.3\x64\lib\site-packages\OpenGL\latebind.py", line 41, in __call__
  
      return self._finalCall( *args, **named )
  
  TypeError: 'NoneType' object is not callable
  
  
  
  During handling of the above exception, another exception occurred:
  
  
  
  Traceback (most recent call last):
  
    File "D:\a\1\s\pyqtgraph\opengl\GLViewWidget.py", line 60, in addItem
  
      item.initializeGL()
  
    File "D:\a\1\s\pyqtgraph\opengl\items\GLScatterPlotItem.py", line 70, in initializeGL
  
      self.pointTexture = glGenTextures(1)
  
    File "c:\hostedtoolcache\windows\python\3.7.3\x64\lib\site-packages\OpenGL\latebind.py", line 61, in __call__
  
      return self.wrapperFunction( self.baseFunction, *args, **named )
  
    File "c:\hostedtoolcache\windows\python\3.7.3\x64\lib\site-packages\OpenGL\GL\exceptional.py", line 178, in glGenTextures
  
      baseFunction( count, textures)
  
    File "c:\hostedtoolcache\windows\python\3.7.3\x64\lib\site-packages\OpenGL\latebind.py", line 45, in __call__
  
      return self._finalCall( *args, **named )
  
    File "c:\hostedtoolcache\windows\python\3.7.3\x64\lib\site-packages\OpenGL\wrapper.py", line 664, in wrapperCall
  
      raise err
  
    File "c:\hostedtoolcache\windows\python\3.7.3\x64\lib\site-packages\OpenGL\wrapper.py", line 657, in wrapperCall
  
      result = wrappedOperation( *cArguments )
  
    File "c:\hostedtoolcache\windows\python\3.7.3\x64\lib\site-packages\OpenGL\platform\baseplatform.py", line 402, in __call__
  
      return self( *args, **named )
  
    File "c:\hostedtoolcache\windows\python\3.7.3\x64\lib\site-packages\OpenGL\error.py", line 232, in glCheckError
  
      baseOperation = baseOperation,
  
  OpenGL.error.GLError: GLError(
  
  	err = 1282,
  
  	description = b'invalid operation',
  
  	baseOperation = glGenTextures,
  
  	pyArgs = (1, c_ulong(0)),
  
  	cArgs = (1, <cparam 'P' (00000158BE5A9310)>),
  
  	cArguments = (1, <cparam 'P' (00000158BE5A9310)>)
  
  )
  
  
  
  During handling of the above exception, another exception occurred:
  
  
  
  Traceback (most recent call last):
  
    File "<stdin>", line 7, in <module>
  
    File "D:\a\1\s\examples\GLScatterPlotItem.py", line 46, in <module>
  
      w.addItem(sp1)
  
    File "D:\a\1\s\pyqtgraph\opengl\GLViewWidget.py", line 62, in addItem
  
      self.checkOpenGLVersion('Error while adding item %s to GLViewWidget.' % str(item))
  
    File "D:\a\1\s\pyqtgraph\opengl\GLViewWidget.py", line 429, in checkOpenGLVersion
  
      ver = glGetString(GL_VERSION).split()[0]
  
    File "c:\hostedtoolcache\windows\python\3.7.3\x64\lib\site-packages\OpenGL\platform\baseplatform.py", line 402, in __call__
  
      return self( *args, **named )
  
    File "c:\hostedtoolcache\windows\python\3.7.3\x64\lib\site-packages\OpenGL\error.py", line 232, in glCheckError
  
      baseOperation = baseOperation,
  
  OpenGL.error.GLError: GLError(
  
  	err = 1282,
  
  	description = b'invalid operation',
  
  	baseOperation = glGetString,
  
  	cArguments = (GL_VERSION,)
  
  )
  
  
  Failed Scatter Plot Example Test Located in GLScatterPlotItem.py 
  ```
  
  Likely related to #928 
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `pyqtgraph/opengl/glInfo.py`
  Content:
  ```
  1 from ..Qt import QtCore, QtGui, QtOpenGL
  2 from OpenGL.GL import *
  3 app = QtGui.QApplication([])
  4 
  5 class GLTest(QtOpenGL.QGLWidget):
  6     def __init__(self):
  7         QtOpenGL.QGLWidget.__init__(self)
  8         self.makeCurrent()
  9         print("GL version:" + glGetString(GL_VERSION))
  10         print("MAX_TEXTURE_SIZE: %d" % glGetIntegerv(GL_MAX_TEXTURE_SIZE))
  11         print("MAX_3D_TEXTURE_SIZE: %d" % glGetIntegerv(GL_MAX_3D_TEXTURE_SIZE))
  12         print("Extensions: " + glGetString(GL_EXTENSIONS))
  13 
  14 GLTest()
  15 
  16 
  17
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/pyqtgraph/opengl/glInfo.py b/pyqtgraph/opengl/glInfo.py
  --- a/pyqtgraph/opengl/glInfo.py
  +++ b/pyqtgraph/opengl/glInfo.py
  @@ -6,10 +6,10 @@
       def __init__(self):
           QtOpenGL.QGLWidget.__init__(self)
           self.makeCurrent()
  -        print("GL version:" + glGetString(GL_VERSION))
  +        print("GL version:" + glGetString(GL_VERSION).decode("utf-8"))
           print("MAX_TEXTURE_SIZE: %d" % glGetIntegerv(GL_MAX_TEXTURE_SIZE))
           print("MAX_3D_TEXTURE_SIZE: %d" % glGetIntegerv(GL_MAX_3D_TEXTURE_SIZE))
  -        print("Extensions: " + glGetString(GL_EXTENSIONS))
  +        print("Extensions: " + glGetString(GL_EXTENSIONS).decode("utf-8").replace(" ", "\n"))
   
   GLTest()
  
verification_info: {"golden_diff": "diff --git a/pyqtgraph/opengl/glInfo.py b/pyqtgraph/opengl/glInfo.py\n--- a/pyqtgraph/opengl/glInfo.py\n+++ b/pyqtgraph/opengl/glInfo.py\n@@ -6,10 +6,10 @@\n     def __init__(self):\n         QtOpenGL.QGLWidget.__init__(self)\n         self.makeCurrent()\n-        print(\"GL version:\" + glGetString(GL_VERSION))\n+        print(\"GL version:\" + glGetString(GL_VERSION).decode(\"utf-8\"))\n         print(\"MAX_TEXTURE_SIZE: %d\" % glGetIntegerv(GL_MAX_TEXTURE_SIZE))\n         print(\"MAX_3D_TEXTURE_SIZE: %d\" % glGetIntegerv(GL_MAX_3D_TEXTURE_SIZE))\n-        print(\"Extensions: \" + glGetString(GL_EXTENSIONS))\n+        print(\"Extensions: \" + glGetString(GL_EXTENSIONS).decode(\"utf-8\").replace(\" \", \"\\n\"))\n \n GLTest()\n", "issue": "[CI-fail] GLScatterPlotItem failing on Windows Builds\n```\r\nTraceback (most recent call last):\r\n\r\n  File \"c:\\hostedtoolcache\\windows\\python\\3.7.3\\x64\\lib\\site-packages\\OpenGL\\latebind.py\", line 41, in __call__\r\n\r\n    return self._finalCall( *args, **named )\r\n\r\nTypeError: 'NoneType' object is not callable\r\n\r\n\r\n\r\nDuring handling of the above exception, another exception occurred:\r\n\r\n\r\n\r\nTraceback (most recent call last):\r\n\r\n  File \"D:\\a\\1\\s\\pyqtgraph\\opengl\\GLViewWidget.py\", line 60, in addItem\r\n\r\n    item.initializeGL()\r\n\r\n  File \"D:\\a\\1\\s\\pyqtgraph\\opengl\\items\\GLScatterPlotItem.py\", line 70, in initializeGL\r\n\r\n    self.pointTexture = glGenTextures(1)\r\n\r\n  File \"c:\\hostedtoolcache\\windows\\python\\3.7.3\\x64\\lib\\site-packages\\OpenGL\\latebind.py\", line 61, in __call__\r\n\r\n    return self.wrapperFunction( self.baseFunction, *args, **named )\r\n\r\n  File \"c:\\hostedtoolcache\\windows\\python\\3.7.3\\x64\\lib\\site-packages\\OpenGL\\GL\\exceptional.py\", line 178, in glGenTextures\r\n\r\n    baseFunction( count, textures)\r\n\r\n  File \"c:\\hostedtoolcache\\windows\\python\\3.7.3\\x64\\lib\\site-packages\\OpenGL\\latebind.py\", line 45, in __call__\r\n\r\n    return self._finalCall( *args, **named )\r\n\r\n  File \"c:\\hostedtoolcache\\windows\\python\\3.7.3\\x64\\lib\\site-packages\\OpenGL\\wrapper.py\", line 664, in wrapperCall\r\n\r\n    raise err\r\n\r\n  File \"c:\\hostedtoolcache\\windows\\python\\3.7.3\\x64\\lib\\site-packages\\OpenGL\\wrapper.py\", line 657, in wrapperCall\r\n\r\n    result = wrappedOperation( *cArguments )\r\n\r\n  File \"c:\\hostedtoolcache\\windows\\python\\3.7.3\\x64\\lib\\site-packages\\OpenGL\\platform\\baseplatform.py\", line 402, in __call__\r\n\r\n    return self( *args, **named )\r\n\r\n  File \"c:\\hostedtoolcache\\windows\\python\\3.7.3\\x64\\lib\\site-packages\\OpenGL\\error.py\", line 232, in glCheckError\r\n\r\n    baseOperation = baseOperation,\r\n\r\nOpenGL.error.GLError: GLError(\r\n\r\n\terr = 1282,\r\n\r\n\tdescription = b'invalid operation',\r\n\r\n\tbaseOperation = glGenTextures,\r\n\r\n\tpyArgs = (1, c_ulong(0)),\r\n\r\n\tcArgs = (1, <cparam 'P' (00000158BE5A9310)>),\r\n\r\n\tcArguments = (1, <cparam 'P' (00000158BE5A9310)>)\r\n\r\n)\r\n\r\n\r\n\r\nDuring handling of the above exception, another exception occurred:\r\n\r\n\r\n\r\nTraceback (most recent call last):\r\n\r\n  File \"<stdin>\", line 7, in <module>\r\n\r\n  File \"D:\\a\\1\\s\\examples\\GLScatterPlotItem.py\", line 46, in <module>\r\n\r\n    w.addItem(sp1)\r\n\r\n  File \"D:\\a\\1\\s\\pyqtgraph\\opengl\\GLViewWidget.py\", line 62, in addItem\r\n\r\n    self.checkOpenGLVersion('Error while adding item %s to GLViewWidget.' % str(item))\r\n\r\n  File \"D:\\a\\1\\s\\pyqtgraph\\opengl\\GLViewWidget.py\", line 429, in checkOpenGLVersion\r\n\r\n    ver = glGetString(GL_VERSION).split()[0]\r\n\r\n  File \"c:\\hostedtoolcache\\windows\\python\\3.7.3\\x64\\lib\\site-packages\\OpenGL\\platform\\baseplatform.py\", line 402, in __call__\r\n\r\n    return self( *args, **named )\r\n\r\n  File \"c:\\hostedtoolcache\\windows\\python\\3.7.3\\x64\\lib\\site-packages\\OpenGL\\error.py\", line 232, in glCheckError\r\n\r\n    baseOperation = baseOperation,\r\n\r\nOpenGL.error.GLError: GLError(\r\n\r\n\terr = 1282,\r\n\r\n\tdescription = b'invalid operation',\r\n\r\n\tbaseOperation = glGetString,\r\n\r\n\tcArguments = (GL_VERSION,)\r\n\r\n)\r\n\r\n\r\nFailed Scatter Plot Example Test Located in GLScatterPlotItem.py \r\n```\r\n\r\nLikely related to #928 \n", "before_files": [{"content": "from ..Qt import QtCore, QtGui, QtOpenGL\nfrom OpenGL.GL import *\napp = QtGui.QApplication([])\n\nclass GLTest(QtOpenGL.QGLWidget):\n    def __init__(self):\n        QtOpenGL.QGLWidget.__init__(self)\n        self.makeCurrent()\n        print(\"GL version:\" + glGetString(GL_VERSION))\n        print(\"MAX_TEXTURE_SIZE: %d\" % glGetIntegerv(GL_MAX_TEXTURE_SIZE))\n        print(\"MAX_3D_TEXTURE_SIZE: %d\" % glGetIntegerv(GL_MAX_3D_TEXTURE_SIZE))\n        print(\"Extensions: \" + glGetString(GL_EXTENSIONS))\n\nGLTest()\n\n\n", "path": "pyqtgraph/opengl/glInfo.py"}], "after_files": [{"content": "from ..Qt import QtCore, QtGui, QtOpenGL\nfrom OpenGL.GL import *\napp = QtGui.QApplication([])\n\nclass GLTest(QtOpenGL.QGLWidget):\n    def __init__(self):\n        QtOpenGL.QGLWidget.__init__(self)\n        self.makeCurrent()\n        print(\"GL version:\" + glGetString(GL_VERSION).decode(\"utf-8\"))\n        print(\"MAX_TEXTURE_SIZE: %d\" % glGetIntegerv(GL_MAX_TEXTURE_SIZE))\n        print(\"MAX_3D_TEXTURE_SIZE: %d\" % glGetIntegerv(GL_MAX_3D_TEXTURE_SIZE))\n        print(\"Extensions: \" + glGetString(GL_EXTENSIONS).decode(\"utf-8\").replace(\" \", \"\\n\"))\n\nGLTest()\n\n\n", "path": "pyqtgraph/opengl/glInfo.py"}]}