Hardware Emulation Layer

The DirectDraw hardware emulation layer (HEL) performs emulation for the DirectDraw driver. The HEL (written by Microsoft as part of DirectDraw) performs this emulation in user mode.

For example, if the DirectDraw driver has capability (caps) bits set for blts but not for transparent blts, the DirectDraw driver is called for blts and the HEL for transparent blts. In the case of a transparent blt, the HEL is passed a display memory pointer and it compares each byte from a backing surface to the color key. If the byte does not match the color key, the HEL copies it to the destination surface using the CPU. This emulation also occurs for other unsupported operations or if the card is out of display memory.

DirectDraw does not pass failed DirectDraw driver operations to the HEL. If either the HEL or the DirectDraw driver fails a particular operation, an error code is returned to the application.