When using SwapBuffers() on the Windows platform, it seems that what actually happens on most hardware is that the contents of the back buffer get copied to the front buffer, leaving the back buffer unchanged. I have taken advantage of this to nicely show incremental building of scenes; that is, I draw each additional object in the scene to the back buffer, then call SwapBuffers(), which results in the scene being incrementally populated on-screen.
It seems I can’t make this assumption. On a recently-acquired Voodoo 3 card, SwapBuffers seems to actually do just that–the front buffer contents end up in the back buffer. This totally invalidates the approach I am using above.
My questions are:
- Is there any way to simply copy back buffer to front, rather than swap? If so, would this be slower than SwapBuffers() ?
- If not, what approach would you suggest for incrementally building up (and displaying at each step) a complex scene?
Are there efficient (and free of flashing)
ways to do this without double-buffering?