; > &.Hdr.Draw

;
; SWI names
;

SWIClass        SETS    "Draw"

        ^       Module_SWISystemBase + DrawSWI * Module_SWIChunkSize

        AddSWI  ProcessPath         ; &40700
        AddSWI  ProcessPathFP       ; &40701
        AddSWI  Fill                ; &40702
        AddSWI  FillFP              ; &40703
        AddSWI  Stroke              ; &40704
        AddSWI  StrokeFP            ; &40705
        AddSWI  StrokePath          ; &40706
        AddSWI  StrokePathFP        ; &40707
        AddSWI  FlattenPath         ; &40708
        AddSWI  FlattenPathFP       ; &40709
        AddSWI  TransformPath       ; &4070A
        AddSWI  TransformPathFP     ; &4070B

;
; The scaling factor between Draw and OS co-ordinates, given as its logarithm
; base 2.
;

Draw_LgScalingFactor            EQU     8

;
; Draw vector reason codes
;
                                ^       0
DrawReas_ProcessPath            #       1       ;0
DrawReas_ProcessPathFP          #       1       ;1
DrawReas_Fill                   #       1       ;2
DrawReas_FillFP                 #       1       ;3
DrawReas_Stroke                 #       1       ;4
DrawReas_StrokeFP               #       1       ;5
DrawReas_StrokePath             #       1       ;6
DrawReas_StrokePathFP           #       1       ;7
DrawReas_FlattenPath            #       1       ;8
DrawReas_FlattenPathFP          #       1       ;9
DrawReas_TransformPath          #       1       ;10
DrawReas_TransformPathFP        #       1       ;11
NumberOfDrawReasons             #       0       ;12

;
; Special values of R7 for Draw_ProcessPath and Draw_ProcessPath
;
                                ^       0
DrawSpec_InSitu                 #       1       ;0
DrawSpec_Fill                   #       1       ;1
DrawSpec_FillBySubpaths         #       1       ;2
DrawSpec_Count                  #       1       ;3
NumberOfSpecialDraws            #       0       ;4

;
; Fill styles
;

FillStyle_OverallMask           EQU     &3F

FillStyle_RuleMask              EQU     &03
FillStyle_NonZeroRule           EQU     &00
FillStyle_NegativeOnlyRule      EQU     &01
FillStyle_EvenOddRule           EQU     &02
FillStyle_PositiveOnlyRule      EQU     &03

FillStyle_PlotFullExterior      EQU     &04
FillStyle_PlotExteriorBoundary  EQU     &08
FillStyle_PlotInteriorBoundary  EQU     &10
FillStyle_PlotFullInterior      EQU     &20

;
; ProcessPath flags
;

ProcessPath_FlagsMask           EQU     &F8000000
ProcessPath_CloseOpenSubpaths   EQU     &08000000
ProcessPath_Flatten             EQU     &10000000
ProcessPath_Thicken             EQU     &20000000
ProcessPath_Reflatten           EQU     &40000000
ProcessPath_Float               EQU     &80000000

        END
