Previously the engine would load all embedded fonts listed in the app's
font manifest during startup. This change creates a Skia font manager that
is backed by the engine's AssetManager and can load embedded font assets
on demand.
The txt::FontCollection contains a cache of minikin::FontCollection objects,
which in turn hold a fallback provider that refers back to the txt::FontCollection.
Using a weak_ptr in the fallback provider breaks the circular reference.
* pass a locale to GetMinikinFontCollectionForFamily
* provide the ICU data file path
* loosen checks based on the Minikin LineBreaker's line widths
(LineBreaker widths do not exactly match the advances calculated during layout)
* Reland "Added IsolateNameServer functionality (#5410)"
This reverts commit 1598c7ad7b.
* Fixed issue with isolate_name_server_test which caused test to timeout
* Disabled thread_annotations on Android as they aren't supported in the
NDK headers for std::mutex. Readded thread annotations to
IsolateNameServer.
* Added IsolateNameServer functionality, which allows for the association
of string names with isolate SendPort ids that can be used to establish
inter-isolate communications.
* Roll the Dart VM.
c95617b19c Add a release note about the VM going sync-async
05f11aa74c [kernel] Account for defaultType in some of the Kernel visitors
c39c2c8ac1 Handle type variables in optional function typed parameter in jsinterop methods
a4af44b470 [VM] Do not invoke any functions during AOT compilation
5be73cd166 Make debug printing of function types more robust.
6054cb3e1f CompilerContext always expects a Future now
6213303e65 Fix some runtime check failures in tests
d17ec7c131 Move inference data from JClosedWorld to GlobalTypeInferenceResults.
6fcc68bee3 Adjust test status.
fe21518df8 Improve literal list recovery
134e00fd73 Treat 64 bit ints as unsigned until conversion to JS.
b375d69800 [observatory] When the VM is forwarding events to the Android or Fuchsia system tracers, link to the document describing how to use them.
edb1642709 [vm] Repair interpreter build.
a9fef15ff3 Add FileResult and AnalysisDriver.getFileSync().
787a43ec78 [vm] Fix some missing private name mangling in the kernel reader.
1cf348b29f Mark enum_private_test/02 as pass, crash
cc1a817faa Use ZX_THREAD_STATE_BASIC on state output of ZX_INFO_THREAD.
4e0e72a65f Fix map_insert_remove_oom_test.
8421e69fbb [js_runtime] Make _checkLength more likely to be inlined
b66dd3d456 Stop using generic comment syntax in observatory.
b667be4861 Fix source maps strong mode runtime failure in dart2js.
7b972a653b [vm/linearscan] Account for definitions with no SSA name when processing PairLocation outputs.
09fc582bfd Fix EvalExpression test.
f2883d1b4f Fix test error message expectation on Windows.
8bfbce33f1 Mark cc/Profiler_CodeTicks as failing on Windows, dartk x64 config
a8c2263d3f Issue 33336. AnalysisDriver.discoverAvailableFiles() should notify the scheduler that there is work to do.
b7493b663e [vm/inliner] Inline small int convertors.
6b71414296 [Test status] Update status of several triaged lib_2/mirrors tests
1f03109200 Proposed replacement for SourceFactory
60631b0944 Remove unnecessary casts from observatory.
bfa8be887a Extending dartLangSpec.tex with super-bounded types and variance.
daee781179 Revise beginTypeVariable event in event sequence
e0ca1514a2 Mark test as failing.
* Update hash.
Eliminates support for running directly from sources or script snapshots. In
debug mode, we run from a kernel snapshot; in profile and release modes, we
link in AOT-compiled code.
Renames --dart-non-checked-mode to --disable-dart-asserts since checked mode
does not make sense in Dart 2.
* Enforce clang-format on all files in commit
This re-enforces clang-format across all files changed in the commit.
In c10c417, we enabled checking only for the lines changed in the diff
in order to reduce the change of merge conflicts with the shell refactor
landed in 82c5c8f.
* Reformat sources to match latest clang-format
As part of re-enabling clang-format across the codebase, reformat all
code to match the latest toolchain.
On a Linux host, we were having to convert the type of the bitmap to N32, but we weren't also fixing the channel order to RGBA, so consequently we were getting BGRA when the API was asking for RGBA. This forces the color format to be RGBA when that is what is asked for.
We weren't needing to do conversion on macOS, so macOS was always getting RGBA.
Paragraph layout breaks the text into lines, and ellipsizing (if applicable)
will truncate the last run of a line at the point where word wrap would have
occurred.
Fixes https://github.com/flutter/flutter/issues/18198
This updates the documentation for StrokeJoin and StrokeCap to contain animated diagrams that describe their function. The actual diagrams reside in the assets-for-api-docs repo.
libtxt will query Skia for a fallback typeface when it encounters a character
that is not found in the primary font. The font collection should make all
the variants of the fallback typeface's font family available to Minikin for
use in future font lookups.
Fixes https://github.com/flutter/flutter/issues/17985
* Move the handling of delegating AppDelegate callback out of FlutterAppDelegate.
Also moves the plugin registry to FlutterViewController. So each view-controller will handle its
own plugins.
This is intended to simplify including one or more Flutter views in an existing iOS app and giving
more precise control of plugin registration.
Fixes: https://github.com/flutter/flutter/issues/16539
* formatting
* Update license golden file
* Fixed type error
* FREEZE.unindexed
* Fix Header types
* Revert "FREEZE.unindexed"
This reverts commit bebb70056c9bcb90b4321bdc2873896623ed6faa.
Adds --dynamic and --interpreter flags to
tools/gn. These flags result in engines with
properties as follows:
--dynamic:
- JIT targeting native code on Android and
DBC on iOS
--interpreter
- Target DBC even if running on Android.
For example:
gn --android --dynamic --interpreter --runtime-mode release
Will generate an engine:
- Without Dart asserts
- Without Observatory
- With JIT compililation to DBC
into out/android_dynamic_release_dbc
* Remove uses of ReleaseOwnership from vulkan backend.
Flutter no longer needs to release ownership of objects to skia so this change removes the api calls.
* Remove Release call from vulkan_device.cc
* Update vulkan_application.h
* Update vulkan_application.cc
* Update vulkan_handle.h
This changes the ownership of the VkInstance and VkDevice back to the flutter's objects. I am trying to move skia into a world where GrVkBackendContext is purely a description of the vulkan context skia should use and is just passed in during GrContext creation. It shouldn't need to be ref counted or actually do work in destructor (those changes to come later). This is just a first step towards getting there.
A given character may render differently in various locales, and fonts on the
host system may be tagged with locale metadata in order to support this.
If the text renderer needs to find a fallback font for a character, it should
pass the preferred locale to Skia's font manager which can use it to find the
best matching font.
The font collection also needs to maintain different caches of fallback fonts
for each locale.
See https://github.com/flutter/flutter/pull/17879
Eliminates the declaration that only arm64 is supported in
Flutter.framework's Info.plist. This causes Xcode's app thinning tools
to remove Flutter.framework in thinned archives for armv7 devices.
Although we do have a save before this SkAutoCanvasRestore so we
can theoretically send in doSave = false, it's safer to set doSave
to true to prevent future breakage.
As discussed with mtklein@google.com and reed@google.com, saving
canvas is very cheap in Skia so this should have no performance
impact. Skia is also considering remove doSave argument from
SkAutoCanvasRestore and always save the canvas.