#include "flutter/shell/platform/linux/public/flutter_linux/fl_engine.h"
#include <gmodule.h>
#include <cstring>
#include "flutter/shell/platform/common/engine_switches.h"
#include "flutter/shell/platform/embedder/embedder.h"
#include "flutter/shell/platform/linux/fl_binary_messenger_private.h"
#include "flutter/shell/platform/linux/fl_dart_project_private.h"
#include "flutter/shell/platform/linux/fl_display_monitor.h"
#include "flutter/shell/platform/linux/fl_engine_private.h"
#include "flutter/shell/platform/linux/fl_pixel_buffer_texture_private.h"
#include "flutter/shell/platform/linux/fl_platform_handler.h"
#include "flutter/shell/platform/linux/fl_plugin_registrar_private.h"
#include "flutter/shell/platform/linux/fl_renderer.h"
#include "flutter/shell/platform/linux/fl_renderer_gdk.h"
#include "flutter/shell/platform/linux/fl_renderer_headless.h"
#include "flutter/shell/platform/linux/fl_settings_handler.h"
#include "flutter/shell/platform/linux/fl_texture_gl_private.h"
#include "flutter/shell/platform/linux/fl_texture_registrar_private.h"
#include "flutter/shell/platform/linux/public/flutter_linux/fl_plugin_registry.h"
Go to the source code of this file.
Classes | |
struct | _FlEngine |
Enumerations | |
enum | { SIGNAL_ON_PRE_ENGINE_RESTART, LAST_SIGNAL } |
Functions | |
static void | fl_engine_plugin_registry_iface_init (FlPluginRegistryInterface *iface) |
G_DEFINE_TYPE_WITH_CODE (FlEngine, fl_engine, G_TYPE_OBJECT, G_IMPLEMENT_INTERFACE(fl_plugin_registry_get_type(), fl_engine_plugin_registry_iface_init)) enum | |
static void | parse_locale (const gchar *locale, gchar **language, gchar **territory, gchar **codeset, gchar **modifier) |
static void | view_added_cb (const FlutterAddViewResult *result) |
static void | view_removed_cb (const FlutterRemoveViewResult *result) |
static void | free_locale (FlutterLocale *locale) |
static void | setup_locales (FlEngine *self) |
static bool | compositor_create_backing_store_callback (const FlutterBackingStoreConfig *config, FlutterBackingStore *backing_store_out, void *user_data) |
static bool | compositor_collect_backing_store_callback (const FlutterBackingStore *backing_store, void *user_data) |
static bool | compositor_present_view_callback (const FlutterPresentViewInfo *info) |
static void * | fl_engine_gl_proc_resolver (void *user_data, const char *name) |
static bool | fl_engine_gl_make_current (void *user_data) |
static bool | fl_engine_gl_clear_current (void *user_data) |
static uint32_t | fl_engine_gl_get_fbo (void *user_data) |
static bool | fl_engine_gl_present (void *user_data) |
static bool | fl_engine_gl_make_resource_current (void *user_data) |
static bool | fl_engine_gl_external_texture_frame_callback (void *user_data, int64_t texture_id, size_t width, size_t height, FlutterOpenGLTexture *opengl_texture) |
static bool | fl_engine_runs_task_on_current_thread (void *user_data) |
static void | fl_engine_post_task (FlutterTask task, uint64_t target_time_nanos, void *user_data) |
static void | fl_engine_platform_message_cb (const FlutterPlatformMessage *message, void *user_data) |
static void | fl_engine_update_semantics_cb (const FlutterSemanticsUpdate2 *update, void *user_data) |
static void | fl_engine_on_pre_engine_restart_cb (void *user_data) |
static void | fl_engine_platform_message_response_cb (const uint8_t *data, size_t data_length, void *user_data) |
static FlPluginRegistrar * | fl_engine_get_registrar_for_plugin (FlPluginRegistry *registry, const gchar *name) |
static void | fl_engine_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) |
static void | fl_engine_dispose (GObject *object) |
static void | fl_engine_class_init (FlEngineClass *klass) |
static void | fl_engine_init (FlEngine *self) |
FlEngine * | fl_engine_new_with_renderer (FlDartProject *project, FlRenderer *renderer) |
G_MODULE_EXPORT FlEngine * | fl_engine_new (FlDartProject *project) |
G_MODULE_EXPORT FlEngine * | fl_engine_new_headless (FlDartProject *project) |
FlRenderer * | fl_engine_get_renderer (FlEngine *self) |
FlDisplayMonitor * | fl_engine_get_display_monitor (FlEngine *self) |
gboolean | fl_engine_start (FlEngine *self, GError **error) |
FlutterEngineProcTable * | fl_engine_get_embedder_api (FlEngine *self) |
void | fl_engine_notify_display_update (FlEngine *self, const FlutterEngineDisplay *displays, size_t displays_length) |
FlutterViewId | fl_engine_add_view (FlEngine *self, size_t width, size_t height, double pixel_ratio, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) |
gboolean | fl_engine_add_view_finish (FlEngine *self, GAsyncResult *result, GError **error) |
void | fl_engine_remove_view (FlEngine *self, FlutterViewId view_id, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) |
gboolean | fl_engine_remove_view_finish (FlEngine *self, GAsyncResult *result, GError **error) |
void | fl_engine_set_platform_message_handler (FlEngine *self, FlEnginePlatformMessageHandler handler, gpointer user_data, GDestroyNotify destroy_notify) |
void | fl_engine_set_update_semantics_handler (FlEngine *self, FlEngineUpdateSemanticsHandler handler, gpointer user_data, GDestroyNotify destroy_notify) |
gboolean | fl_engine_send_platform_message_response (FlEngine *self, const FlutterPlatformMessageResponseHandle *handle, GBytes *response, GError **error) |
void | fl_engine_send_platform_message (FlEngine *self, const gchar *channel, GBytes *message, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) |
GBytes * | fl_engine_send_platform_message_finish (FlEngine *self, GAsyncResult *result, GError **error) |
void | fl_engine_send_window_metrics_event (FlEngine *self, FlutterEngineDisplayId display_id, FlutterViewId view_id, size_t width, size_t height, double pixel_ratio) |
void | fl_engine_send_mouse_pointer_event (FlEngine *self, 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) |
void | fl_engine_send_touch_up_event (FlEngine *self, FlutterViewId view_id, size_t timestamp, double x, double y, int32_t device) |
void | fl_engine_send_touch_down_event (FlEngine *self, FlutterViewId view_id, size_t timestamp, double x, double y, int32_t device) |
void | fl_engine_send_touch_move_event (FlEngine *self, FlutterViewId view_id, size_t timestamp, double x, double y, int32_t device) |
void | fl_engine_send_touch_add_event (FlEngine *self, FlutterViewId view_id, size_t timestamp, double x, double y, int32_t device) |
void | fl_engine_send_touch_remove_event (FlEngine *self, FlutterViewId view_id, size_t timestamp, double x, double y, int32_t device) |
void | fl_engine_send_pointer_pan_zoom_event (FlEngine *self, FlutterViewId view_id, size_t timestamp, double x, double y, FlutterPointerPhase phase, double pan_x, double pan_y, double scale, double rotation) |
static void | send_key_event_cb (bool handled, void *user_data) |
void | fl_engine_send_key_event (FlEngine *self, const FlutterKeyEvent *event, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) |
gboolean | fl_engine_send_key_event_finish (FlEngine *self, GAsyncResult *result, gboolean *handled, GError **error) |
void | fl_engine_dispatch_semantics_action (FlEngine *self, uint64_t id, FlutterSemanticsAction action, GBytes *data) |
gboolean | fl_engine_mark_texture_frame_available (FlEngine *self, int64_t texture_id) |
gboolean | fl_engine_register_external_texture (FlEngine *self, int64_t texture_id) |
gboolean | fl_engine_unregister_external_texture (FlEngine *self, int64_t texture_id) |
G_MODULE_EXPORT FlBinaryMessenger * | fl_engine_get_binary_messenger (FlEngine *self) |
FlTaskRunner * | fl_engine_get_task_runner (FlEngine *self) |
void | fl_engine_execute_task (FlEngine *self, FlutterTask *task) |
G_MODULE_EXPORT FlTextureRegistrar * | fl_engine_get_texture_registrar (FlEngine *self) |
void | fl_engine_update_accessibility_features (FlEngine *self, int32_t flags) |
void | fl_engine_request_app_exit (FlEngine *self) |
FlMouseCursorHandler * | fl_engine_get_mouse_cursor_handler (FlEngine *self) |
Variables | |
static constexpr size_t | kPlatformTaskRunnerIdentifier = 1 |
static constexpr int32_t | kMousePointerDeviceId = 0 |
static constexpr int32_t | kPointerPanZoomDeviceId = 1 |
static guint | fl_engine_signals [LAST_SIGNAL] |
anonymous enum |
|
static |
Definition at line 245 of file fl_engine.cc.
References fl_renderer_collect_backing_store(), and user_data.
Referenced by fl_engine_start().
|
static |
Definition at line 235 of file fl_engine.cc.
References fl_renderer_create_backing_store(), and user_data.
Referenced by fl_engine_start().
|
static |
Definition at line 254 of file fl_engine.cc.
References fl_renderer_present_layers().
Referenced by fl_engine_start().
FlutterViewId fl_engine_add_view | ( | FlEngine * | engine, |
size_t | width, | ||
size_t | height, | ||
double | pixel_ratio, | ||
GCancellable * | cancellable, | ||
GAsyncReadyCallback | callback, | ||
gpointer | user_data | ||
) |
fl_engine_add_view: @engine: an #FlEngine. @width: width of view in pixels. @height: height of view in pixels. @pixel_ratio: scale factor for view. @cancellable: (allow-none): a #GCancellable or NULL. @callback: (scope async): a #GAsyncReadyCallback to call when the view is added. @user_data: (closure): user data to pass to @callback.
Asynchronously add a new view. The returned view ID should not be used until this function completes.
Returns: the ID for the view.
Definition at line 678 of file fl_engine.cc.
References FL_ENGINE_ERROR_FAILED, fl_engine_error_quark(), height, user_data, view_added_cb(), and width.
Referenced by fl_view_new_for_engine(), and TEST().
gboolean fl_engine_add_view_finish | ( | FlEngine * | engine, |
GAsyncResult * | result, | ||
GError ** | error | ||
) |
fl_engine_add_view_finish: @engine: an #FlEngine.
Completes request started with fl_engine_add_view().
Returns: TRUE on success.
Definition at line 721 of file fl_engine.cc.
References error.
Referenced by add_view_cb(), add_view_engine_error_cb(), add_view_error_cb(), and view_added_cb().
|
static |
Definition at line 478 of file fl_engine.cc.
References fl_engine_dispose(), fl_engine_set_property(), fl_engine_signals, and SIGNAL_ON_PRE_ENGINE_RESTART.
void fl_engine_dispatch_semantics_action | ( | FlEngine * | engine, |
uint64_t | id, | ||
FlutterSemanticsAction | action, | ||
GBytes * | data | ||
) |
fl_engine_dispatch_semantics_action: @engine: an #FlEngine. @id: the semantics action identifier. @action: the action being dispatched. @data: (allow-none): data associated with the action.
Definition at line 1161 of file fl_engine.cc.
Referenced by fl_accessible_node_perform_action_impl(), and TEST().
|
static |
Definition at line 436 of file fl_engine.cc.
References fl_binary_messenger_shutdown(), and fl_texture_registrar_shutdown().
Referenced by fl_engine_class_init().
void fl_engine_execute_task | ( | FlEngine * | engine, |
FlutterTask * | task | ||
) |
fl_engine_execute_task: @engine: an #FlEngine. @task: a #FlutterTask to execute.
Executes given Flutter task.
Definition at line 1214 of file fl_engine.cc.
Referenced by fl_task_runner_process_expired_tasks_locked().
G_MODULE_EXPORT FlBinaryMessenger* fl_engine_get_binary_messenger | ( | FlEngine * | engine | ) |
fl_engine_get_binary_messenger: @engine: an #FlEngine.
Gets the messenger to communicate with this engine.
Returns: an #FlBinaryMessenger.
Definition at line 1203 of file fl_engine.cc.
Referenced by fl_settings_handler_new(), fl_view_get_registrar_for_plugin(), init_keyboard(), realize_cb(), and TEST().
FlDisplayMonitor* fl_engine_get_display_monitor | ( | FlEngine * | engine | ) |
fl_engine_get_display_monitor: @engine: an #FlEngine.
Gets the display monitor used by this engine.
Returns: an #FlDisplayMonitor.
Definition at line 539 of file fl_engine.cc.
Referenced by handle_geometry_changed().
FlutterEngineProcTable* fl_engine_get_embedder_api | ( | FlEngine * | engine | ) |
fl_engine_get_embedder_api: @engine: an #FlEngine.
Gets the embedder API proc table, allowing modificiations for unit testing.
Returns: a mutable pointer to the embedder API proc table.
Definition at line 661 of file fl_engine.cc.
Referenced by TEST().
FlMouseCursorHandler* fl_engine_get_mouse_cursor_handler | ( | FlEngine * | engine | ) |
fl_engine_get_mouse_cursor_handler: @engine: an #FlEngine.
Gets the mouse cursor handler used by this engine.
Returns: a #FlMouseCursorHandler.
Definition at line 1241 of file fl_engine.cc.
Referenced by cursor_changed_cb(), fl_view_dispose(), and setup_cursor().
|
static |
Definition at line 406 of file fl_engine.cc.
References fl_plugin_registrar_new().
Referenced by fl_engine_plugin_registry_iface_init().
FlRenderer* fl_engine_get_renderer | ( | FlEngine * | engine | ) |
fl_engine_get_renderer: @engine: an #FlEngine.
Gets the renderer used by this engine.
Returns: an #FlRenderer.
Definition at line 534 of file fl_engine.cc.
Referenced by fl_view_new(), and fl_view_new_for_engine().
FlTaskRunner* fl_engine_get_task_runner | ( | FlEngine * | engine | ) |
fl_engine_get_task_runner: @engine: an #FlEngine.
Returns: task runner responsible for scheduling Flutter tasks.
Definition at line 1209 of file fl_engine.cc.
Referenced by fl_renderer_unblock_main_thread(), and fl_renderer_wait_for_frame().
G_MODULE_EXPORT FlTextureRegistrar* fl_engine_get_texture_registrar | ( | FlEngine * | engine | ) |
fl_engine_get_texture_registrar: @engine: an #FlEngine.
Gets the texture registrar for registering textures.
Returns: an #FlTextureRegistrar.
Definition at line 1219 of file fl_engine.cc.
Referenced by fl_view_get_registrar_for_plugin().
|
static |
Definition at line 274 of file fl_engine.cc.
References fl_renderer_clear_current(), and user_data.
Referenced by fl_engine_start().
|
static |
Definition at line 298 of file fl_engine.cc.
References error, fl_pixel_buffer_texture_populate(), fl_texture_gl_populate(), fl_texture_registrar_lookup_texture(), height, texture_id, user_data, and width.
Referenced by fl_engine_start().
|
static |
Definition at line 280 of file fl_engine.cc.
References fl_renderer_get_fbo(), and user_data.
Referenced by fl_engine_start().
|
static |
Definition at line 268 of file fl_engine.cc.
References fl_renderer_make_current(), and user_data.
Referenced by fl_engine_start().
|
static |
Definition at line 291 of file fl_engine.cc.
References fl_renderer_make_resource_current(), and user_data.
Referenced by fl_engine_start().
|
static |
|
static |
Definition at line 263 of file fl_engine.cc.
References fl_renderer_get_proc_address(), and user_data.
Referenced by fl_engine_start().
|
static |
gboolean fl_engine_mark_texture_frame_available | ( | FlEngine * | engine, |
int64_t | texture_id | ||
) |
fl_engine_mark_texture_frame_available: @engine: an #FlEngine. @texture_id: the identifier of the texture whose frame has been updated.
Tells the Flutter engine that a new texture frame is available for the given texture.
Returns: TRUE on success.
Definition at line 1182 of file fl_engine.cc.
References texture_id.
Referenced by mark_texture_frame_available().
G_MODULE_EXPORT FlEngine* fl_engine_new | ( | FlDartProject * | project | ) |
FlEngine:
#FlEngine is an object that contains a running Flutter engine. fl_engine_new: @project: an #FlDartProject.
Creates new Flutter engine.
Returns: a new #FlEngine.
Definition at line 524 of file fl_engine.cc.
References fl_engine_new_with_renderer(), and fl_renderer_gdk_new().
Referenced by fl_view_new(), and TEST().
G_MODULE_EXPORT FlEngine* fl_engine_new_headless | ( | FlDartProject * | project | ) |
fl_engine_new_headless: @project: an #FlDartProject.
Creates new Flutter engine running in headless mode.
Returns: a new #FlEngine.
Definition at line 529 of file fl_engine.cc.
References fl_engine_new_with_renderer(), and fl_renderer_headless_new().
FlEngine* fl_engine_new_with_renderer | ( | FlDartProject * | project, |
FlRenderer * | renderer | ||
) |
fl_engine_new_with_renderer: @project: an #FlDartProject. @renderer: an #FlRenderer.
Creates new Flutter engine.
Returns: a new #FlEngine.
Definition at line 509 of file fl_engine.cc.
References fl_binary_messenger_new(), and fl_renderer_set_engine().
Referenced by fl_engine_new(), and fl_engine_new_headless().
void fl_engine_notify_display_update | ( | FlEngine * | engine, |
const FlutterEngineDisplay * | displays, | ||
size_t | displays_length | ||
) |
fl_engine_notify_display_update: @engine: an #FlEngine. @displays: displays present on the system. @displays_length: length of @displays.
Notify the current displays that are in the system.
Definition at line 665 of file fl_engine.cc.
Referenced by notify_display_update(), and TEST().
|
static |
Definition at line 389 of file fl_engine.cc.
References fl_engine_signals, SIGNAL_ON_PRE_ENGINE_RESTART, and user_data.
Referenced by fl_engine_start().
|
static |
Definition at line 354 of file fl_engine.cc.
References fl_engine_send_platform_message_response(), and user_data.
Referenced by fl_engine_start().
|
static |
Definition at line 397 of file fl_engine.cc.
References user_data.
Referenced by fl_engine_send_platform_message().
|
static |
Definition at line 415 of file fl_engine.cc.
References fl_engine_get_registrar_for_plugin().
|
static |
Definition at line 345 of file fl_engine.cc.
References fl_task_runner_post_task(), and user_data.
Referenced by fl_engine_start().
gboolean fl_engine_register_external_texture | ( | FlEngine * | engine, |
int64_t | texture_id | ||
) |
fl_engine_register_external_texture: @engine: an #FlEngine. @texture_id: the identifier of the texture that is available.
Tells the Flutter engine that a new external texture is available.
Returns: TRUE on success.
Definition at line 1189 of file fl_engine.cc.
References texture_id.
Referenced by register_texture().
void fl_engine_remove_view | ( | FlEngine * | engine, |
FlutterViewId | view_id, | ||
GCancellable * | cancellable, | ||
GAsyncReadyCallback | callback, | ||
gpointer | user_data | ||
) |
fl_engine_remove_view: @engine: an #FlEngine. @view_id: ID to remove. @cancellable: (allow-none): a #GCancellable or NULL. @callback: (scope async): a #GAsyncReadyCallback to call when the view is added. @user_data: (closure): user data to pass to @callback.
Removes a view previously added with fl_engine_add_view().
Definition at line 728 of file fl_engine.cc.
References FL_ENGINE_ERROR_FAILED, fl_engine_error_quark(), user_data, and view_removed_cb().
Referenced by fl_view_dispose(), and TEST().
gboolean fl_engine_remove_view_finish | ( | FlEngine * | engine, |
GAsyncResult * | result, | ||
GError ** | error | ||
) |
fl_engine_remove_view_finish: @engine: an #FlEngine.
Completes request started with fl_engine_remove_view().
Returns: TRUE on succcess.
Definition at line 753 of file fl_engine.cc.
References error.
Referenced by remove_view_cb(), remove_view_engine_error_cb(), and remove_view_error_cb().
void fl_engine_request_app_exit | ( | FlEngine * | engine | ) |
fl_engine_request_app_exit: @engine: an #FlEngine.
Request the application exits.
Definition at line 1236 of file fl_engine.cc.
References fl_platform_handler_request_app_exit().
Referenced by window_delete_event_cb().
|
static |
void fl_engine_send_key_event | ( | FlEngine * | engine, |
const FlutterKeyEvent * | event, | ||
GCancellable * | cancellable, | ||
GAsyncReadyCallback | callback, | ||
gpointer | user_data | ||
) |
fl_engine_send_key_event: @engine: an #FlEngine. @event: key event to send. @cancellable: (allow-none): a #GCancellable or NULL. @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied. @user_data: (closure): user data to pass to @callback.
Send a key event to the engine.
Definition at line 1121 of file fl_engine.cc.
References FL_ENGINE_ERROR_FAILED, fl_engine_error_quark(), send_key_event_cb(), and user_data.
Referenced by fl_keyboard_manager_new(), and TEST().
gboolean fl_engine_send_key_event_finish | ( | FlEngine * | engine, |
GAsyncResult * | result, | ||
gboolean * | handled, | ||
GError ** | error | ||
) |
fl_engine_send_key_event_finish: @engine: an #FlEngine.
Completes request started with fl_engine_send_key_event().
Returns: TRUE on success.
Definition at line 1144 of file fl_engine.cc.
Referenced by TEST().
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 | ||
) |
fl_engine_send_mouse_pointer_event: @engine: an #FlEngine. @view_id: the view that the event occured on. @phase: mouse phase. @timestamp: time when event occurred in microseconds. @x: x location of mouse cursor. @y: y location of mouse cursor. @device_kind: kind of pointing device. @scroll_delta_x: x offset of scroll. @scroll_delta_y: y offset of scroll. @buttons: buttons that are pressed.
Sends a mouse pointer event to the engine.
Definition at line 918 of file fl_engine.cc.
References kMousePointerDeviceId.
Referenced by ensure_pointer_added(), fl_pointer_manager_handle_button_press(), fl_pointer_manager_handle_button_release(), fl_pointer_manager_handle_leave(), fl_pointer_manager_handle_motion(), fl_scrolling_manager_handle_scroll_event(), and TEST().
void fl_engine_send_platform_message | ( | FlEngine * | engine, |
const gchar * | channel, | ||
GBytes * | message, | ||
GCancellable * | cancellable, | ||
GAsyncReadyCallback | callback, | ||
gpointer | user_data | ||
) |
fl_engine_send_platform_message: @engine: an #FlEngine. @channel: channel to send to. @message: (allow-none): message buffer to send or NULL for an empty message @cancellable: (allow-none): a #GCancellable or NULL. @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied. @user_data: (closure): user data to pass to @callback.
Asynchronously sends a platform message.
Definition at line 828 of file fl_engine.cc.
References FL_ENGINE_ERROR_FAILED, fl_engine_error_quark(), fl_engine_platform_message_response_cb(), and user_data.
Referenced by send_on_channel(), and TEST().
GBytes* fl_engine_send_platform_message_finish | ( | FlEngine * | engine, |
GAsyncResult * | result, | ||
GError ** | error | ||
) |
fl_engine_send_platform_message_finish: @engine: an #FlEngine.
Completes request started with fl_engine_send_platform_message().
Returns: message response on success or NULL on error.
Definition at line 887 of file fl_engine.cc.
References error.
Referenced by send_on_channel_finish().
gboolean fl_engine_send_platform_message_response | ( | FlEngine * | engine, |
const FlutterPlatformMessageResponseHandle * | handle, | ||
GBytes * | response, | ||
GError ** | error | ||
) |
fl_engine_send_platform_message_response: @engine: an #FlEngine. @handle: handle that was provided in FlEnginePlatformMessageHandler. @response: (allow-none): response to send or NULL for an empty response. @error: (allow-none): #GError location to store the error occurring, or NULL to ignore.
Responds to a platform message.
Returns: TRUE on success.
Definition at line 796 of file fl_engine.cc.
References error, FL_ENGINE_ERROR_FAILED, fl_engine_error_quark(), and TRUE.
Referenced by fl_engine_platform_message_cb(), send_response(), and TEST().
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 | ||
) |
fl_engine_send_pointer_pan_zoom_event: @engine: an #FlEngine. @view_id: the view that the event occured on. @timestamp: time when event occurred in microseconds. @x: x location of mouse cursor. @y: y location of mouse cursor. @phase: mouse phase. @pan_x: x offset of the pan/zoom in pixels. @pan_y: y offset of the pan/zoom in pixels. @scale: scale of the pan/zoom. @rotation: rotation of the pan/zoom in radians.
Sends a pan/zoom pointer event to the engine.
Definition at line 1082 of file fl_engine.cc.
References kPointerPanZoomDeviceId.
Referenced by fl_scrolling_manager_handle_rotation_begin(), fl_scrolling_manager_handle_rotation_end(), fl_scrolling_manager_handle_rotation_update(), fl_scrolling_manager_handle_scroll_event(), fl_scrolling_manager_handle_zoom_begin(), fl_scrolling_manager_handle_zoom_end(), fl_scrolling_manager_handle_zoom_update(), and TEST().
void fl_engine_send_touch_add_event | ( | FlEngine * | engine, |
FlutterViewId | view_id, | ||
size_t | timestamp, | ||
double | x, | ||
double | y, | ||
int32_t | device | ||
) |
fl_engine_send_touch_add_event: @engine: an #FlEngine. @view_id: the view that the event occured on. @timestamp: time when event occurred in microseconds. @x: x location of mouse cursor. @y: y location of mouse cursor. @device: device id.
Sends a touch add event to the engine.
Definition at line 1030 of file fl_engine.cc.
Referenced by ensure_touch_added().
void fl_engine_send_touch_down_event | ( | FlEngine * | engine, |
FlutterViewId | view_id, | ||
size_t | timestamp, | ||
double | x, | ||
double | y, | ||
int32_t | device | ||
) |
fl_engine_send_touch_down_event: @engine: an #FlEngine. @view_id: the view that the event occured on. @timestamp: time when event occurred in microseconds. @x: x location of mouse cursor. @y: y location of mouse cursor. @device: device id.
Sends a touch down event to the engine.
Definition at line 978 of file fl_engine.cc.
Referenced by fl_touch_manager_handle_touch_event().
void fl_engine_send_touch_move_event | ( | FlEngine * | engine, |
FlutterViewId | view_id, | ||
size_t | timestamp, | ||
double | x, | ||
double | y, | ||
int32_t | device | ||
) |
fl_engine_send_touch_move_event: @engine: an #FlEngine. @view_id: the view that the event occured on. @timestamp: time when event occurred in microseconds. @x: x location of mouse cursor. @y: y location of mouse cursor. @device: device id.
Sends a touch move event to the engine.
Definition at line 1004 of file fl_engine.cc.
Referenced by fl_touch_manager_handle_touch_event().
void fl_engine_send_touch_remove_event | ( | FlEngine * | engine, |
FlutterViewId | view_id, | ||
size_t | timestamp, | ||
double | x, | ||
double | y, | ||
int32_t | device | ||
) |
fl_engine_send_touch_remove_event: @engine: an #FlEngine. @view_id: the view that the event occured on. @timestamp: time when event occurred in microseconds. @x: x location of mouse cursor. @y: y location of mouse cursor. @device: device id.
Sends a touch remove event to the engine.
Definition at line 1056 of file fl_engine.cc.
Referenced by fl_touch_manager_handle_touch_event().
void fl_engine_send_touch_up_event | ( | FlEngine * | engine, |
FlutterViewId | view_id, | ||
size_t | timestamp, | ||
double | x, | ||
double | y, | ||
int32_t | device | ||
) |
fl_engine_send_touch_up_event: @engine: an #FlEngine. @view_id: the view that the event occured on. @timestamp: time when event occurred in microseconds. @x: x location of mouse cursor. @y: y location of mouse cursor. @device: device id.
Sends a touch up event to the engine.
Definition at line 952 of file fl_engine.cc.
Referenced by fl_touch_manager_handle_touch_event().
void fl_engine_send_window_metrics_event | ( | FlEngine * | engine, |
FlutterEngineDisplayId | display_id, | ||
FlutterViewId | view_id, | ||
size_t | width, | ||
size_t | height, | ||
double | pixel_ratio | ||
) |
fl_engine_send_window_metrics_event: @engine: an #FlEngine. @display_id: the display this view is rendering on. @view_id: the view that the event occured on. @width: width of the window in pixels. @height: height of the window in pixels. @pixel_ratio: scale factor for window.
Sends a window metrics event to the engine.
Definition at line 896 of file fl_engine.cc.
Referenced by handle_geometry_changed(), and TEST().
void fl_engine_set_platform_message_handler | ( | FlEngine * | engine, |
FlEnginePlatformMessageHandler | handler, | ||
gpointer | user_data, | ||
GDestroyNotify | destroy_notify | ||
) |
fl_engine_set_platform_message_handler: @engine: an #FlEngine. @handler: function to call when a platform message is received. @user_data: (closure): user data to pass to @handler. @destroy_notify: (allow-none): a function which gets called to free @user_data, or NULL.
Registers the function called when a platform message is received. Call fl_engine_send_platform_message_response() with the response to this message. Ownership of #FlutterPlatformMessageResponseHandle is transferred to the caller, and the message must be responded to avoid memory leaks.
Definition at line 760 of file fl_engine.cc.
References user_data.
Referenced by fl_binary_messenger_new().
|
static |
Definition at line 420 of file fl_engine.cc.
References prop_id, pspec, and value.
Referenced by fl_engine_class_init().
void fl_engine_set_update_semantics_handler | ( | FlEngine * | engine, |
FlEngineUpdateSemanticsHandler | handler, | ||
gpointer | user_data, | ||
GDestroyNotify | destroy_notify | ||
) |
fl_engine_set_update_semantics_handler: @engine: an #FlEngine. @handler: function to call when a semantics update is received. @user_data: (closure): user data to pass to @handler. @destroy_notify: (allow-none): a function which gets called to free @user_data, or NULL.
Registers the function called when a semantics update is received.
Definition at line 778 of file fl_engine.cc.
References user_data.
Referenced by fl_view_dispose(), and fl_view_new().
gboolean fl_engine_start | ( | FlEngine * | engine, |
GError ** | error | ||
) |
fl_engine_start: @engine: an #FlEngine. @error: (allow-none): #GError location to store the error occurring, or NULL to ignore.
Starts the Flutter engine.
Returns: TRUE on success.
Definition at line 544 of file fl_engine.cc.
References args, compositor_collect_backing_store_callback(), compositor_create_backing_store_callback(), compositor_present_view_callback(), error, fl_dart_project_get_aot_library_path(), fl_dart_project_get_assets_path(), fl_dart_project_get_dart_entrypoint_arguments(), fl_dart_project_get_icu_data_path(), fl_display_monitor_new(), fl_display_monitor_start(), FL_ENGINE_ERROR_FAILED, fl_engine_error_quark(), fl_engine_gl_clear_current(), fl_engine_gl_external_texture_frame_callback(), fl_engine_gl_get_fbo(), fl_engine_gl_make_current(), fl_engine_gl_make_resource_current(), fl_engine_gl_present(), fl_engine_gl_proc_resolver(), fl_engine_on_pre_engine_restart_cb(), fl_engine_platform_message_cb(), fl_engine_post_task(), fl_engine_runs_task_on_current_thread(), fl_engine_update_semantics_cb(), fl_mouse_cursor_handler_new(), fl_platform_handler_new(), fl_settings_handler_new(), fl_settings_handler_start(), fl_settings_new(), fl_task_runner_new(), flutter::GetSwitchesFromEnvironment(), kPlatformTaskRunnerIdentifier, setup_locales(), and TRUE.
Referenced by realize_cb(), and TEST().
gboolean fl_engine_unregister_external_texture | ( | FlEngine * | engine, |
int64_t | texture_id | ||
) |
fl_engine_unregister_external_texture: @engine: an #FlEngine. @texture_id: the identifier of the texture that is not available anymore.
Tells the Flutter engine that an existing external texture is not available anymore.
Returns: TRUE on success.
Definition at line 1196 of file fl_engine.cc.
References texture_id.
Referenced by unregister_texture().
void fl_engine_update_accessibility_features | ( | FlEngine * | engine, |
int32_t | flags | ||
) |
fl_engine_update_accessibility_features: @engine: an #FlEngine. @flags: the features to enable in the accessibility tree.
Tells the Flutter engine to update the flags on the accessibility tree.
Definition at line 1225 of file fl_engine.cc.
References flags.
Referenced by update_settings().
|
static |
|
static |
G_DEFINE_TYPE_WITH_CODE | ( | FlEngine | , |
fl_engine | , | ||
G_TYPE_OBJECT | , | ||
G_IMPLEMENT_INTERFACE(fl_plugin_registry_get_type(), fl_engine_plugin_registry_iface_init) | |||
) |
|
static |
|
static |
Definition at line 1114 of file fl_engine.cc.
References user_data.
Referenced by fl_engine_send_key_event().
|
static |
Definition at line 184 of file fl_engine.cc.
References free_locale(), i, and parse_locale().
Referenced by fl_engine_start().
|
static |
Definition at line 155 of file fl_engine.cc.
References FL_ENGINE_ERROR_FAILED, fl_engine_error_quark(), and TRUE.
Referenced by fl_engine_add_view().
|
static |
Definition at line 166 of file fl_engine.cc.
References FL_ENGINE_ERROR_FAILED, fl_engine_error_quark(), and TRUE.
Referenced by fl_engine_remove_view().
|
static |
Definition at line 100 of file fl_engine.cc.
Referenced by fl_engine_class_init(), and fl_engine_on_pre_engine_restart_cb().
|
staticconstexpr |
Definition at line 33 of file fl_engine.cc.
Referenced by fl_engine_send_mouse_pointer_event().
|
staticconstexpr |
Definition at line 29 of file fl_engine.cc.
Referenced by fl_engine_start().
|
staticconstexpr |
Definition at line 34 of file fl_engine.cc.
Referenced by fl_engine_send_pointer_pan_zoom_event().