Removed logic forcing vsync on if setting it off fails

The platforms that needed this (Windows Phone and Windows RT) are no longer supported, and if this is needed in the future it should be done at the renderer level, not here.

Fixes https://github.com/libsdl-org/SDL/issues/12475

(cherry picked from commit b99ff00a95)
This commit is contained in:
Sam Lantinga
2025-03-06 16:04:19 -08:00
parent 2aec1c2ef6
commit fec3e2cd45

View File

@@ -1122,12 +1122,7 @@ SDL_Renderer *SDL_CreateRendererWithProperties(SDL_PropertiesID props)
}
int vsync = (int)SDL_GetNumberProperty(props, SDL_PROP_RENDERER_CREATE_PRESENT_VSYNC_NUMBER, 0);
if (!SDL_SetRenderVSync(renderer, vsync)) {
if (vsync == 0) {
// Some renderers require vsync enabled
SDL_SetRenderVSync(renderer, 1);
}
}
SDL_SetRenderVSync(renderer, vsync);
SDL_CalculateSimulatedVSyncInterval(renderer, window);
SDL_LogInfo(SDL_LOG_CATEGORY_RENDER,
@@ -5492,7 +5487,8 @@ bool SDL_SetRenderVSync(SDL_Renderer *renderer, int vsync)
}
#endif
if (!renderer->SetVSync) {
if (!renderer->SetVSync ||
!renderer->SetVSync(renderer, vsync)) {
switch (vsync) {
case 0:
renderer->simulate_vsync = false;
@@ -5503,12 +5499,6 @@ bool SDL_SetRenderVSync(SDL_Renderer *renderer, int vsync)
default:
return SDL_Unsupported();
}
} else if (!renderer->SetVSync(renderer, vsync)) {
if (vsync == 1) {
renderer->simulate_vsync = true;
} else {
return false;
}
}
SDL_SetNumberProperty(SDL_GetRendererProperties(renderer), SDL_PROP_RENDERER_VSYNC_NUMBER, vsync);
return true;