Blitting to and from System Memory Surfaces

Some display cards have DMA hardware that allows them to efficiently blit to and from system-memory surfaces. Drivers report this capability through the DDCAPS structure. This structure contains the following 12 new members:

dwSVBCaps dwVSBCaps dwSSBCaps
dwSVBCKeyCaps dwVSBCKeyCaps dwSSBCKeyCaps
dwSVBFXCaps dwVSBFXCaps dwSSBFXCaps
dwSVBRops dwVSBRops dwSSBRops

The SVB acronym indicates capability values that relate system-memory to display-memory blits, VSB for capability values that relate display-memory to system-memory blits, and SSB for capability values that relate to system-memory to system-memory blits.

The dwSVBCaps member corresponds to the dwCaps member except that it describes the blitting capabilities of the display driver for system-memory to display-memory blits. Similarly, the dwSVBCKeyCaps member corresponds to the dwCKeyCaps member, and the dwSVBFXCaps member corresponds to the dwFXCaps member. The dwSVBRops member array describes the raster operations the driver supports for this type of blit.

These members are valid only if the DDCAPS_CANBLTSYSMEM flag is set in dwCaps, indicating that the driver is able to blit to or from system memory.

If the system memory surface being used by the hardware blitter is not locked, DirectDraw automatically calls the IDirectDrawSurface2::PageLock method on the surface to ensure that the memory has been locked.