Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
You can also create complex surfaces. A complex surface is a set of surfaces created with a single call to the IDirectDraw::CreateSurface method.
If the DDSCAPS_FLIP flag is set when you call CreateSurface call, DirectDraw implicitly creates one or more surfaces in addition to the surface explicitly specified.
You manage complex surfaces just like a single surface — a single call to the IDirectDraw::Release method releases all surfaces, and a single call to the IDirectDrawSurface::Restore method restores them all.
Complex surfaces are used in flipping chains. Usually, a flipping chain is made of a primary surface and one or more back buffers. The DDSCAPS_FLIP flag indicates that a surface is part of a flipping chain.
Code Example
The following code example demonstrates how to prepare for creating a primary surface flipping chain.
Note To make the following code example easier to read, security checking and error handling are not included. This code example should not be used in a release configuration unless it has been modified to include them.
DDSURFACEDESC ddsd;
ddsd2.dwSize = sizeof(ddsd);
// Tell DirectDraw which members are valid.
ddsd.dwFlags = DDSD_CAPS | DDSD_BACKBUFFERCOUNT;
// Request a primary surface with a single
// back buffer
ddsd.ddsCaps.dwCaps = DDSCAPS_FLIP |
DDSCAPS_PRIMARYSURFACE;
ddsd.dwBackBufferCount = 1;
The previous example constructs a double-buffered flipping environment — a single call to the IDirectDrawSurface::Flip method exchanges the surface memory of the primary surface and the back buffer.
If you specify 2 for the value of the dwBackBufferCount member of the DDSURFACEDESC structure, two back buffers are created, and each call to Flip rotates the surfaces in a circular pattern, providing a triple-buffered flipping environment.
For more information, see Flipping Surfaces.
Send Feedback on this topic to the authors