code: def display(*args):
      global MyDataX, MyDataV, clDataX, clDataV, Step, Method, Number, Iterations, Durations, Verbose, SpeedRendering
  
      gl.glClearColor(0.0, 0.0, 0.0, 0.0)
      gl.glClear(gl.GL_COLOR_BUFFER_BIT)
      gl.glColor3f(1.0, 1.0, 1.0)
  
      MainOpenCL(clDataX, clDataV, Step, Method)
      if SpeedRendering:
          cl.enqueue_copy(queue, MyDataV, clDataV)
          MyDataV.reshape(Number, 4)[:, 3] = 1
          gl.glVertexPointerf(MyDataV.reshape(Number, 4))
      else:
          cl.enqueue_copy(queue, MyDataX, clDataX)
          MyDataX.reshape(Number, 4)[:, 3] = 1
          gl.glVertexPointerf(MyDataX.reshape(Number, 4))
  
      if Verbose:
          print(
              "Positions for #%s iteration: %s" % (Iterations, MyDataX)
          )
      else:
          sys.stdout.write(".")
          sys.stdout.flush()
      Durations = np.append(
          Durations, MainOpenCL(clDataX, clDataV, Step, Method)
      )
      gl.glEnableClientState(gl.GL_VERTEX_ARRAY)
      gl.glDrawArrays(gl.GL_POINTS, 0, Number)
      gl.glDisableClientState(gl.GL_VERTEX_ARRAY)
      gl.glFlush()
      Iterations += 1
      glut.glutSwapBuffers()
  
file_path: pyopencl/examples/n-body.py
imports: import getopt
  import sys
  import time
  import numpy
  import pyopencl
  import pyopencl.array
  from numpy.random import randint
label_desc: Use image node_id 3 for calling a global function with example usage: display() without return types