I\'m having trouble distinguishing the practical difference between calling glFlush() and glFinish().
The docs say that glFlush()
Have a look here. In short, it says:
glFinish() has the same effect as glFlush(), with the addition that glFinish() will block until all commands submitted have been executed.
Another article describes other differences:
glFlushglFinish forces OpenGL to perform outstanding commands, which is a bad idea (e.g. with VSync)To sum up, this means that you don't even need these functions when using double buffering, except if your swap-buffers implementation doesn't automatically flush the commands.