Supporting Two-Dimensional Operations

The DirectX 9.0 runtime directs a driver to perform two-dimensional (2D) pixel-copy operations differently depending on the version of the driver that the runtime detects. For a DirectX 8.1 and earlier driver, the runtime calls the driver's DdBlt function and synchronizes this call with the command stream. For a DirectX 9.0 and later driver, the runtime passes the D3DDP2OP_BLT, D3DDP2OP_SURFACEBLT, or D3DDP2OP_COLORFILL operation code along with the D3DHAL_DP2BLT, D3DHAL_DP2SURFACEBLT, or D3DHAL_DP2COLORFILL structure respectively in the command stream. DirectX 9.0 and later drivers must support these 2D operation codes.

If the runtime specifies the DDBLT_COLORFILL flag in a call to a DirectX 8.1 or earlier driver's DdBlt function, the runtime converts the D3DCOLOR fill-color type to an explicit pixel value as long as the runtime recognizes the target surface format (that is, the code for the format is one of the codes in the D3DFORMAT enumerated type). If the format is supplied by the vendor and not recognized by the runtime, the runtime passes the D3DCOLOR fill-color type directly to the driver for processing. However, the runtime converts, to explicit pixel values, the D3DCOLOR fill-color types of certain color formats that are used by DirectShow but are otherwise private to the driver.