#include <vsync_waiter.h>
Public Types | |
| using | Callback = std::function< void(std::unique_ptr< FrameTimingsRecorder >)> |
Public Member Functions | |
| virtual | ~VsyncWaiter () |
| void | AsyncWaitForVsync (const Callback &callback) |
| void | ScheduleSecondaryCallback (uintptr_t id, const fml::closure &callback) |
Protected Member Functions | |
| VsyncWaiter (const TaskRunners &task_runners) | |
| virtual void | AwaitVSync ()=0 |
| virtual void | AwaitVSyncForSecondaryCallback () |
| void | FireCallback (fml::TimePoint frame_start_time, fml::TimePoint frame_target_time, bool pause_secondary_tasks=true) |
Protected Attributes | |
| const TaskRunners | task_runners_ |
Friends | |
| class | VsyncWaiterAndroid |
| class | VsyncWaiterEmbedder |
Abstract Base Class that represents a platform specific mechanism for getting callbacks when a vsync event happens.
Definition at line 24 of file vsync_waiter.h.
| using flutter::VsyncWaiter::Callback = std::function<void(std::unique_ptr<FrameTimingsRecorder>)> |
Definition at line 26 of file vsync_waiter.h.
|
virtualdefault |
Reimplemented in flutter_runner::VsyncWaiter.
|
explicitprotected |
Definition at line 21 of file vsync_waiter.cc.
| void flutter::VsyncWaiter::AsyncWaitForVsync | ( | const Callback & | callback | ) |
Definition at line 27 of file vsync_waiter.cc.
References AwaitVSync(), callback, TRACE_EVENT0, and TRACE_EVENT_INSTANT0.
|
protectedpure virtual |
Implemented in flutter::testing::TestVsyncWaiter, flutter::testing::ShellTestVsyncWaiter, flutter::testing::ConstantFiringVsyncWaiter, and flutter::VsyncWaiterIOS.
Referenced by AsyncWaitForVsync(), and AwaitVSyncForSecondaryCallback().
|
inlineprotectedvirtual |
Definition at line 69 of file vsync_waiter.h.
References AwaitVSync().
Referenced by ScheduleSecondaryCallback().
|
protected |
Definition at line 87 of file vsync_waiter.cc.
References callback, FML_DCHECK, FML_TRACE_EVENT_WITH_FLOW_IDS, fml::TaskRunner::GetTaskQueueId(), flutter::TaskRunners::GetUITaskRunner(), flutter::kVsyncFlowName, flutter::kVsyncTraceName, fml::TimePoint::Now(), fml::TaskRunner::PostTask(), task_runners_, TRACE_EVENT0_WITH_FLOW_IDS, TRACE_EVENT_INSTANT0, TRACE_FLOW_BEGIN, TRACE_FLOW_END, and fml::tracing::TraceNonce().
Referenced by flutter::testing::ShellTestVsyncWaiter::AwaitVSync(), flutter::testing::ConstantFiringVsyncWaiter::AwaitVSync(), and flutter::VsyncWaiterIOS::VsyncWaiterIOS.
| void flutter::VsyncWaiter::ScheduleSecondaryCallback | ( | uintptr_t | id, |
| const fml::closure & | callback | ||
| ) |
Add a secondary callback for key |id| for the next vsync.
See also |PointerDataDispatcher::ScheduleSecondaryVsyncCallback| and |Animator::ScheduleMaybeClearTraceFlowIds|.
Definition at line 53 of file vsync_waiter.cc.
References AwaitVSyncForSecondaryCallback(), callback, FML_DCHECK, flutter::TaskRunners::GetUITaskRunner(), fml::TaskRunner::RunsTasksOnCurrentThread(), task_runners_, TRACE_EVENT0, and TRACE_EVENT_INSTANT0.
Referenced by flutter::testing::TEST().
|
friend |
Definition at line 41 of file vsync_waiter.h.
|
friend |
Definition at line 42 of file vsync_waiter.h.
|
protected |
Definition at line 44 of file vsync_waiter.h.
Referenced by flutter::testing::ShellTestVsyncWaiter::AwaitVSync(), flutter::testing::ConstantFiringVsyncWaiter::AwaitVSync(), FireCallback(), ScheduleSecondaryCallback(), flutter_runner::VsyncWaiter::VsyncWaiter(), and flutter_runner::VsyncWaiter::~VsyncWaiter().