You can ensure that your application correctly renders on all 3D accelerators, including those that perform scene capture, by taking the steps detailed in the following list. These steps summarize the information outlined in the preceding sections.
1Precede the execution of execute buffers containing any drawing primitives for a single frame by one call to the IDirect3DDevice::BeginScene method, and follow the execution by one call to the IDirect3DDevice::EndScene method.
2Check the DirectDraw capability bit DDCAPS2_NO2DDURING3DSCENE. If it is set, do not call DirectDraw blit, lock, or GetDC methods on the rendering surface between calls to IDirect3DDevice::BeginScene and IDirect3DDevice::EndScene. Such 2D operations can be performed after calling IDirect3DDevice::EndScene.
3You should not assume in your application that any rendering primitives included in an execute buffer have been rendered to the target surface when the call to the IDirect3DDevice::Execute method returns. Scene-capture cards postpone rendering until the scene is complete (that is, until IDirect3DDevice::EndScene has been called).