engine
engine copied to clipboard
[Multiwindow] Backing store and compositor
This PR is based on https://github.com/flutter/engine/pull/36392 and currently contains parent PRs . See https://github.com/dkwingsmt/engine/pull/8 for net changes.
This PR turns backing store and compositor to fitting the multi-view world. The change stops at:
-
Rasterizer::SubmitFrame, where it will expect a view ID fromLayerTreebut uses a fake one for now. -
macos/FlutterEngine, where it should pick aviewControllerbased on surface ID, but it only has one view controller for now.
This PR makes non-trivial changes to the embedder API:
- A new function
AddRenderSurface. - Deprecates
FlutterCompositor.present_layers_callback, addsFlutterCompositor.present_layers_view_callback. - Adds
FlutterBackingStoreConfig.view_id.
Pre-launch Checklist
- [ ] I read the Contributor Guide and followed the process outlined there for submitting PRs.
- [ ] I read the Tree Hygiene wiki page, which explains my responsibilities.
- [ ] I read and followed the Flutter Style Guide and the C++, Objective-C, Java style guides.
- [ ] I listed at least one issue that this PR fixes in the description above.
- [ ] I added new tests to check the change I am making or feature I am adding, or Hixie said the PR is test-exempt. See testing the engine for instructions on writing and running engine tests.
- [ ] I updated/added relevant documentation (doc comments with
///). - [ ] I signed the CLA.
- [ ] All existing and new tests are passing.
If you need help, consider asking for advice on the #hackers-new channel on Discord.