Entry | |
---|---|
R0 | Flags |
R1 | Pointer to drawfile block? |
R2 | Length of block |
R3 | Transformation matrix, or 0 to use identity |
R4 | Pointer to clipping rectangle in OS units, or 0 for none |
R5 | Flatness with which to render lines (if bit 2 of R0 set) |
Exit | |
---|---|
R0 | Preserved |
R1 | Preserved |
R2 | Preserved |
R3 | Preserved |
R4 | Preserved |
R5 | Preserved |
Bit | Meaning if set |
---|---|
0 | Render bounding boxes (as dotted red rectangles) |
1 | Do not render the objects themselves |
2 | Use R5 as flatness |
The purpose of this call is to render a DrawFile to the screen.
This SWI renders a DrawFile at a given screen position where that position is defined as screen position 0, 0 with the x- and y-translations as specified in the transformation matrix. Hence, to render a non-rotated 1:1 draw file at (x, y) (screen coordinates in OS units) the transformation matrix is :
(1 << 16 | 0) |
(0 | 1 << 16) |
(256 * x | 256 * y) |
The clipping rectangle is typically a redraw rectangle returned by the Wimp on a redraw window request. If R4 = 0, then the whole draw file is rendered. If non-zero, only objects which intersect the clipping rectangle are rendered.