h6. [[OS SWI Calls]] h6(. » [[OS_SpriteOp]] h6((. » OS_SpriteOp 50 - Plot Mask Scaled h2. OS_SpriteOp 50 - Plot Mask Scaled h5. (SWI &2E) |_<^{width:4em}. Entry | | |<^. R0 |<^. 50 (Reason code) + [[OS_SpriteOp|Area value]]| |<^. R1 |<^. Unused/[[Format Of Sprite Area|Sprite area]] (as defined by area value in R0) | |<^. R2 |<^. Sprite name/[[Format Of Sprite|pointer]] (as defined by area value in R0) | |<^. R3 |<^. X coordinate | |<^. R4 |<^. Y coordinate | |<^. R6 |<^. Pointer to [[OS_SpriteOp Scale Factors|scaling factors]], or 0 for 1:1 scaling | |_<^{width:4em}. Exit | | |\2<^. All registers preserved| h4. Use This call paints a sprite mask to the screen. For sprite pixels where the mask is non-zero, the corresponding screen pixel will be set to the currently selected background colour. If the mask is zero the screen pixel will not be updated. h4. Notes 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. When used on a sprite without a mask, a filled rectangle the size of the scaled sprite will be drawn. [[OS_SpriteOp 49|OS_SpriteOp 49 - Plot mask 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 50, but there will be lower overheads per sprite rendered. h4. See also * [[Format Of Sprite]] * [[Format Of Sprite Area]] * [[OS_SpriteOp]] * [[OS_SpriteOp Scale Factors]] * [[OS_SpriteOp 49|OS_SpriteOp 49 - Plot mask at user coords]]