protected void handle_keyboard (int key, int state, int x, int y) {
    switch (key) {
    case 'e':                   // fall through
    case 'E': gl.fogi (GL.FOG_MODE, GL.EXP); break;
    case 's':                   // fall through
    case 'S': gl.fogi (GL.FOG_MODE, GL.EXP2); break;

    case 'l':                   // fall through
    case 'L':                   
      gl.fogf (GL.FOG_START, 1.0f);
      gl.fogf (GL.FOG_END, 5.0f);
      gl.fogi (GL.FOG_MODE, GL.LINEAR);
      break;

    default: return;
    }

    mark_window_dirty ();
  }