quit = true;
    public void init(GLDrawable drawable) {      GL gl = drawable.getGL();      try {	checkExtension(gl, "GL_ARB_multitexture");	checkExtension(gl, "GL_NV_vertex_program");	checkExtension(gl, "GL_NV_texture_shader");	checkExtension(gl, "GL_NV_register_combiners");	checkExtension(gl, "GL_ARB_pbuffer");	checkExtension(gl, "GL_ARB_pixel_format");      } catch (GLException e) {	e.printStackTrace();        quit = true;	throw(e);      }            gl.glClearColor(0, 0.2f, 0.5f, 0);      gl.glDisable(GL.GL_LIGHTING);      gl.glDisable(GL.GL_DEPTH_TEST);      gl.glDisable(GL.GL_CULL_FACE);      // Register the window with the ManipManager      ManipManager manager = ManipManager.getManipManager();      manager.registerWindow(drawable);      viewer = new ExaminerViewer(MouseButtonHelper.numMouseButtons());      viewer.attach(drawable, new BSphereProvider() {	  public BSphere getBoundingSphere() {	    return new BSphere(new Vec3f(0, 0, 0), 1.2f);	  }	});      viewer.setVertFOV((float) (15.0f * Math.PI / 32.0f));      viewer.setZNear(zNear);      viewer.setZFar(zFar);      drawable.addKeyListener(new KeyAdapter() {          public void keyPressed(KeyEvent e) {            dispatchKey(e.getKeyChar());          }        });      drawable.addMouseListener(new MouseAdapter() {          public void mousePressed(MouseEvent e) {            if (e.getButton() == MouseEvent.BUTTON1 &&                !e.isAltDown() && !e.isMetaDown()) {              drawing = true;            }          }          public void mouseReleased(MouseEvent e) {            if (e.getButton() == MouseEvent.BUTTON1) {              drawing = false;            }          }        });      drawable.addMouseMotionListener(new MouseMotionAdapter() {          public void mouseDragged(MouseEvent e) {            mousePosX = e.getX();            mousePosY = e.getY();          }                    });    }