20 auto vsyncCallback = ^(CFTimeInterval startTime, CFTimeInterval targetTime) {
21
22 CFTimeInterval delay = CACurrentMediaTime() - startTime;
23 if (delay < 0.0) {
24 delay = 0.0;
25 }
26
27
29
30
31 CFTimeInterval duration =
33
34
37 };
40 client_ = [[FlutterVSyncClient alloc]
41 initWithTaskRunner:uiTaskRunner
42 isVariableRefreshRateEnabled:FlutterDisplayLinkManager.maxRefreshRateEnabledOnIPhone
43 maxRefreshRate:FlutterDisplayLinkManager.displayRefreshRate
45 max_refresh_rate_ = FlutterDisplayLinkManager.displayRefreshRate;
46}
fml::RefPtr< fml::TaskRunner > GetUITaskRunner() const
VsyncWaiter(const TaskRunners &task_runners)
void FireCallback(fml::TimePoint frame_start_time, fml::TimePoint frame_target_time, bool pause_secondary_tasks=true)
const TaskRunners task_runners_
static CFTimeInterval SnapDuration(CFTimeInterval duration, double max_refresh_rate)
static constexpr TimeDelta FromSecondsF(double seconds)
FlutterDesktopBinaryReply callback