code: def glut_window():
      glutInit(sys.argv)
      glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH)
      glutInitWindowSize(width, height)
      glutInitWindowPosition(0, 0)
      window = glutCreateWindow("Particle Simulation")
  
      glutDisplayFunc(on_display)  # Called by GLUT every frame
      glutKeyboardFunc(on_key)
      glutMouseFunc(on_click)
      glutMotionFunc(on_mouse_move)
      glutTimerFunc(10, on_timer, 10)  # Call draw every 30 ms
  
      glViewport(0, 0, width, height)
      glMatrixMode(GL_PROJECTION)
      glLoadIdentity()
      gluPerspective(60.0, width / float(height), 0.1, 1000.0)
  
      return window
  
file_path: pyopencl/examples/gl_particle_animation.py
imports: import pyopencl
  from pyopencl.tools import get_gl_sharing_context_properties
  from OpenGL.GL import *
  from OpenGL.GLU import *
  from OpenGL.GLUT import *
  from OpenGL.arrays import vbo
  import numpy
  import sys
label_desc: Use image node_id 1 for calling a global function with example usage: glut_window() and returns: window