|
|
|
@ -370,7 +370,17 @@ std::optional<WindowInfo> GetWindowInfoForWidget(QWidget* widget)
|
|
|
|
|
wi.surface_scale = static_cast<float>(dpr);
|
|
|
|
|
|
|
|
|
|
// Query refresh rate, we need it for sync.
|
|
|
|
|
wi.surface_refresh_rate = WindowInfo::QueryRefreshRateForWindow(wi).value_or(0.0f);
|
|
|
|
|
std::optional<float> surface_refresh_rate = WindowInfo::QueryRefreshRateForWindow(wi);
|
|
|
|
|
if (!surface_refresh_rate.has_value())
|
|
|
|
|
{
|
|
|
|
|
// Fallback to using the screen, getting the rate for Wayland is an utter mess otherwise.
|
|
|
|
|
const QScreen* widget_screen = widget->screen();
|
|
|
|
|
if (!widget_screen)
|
|
|
|
|
widget_screen = QGuiApplication::primaryScreen();
|
|
|
|
|
surface_refresh_rate = widget_screen ? static_cast<float>(widget_screen->refreshRate()) : 0.0f;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
wi.surface_refresh_rate = surface_refresh_rate.value();
|
|
|
|
|
INFO_LOG("Surface refresh rate: {} hz", wi.surface_refresh_rate);
|
|
|
|
|
|
|
|
|
|
return wi;
|
|
|
|
|