Flutter Engine Uber Docs
Docs for the entire Flutter Engine repo.
 
Loading...
Searching...
No Matches
fl_engine_private.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_LINUX_FL_ENGINE_PRIVATE_H_
6#define FLUTTER_SHELL_PLATFORM_LINUX_FL_ENGINE_PRIVATE_H_
7
8#include <glib-object.h>
9
20
21G_BEGIN_DECLS
22
23/**
24 * FlEngineError:
25 * Errors for #FlEngine objects to set on failures.
26 */
27
31
32GQuark fl_engine_error_quark(void) G_GNUC_CONST;
33
34/**
35 * FlEnginePlatformMessageHandler:
36 * @engine: an #FlEngine.
37 * @channel: channel message received on.
38 * @message: message content received from Dart.
39 * @response_handle: a handle to respond to the message with.
40 * @user_data: (closure): data provided when registering this handler.
41 *
42 * Function called when platform messages are received.
43 *
44 * Returns: %TRUE if message has been accepted.
45 */
47 FlEngine* engine,
48 const gchar* channel,
49 GBytes* message,
50 const FlutterPlatformMessageResponseHandle* response_handle,
51 gpointer user_data);
52
53/**
54 * fl_engine_new_with_binary_messenger:
55 * @binary_messenger: an #FlBinaryMessenger.
56 *
57 * Creates a new engine with a custom binary messenger. Used for testing.
58 *
59 * Returns: a new #FlEngine.
60 */
62 FlBinaryMessenger* binary_messenger);
63
64/**
65 * fl_engine_get_renderer_type:
66 * @engine: an #FlEngine.
67 *
68 * Gets the rendering type used by this engine.
69 *
70 * Returns: type of rendering used.
71 */
73
74/**
75 * fl_engine_get_opengl_manager:
76 * @engine: an #FlEngine.
77 *
78 * Gets the OpenGL manager used by this engine.
79 *
80 * Returns: an #FlOpenGLManager.
81 */
82FlOpenGLManager* fl_engine_get_opengl_manager(FlEngine* engine);
83
84/**
85 * fl_engine_get_display_monitor:
86 * @engine: an #FlEngine.
87 *
88 * Gets the display monitor used by this engine.
89 *
90 * Returns: an #FlDisplayMonitor.
91 */
92FlDisplayMonitor* fl_engine_get_display_monitor(FlEngine* engine);
93
94/**
95 * fl_engine_start:
96 * @engine: an #FlEngine.
97 * @error: (allow-none): #GError location to store the error occurring, or %NULL
98 * to ignore. If `error` is not %NULL, `*error` must be initialized (typically
99 * %NULL, but an error from a previous call using GLib error handling is
100 * explicitly valid).
101 *
102 * Starts the Flutter engine.
103 *
104 * Returns: %TRUE on success.
105 */
106gboolean fl_engine_start(FlEngine* engine, GError** error);
107
108/**
109 * fl_engine_get_embedder_api:
110 * @engine: an #FlEngine.
111 *
112 * Gets the embedder API proc table, allowing modificiations for unit testing.
113 *
114 * Returns: a mutable pointer to the embedder API proc table.
115 */
117
118/**
119 * fl_engine_notify_display_update:
120 * @engine: an #FlEngine.
121 * @displays: displays present on the system.
122 * @displays_length: length of @displays.
123 *
124 * Notify the current displays that are in the system.
125 */
128 size_t displays_length);
129
130/**
131 * fl_engine_set_implicit_view:
132 * @engine: an #FlEngine.
133 * @renderable: the object that will render the implicit view.
134 *
135 * Sets the object to render the implicit view.
136 */
137void fl_engine_set_implicit_view(FlEngine* engine, FlRenderable* renderable);
138
139/**
140 * fl_engine_add_view:
141 * @engine: an #FlEngine.
142 * @renderable: the object that will render this view.
143 * @min_width: minimum width of view in pixels.
144 * @min_height: minimum height of view in pixels.
145 * @max_width: maximum width of view in pixels.
146 * @max_height: maximum height of view in pixels.
147 * @pixel_ratio: scale factor for view.
148 * @cancellable: (allow-none): a #GCancellable or %NULL.
149 * @callback: (scope async): a #GAsyncReadyCallback to call when the view is
150 * added.
151 * @user_data: (closure): user data to pass to @callback.
152 *
153 * Asynchronously add a new view. The returned view ID should not be used until
154 * this function completes.
155 *
156 * Returns: the ID for the view.
157 */
159 FlRenderable* renderable,
160 size_t min_width,
161 size_t min_height,
162 size_t max_width,
163 size_t max_height,
164 double pixel_ratio,
165 GCancellable* cancellable,
166 GAsyncReadyCallback callback,
167 gpointer user_data);
168
169/**
170 * fl_engine_add_view_finish:
171 * @engine: an #FlEngine.
172 * @result: a #GAsyncResult.
173 * @error: (allow-none): #GError location to store the error occurring, or %NULL
174 * to ignore. If `error` is not %NULL, `*error` must be initialized (typically
175 * %NULL, but an error from a previous call using GLib error handling is
176 * explicitly valid).
177 *
178 * Completes request started with fl_engine_add_view().
179 *
180 * Returns: %TRUE on success.
181 */
182gboolean fl_engine_add_view_finish(FlEngine* engine,
183 GAsyncResult* result,
184 GError** error);
185
186/**
187 * fl_engine_get_renderable:
188 * @engine: an #FlEngine.
189 * @view_id: ID to check.
190 *
191 * Gets the renderable associated with the give view ID.
192 *
193 * Returns: (transfer full): a reference to an #FlRenderable or %NULL if none
194 * for this ID.
195 */
196FlRenderable* fl_engine_get_renderable(FlEngine* engine, FlutterViewId view_id);
197
198/**
199 * fl_engine_remove_view:
200 * @engine: an #FlEngine.
201 * @view_id: ID to remove.
202 * @cancellable: (allow-none): a #GCancellable or %NULL.
203 * @callback: (scope async): a #GAsyncReadyCallback to call when the view is
204 * added.
205 * @user_data: (closure): user data to pass to @callback.
206 *
207 * Removes a view previously added with fl_engine_add_view().
208 */
209void fl_engine_remove_view(FlEngine* engine,
211 GCancellable* cancellable,
212 GAsyncReadyCallback callback,
213 gpointer user_data);
214
215/**
216 * fl_engine_remove_view_finish:
217 * @engine: an #FlEngine.
218 * @result: a #GAsyncResult.
219 * @error: (allow-none): #GError location to store the error occurring, or %NULL
220 * to ignore. If `error` is not %NULL, `*error` must be initialized (typically
221 * %NULL, but an error from a previous call using GLib error handling is
222 * explicitly valid).
223 *
224 * Completes request started with fl_engine_remove_view().
225 *
226 * Returns: %TRUE on succcess.
227 */
228gboolean fl_engine_remove_view_finish(FlEngine* engine,
229 GAsyncResult* result,
230 GError** error);
231
232/**
233 * fl_engine_set_platform_message_handler:
234 * @engine: an #FlEngine.
235 * @handler: function to call when a platform message is received.
236 * @user_data: (closure): user data to pass to @handler.
237 * @destroy_notify: (allow-none): a function which gets called to free
238 * @user_data, or %NULL.
239 *
240 * Registers the function called when a platform message is received. Call
241 * fl_engine_send_platform_message_response() with the response to this message.
242 * Ownership of #FlutterPlatformMessageResponseHandle is
243 * transferred to the caller, and the message must be responded to avoid
244 * memory leaks.
245 */
247 FlEngine* engine,
249 gpointer user_data,
250 GDestroyNotify destroy_notify);
251
252/**
253 * fl_engine_send_window_metrics_event:
254 * @engine: an #FlEngine.
255 * @display_id: the display this view is rendering on.
256 * @view_id: the view that the event occured on.
257 * @min_width: minimum width of view in pixels.
258 * @min_height: minimum height of view in pixels.
259 * @max_width: maximum width of view in pixels.
260 * @max_height: maximum height of view in pixels.
261 * @pixel_ratio: scale factor for view.
262 *
263 * Sends a window metrics event to the engine.
264 */
266 FlutterEngineDisplayId display_id,
268 size_t min_width,
269 size_t min_height,
270 size_t max_width,
271 size_t max_height,
272 double pixel_ratio);
273
274/**
275 * fl_engine_send_mouse_pointer_event:
276 * @engine: an #FlEngine.
277 * @view_id: the view that the event occured on.
278 * @phase: mouse phase.
279 * @timestamp: time when event occurred in microseconds.
280 * @x: x location of mouse cursor.
281 * @y: y location of mouse cursor.
282 * @device_kind: kind of pointing device.
283 * @scroll_delta_x: x offset of scroll.
284 * @scroll_delta_y: y offset of scroll.
285 * @buttons: buttons that are pressed.
286 * @rotation: rotation of the pointer device in degrees.
287 * @pressure: pressure of the pointer device.
288 *
289 * Sends a mouse pointer event to the engine.
290 */
294 size_t timestamp,
295 double x,
296 double y,
297 FlutterPointerDeviceKind device_kind,
298 double scroll_delta_x,
299 double scroll_delta_y,
300 int64_t buttons,
301 double rotation,
302 double pressure);
303
304/**
305 * fl_engine_send_touch_up_event:
306 * @engine: an #FlEngine.
307 * @view_id: the view that the event occured on.
308 * @timestamp: time when event occurred in microseconds.
309 * @x: x location of mouse cursor.
310 * @y: y location of mouse cursor.
311 * @device: device id.
312 *
313 * Sends a touch up event to the engine.
314 */
317 size_t timestamp,
318 double x,
319 double y,
320 int32_t device);
321
322/**
323 * fl_engine_send_touch_down_event:
324 * @engine: an #FlEngine.
325 * @view_id: the view that the event occured on.
326 * @timestamp: time when event occurred in microseconds.
327 * @x: x location of mouse cursor.
328 * @y: y location of mouse cursor.
329 * @device: device id.
330 *
331 * Sends a touch down event to the engine.
332 */
335 size_t timestamp,
336 double x,
337 double y,
338 int32_t device);
339/**
340 * fl_engine_send_touch_move_event:
341 * @engine: an #FlEngine.
342 * @view_id: the view that the event occured on.
343 * @timestamp: time when event occurred in microseconds.
344 * @x: x location of mouse cursor.
345 * @y: y location of mouse cursor.
346 * @device: device id.
347 *
348 * Sends a touch move event to the engine.
349 */
352 size_t timestamp,
353 double x,
354 double y,
355 int32_t device);
356
357/**
358 * fl_engine_send_touch_add_event:
359 * @engine: an #FlEngine.
360 * @view_id: the view that the event occured on.
361 * @timestamp: time when event occurred in microseconds.
362 * @x: x location of mouse cursor.
363 * @y: y location of mouse cursor.
364 * @device: device id.
365 *
366 * Sends a touch add event to the engine.
367 */
370 size_t timestamp,
371 double x,
372 double y,
373 int32_t device);
374
375/**
376 * fl_engine_send_touch_remove_event:
377 * @engine: an #FlEngine.
378 * @view_id: the view that the event occured on.
379 * @timestamp: time when event occurred in microseconds.
380 * @x: x location of mouse cursor.
381 * @y: y location of mouse cursor.
382 * @device: device id.
383 *
384 * Sends a touch remove event to the engine.
385 */
388 size_t timestamp,
389 double x,
390 double y,
391 int32_t device);
392
393/**
394 * fl_engine_send_pointer_pan_zoom_event:
395 * @engine: an #FlEngine.
396 * @view_id: the view that the event occured on.
397 * @timestamp: time when event occurred in microseconds.
398 * @x: x location of mouse cursor.
399 * @y: y location of mouse cursor.
400 * @phase: mouse phase.
401 * @pan_x: x offset of the pan/zoom in pixels.
402 * @pan_y: y offset of the pan/zoom in pixels.
403 * @scale: scale of the pan/zoom.
404 * @rotation: rotation of the pan/zoom in radians.
405 *
406 * Sends a pan/zoom pointer event to the engine.
407 */
410 size_t timestamp,
411 double x,
412 double y,
414 double pan_x,
415 double pan_y,
416 double scale,
417 double rotation);
418
419/**
420 * fl_engine_send_key_event:
421 * @engine: an #FlEngine.
422 * @event: key event to send.
423 * @cancellable: (allow-none): a #GCancellable or %NULL.
424 * @callback: (scope async): a #GAsyncReadyCallback to call when the request is
425 * satisfied.
426 * @user_data: (closure): user data to pass to @callback.
427 *
428 * Send a key event to the engine.
429 */
430void fl_engine_send_key_event(FlEngine* engine,
431 const FlutterKeyEvent* event,
432 GCancellable* cancellable,
433 GAsyncReadyCallback callback,
434 gpointer user_data);
435
436/**
437 * fl_engine_send_key_event_finish:
438 * @engine: an #FlEngine.
439 * @result: a #GAsyncResult.
440 * @handled: location to write if this event was handled by the engine.
441 * @error: (allow-none): #GError location to store the error occurring, or %NULL
442 * to ignore. If `error` is not %NULL, `*error` must be initialized (typically
443 * %NULL, but an error from a previous call using GLib error handling is
444 * explicitly valid).
445 *
446 * Completes request started with fl_engine_send_key_event().
447 *
448 * Returns: %TRUE on success.
449 */
450gboolean fl_engine_send_key_event_finish(FlEngine* engine,
451 GAsyncResult* result,
452 gboolean* handled,
453 GError** error);
454
455/**
456 * fl_engine_dispatch_semantics_action:
457 * @engine: an #FlEngine.
458 * @view_id: the view that the event occured on.
459 * @node_id: the semantics action identifier.
460 * @action: the action being dispatched.
461 * @data: (allow-none): data associated with the action.
462 */
465 uint64_t node_id,
467 GBytes* data);
468
469/**
470 * fl_engine_send_platform_message_response:
471 * @engine: an #FlEngine.
472 * @handle: handle that was provided in #FlEnginePlatformMessageHandler.
473 * @response: (allow-none): response to send or %NULL for an empty response.
474 * @error: (allow-none): #GError location to store the error occurring, or %NULL
475 * to ignore. If `error` is not %NULL, `*error` must be initialized (typically
476 * %NULL, but an error from a previous call using GLib error handling is
477 * explicitly valid).
478 *
479 * Responds to a platform message.
480 *
481 * Returns: %TRUE on success.
482 */
484 FlEngine* engine,
486 GBytes* response,
487 GError** error);
488
489/**
490 * fl_engine_send_platform_message:
491 * @engine: an #FlEngine.
492 * @channel: channel to send to.
493 * @message: (allow-none): message buffer to send or %NULL for an empty message
494 * @cancellable: (allow-none): a #GCancellable or %NULL.
495 * @callback: (scope async): a #GAsyncReadyCallback to call when the request is
496 * satisfied.
497 * @user_data: (closure): user data to pass to @callback.
498 *
499 * Asynchronously sends a platform message.
500 */
502 const gchar* channel,
503 GBytes* message,
504 GCancellable* cancellable,
505 GAsyncReadyCallback callback,
506 gpointer user_data);
507
508/**
509 * fl_engine_send_platform_message_finish:
510 * @engine: an #FlEngine.
511 * @result: a #GAsyncResult.
512 * @error: (allow-none): #GError location to store the error occurring, or %NULL
513 * to ignore. If `error` is not %NULL, `*error` must be initialized (typically
514 * %NULL, but an error from a previous call using GLib error handling is
515 * explicitly valid).
516 *
517 * Completes request started with fl_engine_send_platform_message().
518 *
519 * Returns: message response on success or %NULL on error.
520 */
522 GAsyncResult* result,
523 GError** error);
524
525/**
526 * fl_engine_get_task_runner:
527 * @engine: an #FlEngine.
528 * @result: a #FlTaskRunner.
529 *
530 * Returns: task runner responsible for scheduling Flutter tasks.
531 */
532FlTaskRunner* fl_engine_get_task_runner(FlEngine* engine);
533
534/**
535 * fl_engine_execute_task:
536 * @engine: an #FlEngine.
537 * @task: a #FlutterTask to execute.
538 *
539 * Executes given Flutter task.
540 */
541void fl_engine_execute_task(FlEngine* engine, FlutterTask* task);
542
543/**
544 * fl_engine_mark_texture_frame_available:
545 * @engine: an #FlEngine.
546 * @texture_id: the identifier of the texture whose frame has been updated.
547 *
548 * Tells the Flutter engine that a new texture frame is available for the given
549 * texture.
550 *
551 * Returns: %TRUE on success.
552 */
554 int64_t texture_id);
555
556/**
557 * fl_engine_register_external_texture:
558 * @engine: an #FlEngine.
559 * @texture_id: the identifier of the texture that is available.
560 *
561 * Tells the Flutter engine that a new external texture is available.
562 *
563 * Returns: %TRUE on success.
564 */
566 int64_t texture_id);
567
568/**
569 * fl_engine_unregister_external_texture:
570 * @engine: an #FlEngine.
571 * @texture_id: the identifier of the texture that is not available anymore.
572 *
573 * Tells the Flutter engine that an existing external texture is not available
574 * anymore.
575 *
576 * Returns: %TRUE on success.
577 */
579 int64_t texture_id);
580
581/**
582 * fl_engine_update_accessibility_features:
583 * @engine: an #FlEngine.
584 * @flags: the features to enable in the accessibility tree.
585 *
586 * Tells the Flutter engine to update the flags on the accessibility tree.
587 */
588void fl_engine_update_accessibility_features(FlEngine* engine, int32_t flags);
589
590/**
591 * fl_engine_request_app_exit:
592 * @engine: an #FlEngine.
593 *
594 * Request the application exits.
595 */
596void fl_engine_request_app_exit(FlEngine* engine);
597
598/**
599 * fl_engine_get_keyboard_manager:
600 * @engine: an #FlEngine.
601 *
602 * Gets the keyboard manager used by this engine.
603 *
604 * Returns: an #FlKeyboardManager.
605 */
606FlKeyboardManager* fl_engine_get_keyboard_manager(FlEngine* engine);
607
608/**
609 * fl_engine_get_text_input_handler:
610 * @engine: an #FlEngine.
611 *
612 * Gets the text input handler used by this engine.
613 *
614 * Returns: an #FlTextInputHandler.
615 */
616FlTextInputHandler* fl_engine_get_text_input_handler(FlEngine* engine);
617
618/**
619 * fl_engine_get_mouse_cursor_handler:
620 * @engine: an #FlEngine.
621 *
622 * Gets the mouse cursor handler used by this engine.
623 *
624 * Returns: an #FlMouseCursorHandler.
625 */
626FlMouseCursorHandler* fl_engine_get_mouse_cursor_handler(FlEngine* engine);
627
628/**
629 * fl_engine_for_id:
630 * @handle: an engine identifier obtained through
631 * PlatformDispatcher.instance.engineId.
632 *
633 * Returns Flutter engine associated with the identifier. The identifier
634 * must be valid and for a running engine otherwise the behavior is
635 * undefined.
636 * Must be called from the main thread.
637 *
638 * Returns: a #FlEngine or NULL.
639 */
640FlEngine* fl_engine_for_id(int64_t handle);
641
642G_END_DECLS
643
644#endif // FLUTTER_SHELL_PLATFORM_LINUX_FL_ENGINE_PRIVATE_H_
int32_t x
uint64_t FlutterEngineDisplayId
Definition embedder.h:1050
FlutterRendererType
Definition embedder.h:79
FlutterPointerPhase
The phase of the pointer event.
Definition embedder.h:1267
FlutterSemanticsAction
Definition embedder.h:122
int64_t FlutterViewId
Definition embedder.h:393
FlutterPointerDeviceKind
The device type that created a pointer event.
Definition embedder.h:1309
VkDevice device
Definition main.cc:69
FlutterEngine engine
Definition main.cc:84
const char * message
FlRenderable * renderable
gboolean fl_engine_remove_view_finish(FlEngine *engine, GAsyncResult *result, GError **error)
void fl_engine_send_pointer_pan_zoom_event(FlEngine *engine, FlutterViewId view_id, size_t timestamp, double x, double y, FlutterPointerPhase phase, double pan_x, double pan_y, double scale, double rotation)
gboolean fl_engine_send_platform_message_response(FlEngine *engine, const FlutterPlatformMessageResponseHandle *handle, GBytes *response, GError **error)
FlMouseCursorHandler * fl_engine_get_mouse_cursor_handler(FlEngine *engine)
void fl_engine_request_app_exit(FlEngine *engine)
void fl_engine_send_touch_move_event(FlEngine *engine, FlutterViewId view_id, size_t timestamp, double x, double y, int32_t device)
void fl_engine_execute_task(FlEngine *engine, FlutterTask *task)
FlTextInputHandler * fl_engine_get_text_input_handler(FlEngine *engine)
FlEngine * fl_engine_new_with_binary_messenger(FlBinaryMessenger *binary_messenger)
Definition fl_engine.cc:734
void fl_engine_send_touch_add_event(FlEngine *engine, FlutterViewId view_id, size_t timestamp, double x, double y, int32_t device)
FlKeyboardManager * fl_engine_get_keyboard_manager(FlEngine *engine)
void fl_engine_remove_view(FlEngine *engine, FlutterViewId view_id, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
void fl_engine_send_key_event(FlEngine *engine, const FlutterKeyEvent *event, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
void fl_engine_send_mouse_pointer_event(FlEngine *engine, FlutterViewId view_id, FlutterPointerPhase phase, size_t timestamp, double x, double y, FlutterPointerDeviceKind device_kind, double scroll_delta_x, double scroll_delta_y, int64_t buttons, double rotation, double pressure)
gboolean fl_engine_mark_texture_frame_available(FlEngine *engine, int64_t texture_id)
GQuark fl_engine_error_quark(void) G_GNUC_CONST
void fl_engine_notify_display_update(FlEngine *engine, const FlutterEngineDisplay *displays, size_t displays_length)
Definition fl_engine.cc:924
gboolean fl_engine_unregister_external_texture(FlEngine *engine, int64_t texture_id)
FlRenderable * fl_engine_get_renderable(FlEngine *engine, FlutterViewId view_id)
FlDisplayMonitor * fl_engine_get_display_monitor(FlEngine *engine)
Definition fl_engine.cc:754
FlutterEngineProcTable * fl_engine_get_embedder_api(FlEngine *engine)
Definition fl_engine.cc:920
GBytes * fl_engine_send_platform_message_finish(FlEngine *engine, GAsyncResult *result, GError **error)
void fl_engine_set_platform_message_handler(FlEngine *engine, FlEnginePlatformMessageHandler handler, gpointer user_data, GDestroyNotify destroy_notify)
FlEngineError
@ FL_ENGINE_ERROR_FAILED
void fl_engine_dispatch_semantics_action(FlEngine *engine, FlutterViewId view_id, uint64_t node_id, FlutterSemanticsAction action, GBytes *data)
void fl_engine_send_platform_message(FlEngine *engine, const gchar *channel, GBytes *message, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
FlOpenGLManager * fl_engine_get_opengl_manager(FlEngine *engine)
Definition fl_engine.cc:749
FlutterRendererType fl_engine_get_renderer_type(FlEngine *engine)
Definition fl_engine.cc:744
void fl_engine_send_window_metrics_event(FlEngine *engine, FlutterEngineDisplayId display_id, FlutterViewId view_id, size_t min_width, size_t min_height, size_t max_width, size_t max_height, double pixel_ratio)
void fl_engine_send_touch_down_event(FlEngine *engine, FlutterViewId view_id, size_t timestamp, double x, double y, int32_t device)
gboolean fl_engine_register_external_texture(FlEngine *engine, int64_t texture_id)
gboolean fl_engine_add_view_finish(FlEngine *engine, GAsyncResult *result, GError **error)
Definition fl_engine.cc:994
FlTaskRunner * fl_engine_get_task_runner(FlEngine *engine)
void fl_engine_send_touch_remove_event(FlEngine *engine, FlutterViewId view_id, size_t timestamp, double x, double y, int32_t device)
FlEngine * fl_engine_for_id(int64_t handle)
Definition fl_engine.cc:724
void fl_engine_set_implicit_view(FlEngine *engine, FlRenderable *renderable)
Definition fl_engine.cc:937
void fl_engine_send_touch_up_event(FlEngine *engine, FlutterViewId view_id, size_t timestamp, double x, double y, int32_t device)
void fl_engine_update_accessibility_features(FlEngine *engine, int32_t flags)
gboolean(* FlEnginePlatformMessageHandler)(FlEngine *engine, const gchar *channel, GBytes *message, const FlutterPlatformMessageResponseHandle *response_handle, gpointer user_data)
gboolean fl_engine_send_key_event_finish(FlEngine *engine, GAsyncResult *result, gboolean *handled, GError **error)
gboolean fl_engine_start(FlEngine *engine, GError **error)
Definition fl_engine.cc:759
FlutterViewId fl_engine_add_view(FlEngine *engine, FlRenderable *renderable, size_t min_width, size_t min_height, size_t max_width, size_t max_height, double pixel_ratio, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
Definition fl_engine.cc:941
const gchar * channel
const gchar FlBinaryMessengerMessageHandler gpointer GDestroyNotify destroy_notify
const gchar FlBinaryMessengerMessageHandler handler
const uint8_t uint32_t uint32_t GError ** error
G_BEGIN_DECLS FlutterViewId view_id
FlutterDesktopBinaryReply callback
double y
std::vector< FlutterEngineDisplay > * displays
Function-pointer-based versions of the APIs above.
Definition embedder.h:3763
int64_t texture_id