| Flutter iOS Embedder |

Classes | Macros | Functions | Variables
FlutterEngine.mm File Reference
`#include "common/settings.h"`
`#import "flutter/shell/platform/darwin/ios/framework/Source/FlutterEngine_Internal.h"`
`#include <memory>`
`#include "flutter/common/constants.h"`
`#include "flutter/fml/message_loop.h"`
`#include "flutter/fml/platform/darwin/platform_version.h"`
`#include "flutter/fml/trace_event.h"`
`#include "flutter/runtime/ptrace_check.h"`
`#include "flutter/shell/common/engine.h"`
`#include "flutter/shell/common/platform_view.h"`
`#include "flutter/shell/common/shell.h"`
`#include "flutter/shell/common/switches.h"`
`#include "flutter/shell/common/thread_host.h"`
`#include "flutter/shell/common/variable_refresh_rate_display.h"`
`#import "flutter/shell/platform/darwin/common/command_line.h"`
`#import "flutter/shell/platform/darwin/common/framework/Source/FlutterBinaryMessengerRelay.h"`
`#import "flutter/shell/platform/darwin/ios/framework/Source/FlutterDartProject_Internal.h"`
`#import "flutter/shell/platform/darwin/ios/framework/Source/FlutterDartVMServicePublisher.h"`
`#import "flutter/shell/platform/darwin/ios/framework/Source/FlutterIndirectScribbleDelegate.h"`
`#import "flutter/shell/platform/darwin/ios/framework/Source/FlutterPlatformPlugin.h"`
`#import "flutter/shell/platform/darwin/ios/framework/Source/FlutterSharedApplication.h"`
`#import "flutter/shell/platform/darwin/ios/framework/Source/FlutterSpellCheckPlugin.h"`
`#import "flutter/shell/platform/darwin/ios/framework/Source/FlutterTextInputDelegate.h"`
`#import "flutter/shell/platform/darwin/ios/framework/Source/FlutterTextureRegistryRelay.h"`
`#import "flutter/shell/platform/darwin/ios/framework/Source/FlutterUndoManagerDelegate.h"`
`#import "flutter/shell/platform/darwin/ios/framework/Source/FlutterUndoManagerPlugin.h"`
`#import "flutter/shell/platform/darwin/ios/framework/Source/FlutterViewController_Internal.h"`
`#import "flutter/shell/platform/darwin/ios/framework/Source/UIViewController+FlutterScreenAndSceneIfLoaded.h"`
`#import "flutter/shell/platform/darwin/ios/framework/Source/connection_collection.h"`
`#import "flutter/shell/platform/darwin/ios/framework/Source/platform_message_response_darwin.h"`
`#import "flutter/shell/platform/darwin/ios/framework/Source/profiler_metrics_ios.h"`
`#import "flutter/shell/platform/darwin/ios/framework/Source/vsync_waiter_ios.h"`
`#import "flutter/shell/platform/darwin/ios/platform_view_ios.h"`
`#import "flutter/shell/platform/darwin/ios/rendering_api_selection.h"`
`#include "flutter/shell/profiling/sampling_profiler.h"`

Go to the source code of this file.

## Classes
class | FlutterEngineRegistrar

## Macros
#define | FML_USED_ON_EMBEDDER

## Functions
static FLUTTER_ASSERT_ARC void | IOSPlatformThreadConfigSetter (const fml::Thread::ThreadConfig &config)

## Variables
NSString *const | FlutterDefaultDartEntrypoint = nil
NSString *const | FlutterDefaultInitialRoute = nil
NSString *const | kFlutterKeyDataChannel = @"@"flutter/keydata"
static constexpr int | kNumProfilerSamplesPerSec = 5
std::unique_ptr< flutter::Shell > | _shell
flutter::IOSRenderingAPI | _renderingApi
std::shared_ptr< flutter::SamplingProfiler > | _profiler
FlutterBinaryMessengerRelay * | _binaryMessenger
FlutterTextureRegistryRelay * | _textureRegistry
std::unique_ptr< flutter::ConnectionCollection > | _connections

## Macro Definition Documentation

## ◆ FML_USED_ON_EMBEDDER

#define FML_USED_ON_EMBEDDER

Definition at line 6 of file FlutterEngine.mm.

## Function Documentation

## ◆ IOSPlatformThreadConfigSetter()

static FLUTTER_ASSERT_ARC void IOSPlatformThreadConfigSetter | ( | const fml::Thread::ThreadConfig & | config | ) |
| static

Inheriting ThreadConfigurer and use iOS platform thread API to configure the thread priorities Using iOS platform thread API to configure thread priority

Definition at line 49 of file FlutterEngine.mm.

49 {
50 // set thread name
51 fml::Thread::SetCurrentThreadName(config);
52
53 // set thread priority
54 switch (config.priority) {
55 case fml::Thread::ThreadPriority::kBackground: {
56 pthread_set_qos_class_self_np(QOS_CLASS_BACKGROUND, 0);
57 [[NSThread currentThread] setThreadPriority:0];
58 break;
59 }
60 case fml::Thread::ThreadPriority::kNormal: {
61 pthread_set_qos_class_self_np(QOS_CLASS_DEFAULT, 0);
62 [[NSThread currentThread] setThreadPriority:0.5];
63 break;
64 }
65 case fml::Thread::ThreadPriority::kRaster:
66 case fml::Thread::ThreadPriority::kDisplay: {
67 pthread_set_qos_class_self_np(QOS_CLASS_USER_INTERACTIVE, 0);
68 [[NSThread currentThread] setThreadPriority:1.0];
69 sched_param param;
70 int policy;
71 pthread_t thread = pthread_self();
72 if (!pthread_getschedparam(thread, &policy, &param)) {
73 param.sched_priority = 50;
74 pthread_setschedparam(thread, policy, &param);
75 }
76 break;
77 }
78 }
79 }

## Variable Documentation

## ◆ _binaryMessenger

FlutterBinaryMessengerRelay* _binaryMessenger

Definition at line 159 of file FlutterEngine.mm.

## ◆ _connections

std::unique_ptr<flutter::ConnectionCollection> _connections

Definition at line 161 of file FlutterEngine.mm.

## ◆ _profiler

std::shared_ptr<flutter::SamplingProfiler> _profiler

Definition at line 157 of file FlutterEngine.mm.

## ◆ _renderingApi

flutter::IOSRenderingAPI _renderingApi

Definition at line 156 of file FlutterEngine.mm.

## ◆ _shell

std::unique_ptr<flutter::Shell> _shell

Initial value:
{
std::shared_ptr<flutter::ThreadHost> _threadHost

Definition at line 154 of file FlutterEngine.mm.

## ◆ _textureRegistry

FlutterTextureRegistryRelay* _textureRegistry

Definition at line 160 of file FlutterEngine.mm.

## ◆ FlutterDefaultDartEntrypoint

NSString* const FlutterDefaultDartEntrypoint = nil

The dart entrypoint that is associated with `main()`. This is to be used as an argument to the `runWithEntrypoint*` methods.

Definition at line 83 of file FlutterEngine.mm.

## ◆ FlutterDefaultInitialRoute

NSString* const FlutterDefaultInitialRoute = nil

The default Flutter initial route ("/").

Definition at line 84 of file FlutterEngine.mm.

## ◆ kFlutterKeyDataChannel

NSString* const kFlutterKeyDataChannel = @"@"flutter/keydata"

Definition at line 88 of file FlutterEngine.mm.

## ◆ kNumProfilerSamplesPerSec

constexpr int kNumProfilerSamplesPerSec = 5
| staticconstexpr

Definition at line 89 of file FlutterEngine.mm.