mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-12 00:50:40 +00:00
47c6beb1ee
Every `VsyncSource` currently only has a single `Display` associated with it. This means that we're not making use of the `Display` abstraction at all. This patch gets rid of `Display` by merging it into `VsyncSource`. Originally, the intention of the `Display` abstraction was to use it for per-monitor vsync. There would be one software `VsyncSource` and one hardware `VsyncSource`, and the hardware `VsyncSource` would have one `Display` per screen. But in reality, things have played out differently: The only platform with per-monitor vsync is currently Linux Wayland, which has per-**widget** vsync. And it has chosen to have one `VsyncSource` per widget, with a single `Display` each. For the macOS implementation of per-monitor vsync, I think it also makes sense to have one `VsyncSource` per screen. We already need to handle switching between VsyncSources, for switching between software and hardware vsync, if the pref `layout.frame_rate` is changed. So we might as well reuse that same switching capability for switching between screens, when a window moves between screens or when a tab moves between windows on different screens. Differential Revision: https://phabricator.services.mozilla.com/D140891 |
||
---|---|---|
.. | ||
2d | ||
angle | ||
cairo | ||
config | ||
docs | ||
gl | ||
graphite2 | ||
harfbuzz | ||
ipc | ||
layers | ||
ots | ||
qcms | ||
skia | ||
src | ||
tests | ||
thebes | ||
vr | ||
webrender_bindings | ||
wgpu_bindings | ||
wr | ||
ycbcr | ||
metrics.yaml | ||
moz.build |