System.err.println("Chosen GLCapabilities: " + drawable.getChosenGLCapabilities());
  public void init(GLAutoDrawable drawable) {    // Use debug pipeline    // drawable.setGL(new DebugGL(drawable.getGL()));    GL gl = drawable.getGL();    System.err.println("INIT GL IS: " + gl.getClass().getName());    gl.setSwapInterval(1);    float pos[] = { 5.0f, 5.0f, 10.0f, 0.0f };    float red[] = { 0.8f, 0.1f, 0.0f, 1.0f };    float green[] = { 0.0f, 0.8f, 0.2f, 1.0f };    float blue[] = { 0.2f, 0.2f, 1.0f, 1.0f };    gl.glLightfv(GL.GL_LIGHT0, GL.GL_POSITION, pos, 0);    gl.glEnable(GL.GL_CULL_FACE);    gl.glEnable(GL.GL_LIGHTING);    gl.glEnable(GL.GL_LIGHT0);    gl.glEnable(GL.GL_DEPTH_TEST);                /* make the gears */    gear1 = gl.glGenLists(1);    gl.glNewList(gear1, GL.GL_COMPILE);    gl.glMaterialfv(GL.GL_FRONT, GL.GL_AMBIENT_AND_DIFFUSE, red, 0);    gear(gl, 1.0f, 4.0f, 1.0f, 20, 0.7f);    gl.glEndList();                gear2 = gl.glGenLists(1);    gl.glNewList(gear2, GL.GL_COMPILE);    gl.glMaterialfv(GL.GL_FRONT, GL.GL_AMBIENT_AND_DIFFUSE, green, 0);    gear(gl, 0.5f, 2.0f, 2.0f, 10, 0.7f);    gl.glEndList();                gear3 = gl.glGenLists(1);    gl.glNewList(gear3, GL.GL_COMPILE);    gl.glMaterialfv(GL.GL_FRONT, GL.GL_AMBIENT_AND_DIFFUSE, blue, 0);    gear(gl, 1.3f, 2.0f, 0.5f, 10, 0.7f);    gl.glEndList();                gl.glEnable(GL.GL_NORMALIZE);                    drawable.addMouseListener(this);    drawable.addMouseMotionListener(this);  }