Use consistent values for the video mode refresh rate

Fixes https://github.com/libsdl-org/SDL/issues/14468
This commit is contained in:
Sam Lantinga
2025-11-20 17:07:47 -08:00
parent 36976ecb43
commit 082848e945

View File

@@ -821,11 +821,11 @@ static void SDL_FinalizeDisplayMode(SDL_DisplayMode *mode)
if (mode->refresh_rate_denominator <= 0) { if (mode->refresh_rate_denominator <= 0) {
mode->refresh_rate_denominator = 1; mode->refresh_rate_denominator = 1;
} }
mode->refresh_rate = ((100 * (Sint64)mode->refresh_rate_numerator) / mode->refresh_rate_denominator) / 100.0f; mode->refresh_rate = (float)mode->refresh_rate_numerator / mode->refresh_rate_denominator;
} else { } else {
SDL_CalculateFraction(mode->refresh_rate, &mode->refresh_rate_numerator, &mode->refresh_rate_denominator); SDL_CalculateFraction(mode->refresh_rate, &mode->refresh_rate_numerator, &mode->refresh_rate_denominator);
mode->refresh_rate = (int)(mode->refresh_rate * 100) / 100.0f;
} }
mode->refresh_rate = SDL_roundf(mode->refresh_rate * 100) / 100.0f;
} }
SDL_DisplayID SDL_AddBasicVideoDisplay(const SDL_DisplayMode *desktop_mode) SDL_DisplayID SDL_AddBasicVideoDisplay(const SDL_DisplayMode *desktop_mode)