record method

void record(
  1. FrameTiming timing
)

Records a single engine timing. This is public for deterministic host or test adapters that already receive FrameTiming from Flutter.

Implementation

void record(FrameTiming timing) {
  if (!_running || _windowEnded) return;
  final frame = _frame(timing, index: _seenFrames);
  if (frame == null) {
    _invalidFrames += 1;
    return;
  }
  _seenFrames += 1;
  if (_frames.length < maxFrames) {
    _frames.add(frame);
  }
  for (final listener in List<CockpitPerformanceFrameListener>.of(
    _frameListeners,
  )) {
    try {
      listener(frame);
    } on Object {
      // A diagnostic sink must never change frame timing collection.
    }
  }
}