Flutter Linux Embedder
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 
10 #include "flutter/shell/platform/embedder/embedder.h"
20 
21 G_BEGIN_DECLS
22 
23 /**
24  * FlEngineError:
25  * Errors for #FlEngine objects to set on failures.
26  */
27 
28 typedef enum {
31 
32 GQuark 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  */
46 typedef gboolean (*FlEnginePlatformMessageHandler)(
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  */
72 FlutterRendererType fl_engine_get_renderer_type(FlEngine* engine);
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  */
82 FlOpenGLManager* 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  */
92 FlDisplayMonitor* 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  */
106 gboolean 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  */
116 FlutterEngineProcTable* fl_engine_get_embedder_api(FlEngine* engine);
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  */
126 void fl_engine_notify_display_update(FlEngine* engine,
127  const FlutterEngineDisplay* displays,
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  */
137 void 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  */
158 FlutterViewId fl_engine_add_view(FlEngine* engine,
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  */
182 gboolean 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  */
196 FlRenderable* 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  */
209 void fl_engine_remove_view(FlEngine* engine,
210  FlutterViewId view_id,
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  */
228 gboolean 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  */
265 void fl_engine_send_window_metrics_event(FlEngine* engine,
266  FlutterEngineDisplayId display_id,
267  FlutterViewId view_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  */
291 void fl_engine_send_mouse_pointer_event(FlEngine* engine,
292  FlutterViewId view_id,
293  FlutterPointerPhase phase,
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  */
315 void fl_engine_send_touch_up_event(FlEngine* engine,
316  FlutterViewId view_id,
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  */
333 void fl_engine_send_touch_down_event(FlEngine* engine,
334  FlutterViewId view_id,
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  */
350 void fl_engine_send_touch_move_event(FlEngine* engine,
351  FlutterViewId view_id,
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  */
368 void fl_engine_send_touch_add_event(FlEngine* engine,
369  FlutterViewId view_id,
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  */
386 void fl_engine_send_touch_remove_event(FlEngine* engine,
387  FlutterViewId view_id,
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  */
408 void fl_engine_send_pointer_pan_zoom_event(FlEngine* engine,
409  FlutterViewId view_id,
410  size_t timestamp,
411  double x,
412  double y,
413  FlutterPointerPhase phase,
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  */
430 void 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  */
450 gboolean 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  */
463 void fl_engine_dispatch_semantics_action(FlEngine* engine,
464  FlutterViewId view_id,
465  uint64_t node_id,
466  FlutterSemanticsAction action,
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,
485  const FlutterPlatformMessageResponseHandle* handle,
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  */
501 void fl_engine_send_platform_message(FlEngine* engine,
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  */
521 GBytes* fl_engine_send_platform_message_finish(FlEngine* engine,
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  */
532 FlTaskRunner* 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  */
541 void 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  */
553 gboolean fl_engine_mark_texture_frame_available(FlEngine* engine,
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  */
565 gboolean fl_engine_register_external_texture(FlEngine* engine,
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  */
578 gboolean fl_engine_unregister_external_texture(FlEngine* engine,
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  */
588 void 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  */
596 void 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  */
606 FlKeyboardManager* 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  */
616 FlTextInputHandler* 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  */
626 FlMouseCursorHandler* 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  */
640 FlEngine* fl_engine_for_id(int64_t handle);
641 
642 G_END_DECLS
643 
644 #endif // FLUTTER_SHELL_PLATFORM_LINUX_FL_ENGINE_PRIVATE_H_
const char * message
FlRenderable * renderable
const char FlTextDirection FlAssertiveness gpointer user_data
GLuint texture_id
FlFramebuffer double x
FlFramebuffer double double y
FlKeyboardManager * fl_engine_get_keyboard_manager(FlEngine *engine)
Definition: fl_engine.cc:1565
gboolean fl_engine_remove_view_finish(FlEngine *engine, GAsyncResult *result, GError **error)
Definition: fl_engine.cc:1034
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)
Definition: fl_engine.cc:1389
gboolean fl_engine_send_platform_message_response(FlEngine *engine, const FlutterPlatformMessageResponseHandle *handle, GBytes *response, GError **error)
Definition: fl_engine.cc:1060
void fl_engine_request_app_exit(FlEngine *engine)
Definition: fl_engine.cc:1560
void fl_engine_send_touch_move_event(FlEngine *engine, FlutterViewId view_id, size_t timestamp, double x, double y, int32_t device)
Definition: fl_engine.cc:1302
void fl_engine_execute_task(FlEngine *engine, FlutterTask *task)
Definition: fl_engine.cc:1533
FlRenderable * fl_engine_get_renderable(FlEngine *engine, FlutterViewId view_id)
Definition: fl_engine.cc:1001
void fl_engine_send_touch_add_event(FlEngine *engine, FlutterViewId view_id, size_t timestamp, double x, double y, int32_t device)
Definition: fl_engine.cc:1331
FlDisplayMonitor * fl_engine_get_display_monitor(FlEngine *engine)
Definition: fl_engine.cc:754
void fl_engine_remove_view(FlEngine *engine, FlutterViewId view_id, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
Definition: fl_engine.cc:1007
void fl_engine_send_key_event(FlEngine *engine, const FlutterKeyEvent *event, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
Definition: fl_engine.cc:1431
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)
Definition: fl_engine.cc:1195
FlOpenGLManager * fl_engine_get_opengl_manager(FlEngine *engine)
Definition: fl_engine.cc:749
gboolean fl_engine_mark_texture_frame_available(FlEngine *engine, int64_t texture_id)
Definition: fl_engine.cc:1501
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)
Definition: fl_engine.cc:1515
void fl_engine_set_platform_message_handler(FlEngine *engine, FlEnginePlatformMessageHandler handler, gpointer user_data, GDestroyNotify destroy_notify)
Definition: fl_engine.cc:1041
FlEngine * fl_engine_for_id(int64_t handle)
Definition: fl_engine.cc:724
FlEngineError
@ FL_ENGINE_ERROR_FAILED
void fl_engine_dispatch_semantics_action(FlEngine *engine, FlutterViewId view_id, uint64_t node_id, FlutterSemanticsAction action, GBytes *data)
Definition: fl_engine.cc:1471
void fl_engine_send_platform_message(FlEngine *engine, const gchar *channel, GBytes *message, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
Definition: fl_engine.cc:1092
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)
Definition: fl_engine.cc:1163
void fl_engine_send_touch_down_event(FlEngine *engine, FlutterViewId view_id, size_t timestamp, double x, double y, int32_t device)
Definition: fl_engine.cc:1273
gboolean fl_engine_register_external_texture(FlEngine *engine, int64_t texture_id)
Definition: fl_engine.cc:1508
FlutterEngineProcTable * fl_engine_get_embedder_api(FlEngine *engine)
Definition: fl_engine.cc:920
gboolean fl_engine_add_view_finish(FlEngine *engine, GAsyncResult *result, GError **error)
Definition: fl_engine.cc:994
void fl_engine_send_touch_remove_event(FlEngine *engine, FlutterViewId view_id, size_t timestamp, double x, double y, int32_t device)
Definition: fl_engine.cc:1360
GBytes * fl_engine_send_platform_message_finish(FlEngine *engine, GAsyncResult *result, GError **error)
Definition: fl_engine.cc:1154
void fl_engine_set_implicit_view(FlEngine *engine, FlRenderable *renderable)
Definition: fl_engine.cc:937
FlTextInputHandler * fl_engine_get_text_input_handler(FlEngine *engine)
Definition: fl_engine.cc:1570
void fl_engine_send_touch_up_event(FlEngine *engine, FlutterViewId view_id, size_t timestamp, double x, double y, int32_t device)
Definition: fl_engine.cc:1244
void fl_engine_update_accessibility_features(FlEngine *engine, int32_t flags)
Definition: fl_engine.cc:1546
gboolean(* FlEnginePlatformMessageHandler)(FlEngine *engine, const gchar *channel, GBytes *message, const FlutterPlatformMessageResponseHandle *response_handle, gpointer user_data)
FlEngine * fl_engine_new_with_binary_messenger(FlBinaryMessenger *binary_messenger)
Definition: fl_engine.cc:734
gboolean fl_engine_send_key_event_finish(FlEngine *engine, GAsyncResult *result, gboolean *handled, GError **error)
Definition: fl_engine.cc:1454
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
FlMouseCursorHandler * fl_engine_get_mouse_cursor_handler(FlEngine *engine)
Definition: fl_engine.cc:1575
FlTaskRunner * fl_engine_get_task_runner(FlEngine *engine)
Definition: fl_engine.cc:1528
const uint8_t uint32_t uint32_t GError ** error
G_BEGIN_DECLS FlutterViewId view_id