2D rendererSDL 3.2
SDL_SetRenderVSync
Turns vsync on or off for the renderer: whether SDL_RenderPresent waits for the monitor's refresh.
Signature
bool SDL_SetRenderVSync(SDL_Renderer *renderer, int vsync);
How it works
With vsync 1, each present waits for the next refresh: no tearing and no wasted frames, and the loop runs at the monitor's rate (60, 144 Hz…). With 0 the loop runs as fast as it can, which is useful to measure performance but burns power.
Parameters
rendererSDL_Renderer *
The renderer.
vsyncint
How many refreshes to wait per present.
Common values
- SDL_RENDERER_VSYNC_DISABLED (0)
- No waiting.
- 1
- Every refresh (normal vsync).
- 2
- Every second refresh (e.g. 30 fps on a 60 Hz monitor).
- SDL_RENDERER_VSYNC_ADAPTIVE (-1)
- Like 1, but a late frame is shown at once. Not everywhere.
Return value
true on success; false if this value is not supported.
Example
example.cpp
1if (!SDL_SetRenderVSync(renderer, SDL_RENDERER_VSYNC_ADAPTIVE))
2 SDL_SetRenderVSync(renderer, 1); // fall back to plain vsync