OpenGL Setting FPS

wglSwapIntervalEXT(0) - no frame-limit
wglSwapIntervalEXT(1) - vsync (i.e 60Hz, depends on current monitor mode)
wglSwapIntervalEXT(2) - vsync/2 (if vsync is at 60Hz, you’ll update at 30Hz)
wglSwapIntervalEXT(3) - vsync/3 (if vsync is at 60Hz, you’ll update at 20Hz)
etc…

Anything else: OS-dependent timers: Sleep, polling-loops, events, etc etc. Generally anything but polling-loops will be imprecise.