class_docstr: Draws points at a list of 3D positions.
code: def initializeGL(self):
      if self.shader is not None:
          return
  
      ## Generate texture for rendering points
      w = 64
  
      def genTexture(x, y):
          r = np.hypot((x - (w - 1) / 2.0), (y - (w - 1) / 2.0))
          return 255 * (w / 2 - fn.clip_array(r, w / 2 - 1, w / 2))
  
      pData = np.empty((w, w, 4))
      pData[:] = 255
      pData[:, :, 3] = np.fromfunction(genTexture, pData.shape[:2])
      pData = pData.astype(np.ubyte)
  
      if getattr(self, "pointTexture", None) is None:
          self.pointTexture = glGenTextures(1)
      glActiveTexture(GL_TEXTURE0)
      glEnable(GL_TEXTURE_2D)
      glBindTexture(GL_TEXTURE_2D, self.pointTexture)
      glTexImage2D(
          GL_TEXTURE_2D,
          0,
          GL_RGBA,
          pData.shape[0],
          pData.shape[1],
          0,
          GL_RGBA,
          GL_UNSIGNED_BYTE,
          pData,
      )
  
      self.shader = shaders.getShaderProgram("pointSprite")
  
file_path: pyqtgraph/pyqtgraph/opengl/items/GLScatterPlotItem.py
imports: from OpenGL.GL import *
  import numpy
  from ...None import functions
  from ...Qt import QtGui
  from ..None import shaders
  from ..GLGraphicsItem import GLGraphicsItem
label_desc: Use image node_id 3 for calling the GLScatterPlotItem obj's underlying member method code with example usage: obj.initializeGL() and returns: unknown