Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | List of all members
flutter::VsyncWaiterFallback Class Referencefinal

A |VsyncWaiter| that will fire at 60 fps irrespective of the vsync. More...

#include <vsync_waiter_fallback.h>

Inheritance diagram for flutter::VsyncWaiterFallback:
flutter::VsyncWaiter

Public Member Functions

 VsyncWaiterFallback (const TaskRunners &task_runners, bool for_testing=false)
 
 ~VsyncWaiterFallback () override
 
- Public Member Functions inherited from flutter::VsyncWaiter
virtual ~VsyncWaiter ()
 
void AsyncWaitForVsync (const Callback &callback)
 
void ScheduleSecondaryCallback (uintptr_t id, const fml::closure &callback)
 

Private Member Functions

void AwaitVSync () override
 

Additional Inherited Members

- Public Types inherited from flutter::VsyncWaiter
using Callback = std::function< void(std::unique_ptr< FrameTimingsRecorder >)>
 
- Protected Member Functions inherited from flutter::VsyncWaiter
 VsyncWaiter (const TaskRunners &task_runners)
 
virtual void AwaitVSyncForSecondaryCallback ()
 
void FireCallback (fml::TimePoint frame_start_time, fml::TimePoint frame_target_time, bool pause_secondary_tasks=true)
 
- Protected Attributes inherited from flutter::VsyncWaiter
const TaskRunners task_runners_
 

Detailed Description

A |VsyncWaiter| that will fire at 60 fps irrespective of the vsync.

Definition at line 16 of file vsync_waiter_fallback.h.

Constructor & Destructor Documentation

◆ VsyncWaiterFallback()

flutter::VsyncWaiterFallback::VsyncWaiterFallback ( const TaskRunners task_runners,
bool  for_testing = false 
)
explicit

Definition at line 28 of file vsync_waiter_fallback.cc.

30 : VsyncWaiter(task_runners),
31 phase_(fml::TimePoint::Now()),
32 for_testing_(for_testing) {}
VsyncWaiter(const TaskRunners &task_runners)
static TimePoint Now()
Definition time_point.cc:49

◆ ~VsyncWaiterFallback()

flutter::VsyncWaiterFallback::~VsyncWaiterFallback ( )
overridedefault

Member Function Documentation

◆ AwaitVSync()

void flutter::VsyncWaiterFallback::AwaitVSync ( )
overrideprivatevirtual

Implements flutter::VsyncWaiter.

Definition at line 37 of file vsync_waiter_fallback.cc.

37 {
38 constexpr fml::TimeDelta kSingleFrameInterval =
40 auto frame_start_time =
41 SnapToNextTick(fml::TimePoint::Now(), phase_, kSingleFrameInterval);
42 auto frame_target_time = frame_start_time + kSingleFrameInterval;
43
44 TRACE_EVENT2_INT("flutter", "PlatformVsync", "frame_start_time",
45 frame_start_time.ToEpochDelta().ToMicroseconds(),
46 "frame_target_time",
47 frame_target_time.ToEpochDelta().ToMicroseconds());
48
49 std::weak_ptr<VsyncWaiterFallback> weak_this =
50 std::static_pointer_cast<VsyncWaiterFallback>(shared_from_this());
51
53 [frame_start_time, frame_target_time, weak_this]() {
54 if (auto vsync_waiter = weak_this.lock()) {
55 vsync_waiter->FireCallback(frame_start_time, frame_target_time,
56 !vsync_waiter->for_testing_);
57 }
58 },
59 frame_start_time);
60}
fml::RefPtr< fml::TaskRunner > GetUITaskRunner() const
const TaskRunners task_runners_
virtual void PostTaskForTime(const fml::closure &task, fml::TimePoint target_time)
static constexpr TimeDelta FromSecondsF(double seconds)
Definition time_delta.h:53
#define TRACE_EVENT2_INT(category_group, name, arg1_name, arg1_val, arg2_name, arg2_val)

The documentation for this class was generated from the following files: