mirror of
https://github.com/libsdl-org/SDL.git
synced 2026-05-04 21:14:43 +00:00
The refresh rate in SDL_DisplayMode is now a float
This commit is contained in:
@@ -915,22 +915,23 @@ static SDL_RenderLineMethod SDL_GetRenderLineMethod()
|
||||
|
||||
static void SDL_CalculateSimulatedVSyncInterval(SDL_Renderer *renderer, SDL_Window *window)
|
||||
{
|
||||
/* FIXME: SDL refresh rate API should return numerator/denominator */
|
||||
int refresh_rate = 0;
|
||||
int display_index = SDL_GetWindowDisplayIndex(window);
|
||||
SDL_DisplayMode mode;
|
||||
float refresh_rate;
|
||||
int num, den;
|
||||
|
||||
if (display_index < 0) {
|
||||
display_index = 0;
|
||||
}
|
||||
if (SDL_GetDesktopDisplayMode(display_index, &mode) == 0) {
|
||||
if (SDL_GetDesktopDisplayMode(display_index, &mode) == 0 && mode.refresh_rate > 0.0f) {
|
||||
refresh_rate = mode.refresh_rate;
|
||||
}
|
||||
if (!refresh_rate) {
|
||||
} else {
|
||||
/* Pick a good default refresh rate */
|
||||
refresh_rate = 60;
|
||||
refresh_rate = 60.0f;
|
||||
}
|
||||
renderer->simulate_vsync_interval_ns = (SDL_NS_PER_SECOND / refresh_rate);
|
||||
num = 100;
|
||||
den = (int)(100 * refresh_rate);
|
||||
renderer->simulate_vsync_interval_ns = (SDL_NS_PER_SECOND * num) / den;
|
||||
}
|
||||
#endif /* !SDL_RENDER_DISABLED */
|
||||
|
||||
|
||||
@@ -300,7 +300,7 @@ static int D3D_ActivateRenderer(SDL_Renderer *renderer)
|
||||
SDL_GetWindowDisplayMode(window, &fullscreen_mode);
|
||||
data->pparams.Windowed = FALSE;
|
||||
data->pparams.BackBufferFormat = PixelFormatToD3DFMT(fullscreen_mode.format);
|
||||
data->pparams.FullScreen_RefreshRateInHz = fullscreen_mode.refresh_rate;
|
||||
data->pparams.FullScreen_RefreshRateInHz = (UINT)SDL_ceilf(fullscreen_mode.refresh_rate);
|
||||
} else {
|
||||
data->pparams.Windowed = TRUE;
|
||||
data->pparams.BackBufferFormat = D3DFMT_UNKNOWN;
|
||||
@@ -1627,7 +1627,7 @@ D3D_CreateRenderer(SDL_Window *window, Uint32 flags)
|
||||
if (window_flags & SDL_WINDOW_FULLSCREEN && (window_flags & SDL_WINDOW_FULLSCREEN_DESKTOP) != SDL_WINDOW_FULLSCREEN_DESKTOP) {
|
||||
pparams.Windowed = FALSE;
|
||||
pparams.BackBufferFormat = PixelFormatToD3DFMT(fullscreen_mode.format);
|
||||
pparams.FullScreen_RefreshRateInHz = fullscreen_mode.refresh_rate;
|
||||
pparams.FullScreen_RefreshRateInHz = (UINT)SDL_ceilf(fullscreen_mode.refresh_rate);
|
||||
} else {
|
||||
pparams.Windowed = TRUE;
|
||||
pparams.BackBufferFormat = D3DFMT_UNKNOWN;
|
||||
|
||||
Reference in New Issue
Block a user