protected void handle_keyboard (int key, int state, int x, int y) {
    switch (key) {
    case 'x':                   // fall through
    case 'X': gl.rotatef (30.0f, 1.0f, 0.0f, 0.0f); break;
    case 'y':                   // fall through
    case 'Y': gl.rotatef (30.0f, 0.0f, 1.0f, 0.0f); break;
    case 'r':                   // fall through

    case 'R':
      gl.load_identity ();
      glu.look_at (0.0, 0.0, 10.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
      break;
    }

    mark_window_dirty ();
  }