mirror of
https://github.com/rust-windowing/winit.git
synced 2026-08-29 04:40:04 -04:00
fix: Support fractional refresh rates in video modes on macOS (#4191)
We were rounding the refresh rate before converting it to millihertz.
This commit is contained in:
committed by
Kirill Chibisov
parent
53321dc6f5
commit
da7a09658a
@@ -59,3 +59,4 @@ changelog entry.
|
|||||||
- On Wayland, ensure that external event loop is woken-up when using pump_events and integrating via `FD`.
|
- On Wayland, ensure that external event loop is woken-up when using pump_events and integrating via `FD`.
|
||||||
- On Wayland, apply fractional scaling to custom cursors.
|
- On Wayland, apply fractional scaling to custom cursors.
|
||||||
- On macOS, fixed `run_app_on_demand` returning without closing open windows.
|
- On macOS, fixed `run_app_on_demand` returning without closing open windows.
|
||||||
|
- On macOS, fixed `VideoMode::refresh_rate_millihertz` for fractional refresh rates.
|
||||||
|
|||||||
@@ -281,12 +281,12 @@ impl MonitorHandle {
|
|||||||
};
|
};
|
||||||
|
|
||||||
modes.into_iter().map(move |mode| {
|
modes.into_iter().map(move |mode| {
|
||||||
let cg_refresh_rate_hertz = ffi::CGDisplayModeGetRefreshRate(mode).round() as i64;
|
let cg_refresh_rate_hertz = ffi::CGDisplayModeGetRefreshRate(mode);
|
||||||
|
|
||||||
// CGDisplayModeGetRefreshRate returns 0.0 for any display that
|
// CGDisplayModeGetRefreshRate returns 0.0 for any display that
|
||||||
// isn't a CRT
|
// isn't a CRT
|
||||||
let refresh_rate_millihertz = if cg_refresh_rate_hertz > 0 {
|
let refresh_rate_millihertz = if cg_refresh_rate_hertz > 0.0 {
|
||||||
(cg_refresh_rate_hertz * 1000) as u32
|
(cg_refresh_rate_hertz * 1000.0).round() as u32
|
||||||
} else {
|
} else {
|
||||||
refresh_rate_millihertz
|
refresh_rate_millihertz
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user