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 IDirectDraw4::CreateSurface method.
If the DDSCAPS_COMPLEX 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 IDirectDrawSurface5::Restore method restores them all.
However, implicitly created surfaces cannot be detached. For more information, see IDirectDrawSurface5::DeleteAttachedSurface.
One of the most useful complex surfaces you can create is a flipping chain. 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. Creating a flipping chain this way requires that you also include the DDSCAPS_COMPLEX flag.
The following example shows how to prepare for creating a primary surface flipping chain.
DDSURFACEDESC2 ddsd2;
ddsd2.dwSize = sizeof(ddsd2);
// Tell DirectDraw which members are valid.
ddsd2.dwFlags = DDSD_CAPS | DDSD_BACKBUFFERCOUNT;
// Request a primary surface with a single
// back buffer
ddsd2.ddsCaps.dwCaps = DDSCAPS_COMPLEX | DDSCAPS_FLIP |
DDSCAPS_PRIMARYSURFACE;
ddsd2.dwBackBufferCount = 1;
The previous example constructs a double-buffered flipping environment — a single call to the IDirectDrawSurface5::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 DDSURFACEDESC2 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