Blit Timing
When you copy pixels to a surface using IDirectDrawSurface::Blt, the method might fail with DDERR_WASSTILLDRAWING because the hardware blitter was not ready to accept the command.
If your application has no urgent business to perform while waiting for the blitter to come back into a state of readiness, you can specify the DDBLT_WAIT flag in the dwFlags parameter of Blt.
The flag causes the method to wait until the blit can be handed off to the blitter (or until an error other than DDERR_WASSTILLDRAWING occurs).
Send Feedback on this topic to the authors