This topic is now archived and is closed to further replies.



Recommended Posts

Hello everyone, I'm using tripple buffering. When Flip returns DDERR_WASSTILLDRAWING, does that mean: [1] It wasn't able to flip right now but it will flip automatically at next oppotunity so carry on drawing in the backbuffer (which is supposedly the next surface in flip chain now that flip has been called). OR [2] It wasn't able to flip. Period. Another explicit call to Flip is necessary to try again. ? or something else? I understand the logic behind tripple buffer-flips and read the Doc and so on. What confuses me is, When I can carry on drawing to take advantage of Tripple buffering. For instance, if I set DDFLIP_WAIT, does it actually switch the pointers and pass on the control to me so that Backbuffer now points to the next surface? And I can keep blitting in it? Or does it literally wait at flip call and "freeze" the app from running ahead? Either way seems to make sense... The former would mean I can carry on blitting to the back-most buffer while waiting for flip. The latter would mean that when flip returns DDERR_WASSTILLDRAWING, I would carry on blitting to the next buffer and try Flip at later time (like next game cycle) to see if it flips. If it returns DDERR_WASSTILLDRAWING again, I then go back to blitting routine and blit... then try Flip again later. So which is it? This sounds like separate questions... I guess they are. One on the effect of DDERR_WASSTILLDRAWING, and the other on the effect of DDFLIP_WAIT. Erm... another thing is, is a call to WaitForVerticalBlank just before Flip to avoid tearing a sensible thing to do...? or is that "wasting" time? Please help if you can. I'm confused. Edited by - PugPenguin on June 23, 2001 8:27:12 AM

Share this post

Link to post
Share on other sites