| Flutter Windows Embedder |

flutter_windows.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_PUBLIC_FLUTTER_WINDOWS_H_
6 #define FLUTTER_SHELL_PLATFORM_WINDOWS_PUBLIC_FLUTTER_WINDOWS_H_
7
8 #include <dxgi.h>
9 #include <stddef.h>
10 #include <stdint.h>
11 #include <windows.h>
12
13 #include "flutter_export.h"
14 #include "flutter_messenger.h"
15 #include "flutter_plugin_registrar.h"
16
17 #if defined(__cplusplus)
18 extern "C" {
19 #endif
20
21 typedef void (*VoidCallback)(void* /* user data */);
22
23 // Opaque reference to a Flutter view controller.
24 struct FlutterDesktopViewController;
25 typedef struct FlutterDesktopViewController* FlutterDesktopViewControllerRef;
26
27 // Opaque reference to a Flutter window.
28 struct FlutterDesktopView;
29 typedef struct FlutterDesktopView* FlutterDesktopViewRef;
30
31 // Opaque reference to a Flutter engine instance.
32 struct FlutterDesktopEngine;
33 typedef struct FlutterDesktopEngine* FlutterDesktopEngineRef;
34
35 // The unique identifier for a view.
36 typedef int64_t FlutterDesktopViewId;
37
38 // Configures how the Flutter engine selects a GPU.
39 typedef enum {
40 // No preference.
41 NoPreference,
42 // Prefer energy efficiency over performance, such as an integrated GPU.
43 // This falls back to a high performance GPU if no low power GPU is
44 // available.
45 LowPowerPreference,
46 // Prefer performance over energy efficiency, such as a discrete GPU or
47 // dedicated GPU.
48 // This falls back to a low power GPU if no high performance GPU is available.
49 HighPerformancePreference,
50 } FlutterDesktopGpuPreference;
51
52 // Configures the thread policy for running the UI isolate.
53 typedef enum {
54 // Default value. Currently will run the UI isolate on separate thread,
55 // later will be changed to running the UI isolate on platform thread.
56 Default,
57 // Run the UI isolate on platform thread.
58 RunOnPlatformThread,
59 // Run the UI isolate on a separate thread.
60 RunOnSeparateThread,
61 } FlutterDesktopUIThreadPolicy;
62
63 // Configures the accessibility implementation used by Flutter.
64 typedef enum {
65 // Default value. Flutter will automatically select the best available
66 // implementation.
67 DefaultAccessibilityMode,
68 // Use the IAccessible implementation.
69 IAccessibleMode,
70 // Use the experimental IAccessibleEx implementation.
71 IAccessibleExMode,
72 } FlutterDesktopAccessibilityMode;
73
74 // Properties for configuring a Flutter engine instance.
75 typedef struct {
76 // The path to the flutter_assets folder for the application to be run.
77 // This can either be an absolute path or a path relative to the directory
78 // containing the executable.
79 const wchar_t* assets_path;
80
81 // The path to the icudtl.dat file for the version of Flutter you are using.
82 // This can either be an absolute path or a path relative to the directory
83 // containing the executable.
84 const wchar_t* icu_data_path;
85
86 // The path to the AOT library file for your application, if any.
87 // This can either be an absolute path or a path relative to the directory
88 // containing the executable. This can be nullptr for a non-AOT build, as
89 // it will be ignored in that case.
90 const wchar_t* aot_library_path;
91
92 // The name of the top-level Dart entrypoint function. If null or the empty
93 // string, 'main' is assumed. If a custom entrypoint is used, this parameter
94 // must specifiy the name of a top-level function in the same Dart library as
95 // the app's main() function. Custom entrypoint functions must be decorated
96 // with `@pragma('vm:entry-point')` to ensure the method is not tree-shaken
97 // by the Dart compiler.
98 const char* dart_entrypoint;
99
100 // Number of elements in the array passed in as dart_entrypoint_argv.
101 int dart_entrypoint_argc;
102
103 // Array of Dart entrypoint arguments. This is deep copied during the call
104 // to FlutterDesktopEngineCreate.
105 const char** dart_entrypoint_argv;
106
107 // GPU choice preference
108 FlutterDesktopGpuPreference gpu_preference;
109
110 // Policy for the thread that runs UI isolate.
111 FlutterDesktopUIThreadPolicy ui_thread_policy;
112
113 // The accessibility mode.
114 // This can be used to enable the experimental IAccessibleEx implementation.
115 FlutterDesktopAccessibilityMode accessibility_mode;
116 } FlutterDesktopEngineProperties;
117
118 // ========== View Controller ==========
119
120 // Creates a view that hosts and displays the given engine instance.
121 //
122 // This takes ownership of |engine|, so FlutterDesktopEngineDestroy should no
123 // longer be called on it, as it will be called internally when the view
124 // controller is destroyed. If creating the view controller fails, the engine
125 // will be destroyed immediately.
126 //
127 // If |engine| is not already running, the view controller will start running
128 // it automatically before displaying the window.
129 //
130 // The caller owns the returned reference, and is responsible for calling
131 // FlutterDesktopViewControllerDestroy. Returns a null pointer in the event of
132 // an error.
133 //
134 // The Win32 implementation accepts width, height with view hookup explicitly
135 // performed using the caller using HWND parenting.
136 FLUTTER_EXPORT FlutterDesktopViewControllerRef
137 FlutterDesktopViewControllerCreate(int width,
138 int height,
139 FlutterDesktopEngineRef engine);
140
141 // Shuts down the engine instance associated with |controller|, and cleans up
142 // associated state.
143 //
144 // |controller| is no longer valid after this call.
145 FLUTTER_EXPORT void FlutterDesktopViewControllerDestroy(
146 FlutterDesktopViewControllerRef controller);
147
148 // Returns the view controller's view ID.
149 FLUTTER_EXPORT FlutterDesktopViewId FlutterDesktopViewControllerGetViewId(
150 FlutterDesktopViewControllerRef view_controller);
151
152 // Returns the handle for the engine running in FlutterDesktopViewControllerRef.
153 //
154 // Its lifetime is the same as the |controller|'s.
155 FLUTTER_EXPORT FlutterDesktopEngineRef FlutterDesktopViewControllerGetEngine(
156 FlutterDesktopViewControllerRef controller);
157
158 // Returns the view managed by the given controller.
159 FLUTTER_EXPORT FlutterDesktopViewRef
160 FlutterDesktopViewControllerGetView(FlutterDesktopViewControllerRef controller);
161
162 // Requests new frame from the engine and repaints the view.
163 FLUTTER_EXPORT void FlutterDesktopViewControllerForceRedraw(
164 FlutterDesktopViewControllerRef controller);
165
166 // Allows the Flutter engine and any interested plugins an opportunity to
167 // handle the given message.
168 //
169 // If the WindowProc was handled and further handling should stop, this returns
170 // true and |result| will be populated. |result| is not set if returning false.
171 FLUTTER_EXPORT bool FlutterDesktopViewControllerHandleTopLevelWindowProc(
172 FlutterDesktopViewControllerRef controller,
173 HWND hwnd,
174 UINT message,
175 WPARAM wparam,
176 LPARAM lparam,
177 LRESULT* result);
178
179 // ========== Engine ==========
180
181 // Creates a Flutter engine with the given properties.
182 //
183 // The caller owns the returned reference, and is responsible for calling
184 // FlutterDesktopEngineDestroy. The lifetime of |engine_properties| is required
185 // to extend only until the end of this call.
186 FLUTTER_EXPORT FlutterDesktopEngineRef FlutterDesktopEngineCreate(
187 const FlutterDesktopEngineProperties* engine_properties);
188
189 // Shuts down and destroys the given engine instance. Returns true if the
190 // shutdown was successful, or if the engine was not running.
191 //
192 // |engine| is no longer valid after this call.
193 FLUTTER_EXPORT bool FlutterDesktopEngineDestroy(FlutterDesktopEngineRef engine);
194
195 // Starts running the given engine instance.
196 //
197 // The entry_point parameter is deprecated but preserved for
198 // backward-compatibility. If desired, a custom Dart entrypoint function can be
199 // set in the dart_entrypoint field of the FlutterDesktopEngineProperties
200 // struct passed to FlutterDesktopEngineCreate.
201 //
202 // If specified, entry_point must be the name of a top-level function from the
203 // same Dart library that contains the app's main() function, and must be
204 // decorated with `@pragma(vm:entry-point)` to ensure the method is not
205 // tree-shaken by the Dart compiler. If conflicting non-null values are passed
206 // to this function and via the FlutterDesktopEngineProperties struct, the run
207 // will fail.
208 //
209 // Returns false if running the engine failed.
210 FLUTTER_EXPORT bool FlutterDesktopEngineRun(FlutterDesktopEngineRef engine,
211 const char* entry_point);
212
213 // DEPRECATED: This is no longer necessary to call, Flutter will take care of
214 // processing engine messages transparently through DispatchMessage.
215 //
216 // Processes any pending events in the Flutter engine, and returns the
217 // number of nanoseconds until the next scheduled event (or max, if none).
218 //
219 // This should be called on every run of the application-level runloop, and
220 // a wait for native events in the runloop should never be longer than the
221 // last return value from this function.
222 FLUTTER_EXPORT uint64_t
223 FlutterDesktopEngineProcessMessages(FlutterDesktopEngineRef engine);
224
225 FLUTTER_EXPORT void FlutterDesktopEngineReloadSystemFonts(
226 FlutterDesktopEngineRef engine);
227
228 // Returns the plugin registrar handle for the plugin with the given name.
229 //
230 // The name must be unique across the application.
231 FLUTTER_EXPORT FlutterDesktopPluginRegistrarRef
232 FlutterDesktopEngineGetPluginRegistrar(FlutterDesktopEngineRef engine,
233 const char* plugin_name);
234
235 // Returns the messenger associated with the engine.
236 //
237 // This does not provide an owning reference, so should *not* be balanced with a
238 // call to |FlutterDesktopMessengerRelease|.
239 //
240 // Callers should use |FlutterDesktopMessengerAddRef| if the returned pointer
241 // will potentially outlive 'engine', such as when passing it to another thread.
242 FLUTTER_EXPORT FlutterDesktopMessengerRef
243 FlutterDesktopEngineGetMessenger(FlutterDesktopEngineRef engine);
244
245 // Returns the texture registrar associated with the engine.
246 FLUTTER_EXPORT FlutterDesktopTextureRegistrarRef
247 FlutterDesktopEngineGetTextureRegistrar(FlutterDesktopEngineRef engine);
248
249 // Schedule a callback to be called after the next frame is drawn.
250 //
251 // This must be called from the platform thread. The callback is executed only
252 // once on the platform thread.
253 FLUTTER_EXPORT void FlutterDesktopEngineSetNextFrameCallback(
254 FlutterDesktopEngineRef engine,
255 VoidCallback callback,
256 void* user_data);
257
258 // ========== View ==========
259
260 // Returns the backing HWND for manipulation in host application.
261 FLUTTER_EXPORT HWND FlutterDesktopViewGetHWND(FlutterDesktopViewRef view);
262
263 // Returns the DXGI adapter used for rendering or nullptr in case of error.
264 // DEPRECATED: Use |FlutterDesktopEngineGetGraphicsAdapter| instead.
265 FLUTTER_EXPORT IDXGIAdapter* FlutterDesktopViewGetGraphicsAdapter(
266 FlutterDesktopViewRef view);
267
268 // Returns the DXGI adapter used for rendering or nullptr in case of error.
269 FLUTTER_EXPORT IDXGIAdapter* FlutterDesktopEngineGetGraphicsAdapter(
270 FlutterDesktopEngineRef engine);
271
272 // Called to pass an external window message to the engine for lifecycle
273 // state updates. Non-Flutter windows must call this method in their WndProc
274 // in order to be included in the logic for application lifecycle state
275 // updates. Returns a result if the message should be consumed.
276 FLUTTER_EXPORT bool FlutterDesktopEngineProcessExternalWindowMessage(
277 FlutterDesktopEngineRef engine,
278 HWND hwnd,
279 UINT message,
280 WPARAM wparam,
281 LPARAM lparam,
282 LRESULT* result);
283
284 // ========== Plugin Registrar (extensions) ==========
285 // These are Windows-specific extensions to flutter_plugin_registrar.h
286
287 // Function pointer type for top level WindowProc delegate registration.
288 //
289 // The user data will be whatever was passed to
290 // FlutterDesktopRegisterTopLevelWindowProcHandler.
291 //
292 // Implementations should populate |result| and return true if the WindowProc
293 // was handled and further handling should stop. |result| is ignored if the
294 // function returns false.
295 typedef bool (*FlutterDesktopWindowProcCallback)(HWND /* hwnd */,
296 UINT /* uMsg */,
297 WPARAM /*wParam*/,
298 LPARAM /* lParam*/,
299 void* /* user data */,
300 LRESULT* result);
301
302 // Returns the implicit view associated with this registrar's engine instance,
303 // or null if there is no implicit view.
304 //
305 // See:
306 // https://api.flutter.dev/flutter/dart-ui/PlatformDispatcher/implicitView.html
307 //
308 // DEPRECATED: Use |FlutterDesktopPluginRegistrarGetViewById| instead.
309 FLUTTER_EXPORT FlutterDesktopViewRef FlutterDesktopPluginRegistrarGetView(
310 FlutterDesktopPluginRegistrarRef registrar);
311
312 // Returns the view associated with the registrar's engine instance, or null if
313 // the view does not exist.
314 FLUTTER_EXPORT FlutterDesktopViewRef FlutterDesktopPluginRegistrarGetViewById(
315 FlutterDesktopPluginRegistrarRef registrar,
316 FlutterDesktopViewId view_id);
317
318 FLUTTER_EXPORT void
319 FlutterDesktopPluginRegistrarRegisterTopLevelWindowProcDelegate(
320 FlutterDesktopPluginRegistrarRef registrar,
321 FlutterDesktopWindowProcCallback delegate,
322 void* user_data);
323
324 FLUTTER_EXPORT void
325 FlutterDesktopPluginRegistrarUnregisterTopLevelWindowProcDelegate(
326 FlutterDesktopPluginRegistrarRef registrar,
327 FlutterDesktopWindowProcCallback delegate);
328
329 // ========== Freestanding Utilities ==========
330
331 // Gets the DPI for a given |hwnd|, depending on the supported APIs per
332 // windows version and DPI awareness mode. If nullptr is passed, returns the DPI
333 // of the primary monitor.
334 //
335 // This uses the same logic and fallback for older Windows versions that is used
336 // internally by Flutter to determine the DPI to use for displaying Flutter
337 // content, so should be used by any code (e.g., in plugins) that translates
338 // between Windows and Dart sizes/offsets.
339 FLUTTER_EXPORT UINT FlutterDesktopGetDpiForHWND(HWND hwnd);
340
341 // Gets the DPI for a given |monitor|. If the API is not available, a default
342 // DPI of 96 is returned.
343 //
344 // See FlutterDesktopGetDpiForHWND for more information.
345 FLUTTER_EXPORT UINT FlutterDesktopGetDpiForMonitor(HMONITOR monitor);
346
347 // Reopens stdout and stderr and resysncs the standard library output streams.
348 // Should be called if output is being directed somewhere in the runner process
349 // (e.g., after an AllocConsole call).
350 FLUTTER_EXPORT void FlutterDesktopResyncOutputStreams();
351
352 #if defined(__cplusplus)
353 } // extern "C"
354 #endif
355
356 #endif // FLUTTER_SHELL_PLATFORM_WINDOWS_PUBLIC_FLUTTER_WINDOWS_H_
flutter_export.h
FLUTTER_EXPORT
#define FLUTTER_EXPORT
Definition: flutter_export.h:23
flutter_messenger.h
FlutterDesktopMessengerRef
struct FlutterDesktopMessenger * FlutterDesktopMessengerRef
Definition: flutter_messenger.h:19
flutter_plugin_registrar.h
FlutterDesktopTextureRegistrarRef
struct FlutterDesktopTextureRegistrar * FlutterDesktopTextureRegistrarRef
Definition: flutter_texture_registrar.h:19
FlutterDesktopResyncOutputStreams
FLUTTER_EXPORT void FlutterDesktopResyncOutputStreams()
Definition: flutter_windows.cc:337
FlutterDesktopViewControllerGetView
FLUTTER_EXPORT FlutterDesktopViewRef FlutterDesktopViewControllerGetView(FlutterDesktopViewControllerRef controller)
Definition: flutter_windows.cc:154
FlutterDesktopEngineGetTextureRegistrar
FLUTTER_EXPORT FlutterDesktopTextureRegistrarRef FlutterDesktopEngineGetTextureRegistrar(FlutterDesktopEngineRef engine)
Definition: flutter_windows.cc:240
FlutterDesktopViewControllerRef
struct FlutterDesktopViewController * FlutterDesktopViewControllerRef
Definition: flutter_windows.h:25
FlutterDesktopViewControllerDestroy
FLUTTER_EXPORT void FlutterDesktopViewControllerDestroy(FlutterDesktopViewControllerRef controller)
Definition: flutter_windows.cc:136
FlutterDesktopWindowProcCallback
bool(* FlutterDesktopWindowProcCallback)(HWND, UINT, WPARAM, LPARAM, void *, LRESULT *result)
Definition: flutter_windows.h:295
FlutterDesktopEngineRef
struct FlutterDesktopEngine * FlutterDesktopEngineRef
Definition: flutter_windows.h:33
FlutterDesktopEngineRun
FLUTTER_EXPORT bool FlutterDesktopEngineRun(FlutterDesktopEngineRef engine, const char *entry_point)
Definition: flutter_windows.cc:207
FlutterDesktopUIThreadPolicy
FlutterDesktopUIThreadPolicy
Definition: flutter_windows.h:53
RunOnPlatformThread
@ RunOnPlatformThread
Definition: flutter_windows.h:58
RunOnSeparateThread
@ RunOnSeparateThread
Definition: flutter_windows.h:60
Default
@ Default
Definition: flutter_windows.h:56
FlutterDesktopEngineProcessExternalWindowMessage
FLUTTER_EXPORT bool FlutterDesktopEngineProcessExternalWindowMessage(FlutterDesktopEngineRef engine, HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam, LRESULT *result)
Definition: flutter_windows.cc:279
FlutterDesktopViewId
int64_t FlutterDesktopViewId
Definition: flutter_windows.h:36
FlutterDesktopViewGetHWND
FLUTTER_EXPORT HWND FlutterDesktopViewGetHWND(FlutterDesktopViewRef view)
Definition: flutter_windows.cc:253
FlutterDesktopViewControllerForceRedraw
FLUTTER_EXPORT void FlutterDesktopViewControllerForceRedraw(FlutterDesktopViewControllerRef controller)
Definition: flutter_windows.cc:160
FlutterDesktopEngineGetMessenger
FLUTTER_EXPORT FlutterDesktopMessengerRef FlutterDesktopEngineGetMessenger(FlutterDesktopEngineRef engine)
Definition: flutter_windows.cc:235
FlutterDesktopViewRef
struct FlutterDesktopView * FlutterDesktopViewRef
Definition: flutter_windows.h:29
FlutterDesktopGpuPreference
FlutterDesktopGpuPreference
Definition: flutter_windows.h:39
LowPowerPreference
@ LowPowerPreference
Definition: flutter_windows.h:45
HighPerformancePreference
@ HighPerformancePreference
Definition: flutter_windows.h:49
NoPreference
@ NoPreference
Definition: flutter_windows.h:41
FlutterDesktopPluginRegistrarRegisterTopLevelWindowProcDelegate
FLUTTER_EXPORT void FlutterDesktopPluginRegistrarRegisterTopLevelWindowProcDelegate(FlutterDesktopPluginRegistrarRef registrar, FlutterDesktopWindowProcCallback delegate, void *user_data)
Definition: flutter_windows.cc:314
FlutterDesktopViewGetGraphicsAdapter
FLUTTER_EXPORT IDXGIAdapter * FlutterDesktopViewGetGraphicsAdapter(FlutterDesktopViewRef view)
Definition: flutter_windows.cc:257
VoidCallback
void(* VoidCallback)(void *)
Definition: flutter_windows.h:21
FlutterDesktopPluginRegistrarGetViewById
FLUTTER_EXPORT FlutterDesktopViewRef FlutterDesktopPluginRegistrarGetViewById(FlutterDesktopPluginRegistrarRef registrar, FlutterDesktopViewId view_id)
Definition: flutter_windows.cc:308
FlutterDesktopEngineDestroy
FLUTTER_EXPORT bool FlutterDesktopEngineDestroy(FlutterDesktopEngineRef engine)
Definition: flutter_windows.cc:191
FlutterDesktopViewControllerGetEngine
FLUTTER_EXPORT FlutterDesktopEngineRef FlutterDesktopViewControllerGetEngine(FlutterDesktopViewControllerRef controller)
Definition: flutter_windows.cc:148
FlutterDesktopGetDpiForHWND
FLUTTER_EXPORT UINT FlutterDesktopGetDpiForHWND(HWND hwnd)
Definition: flutter_windows.cc:329
FlutterDesktopEngineGetPluginRegistrar
FLUTTER_EXPORT FlutterDesktopPluginRegistrarRef FlutterDesktopEngineGetPluginRegistrar(FlutterDesktopEngineRef engine, const char *plugin_name)
Definition: flutter_windows.cc:225
FlutterDesktopAccessibilityMode
FlutterDesktopAccessibilityMode
Definition: flutter_windows.h:64
IAccessibleMode
@ IAccessibleMode
Definition: flutter_windows.h:69
IAccessibleExMode
@ IAccessibleExMode
Definition: flutter_windows.h:71
DefaultAccessibilityMode
@ DefaultAccessibilityMode
Definition: flutter_windows.h:67
FlutterDesktopPluginRegistrarUnregisterTopLevelWindowProcDelegate
FLUTTER_EXPORT void FlutterDesktopPluginRegistrarUnregisterTopLevelWindowProcDelegate(FlutterDesktopPluginRegistrarRef registrar, FlutterDesktopWindowProcCallback delegate)
Definition: flutter_windows.cc:322
FlutterDesktopGetDpiForMonitor
FLUTTER_EXPORT UINT FlutterDesktopGetDpiForMonitor(HMONITOR monitor)
Definition: flutter_windows.cc:333
FlutterDesktopEngineReloadSystemFonts
FLUTTER_EXPORT void FlutterDesktopEngineReloadSystemFonts(FlutterDesktopEngineRef engine)
Definition: flutter_windows.cc:221
FlutterDesktopViewControllerGetViewId
FLUTTER_EXPORT FlutterDesktopViewId FlutterDesktopViewControllerGetViewId(FlutterDesktopViewControllerRef view_controller)
Definition: flutter_windows.cc:142
FlutterDesktopEngineGetGraphicsAdapter
FLUTTER_EXPORT IDXGIAdapter * FlutterDesktopEngineGetGraphicsAdapter(FlutterDesktopEngineRef engine)
Definition: flutter_windows.cc:262
FlutterDesktopEngineCreate
FLUTTER_EXPORT FlutterDesktopEngineRef FlutterDesktopEngineCreate(const FlutterDesktopEngineProperties *engine_properties)
Definition: flutter_windows.cc:184
FlutterDesktopViewControllerCreate
FLUTTER_EXPORT FlutterDesktopViewControllerRef FlutterDesktopViewControllerCreate(int width, int height, FlutterDesktopEngineRef engine)
Definition: flutter_windows.cc:122
FlutterDesktopViewControllerHandleTopLevelWindowProc
FLUTTER_EXPORT bool FlutterDesktopViewControllerHandleTopLevelWindowProc(FlutterDesktopViewControllerRef controller, HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam, LRESULT *result)
Definition: flutter_windows.cc:166
FlutterDesktopEngineSetNextFrameCallback
FLUTTER_EXPORT void FlutterDesktopEngineSetNextFrameCallback(FlutterDesktopEngineRef engine, VoidCallback callback, void *user_data)
Definition: flutter_windows.cc:246
FlutterDesktopEngineProcessMessages
FLUTTER_EXPORT uint64_t FlutterDesktopEngineProcessMessages(FlutterDesktopEngineRef engine)
Definition: flutter_windows.cc:217
FlutterDesktopPluginRegistrarGetView
FLUTTER_EXPORT FlutterDesktopViewRef FlutterDesktopPluginRegistrarGetView(FlutterDesktopPluginRegistrarRef registrar)
Definition: flutter_windows.cc:303
user_data
void * user_data
Definition: flutter_windows_view_unittests.cc:53
callback
FlutterDesktopBinaryReply callback
Definition: flutter_windows_view_unittests.cc:52
message
Win32Message message
Definition: keyboard_unittests.cc:137
FlutterDesktopEngineProperties
Definition: flutter_windows.h:75
FlutterDesktopEngineProperties::dart_entrypoint
const char * dart_entrypoint
Definition: flutter_windows.h:98
FlutterDesktopEngineProperties::accessibility_mode
FlutterDesktopAccessibilityMode accessibility_mode
Definition: flutter_windows.h:115
FlutterDesktopEngineProperties::icu_data_path
const wchar_t * icu_data_path
Definition: flutter_windows.h:84
FlutterDesktopEngineProperties::dart_entrypoint_argc
int dart_entrypoint_argc
Definition: flutter_windows.h:101
FlutterDesktopEngineProperties::assets_path
const wchar_t * assets_path
Definition: flutter_windows.h:79
FlutterDesktopEngineProperties::dart_entrypoint_argv
const char ** dart_entrypoint_argv
Definition: flutter_windows.h:105
FlutterDesktopEngineProperties::ui_thread_policy
FlutterDesktopUIThreadPolicy ui_thread_policy
Definition: flutter_windows.h:111
FlutterDesktopEngineProperties::aot_library_path
const wchar_t * aot_library_path
Definition: flutter_windows.h:90
FlutterDesktopEngineProperties::gpu_preference
FlutterDesktopGpuPreference gpu_preference
Definition: flutter_windows.h:108
FlutterDesktopPluginRegistrar
Definition: window_state.h:23