framesBefore method
Requests and observes up to count frames before one shared deadline.
The returned number is deliberately explicit: callers can report a partial observation when the deadline expires instead of collapsing "saw 0" and "saw N - 1" into the same timeout.
Implementation
Future<int> framesBefore(DateTime deadline, int count) async {
var observed = 0;
while (observed < count && await nextFrameBefore(deadline)) {
observed += 1;
}
return observed;
}