Commit Graph

456 Commits

Author SHA1 Message Date
Sigurd Meldgaard e58764fbe0 Move texture registry ownership to platform view (#4348)
* Move texture registry ownership to platform view

This enables the texture registry to survive activity pause on Android.
2017-11-22 09:55:45 +01:00
Martin Kustermann 5c6ebf7994 Enable flutter engine to also work with .*so files on android (#4298)
* Enable flutter engine to also work with .*so files on android

We would like to be able to use native tools (e.g. simpleperf, gdb) with
precompiled flutter apps.  The native tools work much better with *.so
files instead of the custom formats the Dart VM uses by default.

This CL adds support for being able to load the flutter app from an *.so
file on Android.

* Add sanity check to ensure we have either shared library or instruction snapshot (but not both)
2017-11-21 13:14:50 +01:00
Chris Bracken 82cd793ee5 Use iOS scale when computing render buffer size (#4171) (#4373)
When checking whether render buffer size has changed, apply the device
scale factor used to convert points to pixels to ensure we're not
needlessly re-allocating render buffer storage.

Adds trace + debug log to make this easier to detect in future.

Originally introduced in 2d530daeca, but
rolled back in 0a6e415b60 to test whether
it was responsible for regressions to
flutter_gallery_ios__transition_perf benchmarks:
  * average_frame_build_time_millis
  * missed_frame_build_budget_count

Re-landed in d43d353475, and reverted in
459f722b86 after it appeared to regress
the above two benchmarks. After recent changes to microtask execution
order which fixed https://github.com/flutter/flutter/issues/9998,
re-introducing this fix results in benchmark improvements to the above
two benchmarks in local testing.
2017-11-20 14:15:26 -08:00
Sigurd Meldgaard 9b31717923 Avoid double retain of Texture on ios. (#4354)
The "raw" pointer is already managed by ARC.
2017-11-17 13:49:57 +01:00
Jason Simmons 8109be8e21 Removed unused declaration of Animator::RequestDrawOnVSync (#4367) 2017-11-15 17:44:46 -08:00
Brian Osman e03cab39d7 Prevent Skia from trying to use stencil buffers (#4362)
Fixes flutter/flutter#13018

When linear blending was disabled, we started rendering directly to FBO0 again. We can't attach stencil there, and the profile graph code triggers a path that (by default) uses it. This option forces us to use alternate rendering methods.

Note that the graph rendering code is constructing a fairly complex path. It would probably be much faster to render as a simpler series of drawRect calls for each box (which would get batched inside Skia).
2017-11-15 13:10:56 -05:00
Chinmay Garde bedba1267f Allow embedders to respond to platform messages from the Dart application. (#4361)
This updated the native embedder API in a non-ABI breaking way.
2017-11-14 15:51:19 -08:00
Brian Osman 0a7155d4e1 Disable linear blending, use SkColorSpaceXformCanvas instead (#4355)
This retains gamut correction (adjusting colors for screens with different capabilities), but does all blending and interpolation with sRGB-encoded values. That matches the behavior expected by most users, as well as the behavior of nearly all other systems. It also greatly simplifies the EGL code.

A future Skia change will make this behavior more of a first-class citizen, so some of these implementation details will change again, but the behavior will not. The bulk of this change (elimination of complication from the GL surface code) is permanent - it's just the SkColorSpaceXformCanvas that will be replaced.
2017-11-14 13:33:26 -05:00
Zachary Anderson 242ce44af5 [Android] Cleanup in FlutterActivityDelegate (#4357) 2017-11-13 14:13:04 -08:00
Zachary Anderson 7804e8588a View destroy listener (#4347)
[Android] Allow persisting a FlutterNativeView across activities.
2017-11-13 13:56:48 -08:00
Jason Simmons bb55d65085 Delete the native view when destroying the FlutterView (#4356)
Fixes https://github.com/flutter/flutter/issues/12996
2017-11-13 13:16:48 -08:00
Mikkel Nygaard Ravn 1f0c959189 Align iOS event channel semantics to Android counterpart (#4353) 2017-11-13 15:34:29 +01:00
Mikkel Nygaard Ravn bc3ac074d2 Make EventChannel survive hot restart on Android (#4350) 2017-11-13 07:47:36 +01:00
Jason Simmons fb6f3e0734 Log stack traces from exceptions thrown by calls from native into Java (#4346) 2017-11-09 13:04:12 -08:00
Zachary Anderson f5bdf9b0fc [Android] Pulls the native platform view out of FlutterView (#4338) 2017-11-09 12:10:00 -08:00
Jason Simmons a9319a100a Allow rendering of frames in a paused animator during a change to screen dimensions (#4333)
Fixes https://github.com/flutter/flutter/issues/12886
2017-11-09 10:04:51 -08:00
Chris Bracken bc2acf7bdd Revert "Roll Fuchsia buildtools to 85907c59e97527d79bbfdfd849d8e85c24959cc5 (#4331)" (#4340)
With the update to HEAD of the Fuchsia buildtools repo, the new clang
toolchain picked up caused link-time breakage in android x86_64
libFlutter.so builds.

Sample log:
https://build.chromium.org/p/client.flutter/builders/Linux%20Engine/builds/1974/steps/build%20android_debug_x64/logs/stdio

Sample failure:
FAILED: libflutter.so libflutter.so.TOC lib.stripped/libflutter.so
../../third_party/android_tools/ndk/toolchains/x86_64-4.9/prebuilt/linux-x86_64/lib/gcc/x86_64-linux-android/4.9.x/../../../../x86_64-linux-android/bin/ld.gold: error: obj/flutter/shell/platform/android/libflutter/android_context_gl.o: unsupported reloc 42 against global symbol std::__ndk1::num_put<char, std::__ndk1::ostreambuf_iterator<char, std::__ndk1::char_traits<char> > >::id

This reverts commit 8ad42f0dae.
2017-11-08 16:48:00 -08:00
Chris Bracken 8ad42f0dae Roll Fuchsia buildtools to 85907c59e97527d79bbfdfd849d8e85c24959cc5 (#4331)
* Roll Fuchsia buildtools to 85907c59e97527d79bbfdfd849d8e85c24959cc5

This also updates Flutter buildroot to a6e52dbb776c45cc8c57d7143b8eb8b2e762fdfb
which disables -Wtautological-constant-compare temporarily until
https://reviews.llvm.org/D39462 lands in clang. This is in line with
Fuchsia's compiler options.

* Apply clang-format diffs

No logical changes. This applies clang-format from the latest Fuchsia
buildtools to the engine codebase.
2017-11-08 11:18:17 -08:00
Chris Bracken dd6585bb9a Respond to safe area inset changes (#4330)
On iOS 11 and above, update viewport padding and notify the framework
when changes to safe area insets occur.
2017-11-07 18:26:59 -08:00
Chris Bracken e059cc0258 Temporaribly disable bottom safe area padding on iOS (#4322)
There are two different sets of view insets that applications may want
to track in order to avoid unwanted interaction with system UI:

1. OS UI that effectively shrinks the Flutter view from a UX point of
   view: e.g., when the keyboard opens, it occludes the bottom of the
   screen and the view should be adjusted such that the bottom, for the
   purposes of scrolling is just above the keyboard.
2. OS UI that is overlaid over the application, but into which the
   application should draw. e.g., the Home indicator on the iPhone X
   typically appears near the bottom of the screen, overlaid over app
   content. Content should be rendered within this 'safe area' but apps
   should avoid requiring user interaction there. For example, list
   views may want to include some small amount of additional padding to
   ensure the last list item can scroll above this area.

Since Flutter does not currently distinguish between these two cases,
this patch disables the bottom safe area inset until API is added to
support these separately.
2017-11-03 14:20:46 -07:00
Ian Hickson bc30d7bed2 Support multiple values in SystemChrome.setPreferredOrientations (#4320) 2017-11-03 10:28:31 -07:00
Chris Bracken 3021e8f6c3 Correct behaviour for rangeForCharacterAtIndex (#4319)
Previously it always fell through to a zero-length character range at
the specified position.
2017-11-02 15:16:06 -07:00
xster 8d8203ccb6 Make the text selection code more defensive (#4291)
* Make the text selection code more defensive

* format

* Move validation to a method

* Fix math

* rename
2017-11-02 03:36:52 -07:00
Chinmay Garde 9a960f82f5 Add texture support (eg video, camera) (#4159) 2017-11-02 10:57:29 +01:00
Michael Goderbauer 88cf09ffe6 Identify text fields as such to a11y on Android (#4299)
* Identify text fields as such to a11y on Android

* Add focus flag
2017-11-01 12:59:03 -07:00