Flutter Engine
 
Loading...
Searching...
No Matches
flutter::VsyncWaiterAndroid Class Referencefinal

#include <vsync_waiter_android.h>

Inheritance diagram for flutter::VsyncWaiterAndroid:
flutter::VsyncWaiter

Public Member Functions

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

Static Public Member Functions

static bool Register (JNIEnv *env)
 

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

Definition at line 19 of file vsync_waiter_android.h.

Constructor & Destructor Documentation

◆ VsyncWaiterAndroid()

flutter::VsyncWaiterAndroid::VsyncWaiterAndroid ( const flutter::TaskRunners task_runners)
explicit

Definition at line 23 of file vsync_waiter_android.cc.

24 : VsyncWaiter(task_runners) {}
VsyncWaiter(const TaskRunners &task_runners)

◆ ~VsyncWaiterAndroid()

flutter::VsyncWaiterAndroid::~VsyncWaiterAndroid ( )
overridedefault

Member Function Documentation

◆ Register()

bool flutter::VsyncWaiterAndroid::Register ( JNIEnv *  env)
static

Definition at line 125 of file vsync_waiter_android.cc.

125 {
126 static const JNINativeMethod methods[] = {
127 {
128 .name = "nativeOnVsync",
129 .signature = "(JJJ)V",
130 .fnPtr = reinterpret_cast<void*>(&OnVsyncFromJava),
131 },
132 {
133 .name = "nativeUpdateRefreshRate",
134 .signature = "(F)V",
135 .fnPtr = reinterpret_cast<void*>(&OnUpdateRefreshRate),
136 }};
137
138 jclass clazz = env->FindClass("io/flutter/embedding/engine/FlutterJNI");
139
140 if (clazz == nullptr) {
141 return false;
142 }
143
145 FML_CHECK(!g_vsync_waiter_class->is_null());
146
147 g_async_wait_for_vsync_method_ = env->GetStaticMethodID(
148 g_vsync_waiter_class->obj(), "asyncWaitForVsync", "(J)V");
150
151 return env->RegisterNatives(clazz, methods, std::size(methods)) == 0;
152}
#define FML_CHECK(condition)
Definition logging.h:104
static fml::jni::ScopedJavaGlobalRef< jclass > * g_vsync_waiter_class
static jmethodID g_async_wait_for_vsync_method_

References FML_CHECK, flutter::g_async_wait_for_vsync_method_, and flutter::g_vsync_waiter_class.

Referenced by JNI_OnLoad().


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