Mike Parker aldacron71 at
Thu Nov 16 02:30:41 PST 2006

Bill Baxter wrote:

> You probably need to be more specific about what you plan to use for 
> drawing the output, because different libraries have different ways to 
> achieve what you want.  For instance GLFW has a function 
> "glfwSwapInterval()" to which you can pass the desired frame rate of 
> your rendering.  Internally it presumably has some sort of timer and 
> sleep call for suspending itself between renders.  I think SDL also has 
> something like that.
> --bb

I don't want to hijack the thread, but that's not what glfwSwapInterval 
is for, Bill. What it does is to either turn vsync off (an arg of 0) or 
on (an arg of 1 or higher), vsync being the vertical retrace (i.e. the 
updating of the screen, scan line by scan line, from top to bottom). 
Passing an arg of 1 will wait for one whole vertical retrace to complete 
before updating the screen again. The speed of the retrace is determined 
by the current display mode's refresh rate (60hz, 80hz, or whatever). 
Calling glfwSwapInterval with a value of 1 will effectively cap the 
frame rate to the refresh rate (i.e. a 60hz refresh rate will cap at 60 
fps), but it is not the same as running a rendering loop at 60hz per 
second. If you want to specify a frame rate lower than the refresh rate, 
the rendering loop will need to be managed manually to achieve it.

On Windows, glfwSwapInterval is a wrapper for a WGL extension. On other 
platforms, it may not work at all.

More information about the Digitalmars-d-learn mailing list