Entry | |
---|---|
R0 | 52 (Reason code) + Area value |
R1 | Unused/Sprite area (as defined by area value in R0) |
R2 | Sprite name/pointer (as defined by area value in R0) |
R3 | X coordinate |
R4 | Y coordinate |
R5 | Flags |
R6 | Pointer to scaling factors, or 0 for 1:1 scaling |
R7 | Pointer to pixel translation table / Colour Mapping Descriptor, or 0 for no translation |
Exit | |
---|---|
All registers preserved |
This call paints a scaled sprite to the screen. When supplied with the right translation table, it is able to paint a sprite created in any source mode to any destination mode. If a translation table is not supplied when one is required, an error will be generated. Therefore when plotting arbitrary sprites it is recommended to always call ColourTrans_SelectTable or ColourTrans_GenerateTable before the plot in order to generate a suitable table.
Coordinates are in OS units, and specify the bottom-left corner of the sprite.
1:1 scaling maps directly from source pixels to destination pixels; the DPI and eigen values of the source and destination are ignored.
See OS_SpriteOp Scaled/Transformed Plot Flags for details on how the flags affect the plot operation and dictate some of the input parameters.
OS_SpriteOp 34 - Put sprite at user coords is a less sophisticated sprite plotting interface which can be used in certain situations. If you have large numbers of sprites to render and are concerned about performance, consider using that call where possible. Per-pixel performance will be identical to OS_SpriteOp 52, but there will be lower overheads per sprite rendered.