This reverts commit 25559ed0779604d56c47c5d2341ffd16b137cd10.
Reason for revert: broken in AOT mode.
@pragma('vm:entry-point') placed on a function only instructs
the compiler to retain the function itself, but does not tell
compiler to generate and retain tear-off for this function.
In this PR _runMainZoned was marked as an entry-point but C++
code was trying to tear it off and use a closure, instead of
invoking it directly, which is not supported.
Reuses the implementation that was previously done for Scene.toImage
(see 20c805c973)
This introduces a breaking API change:
Picture.toImage is now asynchronous and returns a Future<Image>
Fixes https://github.com/flutter/flutter/issues/23621
* Update GetCallbackHandle to use Dart_IsTearOff instead of a string
comparison to determine whether or not a closure was provided as an
argument to PluginUtilities.GetCallbackHandle.
Fixes#24394
Previously codec.cc needed all required frames to already be decoded
before it could decode any of their dependent frames. To accomplish this
it would always cache required frames, regardless of cache limit.
However both GIF and WEBP (the only currently supported animated image
formats) only allow the image to depend on one decoded frame at a time.
This means that there's no reason to cache all the required frames since
it's only valid for the image formats to require one previously decoded
frame at a time. (For example, frame 10 and frame 11 in a hypothetical
animated image could all depend on frame 9. But no subsequent frame
after frame 9 could depend on frames 0-8.)
Frames are always added to the cache as long as they're under the limit,
and never removed. Required frames are always stored as a separate
member on `MultiFrameCodec`.
Warning: this logic will break if we decide to support more animated
formats in the future.
Fixesflutter/flutter#24835.
* Support user-provided font-fallback.
* Use tonic to pass to native
* Handle font families as a fallback vector in LibTxt
* Fix docs
* Concatentate fontFamily lists in dart before passing to engine
* Fix formatting
* Reworked font family matching to search all managers
* Fix formatting
* Proper toString null checking to keep format consistent
* Formatting
* Move _listEquals out of textstyle as it is not specific to TextStyle and will later be used for paragraphStyle too
* Clarify TextAffinity docs
* Clarify TextPosition and the definition of upstream/downstream
* Docs fixes from code review, less redundant with 'string in code'
This PR replaces the unused `PrerollContext::child_paint_bounds` with `PrerollContext::cull_rect` so we can prune unnecessary preroll tasks (especially cache) based on clips. This PR fixes https://github.com/flutter/flutter/issues/24712
Performance test has been added (https://github.com/flutter/flutter/pull/25381) to make sure that we won't regress again in the future.
Note that the cull_rect here is very similar to those removed in https://github.com/flutter/engine/pull/6352 . We can't compute cull rects in SceneBuilder because of retained layers. But we can still compute and use them to optimize performance in Preroll.
The service protocol's ListViews method needs to return description data for
each engine in the process. Previously ListViews would queue a task to each
UI thread to gather this data. However, the UI thread might be blocked from
executing tasks (e.g. if the Dart isolate is paused), resulting in a deadlock.
This change provides a copy of the engine's description data to the
ServiceProtocol's global list of engines, allowing ListViews to run without
accessing any UI threads.
Fixes https://github.com/flutter/flutter/issues/24400
Most changes are trivial except pushTransform. In pushTransform, matrix4 is an Dart object and it has to be released before we can return a new Dart object (EngineLayer).
* - Roll engine to version f9ebf2129732fd2b606286fdf58e500384b8a0bc
- Update @pragma directive for some classes in semantics.dart
* Update license file.