…please note that I changed the API slightly a moment ago:
SDL_GL_SetSwapInterval() now accepts a negative value, which means “swap
on vblank if you haven’t missed the vertical retrace yet, otherwise swap
immediately.” For targets that support this (which is currently X11
systems with GLX_EXT_swap_control_tear and Windows systems with
WGL_EXT_swap_control_tear), this will report success, for others, it’ll
still report -1 (error).
As negative values were unconditionally errors before, this won’t be a
However, now -1 (which previously meant “error”) is a legitimate thing
for SDL_GL_GetSwapInterval() to return. As such, this is where the API
change happens: on error (or at least, on “don’t know how to get this
information”), SDL_GL_GetSwapInterval() now returns 0 (no sync to
vblank), as a safe default. GetSwapInterval never returns an error anymore.
Going forward, properly-written apps should do their error checking
against SDL_GL_SetSwapInterval(), if they care if the act of setting fails.
(The swap_control_tear support is currently available for Windows as of
Nvidia’s 285.62 drivers, and AMD’s Catalyst 11.10. On Linux, Nvidia’s
binary blob supports it in the 304.22 beta drivers.)