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. The DDCAPS structure has been expanded to allow drivers to report this capability. The following members have been added:

DWORD dwSVBCaps

DWORD dwSVBCKeyCaps

DWORD dwSVBFXCaps

DWORD dwSVBRops[DD_ROP_SPACE]

DWORD dwVSBCaps

DWORD dwVSBCKeyCaps

DWORD dwVSBFXCaps

DWORD dwVSBRops[DD_ROP_SPACE]

DWORD dwSSBCaps

DWORD dwSSBCKeyCaps

DWORD dwSSBFXCaps

DWORD dwSSBRops[DD_ROP_SPACE]

The SVB prefix indicates capabilities values that relate system memory to display memory blits. The VSB prefix indicates capabilities values that relate display memory to system memory blits. The SSB prefix indicates capabilities values that relate 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. Likewise, 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 only valid 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 will automatically call the IDirectDrawSurface2::PageLock method on the surface to ensure that the memory has been locked.