Remove single window assumption from SceneBuilder

This issue has been created since 2022-09-22.

The Scene created by the SceneBuilder has a single window assumption backed in:

https://github.com/flutter/engine/blob/9a830e011cb92565b55aac3d1e03ee1c1da835f6/lib/ui/compositing/scene.cc#L40-L44

In the code above it grabs the first window and reads the physical size and device pixel ratio of it. In the multi window world, we will need to create Scenes for multiple different windows, so that assumption has to go.

Ideas:

  1. The physical size and device pixel ratio are injected into the Scene when the it is rendered into a specific FlutterView by passing it to FlutterView.render. At that point, it is clear to what FlutterView the scene belongs and the values can be read of that view.
  2. The SceneBuilder provides an option to configure the physical size and the dpr for the Scene (either by providing setters or by taking these values as arguments to SceneBuilder.build).

If we go down route 2, we should make these parameters optional first and default them to the values read from the first window. Then, once the framework has been migrated to set these parameters based on the view the scene is gonna be rendered into, the parameters should become required and the single window assumption is removed from the Scene.

More Details About Repo
Owner Name flutter
Repo Name flutter
Full Name flutter/flutter
Language Dart
Created Date 2015-03-06
Updated Date 2022-10-05
Star Count 145512
Watcher Count 3569
Fork Count 23398
Issue Count 11205

YOU MAY BE INTERESTED

Issue Title Created Date Comment Count Updated Date
Faust commits the wrong offset in case of a gap in acks 8 2022-05-31 2022-07-25
Unable to use `schema` on `Table` 0 2022-05-27 2022-07-19
murmur2 import error when using rocksDB 2 2022-05-28 2022-06-11
Bought Silvercrest IP CAM S-K 1920 Version 1.1.1.13 Model WAPP-JS (LIDL) MCU Version Z1709250 58 2019-05-07 2022-10-03
A question: How is the version marked in launcher/minecraft/MinecraftInstance.cpp 1 2022-04-18 2022-04-26
Unable to use with Mockito 9 2021-11-24 2022-09-01
Method invalidations 5 2021-05-10 2022-09-02
Can you publish new version 1.3.1 to npm 2 2021-12-07 2022-08-17
Support for RTSP video source 3 2021-07-15 2022-09-23
You did a great job. Congratulations! 0 2021-11-29 2022-09-27
Repository Separation in terms of Module 22 2021-11-03 2022-09-29
Update scratch org JSON configuration files 1 2020-05-20 2022-08-28
many nan loss when retraining without pretrained model 2 2019-07-12 2022-09-09
Support the `$NO_COLOR` env variable 1 2022-07-08 2022-09-12
Add CommandKit::OS#initialize and accept a `os:` keyword argument 1 2021-07-26 2022-09-12
Nullpointer Exception import zugferd 3 2022-09-13 2022-09-19
XRechnung Skonto-Unterstützung 4 2022-09-19 2022-09-19
ZUGFeRDInvoiceImporter liest keine ZUGFeRD 1 Dateien 1 2022-09-21 2022-09-19
There are not checksums and keys to use to verify this software. That is why I install the lesser version that supports debian apt install. But it has bugs. 4 2022-01-23 2022-09-25
Middleware chaining for authboss route 1 2022-01-06 2022-09-27
当column名字相同是会出现警告【当前resultMap已存在相同的column名,请检查resultMap确保没问题 】,但是使用的 association 标签。能修复一下吗? 1 2021-03-24 2022-10-02
Extension causes high cpu load 1 2021-09-15 2022-08-02
Determine Q1 OKRs 1 2021-01-13 2022-01-21
package name flag not work 4 2021-09-27 2022-08-09
Missing documentation for kata+sriov without clearcontainer plugin 0 2019-07-25 2022-09-16
nightly agent install error 3 2022-03-15 2022-09-16
[Bug]: In Smartphone touchscreen : The overlay log in box goes out of view 0 2021-09-28 2022-09-22
Migrate Lisk Desktop to TypeScript 0 2022-01-25 2022-03-08
Backport WebHID API support to Electron 13 1 2021-12-02 2022-08-06
Running docker-compose on windows10 failed 1 2021-06-23 2022-09-27
DS3231 filename has a typo 0 2021-02-28 2022-10-05
Part Request: AdaFruit Data Logger Arduino Shield Rev 2 (Missing) 0 2021-03-21 2022-10-01
Run Keyword If Test Failed does not work correctly with --skiponfailure argument 2 2022-03-24 2022-10-05
ks-api add CA for private registry 0 2022-03-28 2022-09-27
Packr does not work with spring-boot fatjar 4 2017-12-13 2022-09-23
Select 选择器在多选模式下选项展示不全 0 2022-06-01 2022-07-17
ValueError: Could not find matching function to call loaded from the SavedModel. 0 2021-10-09 2022-10-05
RuntimeError: CUDA error: initialization error training use multi GPU 2 2021-11-24 2022-09-30
no feature files scanned 1 2021-08-22 2022-09-30
Authorize & Install Grunty (GitHub App) image on Patcher landing page is slightly blurry 4 2021-08-25 2022-10-01
Release 1.6.0-alpha.5 as 1.6.0 0 2021-07-11 2022-03-27
Custom presenting animation 1 2021-12-06 2022-09-21
Module 'FloatingPanel' not found 2 2021-11-26 2022-09-21
How can I respond to the PASSWORD_VERIFIER challenge? 2 2021-07-18 2022-08-14
RFXTRX generates ERROR messages in log in writung to core.config_entries 2 2022-07-20 2022-09-18
My Ubuntu WSL2 distros fail to boot upon WSL update to 0.58.0 13 2022-04-11 2022-09-08
[BUG] proxmox salt-cloud driver doesn't pass the "pool" parameter when cloning a VM 2 2022-08-23 2022-09-09
Want to use orator orm in aws lambda.. 0 2021-06-23 2022-09-25
Why LockListener is not public 5 2021-10-12 2022-10-05
Using Services in RCL (Razor Class Library) 1 2022-02-04 2022-02-16