512 Commits

Author SHA1 Message Date
Loïc Sharma
5e35f2ab74 Revert "Add CI builder for windows-arm64. (#38394)" (flutter/engine#38729)
This reverts commit 35810a873b59c8d738f1f3661854572cc3aa2215.
2023-01-09 22:35:13 +00:00
Pierrick Bouvier
35810a873b Add CI builder for windows-arm64. (flutter/engine#38394)
* Generate zip archives for Windows following target platform.

* Add CI builder for windows-arm64.

All packages can be cross compiled from an x64 machine.
Unittests are disabled, as they require an arm64 machine.

* Add windows-arm64 to CI.
2023-01-09 21:51:12 +00:00
Kevin Lubick
ecd5ad9c7c SkBudgeted -> skgpu::Budgeted (flutter/engine#38660)
* SkBudgeted -> skgpu::Budgeted

* colon

* format

* fix GN rules

* undo includes
2023-01-05 21:42:34 +00:00
Chris Bracken
dc3033d922 Clarify semantics action dispatch id parameter (flutter/engine#38356)
Previously the embedder API documented this as an action ID, but it's
actually the semantics node ID. This fixes the docs and renames the
parameter to clarify its purpose.

This callback is registered in the framework render bindings:
9102f2fe0b/packages/flutter/lib/src/rendering/binding.dart (L43)

Handled by `_handleSemanticsAction`:
9102f2fe0b/packages/flutter/lib/src/rendering/binding.dart (L360-L366)

Which invokes `SemanticsOwner.performAction`, where the node is looked up by ID:
9102f2fe0b/packages/flutter/lib/src/semantics/semantics.dart (L3258-L3277)
2022-12-16 13:40:48 -08:00
Chris Bracken
bd43e9cc99 [embedder] Consistent naming for GL/Metal tests (flutter/engine#38141)
While I've sent a patch to mark the shell/platform/embedder/tests and
fixtures directories as test exempt (since they are tests), by
convention, tests should end in _unittests.* for C++ tests, and _test.*
for Dart tests. This renames for consistency with other tests such as
embedder_a11y_unittests.cc.

Uncovered by https://github.com/flutter/engine/pull/38133

Related: https://github.com/flutter/cocoon/pull/2340
Issue: https://github.com/flutter/flutter/issues/116381
2022-12-08 11:28:52 -08:00
Chris Bracken
354ce9ffe0 [embedder] Expose metal surface from test context (flutter/engine#38133)
This is a minor cleanup that exposes the test metal surface to tests via
EmbedderTestContextMeta::GetTestMetalSurface for parity with the
GetTestMetalContext method which exposes the test metal context. This
eliminates the need for the more specific GetTextureInfo method since
the texture info is accessible via the test context.

This is a test refactoring with no semantic differences to the engine.

Issue: https://github.com/flutter/flutter/issues/116381
2022-12-08 10:23:29 -08:00
Chris Bracken
0fab2ea52d [embedder] Ensure destruction called on present (flutter/engine#38078)
This is a followup to flutter/engine#38038.

In that patch, a destruction callback for textures created via the
FlutterRendererConfig callbacks (as opposed to by the FlutterCompositor
callbacks) was added and passed through to the texture info attached to
the SurfaceFrame generated in
GPUSurfaceMetalSkia::AcquireFrameFromMTLTexture (called via
GPUSurfaceMetalSkia::GetMTLTexture, which invokes the
get_next_drawable_callback), however, in order for the destruction
callback to make it to the presented Skia texture, it needs to be passed
through to the present callback here:
960af0a350/shell/gpu/gpu_surface_metal_skia.mm (LL233)

which is invoked by the submit callback passed to Skia:
960af0a350/shell/gpu/gpu_surface_metal_skia.mm (LL239)

The present callback is implemented in EmbedderSurface::PresentTexture,
which invokes the present callback registered in
FlutterMetalRendererConfig.present_drawable_callback. This patch ensures
that the destruction callback is passed through to Skia's present
callback so destruction occurs in the right place.

Issue: https://github.com/flutter/flutter/issues/116381
2022-12-07 20:40:22 +00:00
Chris Bracken
d260fc82cd [embedder] Ensure FlutterMetalTexture cleanup call (flutter/engine#38038)
This ensures FlutterMetalTexture.destruction_callback gets called.

FlutterRendererConfig.get_next_drawable_callback holds a callback used by the embedder API to request a drawable; in the case of Metal, this drawable is a FlutterMetalTexture.

FlutterMetalTexture.destruction_callback should be called when it's safe to release resources associated with the FlutterMetalTexture. This callback is not currently invoked for textures returned via FlutterRendererConfig.get_next_drawable_callback; instead we unpack the returned struct and pass it on.

In the compositor codepath, we do create an SkSurface that triggers the destruction callback, here:
bbdb5d6a3e/shell/platform/embedder/embedder.cc (L868-L881)

Issue: https://github.com/flutter/flutter/issues/116381
2022-12-03 01:30:23 -08:00
Chris Bracken
37f3705de9 Fix typo on avoid_backing_store_cache param doc (flutter/engine#37985)
Fixes a one character typo spotted in the doc comment for the
avoid_backing_store_cache parameter to the EmbedderExternalViewEmbedder
ctor.
2022-11-30 23:03:05 +00:00
Dan Field
6be3cc1572 [Impeller] Format shader sources. (flutter/engine#37770)
* Update format.dart to include glsl, format repo

* format more
2022-11-21 17:21:02 +00:00
Jason Simmons
0010be93cd Add semantics constants to the exported symbols list for the embedder library (flutter/engine#37526)
Fixes https://github.com/flutter/flutter/issues/114657
2022-11-17 21:50:04 +00:00
Jenn Magder
3085f214f9 Turn on clang tidy error for underscores in Google tests (flutter/engine#37700) 2022-11-17 21:13:11 +00:00
Tong Mu
d3c69d6108 [Multiwindow] Renderers receive view IDs as argument (flutter/engine#36593)
* Impl

* Format

* TODO comments

* Fix compile

* Better empty indication

* Change invalid ID to -1

* fix doc

* Change to default view

* Better doc

* Update doc of FlutterFrameInfo

* Change to ID

* Address comment

* Fix comment

* To assertion

* Fix compile
2022-11-17 20:11:53 +00:00
yaakovschectman
adc79c3cf3 Add back tooltip to Embedder (flutter/engine#37676)
* Add back tooltip to Embedder

* Test inclusion of tooltip data

* Change to constexpr

* Lint
2022-11-16 17:02:09 -05:00
Jason Simmons
cc36b52002 Fix a race in the EmbedderA11yTest.A11yTreeIsConsistent tests (flutter/engine#37488) 2022-11-10 06:40:11 +00:00
gaaclarke
643e801f2c Implemented threadsafe platform channel replies on windows (flutter/engine#36909)
* Implemented threadsafe platform channel replies on windows

* added unit test

* added docstrings

* implemented glfw

* added comments

* made glfw messenger unable to be copied

* stuart feedback 1

* stuart feedback 2: replaced the shared_ptr

* stuart feedback 3

* stuart feedback: remove error log

* Moved FlutterDesktopMessenger to its own file.

* updated licenses

* stuart feedback
2022-11-09 22:59:00 +00:00
Loïc Sharma
9dc746660a [Embedder API] Introduce new semantics update callback (flutter/engine#37129) 2022-11-07 20:07:31 +00:00
Kaushik Iska
09e5bccbb1 [Impeller] Fix Vulkan compile failures on Android (flutter/engine#37171) 2022-10-31 16:28:05 +00:00
Martin Kustermann
725ac26098 Remove usages of deprecated old native "<name>" syntax. (flutter/engine#37104)
The old native "<name>" syntax is being replaced with external functions that
have a @pragma("external-name", "<name>").

See https://github.com/dart-lang/sdk/issues/28791
2022-10-28 12:30:44 +02:00
Kaushik Iska
1941c2ca48 [Impeller] Wire Flutter's own VulkanMemoryAllocator implementation (flutter/engine#37018) 2022-10-27 20:57:54 +00:00
gaaclarke
cb4c9f4727 Clang-tidy: made verbose print out commands and fixed quoting problem for warnings as errors (flutter/engine#37015) 2022-10-26 08:19:12 +00:00
gaaclarke
844ab36b21 Turned "unnecessary value" and "move of const" lints to errors on mac (flutter/engine#36910) 2022-10-22 00:38:54 +00:00
ColdPaleLight
388cb71ea2 [Impeller] Support external textures on iOS (flutter/engine#36498) 2022-10-19 21:49:17 +00:00
yaakovschectman
723551a5ee Present tooltip to screen reader on Windows (flutter/engine#36799)
* Propagate tooltip property

* Append tooltip to name

* Formatting

* Fix unit tests

* Tooltip at end

* Tooltip
2022-10-17 16:57:11 -04:00
ColdPaleLight
fc0c9c70f7 Specify correct YUV color space for Darwin YUV external textures (flutter/engine#36709) 2022-10-12 02:52:18 +00:00
Alex Wallen
3cd8b9eaa4 Deprecate single semantics tree assumption from platform dispatcher (flutter/engine#36675) 2022-10-10 18:41:16 +00:00
Jenn Magder
058fd02953 Stop compiling iOS with bitcode (flutter/engine#36596) 2022-10-04 21:56:13 +00:00
Callum Moffat
b92b9bdb6a Add discrete scale pointer signal (flutter/engine#36342) 2022-09-27 15:30:14 +00:00
gaaclarke
e41c775200 Removed instances of unnecessary values (flutter/engine#36221) 2022-09-26 21:28:04 +00:00
Alexander Biggs
6751734343 [fuchsia] Add run_unit_tests.sh script. (flutter/engine#36308)
This is a convenience script for running unit tests locally.

To make this script work, I had to move several test exclusions
from test_suites.yaml (which controls running tests on CQ)
to the tests themselves. I think this is for the best because
it makes running the tests locally with behavior that matches
CQ easier.

Also added fuchsia_tests to build_and_copy_to_fuchsia.sh
so it builds the unit tests .far packages by default.

Tested: Ran `run_unit_tests.sh`, all tests pass. Ran
`build_and_copy_to_fuchsia.sh`, it still builds.
2022-09-21 10:40:20 -07:00
gaaclarke
6b2a14d348 Isolate platform channels for desktop (flutter/engine#35893) 2022-09-20 23:56:04 +00:00
Jason Simmons
a4543ccec9 Use a linker script to export only the required symbols in the Linux embedder library (flutter/engine#36187) 2022-09-16 22:09:09 +00:00
Jason Simmons
6e87e08277 Populate dart_library_sources_kernel in the embedder library in JIT mode (flutter/engine#36059) 2022-09-10 00:20:02 +00:00
Loïc Sharma
0c2a1361e6 Remove noisy log from startup (flutter/engine#35954) 2022-09-07 21:18:22 +00:00
yaakovschectman
e2e7168850 Honor mixed state of tristate Checkbox in Semantics (flutter/engine#35868)
* Honor mixed state

* Add to unit test

* Add state enums

* Fix delimiter

* Add enums

* Scope subtests, rename enum

* Rename enums

* Comment specification

* Tidy up comments

* Rename java enum

* Trailing whitespace
2022-09-06 10:59:25 -04:00
Loïc Sharma
837d8f1736 Queue all semantic nodes & actions before completing batch (flutter/engine#35792) 2022-08-30 20:00:01 +00:00
Kaushik Iska
7cdcb0f837 Do not override partial repaint support globally (flutter/engine#35539) 2022-08-19 18:41:46 +00:00
Jim Graham
5f9579eae8 Display list multiplexer (flutter/engine#35421) 2022-08-16 05:34:52 +00:00
Chinmay Garde
88bf841fa6 Fix race in PushingMutlipleFramesSetsUpNewRecordingCanvas. (flutter/engine#35412) 2022-08-15 21:28:30 +00:00
Bernardo Eilert Trevisan
d9da8e0d2e Enable dirty region management within the Embedder API (flutter/engine#35022) 2022-08-12 10:52:54 -07:00
Loïc Sharma
a015114478 [Embedder API] Add next frame callback (flutter/engine#35244) 2022-08-08 23:19:04 +00:00
Zachary Anderson
ab33453a89 Roll mac clang, ignore spurious lints (flutter/engine#35196) 2022-08-05 15:50:08 -07:00
Jim Graham
1413379354 Embedders use DisplayListBuilder for compositing (flutter/engine#35170) 2022-08-04 22:23:04 +00:00
Kaushik Iska
c4498028d7 Fix data race in VerifyB143464703WithSoftwareBackend (flutter/engine#34722) 2022-07-18 20:54:04 +00:00
Hannes Winkler
6c940139ae Support configurable pixel formats for the embedder API sofware rendering backend (flutter/engine#26995)
- add sw rendering pixel format support
- add new backing store type that contains struct_size and pixel format
- add new public pixel format enum with the common pixel formats supported by skia
2022-07-18 08:22:48 -04:00
Callum Moffat
0941daa6de Reland "Add new pointer signal for cancelling scroll inertia" (flutter/engine#34537) 2022-07-14 03:14:04 +00:00
Javon Thomas
43cf716d03 Create blanket backdrop filter mutator (flutter/engine#34408) 2022-07-13 22:08:05 +00:00
Bernardo Eilert Trevisan
a08a568e0a Relanded "Implement support for explicit specification of JIT snapshots (#34244)"
This reverts commit b989d4723510771017ef598403a2366a8f1bcac7.
2022-07-08 15:19:30 -04:00
Tong Mu
25490eb3b5 Revert "Add new pointer signal for cancelling scroll inertia (#34402)" (flutter/engine#34535)
This reverts commit 0a1ee488baaddc9429c75e4a463d73ac5a4e2330.
2022-07-08 04:45:23 -07:00
Callum Moffat
0a1ee488ba Add new pointer signal for cancelling scroll inertia (flutter/engine#34402) 2022-07-08 01:32:05 +00:00