code: public void tick (long tickStamp)
      {
          // now tick our animations and sprites
          _animmgr.tick(tickStamp);
          _spritemgr.tick(tickStamp);
  
          // if performance debugging is enabled,
          if (FrameManager._perfDebug.getValue()) {
              if (_perfLabel == null) {
                  _perfLabel = new Label("", Label.OUTLINE, Color.white, Color.black,
                                         new Font("Arial", Font.PLAIN, 10));
              }
              if (_perfRect == null) {
                  _perfRect = new Rectangle(5, 5, 0, 0);
              }
  
              StringBuilder perf = new StringBuilder();
              perf.append("[FPS: ");
              perf.append(_framemgr.getPerfTicks()).append("/");
              perf.append(_framemgr.getPerfTries());
              perf.append(" PM:");
              StringUtil.toString(perf, _framemgr.getPerfMetrics());
  //             perf.append(" MP:").append(_dirtyPerTick);
              perf.append("]");
  
              String perfStatus = perf.toString();
              if (!_perfStatus.equals(perfStatus)) {
                  _perfStatus = perfStatus;
                  _perfLabel.setText(perfStatus);
  
                  Graphics2D gfx = _host.createGraphics();
                  if (gfx != null) {
                      _perfLabel.layout(gfx);
                      gfx.dispose();
  
                      // make sure the region we dirty contains the old and the new text (which we
                      // ensure by never letting the rect shrink)
                      Dimension psize = _perfLabel.getSize();
                      _perfRect.width = Math.max(_perfRect.width, psize.width);
                      _perfRect.height = Math.max(_perfRect.height, psize.height);
                      _remgr.addDirtyRegion(new Rectangle(_perfRect));
                  }
              }
          } else {
              _perfRect = null;
          }
      }
docs: Our media front end should implement {@link FrameParticipant} and call this method in their
  {@link FrameParticipant#tick} method. They must also first check {@link #isPaused} and not
  call this method if we are paused. As they will probably want to have willTick() and
  didTick() calldown methods, we cannot handle pausedness for them.