Manipulating Drawing Instruction Streams

Drawing stream instructions are command buffers contained in TYPE_RENDERDATA resources (section These resources are set as content of TYPE_VISUAL or TYPE_WINDOWNODE resources. During a render walk of the tree, the contents of the TYPE_RENDERDATA resources of all visuals are rendered at the visuals' current transform, clip, and opacity context. When a visual is rendered, any drawing will be affected by the visuals offset, transform, and clip. In addition, the visuals in the parent chain will also contribute their offset, transform, and clip as the tree is walked for rendering. The combination will produce a modified coordinate space in which the visual is rendered.

To draw in a visual, the server MAY create a TYPE_RENDERDATA resource. To do this, the server sets a drawing instruction buffer to the TYPE_RENDERDATA resource by sending a MILCMD_RENDERDATA message to the TYPE_RENDERDATA resource, with the TYPE_RENDERDATA sent as content of a TYPE_VISUAL or TYPE_WINDOWNODE resource.