Flutter Engine
 
Loading...
Searching...
No Matches
flutter::FlutterMain Class Reference

#include <flutter_main.h>

Public Member Functions

 ~FlutterMain ()
 
const flutter::SettingsGetSettings () const
 
flutter::AndroidRenderingAPI GetAndroidRenderingAPI ()
 

Static Public Member Functions

static bool Register (JNIEnv *env)
 
static FlutterMainGet ()
 
static AndroidRenderingAPI SelectedRenderingAPI (const flutter::Settings &settings, int api_level)
 

Detailed Description

Definition at line 17 of file flutter_main.h.

Constructor & Destructor Documentation

◆ ~FlutterMain()

flutter::FlutterMain::~FlutterMain ( )
default

Member Function Documentation

◆ Get()

FlutterMain & flutter::FlutterMain::Get ( )
static

Definition at line 75 of file flutter_main.cc.

75 {
76 FML_CHECK(g_flutter_main) << "ensureInitializationComplete must have already "
77 "been called.";
78 return *g_flutter_main;
79}
#define FML_CHECK(condition)
Definition logging.h:104
static std::unique_ptr< FlutterMain > g_flutter_main

References FML_CHECK, and flutter::g_flutter_main.

Referenced by flutter::AttachJNI(), and flutter::GetIsSoftwareRendering().

◆ GetAndroidRenderingAPI()

flutter::AndroidRenderingAPI flutter::FlutterMain::GetAndroidRenderingAPI ( )

Definition at line 85 of file flutter_main.cc.

85 {
86 return android_rendering_api_;
87}

◆ GetSettings()

const flutter::Settings & flutter::FlutterMain::GetSettings ( ) const

Definition at line 81 of file flutter_main.cc.

81 {
82 return settings_;
83}

References settings_.

Referenced by flutter::GetIsSoftwareRendering().

◆ Register()

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

Definition at line 243 of file flutter_main.cc.

243 {
244 static const JNINativeMethod methods[] = {
245 {
246 .name = "nativeInit",
247 .signature = "(Landroid/content/Context;[Ljava/lang/String;Ljava/"
248 "lang/String;Ljava/lang/String;Ljava/lang/String;JI)V",
249 .fnPtr = reinterpret_cast<void*>(&Init),
250 },
251 {
252 .name = "nativePrefetchDefaultFontManager",
253 .signature = "()V",
254 .fnPtr = reinterpret_cast<void*>(&PrefetchDefaultFontManager),
255 },
256 };
257
258 jclass clazz = env->FindClass("io/flutter/embedding/engine/FlutterJNI");
259
260 if (clazz == nullptr) {
261 return false;
262 }
263
264 return env->RegisterNatives(clazz, methods, std::size(methods)) == 0;
265}
static void PrefetchDefaultFontManager(JNIEnv *env, jclass jcaller)

References flutter::PrefetchDefaultFontManager().

Referenced by JNI_OnLoad().

◆ SelectedRenderingAPI()

AndroidRenderingAPI flutter::FlutterMain::SelectedRenderingAPI ( const flutter::Settings settings,
int  api_level 
)
static

Definition at line 268 of file flutter_main.cc.

270 {
271#if !SLIMPELLER
272 if (settings.enable_software_rendering) {
273 if (settings.enable_impeller) {
274 FML_CHECK(!settings.enable_impeller)
275 << "Impeller does not support software rendering. Either disable "
276 "software rendering or disable impeller.";
277 }
279 }
280
281 // Debug/Profile only functionality for testing a specific
282 // backend configuration.
283#ifndef FLUTTER_RELEASE
284 if (settings.requested_rendering_backend == "opengles" &&
285 settings.enable_impeller) {
287 }
288 if (settings.requested_rendering_backend == "vulkan" &&
289 settings.enable_impeller) {
291 }
292#endif
293
294 if (settings.enable_impeller &&
295 api_level >= kMinimumAndroidApiLevelForImpeller && !IsVivante()) {
297 }
298
300#else
302#endif // !SLIMPELLER
303}
constexpr int kMinimumAndroidApiLevelForImpeller
bool enable_software_rendering
Definition settings.h:317
std::optional< std::string > requested_rendering_backend
Definition settings.h:248

References flutter::Settings::enable_impeller, flutter::Settings::enable_software_rendering, FML_CHECK, flutter::kMinimumAndroidApiLevelForImpeller, and flutter::Settings::requested_rendering_backend.

Referenced by flutter::testing::TEST().


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