Flutter Windows Embedder
flutter_windows_engine.h
Go to the documentation of this file.
1 // Copyright 2013 The Flutter Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef FLUTTER_SHELL_PLATFORM_WINDOWS_FLUTTER_WINDOWS_ENGINE_H_
6 #define FLUTTER_SHELL_PLATFORM_WINDOWS_FLUTTER_WINDOWS_ENGINE_H_
7 
8 #include <chrono>
9 #include <map>
10 #include <memory>
11 #include <optional>
12 #include <string>
13 #include <string_view>
14 #include <vector>
15 
16 #include "flutter/fml/closure.h"
17 #include "flutter/fml/macros.h"
23 #include "flutter/shell/platform/embedder/embedder.h"
41 #include "third_party/rapidjson/include/rapidjson/document.h"
42 
43 namespace flutter {
44 
45 class FlutterWindowsView;
46 
47 // Update the thread priority for the Windows engine.
49  FlutterThreadPriority priority) {
50  // TODO(99502): Add support for tracing to the windows embedding so we can
51  // mark thread priorities and success/failure.
52  switch (priority) {
53  case FlutterThreadPriority::kBackground: {
54  SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_BELOW_NORMAL);
55  break;
56  }
57  case FlutterThreadPriority::kDisplay: {
58  SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_ABOVE_NORMAL);
59  break;
60  }
61  case FlutterThreadPriority::kRaster: {
62  SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_ABOVE_NORMAL);
63  break;
64  }
65  case FlutterThreadPriority::kNormal: {
66  // For normal or default priority we do not need to set the priority
67  // class.
68  break;
69  }
70  }
71 }
72 
73 // Manages state associated with the underlying FlutterEngine that isn't
74 // related to its display.
75 //
76 // In most cases this will be associated with a FlutterView, but if not will
77 // run in headless mode.
79  public:
80  // Creates a new Flutter engine object configured to run |project|.
81  explicit FlutterWindowsEngine(const FlutterProjectBundle& project);
82 
83  virtual ~FlutterWindowsEngine();
84 
85  // Starts running the entrypoint function specifed in the project bundle. If
86  // unspecified, defaults to main().
87  //
88  // Returns false if the engine couldn't be started.
89  bool Run();
90 
91  // Starts running the engine with the given entrypoint. If the empty string
92  // is specified, defaults to the entrypoint function specified in the project
93  // bundle, or main() if both are unspecified.
94  //
95  // Returns false if the engine couldn't be started or if conflicting,
96  // non-default values are passed here and in the project bundle..
97  //
98  // DEPRECATED: Prefer setting the entrypoint in the FlutterProjectBundle
99  // passed to the constructor and calling the no-parameter overload.
100  bool Run(std::string_view entrypoint);
101 
102  // Returns true if the engine is currently running.
103  bool running() { return engine_ != nullptr; }
104 
105  // Stops the engine. This invalidates the pointer returned by engine().
106  //
107  // Returns false if stopping the engine fails, or if it was not running.
108  virtual bool Stop();
109 
110  // Sets the view that is displaying this engine's content.
112 
113  // The view displaying this engine's content, if any. This will be null for
114  // headless engines.
115  FlutterWindowsView* view() { return view_; }
116 
117  // Returns the currently configured Plugin Registrar.
119 
120  // Registers |callback| to be called when the plugin registrar is destroyed.
124 
125  // Sets switches member to the given switches.
126  void SetSwitches(const std::vector<std::string>& switches);
127 
128  FlutterDesktopMessengerRef messenger() { return messenger_->ToRef(); }
129 
131  return message_dispatcher_.get();
132  }
133 
134  TaskRunner* task_runner() { return task_runner_.get(); }
135 
137  return texture_registrar_.get();
138  }
139 
140  // The ANGLE surface manager object. If this is nullptr, then we are
141  // rendering using software instead of OpenGL.
142  AngleSurfaceManager* surface_manager() { return surface_manager_.get(); }
143 
145  return window_proc_delegate_manager_.get();
146  }
147 
148  // Informs the engine that the window metrics have changed.
149  void SendWindowMetricsEvent(const FlutterWindowMetricsEvent& event);
150 
151  // Informs the engine of an incoming pointer event.
152  void SendPointerEvent(const FlutterPointerEvent& event);
153 
154  // Informs the engine of an incoming key event.
155  void SendKeyEvent(const FlutterKeyEvent& event,
156  FlutterKeyEventCallback callback,
157  void* user_data);
158 
160  return keyboard_key_handler_.get();
161  }
162  TextInputPlugin* text_input_plugin() { return text_input_plugin_.get(); }
163 
164  // Sends the given message to the engine, calling |reply| with |user_data|
165  // when a response is received from the engine if they are non-null.
166  bool SendPlatformMessage(const char* channel,
167  const uint8_t* message,
168  const size_t message_size,
169  const FlutterDesktopBinaryReply reply,
170  void* user_data);
171 
172  // Sends the given data as the response to an earlier platform message.
175  const uint8_t* data,
176  size_t data_length);
177 
178  // Callback passed to Flutter engine for notifying window of platform
179  // messages.
180  void HandlePlatformMessage(const FlutterPlatformMessage*);
181 
182  // Informs the engine that the system font list has changed.
183  void ReloadSystemFonts();
184 
185  // Informs the engine that a new frame is needed to redraw the content.
186  void ScheduleFrame();
187 
188  // Set the callback that is called when the next frame is drawn.
189  void SetNextFrameCallback(fml::closure callback);
190 
191  // Attempts to register the texture with the given |texture_id|.
192  bool RegisterExternalTexture(int64_t texture_id);
193 
194  // Attempts to unregister the texture with the given |texture_id|.
196 
197  // Notifies the engine about a new frame being available for the
198  // given |texture_id|.
200 
201  // Posts the given callback onto the raster thread.
202  virtual bool PostRasterThreadTask(fml::closure callback);
203 
204  // Invoke on the embedder's vsync callback to schedule a frame.
205  void OnVsync(intptr_t baton);
206 
207  // Dispatches a semantics action to the specified semantics node.
208  bool DispatchSemanticsAction(uint64_t id,
209  FlutterSemanticsAction action,
210  fml::MallocMapping data);
211 
212  // Informs the engine that the semantics enabled state has changed.
213  void UpdateSemanticsEnabled(bool enabled);
214 
215  // Returns true if the semantics tree is enabled.
216  bool semantics_enabled() const { return semantics_enabled_; }
217 
218  // Update the high contrast feature state.
219  void UpdateHighContrastEnabled(bool enabled);
220 
221  // Returns the flags for all currently enabled accessibility features
222  int EnabledAccessibilityFeatures() const;
223 
224  // Returns true if the high contrast feature is enabled.
225  bool high_contrast_enabled() const { return high_contrast_enabled_; }
226 
227  // Register a root isolate create callback.
228  //
229  // The root isolate create callback is invoked at creation of the root Dart
230  // isolate in the app. This may be used to be notified that execution of the
231  // main Dart entrypoint is about to begin, and is used by test infrastructure
232  // to register a native function resolver that can register and resolve
233  // functions marked as native in the Dart code.
234  //
235  // This must be called before calling |Run|.
236  void SetRootIsolateCreateCallback(const fml::closure& callback) {
237  root_isolate_create_callback_ = callback;
238  }
239 
240  // Returns the executable name for this process or "Flutter" if unknown.
241  std::string GetExecutableName() const;
242 
243  // Updates accessibility, e.g. switch to high contrast mode
244  void UpdateAccessibilityFeatures(FlutterAccessibilityFeature flags);
245 
246  // Called when the application quits in response to a quit request.
247  void OnQuit(std::optional<HWND> hwnd,
248  std::optional<WPARAM> wparam,
249  std::optional<LPARAM> lparam,
250  UINT exit_code);
251 
252  // Called when a WM_CLOSE message is received.
253  void RequestApplicationQuit(HWND hwnd,
254  WPARAM wparam,
255  LPARAM lparam,
256  AppExitType exit_type);
257 
258  // Called when a WM_DWMCOMPOSITIONCHANGED message is received.
260 
261  // Called when a Window receives an event that may alter the application
262  // lifecycle state.
263  void OnWindowStateEvent(HWND hwnd, WindowStateEvent event);
264 
265  // Handle a message from a non-Flutter window in the same application.
266  // Returns a result when the message is consumed and should not be processed
267  // further.
268  std::optional<LRESULT> ProcessExternalWindowMessage(HWND hwnd,
269  UINT message,
270  WPARAM wparam,
271  LPARAM lparam);
272 
274  return lifecycle_manager_.get();
275  }
276 
277  protected:
278  // Creates the keyboard key handler.
279  //
280  // Exposing this method allows unit tests to override in order to
281  // capture information.
282  virtual std::unique_ptr<KeyboardHandlerBase> CreateKeyboardKeyHandler(
286 
287  // Creates the text input plugin.
288  //
289  // Exposing this method allows unit tests to override in order to
290  // capture information.
291  virtual std::unique_ptr<TextInputPlugin> CreateTextInputPlugin(
293 
294  // Invoked by the engine right before the engine is restarted.
295  //
296  // This should reset necessary states to as if the engine has just been
297  // created. This is typically caused by a hot restart (Shift-R in CLI.)
298  void OnPreEngineRestart();
299 
300  // Invoked by the engine when a listener is set or cleared on a platform
301  // channel.
302  virtual void OnChannelUpdate(std::string name, bool listening);
303 
304  private:
305  // Allows swapping out embedder_api_ calls in tests.
306  friend class EngineModifier;
307 
308  // Sends system locales to the engine.
309  //
310  // Should be called just after the engine is run, and after any relevant
311  // system changes.
312  void SendSystemLocales();
313 
314  // Sends the current lifecycle state to the framework.
315  void SetLifecycleState(flutter::AppLifecycleState state);
316 
317  // Create the keyboard & text input sub-systems.
318  //
319  // This requires that a view is attached to the engine.
320  // Calling this method again resets the keyboard state.
321  void InitializeKeyboard();
322 
323  void HandleAccessibilityMessage(FlutterDesktopMessengerRef messenger,
325 
326  // The handle to the embedder.h engine instance.
327  FLUTTER_API_SYMBOL(FlutterEngine) engine_ = nullptr;
328 
329  FlutterEngineProcTable embedder_api_ = {};
330 
331  std::unique_ptr<FlutterProjectBundle> project_;
332 
333  // AOT data, if any.
334  UniqueAotDataPtr aot_data_;
335 
336  // The view displaying the content running in this engine, if any.
337  FlutterWindowsView* view_ = nullptr;
338 
339  // Task runner for tasks posted from the engine.
340  std::unique_ptr<TaskRunner> task_runner_;
341 
342  // The plugin messenger handle given to API clients.
343  fml::RefPtr<flutter::FlutterDesktopMessenger> messenger_;
344 
345  // A wrapper around messenger_ for interacting with client_wrapper-level APIs.
346  std::unique_ptr<BinaryMessengerImpl> messenger_wrapper_;
347 
348  // Message dispatch manager for messages from engine_.
349  std::unique_ptr<IncomingMessageDispatcher> message_dispatcher_;
350 
351  // The plugin registrar handle given to API clients.
352  std::unique_ptr<FlutterDesktopPluginRegistrar> plugin_registrar_;
353 
354  // The texture registrar.
355  std::unique_ptr<FlutterWindowsTextureRegistrar> texture_registrar_;
356 
357  // Resolved OpenGL functions used by external texture implementations.
358  GlProcs gl_procs_ = {};
359 
360  // An object used for intializing Angle and creating / destroying render
361  // surfaces. Surface creation functionality requires a valid render_target.
362  // May be nullptr if ANGLE failed to initialize.
363  std::unique_ptr<AngleSurfaceManager> surface_manager_;
364 
365  // The plugin registrar managing internal plugins.
366  std::unique_ptr<PluginRegistrar> internal_plugin_registrar_;
367 
368  // Handler for cursor events.
369  std::unique_ptr<CursorHandler> cursor_handler_;
370 
371  // Handler for the flutter/platform channel.
372  std::unique_ptr<PlatformHandler> platform_handler_;
373 
374  // Handlers for keyboard events from Windows.
375  std::unique_ptr<KeyboardHandlerBase> keyboard_key_handler_;
376 
377  // Handlers for text events from Windows.
378  std::unique_ptr<TextInputPlugin> text_input_plugin_;
379 
380  // The settings plugin.
381  std::unique_ptr<SettingsPlugin> settings_plugin_;
382 
383  // Callbacks to be called when the engine (and thus the plugin registrar) is
384  // being destroyed.
387  plugin_registrar_destruction_callbacks_;
388 
389  // The approximate time between vblank events.
390  std::chrono::nanoseconds FrameInterval();
391 
392  // The start time used to align frames.
393  std::chrono::nanoseconds start_time_ = std::chrono::nanoseconds::zero();
394 
395  // An override of the frame interval used by EngineModifier for testing.
396  std::optional<std::chrono::nanoseconds> frame_interval_override_ =
397  std::nullopt;
398 
399  bool semantics_enabled_ = false;
400 
401  bool high_contrast_enabled_ = false;
402 
403  bool enable_impeller_ = false;
404 
405  // The manager for WindowProc delegate registration and callbacks.
406  std::unique_ptr<WindowProcDelegateManager> window_proc_delegate_manager_;
407 
408  // The root isolate creation callback.
409  fml::closure root_isolate_create_callback_;
410 
411  // The on frame drawn callback.
412  fml::closure next_frame_callback_;
413 
414  // Handler for top level window messages.
415  std::unique_ptr<WindowsLifecycleManager> lifecycle_manager_;
416 
417  WindowsProcTable windows_proc_table_;
418 
419  FML_DISALLOW_COPY_AND_ASSIGN(FlutterWindowsEngine);
420 };
421 
422 } // namespace flutter
423 
424 #endif // FLUTTER_SHELL_PLATFORM_WINDOWS_FLUTTER_WINDOWS_ENGINE_H_
flutter::FlutterWindowsEngine::RequestApplicationQuit
void RequestApplicationQuit(HWND hwnd, WPARAM wparam, LPARAM lparam, AppExitType exit_type)
Definition: flutter_windows_engine.cc:791
flutter::WindowStateEvent
WindowStateEvent
An event representing a change in window state that may update the.
Definition: windows_lifecycle_manager.h:24
flutter::FlutterWindowsEngine::GetRegistrar
FlutterDesktopPluginRegistrarRef GetRegistrar()
Definition: flutter_windows_engine.cc:489
flutter::FlutterWindowsEngine::high_contrast_enabled
bool high_contrast_enabled() const
Definition: flutter_windows_engine.h:225
flutter::FlutterProjectBundle
Definition: flutter_project_bundle.h:21
flutter::FlutterWindowsEngine::OnChannelUpdate
virtual void OnChannelUpdate(std::string name, bool listening)
Definition: flutter_windows_engine.cc:826
flutter::FlutterWindowsEngine::CreateTextInputPlugin
virtual std::unique_ptr< TextInputPlugin > CreateTextInputPlugin(BinaryMessenger *messenger)
Definition: flutter_windows_engine.cc:661
flutter::FlutterWindowsEngine::UnregisterExternalTexture
bool UnregisterExternalTexture(int64_t texture_id)
Definition: flutter_windows_engine.cc:671
flutter_windows_texture_registrar.h
flutter::AppExitType
AppExitType
Definition: platform_handler.h:27
flutter::FlutterWindowsEngine::SendPointerEvent
void SendPointerEvent(const FlutterPointerEvent &event)
Definition: flutter_windows_engine.cc:506
flutter::UniqueAotDataPtr
std::unique_ptr< _FlutterEngineAOTData, FlutterEngineCollectAOTDataFnPtr > UniqueAotDataPtr
Definition: flutter_project_bundle.h:18
flutter::FlutterWindowsView
Definition: flutter_windows_view.h:35
settings_plugin.h
window_proc_delegate_manager.h
flutter::IncomingMessageDispatcher
Definition: incoming_message_dispatcher.h:20
windows_lifecycle_manager.h
flutter::FlutterEngine
Definition: flutter_engine.h:28
text_input_plugin.h
FlutterDesktopBinaryReply
void(* FlutterDesktopBinaryReply)(const uint8_t *data, size_t data_size, void *user_data)
Definition: flutter_messenger.h:26
flutter::FlutterWindowsEngine::OnVsync
void OnVsync(intptr_t baton)
Definition: flutter_windows_engine.cc:460
flutter::FlutterWindowsEngine::task_runner
TaskRunner * task_runner()
Definition: flutter_windows_engine.h:134
flutter::FlutterWindowsEngine::SetNextFrameCallback
void SetNextFrameCallback(fml::closure callback)
Definition: flutter_windows_engine.cc:584
user_data
void * user_data
Definition: flutter_windows_view_unittests.cc:47
flutter::FlutterWindowsEngine::EngineModifier
friend class EngineModifier
Definition: flutter_windows_engine.h:306
flutter::FlutterWindowsEngine
Definition: flutter_windows_engine.h:78
flutter::FlutterWindowsEngine::MarkExternalTextureFrameAvailable
bool MarkExternalTextureFrameAvailable(int64_t texture_id)
Definition: flutter_windows_engine.cc:676
flutter::KeyboardKeyEmbedderHandler::GetKeyStateHandler
std::function< SHORT(int)> GetKeyStateHandler
Definition: keyboard_key_embedder_handler.h:41
flutter::FlutterWindowsEngine::FlutterWindowsEngine
FlutterWindowsEngine(const FlutterProjectBundle &project)
Definition: flutter_windows_engine.cc:160
flutter::FlutterWindowsEngine::window_proc_delegate_manager
WindowProcDelegateManager * window_proc_delegate_manager()
Definition: flutter_windows_engine.h:144
flutter::FlutterWindowsEngine::RegisterExternalTexture
bool RegisterExternalTexture(int64_t texture_id)
Definition: flutter_windows_engine.cc:666
flutter::FlutterWindowsEngine::lifecycle_manager
WindowsLifecycleManager * lifecycle_manager()
Definition: flutter_windows_engine.h:273
angle_surface_manager.h
flutter::FlutterWindowsEngine::OnQuit
void OnQuit(std::optional< HWND > hwnd, std::optional< WPARAM > wparam, std::optional< LPARAM > lparam, UINT exit_code)
Definition: flutter_windows_engine.cc:798
FlutterDesktopMessageResponseHandle
struct _FlutterPlatformMessageResponseHandle FlutterDesktopMessageResponseHandle
Definition: flutter_messenger.h:22
flutter::FlutterWindowsEngine::SetRootIsolateCreateCallback
void SetRootIsolateCreateCallback(const fml::closure &callback)
Definition: flutter_windows_engine.h:236
flutter::FlutterWindowsEngine::SetSwitches
void SetSwitches(const std::vector< std::string > &switches)
Definition: flutter_windows_engine.cc:241
keyboard_key_embedder_handler.h
flutter::FlutterWindowsEngine::~FlutterWindowsEngine
virtual ~FlutterWindowsEngine()
Definition: flutter_windows_engine.cc:236
windows_proc_table.h
flutter::FlutterWindowsEngine::SendPlatformMessage
bool SendPlatformMessage(const char *channel, const uint8_t *message, const size_t message_size, const FlutterDesktopBinaryReply reply, void *user_data)
Definition: flutter_windows_engine.cc:520
flutter::FlutterWindowsEngine::OnPreEngineRestart
void OnPreEngineRestart()
Definition: flutter_windows_engine.cc:719
flutter::KeyboardKeyEmbedderHandler::MapVirtualKeyToScanCode
std::function< SHORT(UINT, bool)> MapVirtualKeyToScanCode
Definition: keyboard_key_embedder_handler.h:43
flutter::FlutterWindowsEngine::UpdateHighContrastEnabled
void UpdateHighContrastEnabled(bool enabled)
Definition: flutter_windows_engine.cc:745
flutter::FlutterWindowsEngine::Stop
virtual bool Stop()
Definition: flutter_windows_engine.cc:442
flutter::FlutterWindowsEngine::messenger
FlutterDesktopMessengerRef messenger()
Definition: flutter_windows_engine.h:128
flutter::FlutterWindowsEngine::ProcessExternalWindowMessage
std::optional< LRESULT > ProcessExternalWindowMessage(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam)
Definition: flutter_windows_engine.cc:814
flutter::BinaryMessenger
Definition: binary_messenger.h:28
flutter::FlutterWindowsEngine::OnDwmCompositionChanged
void OnDwmCompositionChanged()
Definition: flutter_windows_engine.cc:805
flutter::AngleSurfaceManager
Definition: angle_surface_manager.h:28
flutter::FlutterWindowsEngine::SendWindowMetricsEvent
void SendWindowMetricsEvent(const FlutterWindowMetricsEvent &event)
Definition: flutter_windows_engine.cc:499
app_lifecycle_state.h
flutter::FlutterWindowsEngine::DispatchSemanticsAction
bool DispatchSemanticsAction(uint64_t id, FlutterSemanticsAction action, fml::MallocMapping data)
Definition: flutter_windows_engine.cc:702
flutter::FlutterWindowsEngine::CreateKeyboardKeyHandler
virtual std::unique_ptr< KeyboardHandlerBase > CreateKeyboardKeyHandler(BinaryMessenger *messenger, KeyboardKeyEmbedderHandler::GetKeyStateHandler get_key_state, KeyboardKeyEmbedderHandler::MapVirtualKeyToScanCode map_vk_to_scan)
Definition: flutter_windows_engine.cc:643
flutter::FlutterWindowsTextureRegistrar
Definition: flutter_windows_texture_registrar.h:23
flutter::FlutterWindowsEngine::texture_registrar
FlutterWindowsTextureRegistrar * texture_registrar()
Definition: flutter_windows_engine.h:136
accessibility_bridge_windows.h
flutter::FlutterWindowsEngine::AddPluginRegistrarDestructionCallback
void AddPluginRegistrarDestructionCallback(FlutterDesktopOnPluginRegistrarDestroyed callback, FlutterDesktopPluginRegistrarRef registrar)
Definition: flutter_windows_engine.cc:493
flutter::FlutterWindowsEngine::semantics_enabled
bool semantics_enabled() const
Definition: flutter_windows_engine.h:216
flutter_project_bundle.h
binary_messenger_impl.h
window_state.h
flutter::WindowProcDelegateManager
Definition: window_proc_delegate_manager.h:20
flutter
Definition: accessibility_bridge_windows.cc:11
flutter_desktop_messenger.h
flutter::TaskRunner
Definition: task_runner.h:26
flutter::FlutterWindowsEngine::SendPlatformMessageResponse
void SendPlatformMessageResponse(const FlutterDesktopMessageResponseHandle *handle, const uint8_t *data, size_t data_length)
Definition: flutter_windows_engine.cc:554
flutter::FlutterWindowsEngine::keyboard_key_handler
KeyboardHandlerBase * keyboard_key_handler()
Definition: flutter_windows_engine.h:159
FlutterDesktopOnPluginRegistrarDestroyed
void(* FlutterDesktopOnPluginRegistrarDestroyed)(FlutterDesktopPluginRegistrarRef)
Definition: flutter_plugin_registrar.h:23
flutter::FlutterWindowsEngine::SendKeyEvent
void SendKeyEvent(const FlutterKeyEvent &event, FlutterKeyEventCallback callback, void *user_data)
Definition: flutter_windows_engine.cc:512
flutter::FlutterWindowsEngine::message_dispatcher
IncomingMessageDispatcher * message_dispatcher()
Definition: flutter_windows_engine.h:130
keyboard_handler_base.h
basic_message_channel.h
flutter::FlutterWindowsEngine::text_input_plugin
TextInputPlugin * text_input_plugin()
Definition: flutter_windows_engine.h:162
flutter::FlutterWindowsEngine::surface_manager
AngleSurfaceManager * surface_manager()
Definition: flutter_windows_engine.h:142
platform_handler.h
flutter::TextInputPlugin
Definition: text_input_plugin.h:28
flutter::FlutterWindowsEngine::ScheduleFrame
void ScheduleFrame()
Definition: flutter_windows_engine.cc:580
flutter::GlProcs
Definition: external_texture.h:30
FlutterDesktopMessengerRef
struct FlutterDesktopMessenger * FlutterDesktopMessengerRef
Definition: flutter_messenger.h:19
flutter::KeyboardHandlerBase
Definition: keyboard_handler_base.h:18
FlutterDesktopMessage
Definition: flutter_messenger.h:31
flutter::FlutterWindowsEngine::view
FlutterWindowsView * view()
Definition: flutter_windows_engine.h:115
flutter::FlutterWindowsEngine::running
bool running()
Definition: flutter_windows_engine.h:103
flutter_windows.h
message
Win32Message message
Definition: keyboard_unittests.cc:137
flutter::FlutterWindowsEngine::UpdateAccessibilityFeatures
void UpdateAccessibilityFeatures(FlutterAccessibilityFeature flags)
Definition: flutter_windows_engine.cc:740
action
int action
Definition: keyboard_key_handler_unittests.cc:116
flutter::AppLifecycleState
AppLifecycleState
Definition: app_lifecycle_state.h:32
flutter::FlutterWindowsEngine::PostRasterThreadTask
virtual bool PostRasterThreadTask(fml::closure callback)
Definition: flutter_windows_engine.cc:682
flutter::FlutterWindowsEngine::UpdateSemanticsEnabled
void UpdateSemanticsEnabled(bool enabled)
Definition: flutter_windows_engine.cc:711
task_runner.h
cursor_handler.h
incoming_message_dispatcher.h
flutter::WindowsLifecycleManager
Definition: windows_lifecycle_manager.h:37
texture_id
int64_t texture_id
Definition: texture_registrar_unittests.cc:24
accessibility_bridge.h
FlutterDesktopPluginRegistrar
Definition: window_state.h:31
flutter::FlutterWindowsEngine::OnWindowStateEvent
void OnWindowStateEvent(HWND hwnd, WindowStateEvent event)
Definition: flutter_windows_engine.cc:809
flutter::FlutterWindowsEngine::HandlePlatformMessage
void HandlePlatformMessage(const FlutterPlatformMessage *)
Definition: flutter_windows_engine.cc:561
flutter::FlutterWindowsEngine::Run
bool Run()
Definition: flutter_windows_engine.cc:246
flutter::WindowsPlatformThreadPrioritySetter
static void WindowsPlatformThreadPrioritySetter(FlutterThreadPriority priority)
Definition: flutter_windows_engine.h:48
flutter::FlutterWindowsEngine::SetView
void SetView(FlutterWindowsView *view)
Definition: flutter_windows_engine.cc:455
flutter::FlutterWindowsEngine::ReloadSystemFonts
void ReloadSystemFonts()
Definition: flutter_windows_engine.cc:576
flutter::FlutterWindowsEngine::GetExecutableName
std::string GetExecutableName() const
Definition: flutter_windows_engine.cc:726
callback
FlutterDesktopBinaryReply callback
Definition: flutter_windows_view_unittests.cc:46
flutter::FlutterWindowsEngine::EnabledAccessibilityFeatures
int EnabledAccessibilityFeatures() const
Definition: flutter_windows_engine.cc:759