1914 Commits

Author SHA1 Message Date
Dan Field
114337a53c Make Skia cache size channel respond with a value (flutter/engine#11550) 2019-08-27 17:52:35 -07:00
Maurice Parrish
4eab48a26a Add check to enable metal for import (flutter/engine#11537) 2019-08-27 14:47:14 -07:00
P.Y. Laligand
4831de893a Update label of Fuchsia FIDL targets. (flutter/engine#11514) 2019-08-27 13:54:38 -07:00
Chris Bracken
0996764a76 Reuse texture cache in ios_external_texture_gl (flutter/engine#11524)
In current implementation, external texture data flow is a
producer-consumer model. When painting external texture, it always asks
registered external texture object to produce new CVPixelBuffer, then
transforms it to texture. `MarkNewFrameAvailable` function is ignored.
This commit changes the dataflow. Now ios_external_texture_gl caches
previous opengl texture, if no new frame are available, it do not
`copyPixelBuffer` method, just uses cached opengl texture to draw.

This is a re-land of flutter/engine#9806, which was previously reverted
in flutter/engine#11522.
2019-08-27 11:03:24 -07:00
Chris Bracken
8a25f39d85 Revert "Reuse texture cache in ios_external_texture_gl. (#9806)" (flutter/engine#11522)
Broke iOS builds:

    ../../flutter/shell/platform/darwin/ios/ios_external_texture_gl.mm:56:28: error: out-of-line definition of 'NeedUpdateTexture' does not match any declaration in 'flutter::IOSExternalTextureGL'
    bool IOSExternalTextureGL::NeedUpdateTexture(bool freeze) {
                           ^~~~~~~~~~~~~~~~~

This reverts commit 5dfdb4ac99547b4f01c19fcd4e4e80238b91854b.
2019-08-27 09:39:48 -07:00
LiuJiLong
5dfdb4ac99 Reuse texture cache in ios_external_texture_gl. (flutter/engine#9806)
In current implementation, external texture data flow is a producer-consumer model. When painting external texture, it always asks registered external texture object to produce new CVPixelBuffer, then transforms it to texture. `MarkNewFrameAvailable` function is ignored. This commit changes the dataflow. Now ios_external_texture_gl caches previous opengl texture, if no new frame are available, it do not `copyPixelBuffer` method, just uses cached opengl texture to draw.
2019-08-27 02:00:09 -07:00
Chris Bracken
116b9729ec Ensure trailing newline before EOF in C++ sources (flutter/engine#11489)
In generated text fixture location lookup code:
When the second argument to write_file() is a list, it is written one
item per line to the path specified by the first argument. This ensures
that we emit a trailing newline at EOF to comply with -Wnewline-eof.

Elsewhere:
Lack of a newline at EOF was undefined behaviour prior to C++11. The
Fuchsia tree sets -Wnewline-eof in its buildroot, so we plan to do the
same. This cleans up remaining first-party C++ sources that don't
include a trailing newline.
2019-08-27 00:13:00 -07:00
xster
6ef2c2bc87 make it possible to disable debug symbols stripping (flutter/engine#11265) 2019-08-26 16:53:00 -07:00
Tong Mu
9f9c4f0e40 Patch buttons for chromebook touchpad (flutter/engine#11420)
Changes irregular events of touchpad scrolling on Chromebook to have buttons: 1.
2019-08-26 11:49:55 -07:00
Amir Hardon
d857db54ce Skip empty platform view overlays. (flutter/engine#11427)
This change sets up a "spying canvas" to try and detect empty canvases.
When using platform views with a custom embedder, if a platform view
overlay canvas is known to be empty we skip creating a compositor layer
for that overlay.
2019-08-26 11:40:49 -07:00
Qxyat
3976be5c8b Release _ongoingTouches when FlutterViewController dealloc (flutter/engine#11049) 2019-08-26 10:49:54 -07:00
Dan Field
c3ef9446e6 update method for skia (flutter/engine#11436) 2019-08-25 20:06:12 -07:00
liyuqian
f8f285edcc Support non-60 refresh rate on PerformanceOverlay (flutter/engine#11419)
So we can get the correct graph on 90fps/120fps devices :)

See https://github.com/flutter/flutter/issues/37888
2019-08-24 15:22:52 -07:00
Jim Graham
e3b02a68ec Add tracing of the number of frames in flight in the pipeline. (flutter/engine#11423) 2019-08-23 16:50:03 -07:00
Dan Field
e8b91f6bb2 Platform View implemenation for Metal (flutter/engine#11070) 2019-08-23 16:15:41 -07:00
Chinmay Garde
7132a8a12d Avoid root surface acquisition during custom composition with software renderer. (flutter/engine#11394)
Uses the same technique used during OpenGL composition to elide root surface access. The refactoring of this approach is tracked in https://github.com/flutter/flutter/issues/38466

Fixes https://github.com/flutter/flutter/issues/39009.
2019-08-23 13:52:06 -07:00
Chinmay Garde
05d4ab774d Remove deprecated ThreadTest::GetThreadTaskRunner and use the newer CreateNewThread API. (flutter/engine#11395)
We will end up creating fewer threads in tests.
2019-08-23 12:21:46 -07:00
Kaushik Iska
0dc2897cca Ios simulator unittests seem to not consider the full compilation unit (flutter/engine#11413)
They only reference the headers, so temporarily declaring and defining
in the header
2019-08-23 09:32:00 -07:00
Chinmay Garde
88361b8cb4 Wire up software rendering in the test compositor. (flutter/engine#11392) 2019-08-22 20:27:34 -07:00
stuartmorgan
11945dd450 Allow overriding the GLFW pixel ratio (flutter/engine#11388)
Allows a client to set a specific pixel ratio rather than using one
computed based on the screen details.

Fixes https://github.com/flutter/flutter/issues/37620
2019-08-22 16:49:23 -07:00
stuartmorgan
97e32ac140 Allow non-resizable windows in GLFW embedding (flutter/engine#11386)
Adds a flag to create non-resizeable windows.

Since the number of parameters is getting awkward, extracts
window-related parameters and engine-related parameters into structs for
clarity. This also removes some duplication in method signatures.

The window parameters struct change is also made to the C++ wrapper,
making this a breaking change for the runners.

Fixes https://github.com/flutter/flutter/issues/37623
2019-08-22 16:48:22 -07:00
stuartmorgan
d717bc38c9 Switch to an incremental runloop for GLFW (flutter/engine#11368)
Rather than running the runloop forever, have the API expose an incremental runloop. This allows clients to do other processing if they need it.

This allows for removing the odd construction of having knowledge of GTK event handling built into the library even though nothing in the library uses it; instead runner applications that use GTK plugins (such as FDE's testbed) can do that processing at the application level instead.
2019-08-22 11:39:00 -07:00
stuartmorgan
f17fc2ff83 Use of App.framework in macOS FlutterDartProject (flutter/engine#11380)
Adds initial use of App.framework in the macOS project configuration,
using that rather than the main bundle as the default Dart bundle, and
expecting flutter_resources to be located there.

This is an incremental step toward aligning with the behvaior of the iOS
version of this class.

Fixes https://github.com/flutter/flutter/issues/38363
2019-08-22 10:40:18 -07:00
Amir Hardon
33e25fa607 Include Java stack trace in method channel invocations (flutter/engine#11361) 2019-08-22 09:02:31 -07:00
Chinmay Garde
7c368ef794 Dry up fixture comparison in embedder unit-tests. (flutter/engine#11359)
No functional change. Just makes testing with fixture images easier. Adding a
whole lot more tests that use this path for the embedder surface rotation
patches. Want to land stuff in smaller chunks.
2019-08-21 16:03:38 -07:00
Tamir Duberstein
0d41194301 [lsc] Remove fuchsia.net.SocketProvider (flutter/engine#11316)
fuchsia.net.SocketProvider has been replaced with fuchsia.net.NameLookup
and fuchsia.posix.socket.Provider.
2019-08-21 07:38:25 -07:00
Emmanuel Garcia
ba08edecf1 Remove engine hash from the output artifact (flutter/engine#11330) 2019-08-21 13:27:55 +00:00
stuartmorgan
d46e7e2737 Clean up Windows and Linux build output (flutter/engine#11324)
Final portion of reworking the names of the Linux and Windows desktop build outputs.

See flutter/flutter#38589
2019-08-21 05:53:38 -07:00
stuartmorgan
59964aa29c Fix change_install_name.py to be GN-friendly (flutter/engine#11309)
change_install_name.py was operating on framework library files
in-place, which breaks GN's timestamp analysis handling since a file
can't be both an input and output of an action. As a result no-op builds
on macOS were not actually no-ops.

This changes the script to operate on an output copy, both fixing the
no-op build issue, and simplifying the GN framework construction scripts
by combining the copy step and the install-name step.

Fixes https://github.com/flutter/flutter/issues/33465
2019-08-20 21:15:42 -07:00
Chinmay Garde
288c3c01ef Migrate Embedder API documentation to Doxygen format. (flutter/engine#11255)
Fixes https://github.com/flutter/flutter/issues/38870
2019-08-20 20:20:06 -07:00
Chinmay Garde
68a6bf0c1f When using a custom compositor, ensure the root canvas is flushed. (flutter/engine#11310)
The root canvas is managed by the external view embedder when using a custom
compositor. Due to this, frame submission on the surface will not end up
flushing the same (because the surface doesn’t have it to begin with). Fixed
with tests.
2019-08-20 17:06:57 -07:00
Francisco Magdaleno
319bd2c07e [glfw] Send the glfw key data to the framework. (flutter/engine#9386) 2019-08-20 15:55:51 -07:00
stuartmorgan
e4f3ceb32c Set FlutterMacOS podspec min version to 10.11 (flutter/engine#11306)
The framework is built using 10.11 as the deployment version; update the
podspec accordingly.

See https://github.com/flutter/flutter/issues/33200
2019-08-20 14:51:16 -07:00
Jason Simmons
b7345ada3c Fix a segfault in EmbedderTest.CanSpecifyCustomTaskRunner (flutter/engine#11305)
This test queues tasks to a custom task runner that runs the tasks on the
platform thread.  After shutting down the engine, the test must wait until
these tasks are drained before the test exits.
2019-08-20 14:11:45 -07:00
Matt Carroll
9d0ff95b12 Remove dart entrypoint Intent parameter from FlutterActivity. (#38713) (flutter/engine#11239) 2019-08-19 17:21:21 -07:00
Chinmay Garde
4aa768d100 Provide a placeholder queue ID for the custom embedder task runner. (flutter/engine#11062)
This issue would only manifest when a custom task runner was being used with
a custom compositor. Both were tested separately but not together. A new
test has been added for this. We still create the GPU thread merger
unnecessarily but I can patch that later. I also cleaned up the existing
custom task runner test to not submit tasks on a dead engine as they just
log errors unnecessarily.

Filed new: https://github.com/flutter/flutter/issues/38844
2019-08-19 15:56:58 -07:00
Matt Carroll
afb3cb3f89 Notify framework to clear input connection when app is backgrounded (#35054) (flutter/engine#9498) 2019-08-19 14:12:45 -07:00
Chinmay Garde
ea84fb80da Update metal layer drawable size on relayout. (flutter/engine#11224)
This makes it so that the texture obtained by the next frame has the same dimensions as the frame being renderered.

Fixes https://github.com/flutter/flutter/issues/38754
2019-08-19 13:01:11 -07:00
Kaushik Iska
d43a5a5346 [b/139487101] Dont present session twice (flutter/engine#11222) 2019-08-19 12:03:06 -07:00
Kaushik Iska
a8139b6786 [dynamic_thread_merging] Resubmit only on the frame where the merge (flutter/engine#11075)
fixes https://github.com/flutter/flutter/issues/38735
2019-08-17 01:48:28 -07:00
Michael Klimushyn
fe1797c17e More updates to the Robolectric test harness (flutter/engine#11068)
Previously the test wasn't correctly re-building the engine when its
files changed on multiple runs of `testing/run_tests.py`. It looks like
this is because the test build target wasn't depending on the entire
engine Android dependency, so some code changes were being ignored.
Update the build.
2019-08-16 17:09:09 -07:00
Shi-Hao Hong
cb707fb34a Pass Android Q insets.systemGestureInsets to Window (flutter/engine#10413)
* Pass Android Q system gesture inset information from insets.systemGestureInsets to Window.systemGestureInsets
2019-08-16 13:42:56 -04:00
Jason Simmons
d3d9f509eb Disable a deprecation warning for use of a TaskDescription constructor for older platforms (flutter/engine#11029) 2019-08-15 15:22:37 -07:00
Matt Carroll
b4d4a675d4 Re-lands platform brightness support on iOS, plus platform contrast (flutter/engine#10791) 2019-08-15 14:51:07 -07:00
stuartmorgan
3746a89cb2 Add _glfw versions of the GLFW desktop libraries (flutter/engine#11024)
Part of restructuring the artifacts to support transitioning away from
GLFW embeddings on desktop.

https://github.com/flutter/flutter/issues/38589
2019-08-15 14:41:15 -07:00
Dan Field
748fef82a9 Fix first frame logic (flutter/engine#11027) 2019-08-15 14:38:43 -07:00
Jason Simmons
d471afafe4 Remove the output directory prefix from the Android engine JAR filename (flutter/engine#11015) 2019-08-15 09:42:19 -07:00
inthroxify
beff0828ed Fix flutter/flutter #34791 (flutter/engine#9977)
This is a fix for [flutter/flutter issue #34791](https://github.com/flutter/flutter/issues/34791).

PR #8048 in flutter/engine produced a bug/regression (flutter/flutter #34791) in flutter for Android that doesn't permit the Recents app bar color to be changed. This restores the original arguments to the function found in the previous version (7187e271f2/shell/platform/android/io/flutter/plugin/platform/PlatformPlugin.java) of PlatformPlugin.java while preserving the enhancements for the linter.

I've compiled and tested this fix locally. The bar changes color again.
2019-08-15 09:20:30 -07:00
Chinmay Garde
3ad272ccda On iOS report the preferred frames per second to tools via service protocol. (flutter/engine#11006) 2019-08-14 16:47:57 -07:00
xster
afab9f34b1 some drive-by docs while I was reading the embedding classes (flutter/engine#9341) 2019-08-14 16:35:50 -07:00