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 *
287 * Sends a mouse pointer event to the engine.
288 */
292 size_t timestamp,
293 double x,
294 double y,
295 FlutterPointerDeviceKind device_kind,
296 double scroll_delta_x,
297 double scroll_delta_y,
298 int64_t buttons);
299
300/**
301 * fl_engine_send_touch_up_event:
302 * @engine: an #FlEngine.
303 * @view_id: the view that the event occured on.
304 * @timestamp: time when event occurred in microseconds.
305 * @x: x location of mouse cursor.
306 * @y: y location of mouse cursor.
307 * @device: device id.
308 *
309 * Sends a touch up event to the engine.
310 */
313 size_t timestamp,
314 double x,
315 double y,
316 int32_t device);
317
318/**
319 * fl_engine_send_touch_down_event:
320 * @engine: an #FlEngine.
321 * @view_id: the view that the event occured on.
322 * @timestamp: time when event occurred in microseconds.
323 * @x: x location of mouse cursor.
324 * @y: y location of mouse cursor.
325 * @device: device id.
326 *
327 * Sends a touch down event to the engine.
328 */
331 size_t timestamp,
332 double x,
333 double y,
334 int32_t device);
335/**
336 * fl_engine_send_touch_move_event:
337 * @engine: an #FlEngine.
338 * @view_id: the view that the event occured on.
339 * @timestamp: time when event occurred in microseconds.
340 * @x: x location of mouse cursor.
341 * @y: y location of mouse cursor.
342 * @device: device id.
343 *
344 * Sends a touch move event to the engine.
345 */
348 size_t timestamp,
349 double x,
350 double y,
351 int32_t device);
352
353/**
354 * fl_engine_send_touch_add_event:
355 * @engine: an #FlEngine.
356 * @view_id: the view that the event occured on.
357 * @timestamp: time when event occurred in microseconds.
358 * @x: x location of mouse cursor.
359 * @y: y location of mouse cursor.
360 * @device: device id.
361 *
362 * Sends a touch add event to the engine.
363 */
366 size_t timestamp,
367 double x,
368 double y,
369 int32_t device);
370
371/**
372 * fl_engine_send_touch_remove_event:
373 * @engine: an #FlEngine.
374 * @view_id: the view that the event occured on.
375 * @timestamp: time when event occurred in microseconds.
376 * @x: x location of mouse cursor.
377 * @y: y location of mouse cursor.
378 * @device: device id.
379 *
380 * Sends a touch remove event to the engine.
381 */
384 size_t timestamp,
385 double x,
386 double y,
387 int32_t device);
388
389/**
390 * fl_engine_send_pointer_pan_zoom_event:
391 * @engine: an #FlEngine.
392 * @view_id: the view that the event occured on.
393 * @timestamp: time when event occurred in microseconds.
394 * @x: x location of mouse cursor.
395 * @y: y location of mouse cursor.
396 * @phase: mouse phase.
397 * @pan_x: x offset of the pan/zoom in pixels.
398 * @pan_y: y offset of the pan/zoom in pixels.
399 * @scale: scale of the pan/zoom.
400 * @rotation: rotation of the pan/zoom in radians.
401 *
402 * Sends a pan/zoom pointer event to the engine.
403 */
406 size_t timestamp,
407 double x,
408 double y,
410 double pan_x,
411 double pan_y,
412 double scale,
413 double rotation);
414
415/**
416 * fl_engine_send_key_event:
417 * @engine: an #FlEngine.
418 * @event: key event to send.
419 * @cancellable: (allow-none): a #GCancellable or %NULL.
420 * @callback: (scope async): a #GAsyncReadyCallback to call when the request is
421 * satisfied.
422 * @user_data: (closure): user data to pass to @callback.
423 *
424 * Send a key event to the engine.
425 */
426void fl_engine_send_key_event(FlEngine* engine,
427 const FlutterKeyEvent* event,
428 GCancellable* cancellable,
429 GAsyncReadyCallback callback,
430 gpointer user_data);
431
432/**
433 * fl_engine_send_key_event_finish:
434 * @engine: an #FlEngine.
435 * @result: a #GAsyncResult.
436 * @handled: location to write if this event was handled by the engine.
437 * @error: (allow-none): #GError location to store the error occurring, or %NULL
438 * to ignore. If `error` is not %NULL, `*error` must be initialized (typically
439 * %NULL, but an error from a previous call using GLib error handling is
440 * explicitly valid).
441 *
442 * Completes request started with fl_engine_send_key_event().
443 *
444 * Returns: %TRUE on success.
445 */
446gboolean fl_engine_send_key_event_finish(FlEngine* engine,
447 GAsyncResult* result,
448 gboolean* handled,
449 GError** error);
450
451/**
452 * fl_engine_dispatch_semantics_action:
453 * @engine: an #FlEngine.
454 * @view_id: the view that the event occured on.
455 * @node_id: the semantics action identifier.
456 * @action: the action being dispatched.
457 * @data: (allow-none): data associated with the action.
458 */
461 uint64_t node_id,
463 GBytes* data);
464
465/**
466 * fl_engine_send_platform_message_response:
467 * @engine: an #FlEngine.
468 * @handle: handle that was provided in #FlEnginePlatformMessageHandler.
469 * @response: (allow-none): response to send or %NULL for an empty response.
470 * @error: (allow-none): #GError location to store the error occurring, or %NULL
471 * to ignore. If `error` is not %NULL, `*error` must be initialized (typically
472 * %NULL, but an error from a previous call using GLib error handling is
473 * explicitly valid).
474 *
475 * Responds to a platform message.
476 *
477 * Returns: %TRUE on success.
478 */
480 FlEngine* engine,
482 GBytes* response,
483 GError** error);
484
485/**
486 * fl_engine_send_platform_message:
487 * @engine: an #FlEngine.
488 * @channel: channel to send to.
489 * @message: (allow-none): message buffer to send or %NULL for an empty message
490 * @cancellable: (allow-none): a #GCancellable or %NULL.
491 * @callback: (scope async): a #GAsyncReadyCallback to call when the request is
492 * satisfied.
493 * @user_data: (closure): user data to pass to @callback.
494 *
495 * Asynchronously sends a platform message.
496 */
498 const gchar* channel,
499 GBytes* message,
500 GCancellable* cancellable,
501 GAsyncReadyCallback callback,
502 gpointer user_data);
503
504/**
505 * fl_engine_send_platform_message_finish:
506 * @engine: an #FlEngine.
507 * @result: a #GAsyncResult.
508 * @error: (allow-none): #GError location to store the error occurring, or %NULL
509 * to ignore. If `error` is not %NULL, `*error` must be initialized (typically
510 * %NULL, but an error from a previous call using GLib error handling is
511 * explicitly valid).
512 *
513 * Completes request started with fl_engine_send_platform_message().
514 *
515 * Returns: message response on success or %NULL on error.
516 */
518 GAsyncResult* result,
519 GError** error);
520
521/**
522 * fl_engine_get_task_runner:
523 * @engine: an #FlEngine.
524 * @result: a #FlTaskRunner.
525 *
526 * Returns: task runner responsible for scheduling Flutter tasks.
527 */
528FlTaskRunner* fl_engine_get_task_runner(FlEngine* engine);
529
530/**
531 * fl_engine_execute_task:
532 * @engine: an #FlEngine.
533 * @task: a #FlutterTask to execute.
534 *
535 * Executes given Flutter task.
536 */
537void fl_engine_execute_task(FlEngine* engine, FlutterTask* task);
538
539/**
540 * fl_engine_mark_texture_frame_available:
541 * @engine: an #FlEngine.
542 * @texture_id: the identifier of the texture whose frame has been updated.
543 *
544 * Tells the Flutter engine that a new texture frame is available for the given
545 * texture.
546 *
547 * Returns: %TRUE on success.
548 */
550 int64_t texture_id);
551
552/**
553 * fl_engine_register_external_texture:
554 * @engine: an #FlEngine.
555 * @texture_id: the identifier of the texture that is available.
556 *
557 * Tells the Flutter engine that a new external texture is available.
558 *
559 * Returns: %TRUE on success.
560 */
562 int64_t texture_id);
563
564/**
565 * fl_engine_unregister_external_texture:
566 * @engine: an #FlEngine.
567 * @texture_id: the identifier of the texture that is not available anymore.
568 *
569 * Tells the Flutter engine that an existing external texture is not available
570 * anymore.
571 *
572 * Returns: %TRUE on success.
573 */
575 int64_t texture_id);
576
577/**
578 * fl_engine_update_accessibility_features:
579 * @engine: an #FlEngine.
580 * @flags: the features to enable in the accessibility tree.
581 *
582 * Tells the Flutter engine to update the flags on the accessibility tree.
583 */
584void fl_engine_update_accessibility_features(FlEngine* engine, int32_t flags);
585
586/**
587 * fl_engine_request_app_exit:
588 * @engine: an #FlEngine.
589 *
590 * Request the application exits.
591 */
592void fl_engine_request_app_exit(FlEngine* engine);
593
594/**
595 * fl_engine_get_keyboard_manager:
596 * @engine: an #FlEngine.
597 *
598 * Gets the keyboard manager used by this engine.
599 *
600 * Returns: an #FlKeyboardManager.
601 */
602FlKeyboardManager* fl_engine_get_keyboard_manager(FlEngine* engine);
603
604/**
605 * fl_engine_get_text_input_handler:
606 * @engine: an #FlEngine.
607 *
608 * Gets the text input handler used by this engine.
609 *
610 * Returns: an #FlTextInputHandler.
611 */
612FlTextInputHandler* fl_engine_get_text_input_handler(FlEngine* engine);
613
614/**
615 * fl_engine_get_mouse_cursor_handler:
616 * @engine: an #FlEngine.
617 *
618 * Gets the mouse cursor handler used by this engine.
619 *
620 * Returns: an #FlMouseCursorHandler.
621 */
622FlMouseCursorHandler* fl_engine_get_mouse_cursor_handler(FlEngine* engine);
623
624/**
625 * fl_engine_for_id:
626 * @handle: an engine identifier obtained through
627 * PlatformDispatcher.instance.engineId.
628 *
629 * Returns Flutter engine associated with the identifier. The identifier
630 * must be valid and for a running engine otherwise the behavior is
631 * undefined.
632 * Must be called from the main thread.
633 *
634 * Returns: a #FlEngine or NULL.
635 */
636FlEngine* fl_engine_for_id(int64_t handle);
637
638G_END_DECLS
639
640#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)
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)
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)
Definition fl_engine.cc:990
void fl_engine_send_key_event(FlEngine *engine, const FlutterKeyEvent *event, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
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:907
gboolean fl_engine_unregister_external_texture(FlEngine *engine, int64_t texture_id)
FlRenderable * fl_engine_get_renderable(FlEngine *engine, FlutterViewId view_id)
Definition fl_engine.cc:984
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:903
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:977
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:920
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:924
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:3746
int64_t texture_id