quit = true;
runExit();
    private void dispatchKey(char k) {      setFlag(k, !getFlag(k));      if ((k == (char) 27) || (k == 'q')) {        quit = true;	return;      }      switch (k) {        case 27:        case 'q':          quit = true;          break;        case 'w':          water.enableWireframe(getFlag('w'));          break;        case 'd':          // FIXME          /*          if (getKey('d')) {          glutMouseFunc(glh::glut_mouse_function);          glutMotionFunc(glh::glut_motion_function);          }          else          {          glutMouseFunc(Mouse);          glutMotionFunc(Motion);          }          */          break;        case ' ':          water.enableAnimation(getFlag(' '));          break;        case 'b':          water.enableBorderWrapping(getFlag('b'));          break;        case 'n':          water.singleStep();          break;        case 's':          water.enableSlowAnimation(getFlag('s'));          break;        case '1':          water.setRenderMode(Water.CA_FULLSCREEN_REFLECT);          break;        case '2':          water.setRenderMode(Water.CA_FULLSCREEN_HEIGHT);          break;        case '3':          water.setRenderMode(Water.CA_FULLSCREEN_FORCE);          break;        case '4':          water.setRenderMode(Water.CA_FULLSCREEN_NORMALMAP);          break;        case '5':          water.setRenderMode(Water.CA_TILED_THREE_WINDOWS);          break;        case 'r':          water.reset();          break;            case 'i':          // FIXME: make sure this is what this does          doViewAll = true;          //          gluPerspective(90, 1, .01, 10);          break;        case 'c': {          float dist = water.getBlurDistance();          if (dist > blurIncrement)            water.setBlurDistance(dist - blurIncrement);          break;        }        case 'v': {          float dist = water.getBlurDistance();          if (dist < 1)            water.setBlurDistance(dist + blurIncrement);          break;        }        case '-': {          float scale = water.getBumpScale();          if (scale > -1)            water.setBumpScale(scale - bumpIncrement);          break;        }        case '=': {          float scale = water.getBumpScale();          if (scale < 1)            water.setBumpScale(scale + bumpIncrement);          break;        }        case 'l':          water.enableBoundaryApplication(getFlag('l'));          break;        case 'o':          water.enableSpinningLogo(getFlag('o'));          break;        case '.': {          float frequency = water.getBumpScale();          if (frequency < 1)            water.setDropFrequency(frequency + frequencyIncrement);          break;        }        case ',': {          float frequency = water.getBumpScale();          if (frequency > 0)            water.setDropFrequency(frequency - frequencyIncrement);          break;        }        default:          break;      }    }