* [fuchsia] Add labels to Scenic nodes.
* [fuchsia] Skip creating Scenic nodes for identity Transforms.
* [fuchsia] Assign elevation to Scenic nodes based on paint order.
* [fuchsia] Create Scenic OpacityNodes at leaf nodes.
* [fuchsia] Composite PhysicalShapeLayers using Skia, except when they need to float above child views.
In that case, they will still need to be pulled
into separate Scenic nodes to be composited on top
of the child view[s].
* [fuchsia] Add tests for Fuchsia-specific layer behavior.
Inspect commands going to Scenic and make sure
they match what is expected.
Also, restructure code to need less member variables,
and other cleanups based on review feedback.
This is a step toward aligning the API with macOS, and will make it easier to add the precompiled library later for release mode (since it can just be added to the project directory, without any code changes required for wrapper clients).
At the C API, uses a struct instead of individual arguments, mirroring a change that was already made on the Linux side to make the C API cleaner.
Functional changes in addition to the restructuring:
adds relative path support, as was recently added for GLFW
Uses wstring, rather than string, for paths; the conversion to UTF-8 is actually a potential problem on Windows, so pushing it into the embedding allows us the possibility of removing it later (if we can figure out a good solution at the embedder.h layer) without API breakage.
The old APIs used by the standard runner are left in place for now to avoid breaking the template on an engine roll. Once the framework template has been updated, the old API paths will be removed.
This reverts commit 047c03bf5cc57ab2d4d1025993b1dbc1b83a78a9.
This roll also breaks web tests with:
```
org-dartlang-app:///test/material/icon_button_test.dart:15:7: Warning: Implementing 'Function' is deprecated.
Try removing 'Function' from the 'implements' clause.
class MockOnPressedFunction implements Function {
```
This reverts commit 6c757f3bba59fb86b6dc0dcd96266e06eec562f0.
It broke web tests with:
```
org-dartlang-app:///test/material/icon_button_test.dart:15:7: Warning: Implementing 'Function' is deprecated.
Try removing 'Function' from the 'implements' clause.
class MockOnPressedFunction implements Function {
```
Currently every Linux runner has this code to allow relative resource paths; this moves it into the framework so that any embedder can get this behavior without that code needing to be in the template.
Rolls buildroot to pick up std::filesystem support in our libc++