AcornSearch - Acorn and RISC OS information searching
RISC OS Search
containing
"Nutty quip goes here!"
Home  |  About  |  Filebase Archive  |  StrongHelp Manuals  |  Newsgroups  |  Module Database
=>     R0 =     pointer to path block
     R1 =     fill style with additions
     R2 =     pointer to transformation matrix, or 0 for default
     R3 =     flatness, or 0 for default
     R4 =     line thickness, or 0 for default
     R5 =     pointer to join/cap block, or 0 if none
     R6 =     pointer to dashing pattern, or 0 if none
     R7 =     pointer to output path, or special value
<=     if R7 = 0, 1 or 2 :
           R0 corrupt
     if R7 = 3 :
           R0 = size of buffer
     if R7 is a pointer
           R0 = pointer to new end of buffer marker

This SWI is used to perform operations on a Draw path.

See PRM 3, page 535.
ProcessPath Special values
Value          Meaning

0          Output to the input buffer path
1          Fill the path in one go
2          Fill the path, doing one subpath at a time
3          Calculate output buffer size requirements
1<<31 + x     Output path's bounding box to block at x
          *Note*: For 32 bit compatibility, use flags bits 25 and 26 instead.
x          Output path to block at x
          The first item in this buffer should be 0, followed by a word denoting the size of the buffer
Extra fill path options for ProcessPath
Bit     Meaning if set

25     Output bounding box instead of path (See note)
26     Pointer in R7 is 32 bit
27     Open subpaths are to be closed
28     Path should be flattened
29     Path should be thickened
30     Path should be re-flattened after thinkening
31     Use floating point output (not implemented at present)
Note
Version 1.17 of the Draw module and later move the flag in bit 31 of the output pointer into R1, to allow the pointer to address the full memory range. Attempts to set the new flags on older versions of the module will cause the error 'Reserved bits non zero'.

A BASIC patch will be available and freely distributable that allows the new flags to work on all versions of the module.

[sh-index] Back to list of manuals