|This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.|
The primary surface is the surface currently visible on the monitor and is identified by the DDSCAPS_PRIMARYSURFACE flag. You can only have one primary surface for each DirectDraw object.
When you create a primary surface, remember that the dimensions and pixel format implicitly match the current display mode. Therefore, this is the one time you don't need to declare a surface's dimensions or pixel format. If you do specify them, the call will fail and return DDERR_INVALIDPARAMS - even if the information you used matches the current display mode.
The following example shows how to prepare the DDSURFACEDESC2structure members relevant for creating the primary surface.
DDSURFACEDESC2 ddsd; ddsd.dwSize = sizeof(ddsd); // Tell DirectDraw which members are valid. ddsd.dwFlags = DDSD_CAPS; // Request a primary surface. ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE;
After creating the primary surface, you can retrieve information about its dimensions and pixel format by calling its IDirectDrawSurface5::GetSurfaceDescmethod.
See also, Display Modes.
Last updated on Tuesday, May 18, 2004