mirror of https://github.com/encounter/SDL.git
Fixed bug 3134 - CalculateXRandRRefreshRate() returns incorrect refresh rate due to floating point truncation.
Michael In SDL_x11modes.c the CalculateXRandRRefreshRate() function performs integer math on values that may return fractional results. This causes a value that would be calculated as 59.99972... to be returned as 59. In Linux the xrandr command returns 60Hz for this particular display mode yet SDL returns 59Hz. I suggest this function be updated to correctly round the result of the calculation instead of truncating the result.
This commit is contained in:
parent
7543092add
commit
0250eb3c4f
|
@ -264,8 +264,8 @@ CheckXRandR(Display * display, int *major, int *minor)
|
|||
static int
|
||||
CalculateXRandRRefreshRate(const XRRModeInfo *info)
|
||||
{
|
||||
return (info->hTotal
|
||||
&& info->vTotal) ? (info->dotClock / (info->hTotal * info->vTotal)) : 0;
|
||||
return (info->hTotal && info->vTotal) ?
|
||||
round(((double)info->dotClock / (double)(info->hTotal * info->vTotal))) : 0;
|
||||
}
|
||||
|
||||
static SDL_bool
|
||||
|
|
Loading…
Reference in New Issue