requestAnimationFrame method
Implementation
void requestAnimationFrame(int newFrameId, DoubleCallback callback) {
_animationFrameCallbackMap[newFrameId] = true;
SchedulerBinding.instance.addPostFrameCallback((Duration timeStamp) {
if (_frameDelayCount > 0) {
_frameDelayCount--;
requestAnimationFrame(newFrameId, callback);
return;
}
if (_paused) {
_pendingFrameCallbacks.add(() {
callback(0);
});
return;
}
if (_animationFrameCallbackMap.containsKey(newFrameId)) {
_animationFrameCallbackMap.remove(newFrameId);
double highResTimeStamp = timeStamp.inMicroseconds / 1000;
callback(highResTimeStamp);
}
});
SchedulerBinding.instance.scheduleFrame();
}