Rendering Directly to Video Hardware

Drivers that can render video directly to hardware should support the ICM_DRAW messages in addition to the ICM_DECOMPRESS messages. The ICM_DRAW messages render data directly to hardware rather than into a data buffer returned to the client application by the decompression driver.

Your driver receives a series of messages from the client application to coordinate the following activities to render a video sequence:

·Setting the driver state

·Specifying the input format

·Preparing to decompress video

·Decompressing the video

·Ending decompression

The following ICM_DRAW messages are used by renderers for these decompression activities.

Message Description
ICM_DRAW Decompresses a frame of data and draws it.
ICM_DRAW_BEGIN Prepares to draw data.
ICM_DRAW_END Cleans up after decompressing an image to the screen.
ICM_DRAW_REALIZE Realizes a palette.
ICM_DRAW_QUERY Determines if the driver can render data in a specific format.
ICM_DRAW_SUGGESTFORMAT Has the driver suggest an output format.

The video decompressed with the ICM_DRAW messages is retained by your driver, which handles the display of data. These messages control only the decompression process. The messages used to control the drawing are described separately. Your driver will receive the ICM_DRAW messages only if it sets the VIDCF_DRAW flag when it responds to the ICM_GETINFO message.