5#include "include/flutter/flutter_engine.h"
17 c_engine_properties.
assets_path = project.assets_path().c_str();
18 c_engine_properties.
icu_data_path = project.icu_data_path().c_str();
31 const std::vector<std::string>& entrypoint_args =
33 std::vector<const char*> entrypoint_argv;
35 entrypoint_args.begin(), entrypoint_args.end(),
36 std::back_inserter(entrypoint_argv),
37 [](
const std::string& arg) ->
const char* { return arg.c_str(); });
40 static_cast<int>(entrypoint_argv.size());
42 entrypoint_argv.empty() ? nullptr : entrypoint_argv.data();
47 messenger_ = std::make_unique<BinaryMessengerImpl>(core_messenger);
60 std::cerr <<
"Cannot run an engine that failed creation." << std::endl;
64 std::cerr <<
"Cannot run an engine more than once." << std::endl;
69 std::cerr <<
"Failed to start engine." << std::endl;
71 run_succeeded_ =
true;
76 if (engine_ && owns_engine_) {
91 const std::string& plugin_name) {
93 std::cerr <<
"Cannot get plugin registrar on an engine that isn't running; "
102 next_frame_callback_ = std::move(
callback);
107 self->next_frame_callback_();
108 self->next_frame_callback_ =
nullptr;
116 <<
"Cannot check platform thread on an engine that failed creation."
131 std::unique_ptr<std::function<void()>> cb{
132 static_cast<std::function<
void()
>*>(
user_data)};
137 delete static_cast<std::function<
void()
>*>(
user_data);
139 new std::function<void()>(std::move(
callback)));
149 engine_, hwnd,
message, wparam, lparam, &result)) {
156 owns_engine_ =
false;
const std::vector< std::string > & dart_entrypoint_arguments() const
const std::string & dart_entrypoint() const
AccessibilityMode accessibility_mode() const
UIThreadPolicy ui_thread_policy() const
GpuPreference gpu_preference() const
ImpellerSwitch impeller_switch() const
bool IsPlatformThread() const
std::chrono::nanoseconds ProcessMessages()
std::optional< LRESULT > ProcessExternalWindowMessage(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam)
void SetNextFrameCallback(std::function< void()> callback)
void PostPlatformThreadTask(std::function< void()> callback)
FlutterDesktopPluginRegistrarRef GetRegistrarForPlugin(const std::string &plugin_name) override
FlutterDesktopUIThreadPolicy
FlutterDesktopGpuPreference
FlutterDesktopImpellerSwitch
FlutterDesktopAccessibilityMode
FlutterDesktopBinaryReply callback
const char * dart_entrypoint
const char * aot_library_path
FlutterDesktopAccessibilityMode accessibility_mode
const char * icu_data_path
FlutterDesktopImpellerSwitch impeller_switch
const char ** dart_entrypoint_argv
FlutterDesktopUIThreadPolicy ui_thread_policy
FlutterDesktopGpuPreference gpu_preference
FlutterDesktopEngineRef FlutterDesktopEngineCreate(const FlutterDesktopEngineProperties *engine_properties)
void FlutterDesktopEngineReloadSystemFonts(FlutterDesktopEngineRef engine)
bool FlutterDesktopEngineProcessExternalWindowMessage(FlutterDesktopEngineRef engine, HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam, LRESULT *result)
FlutterDesktopPluginRegistrarRef FlutterDesktopEngineGetPluginRegistrar(FlutterDesktopEngineRef engine, const char *plugin_name)
bool FlutterDesktopEngineIsPlatformThread(FlutterDesktopEngineRef engine)
bool FlutterDesktopEngineDestroy(FlutterDesktopEngineRef engine_ref)
void FlutterDesktopEnginePostPlatformThreadTask(FlutterDesktopEngineRef engine, VoidCallback callback, VoidCallback on_cancel, void *user_data)
uint64_t FlutterDesktopEngineProcessMessages(FlutterDesktopEngineRef engine)
FlutterDesktopMessengerRef FlutterDesktopEngineGetMessenger(FlutterDesktopEngineRef engine)
void FlutterDesktopEngineSetNextFrameCallback(FlutterDesktopEngineRef engine, VoidCallback callback, void *user_data)
bool FlutterDesktopEngineRun(FlutterDesktopEngineRef engine, const char *entry_point)