After this patch, platform messages now take the same path through the system
that semantics data does (on Android). Support on iOS will be in another patch.
This patch prepares us to switch sending semantics information over mojom to
using dart:ui directly. Currently the recorded information is dropped on the
floor, but that will improve in future patches.
We now use JNI rather than Mojo to transport pointer data from Java to Dart.
Also, fill in a few more of the pointer data fields from information in Java.
The UI thread does not have an EGL context, so attempting to delete an
SkImage on that thread will fail to delete the image's texture, resulting
in resource leaks
Rather than using mojom to encode pointer data, we now encode and decode it
manually. A future patch will remove the mojom codepath once the framework is
updated.
This patch makes three API changes:
* The dart:ui library now always communicates in physical pixels. The
framework is responsible for converting to whatever logical coordinate
system it wishes to use.
* The textBaselien property is now on TextStyle rather than ParagraphStyle,
which will let us choose which baseline to use on a per-span basis rather
than on a per-paragraph basis.
* This patch also removes the old MojoServices function endpoints.
Fixes https://github.com/flutter/flutter/issues/3779
Fixes https://github.com/flutter/flutter/issues/1360
* Added drawArc to Canvas.
Added a way to call SkCanvas::drawArc from Dart. This method is
optimized for the arc case and should be faster that drawing paths.
* Removed implementation details from docs.
* Added more details to the docs.
After this patch, Flutter apps on Fuchsia can access their asset
bundles. Unlike other platforms, the asset bundles are stored in memory
rather than in the file system.
We don't yet have support for text on Fuchsia. This patch add stub
implementations of Paragraph and ParagraphBuilder so that Flutter apps
that use text don't error out. Instead, the text is 0x0 and invisible.
Also, teach MojoServices not to crash if it hasn't been created by the
time Dart tries to use it.
Also, rename SkyViewClient to RuntimeDelegate. These names are more
sensible.
This patch also cleans up the RuntimeDelegate a bit, for example by
removing support for flushing real-time events, which aren't used.
* Move dart:mojo.internal to //flutter/lib/mojo
To be parallel with the other built-in libraries.
* Move DartRuntimeHooks into //flutter/lib/ui
This code manipulates natives.dart, which is part of //flutter/lib/ui.
This patch removes the //flutter/sky/engine dependency from //flutter/lib/ui,
which lets us build the bulk of the dart:ui library without needing to build
//flutter/sky/engine.
This change disentangles the build for the snapshotter from the main engine
build. Also, we now have all the Dart files for dart:ui in the same directory.