Capabilities of the surface. The following table shows the possible flags.
Indicates that this surface contains alpha-only information.
Indicates that this surface is the back buffer of a surface flipping structure.
Typically, this capability is set by the CreateSurface method when the DDSCAPS_FLIP flag is used.
Only the surface that immediately precedes the DDSCAPS_FRONTBUFFER surface has this capability set.
The other surfaces are identified as back buffers by the presence of the DDSCAPS_FLIP flag, their attachment order, and the absence of the DDSCAPS_FRONTBUFFER and DDSCAPS_BACKBUFFER capabilities.
If this capability is sent to the CreateSurface method, a stand-alone back buffer is being created.
After this method is called, this surface could be attached to a front buffer, another back buffer, or both to form a flipping surface structure.
Indicates that this surface is a part of a surface flipping structure.
When this capability is passed to the CreateSurface method, a front buffer and one or more back buffers are created.
DirectDraw sets the DDSCAPS_FRONTBUFFER bit on the front-buffer surface and the DDSCAPS_BACKBUFFER bit on the surface adjacent to the front-buffer surface.
The dwBackBufferCount member of the DDSURFACEDESC structure must be set to at least 1 for the method call to succeed.
Indicates that this surface is the front buffer of a surface flipping structure.
This flag is typically set by the CreateSurface method when the DDSCAPS_FLIP capability is set.
If this capability is sent to the CreateSurface method, a stand-alone front buffer is created.
This surface will not have the DDSCAPS_FLIP capability.
Indicates that this surface is an overlay.
It may or may not be directly visible depending on whether it is currently being overlaid onto the primary surface.
DDSCAPS_VISIBLE can be used to determine if it is being overlaid at the moment.
Indicates the surface is the primary surface.
It represents what is seen by the user at the moment.
Indicates that only read access is permitted to the surface. When locking the surface with IDirectDrawSurface::Lock, the DDLOCK_READONLY flag must be specified.
Indicates that this surface memory was allocated in system memory.
Indicates that this surface exists in display memory.
Indicates that only write access is permitted to the surface.
Read access from the surface may generate a general protection (GP) fault, but the read results from this surface will not be meaningful.