home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / hensa / programming / oslib / oslib_1 / OSLib / User / Hdr / Draw < prev    next >
Encoding:
Text File  |  1995-08-21  |  7.1 KB  |  207 lines

  1. ;Assembler header file for Draw
  2. ;written by DefMod (Jun 30 1995) on Mon Aug 21 11:57:39 1995
  3. ;Jonathan Coxhead, Acorn Computers Ltd
  4.  
  5.         [       :LNOT: :DEF: Get_Types
  6.         GBLS    Get_Types
  7.         ]
  8.         [       :LNOT: :DEF: Types_Hdr
  9. Get_Types                       SETS    "GET OS:Hdr.Types"
  10.         |
  11. Get_Types                       SETS    ""
  12.         ]
  13.         $Get_Types
  14.  
  15.         [       :LNOT: :DEF: Get_OS
  16.         GBLS    Get_OS
  17.         ]
  18.         [       :LNOT: :DEF: OS_Hdr
  19. Get_OS                          SETS    "GET OS:Hdr.OS"
  20.         |
  21. Get_OS                          SETS    ""
  22.         ]
  23.         $Get_OS
  24.  
  25.         [       :LNOT: :DEF: Draw_Hdr
  26.         GBLS    Draw_Hdr
  27.  
  28. ;Symbols for constants
  29. Draw_OSUnit                     *       256
  30. Draw_Inch                       *       46080
  31. Draw_Point                      *       640
  32. Draw_EndPath                    *       &0
  33. Draw_Continuation               *       &1
  34. Draw_MoveTo                     *       &2
  35. Draw_SpecialMoveTo              *       &3
  36. Draw_CloseGap                   *       &4
  37. Draw_CloseLine                  *       &5
  38. Draw_BezierTo                   *       &6
  39. Draw_GapTo                      *       &7
  40. Draw_LineTo                     *       &8
  41. Draw_FillNonzero                *       &0
  42. Draw_FillNegative               *       &1
  43. Draw_FillEvenOdd                *       &2
  44. Draw_FillPositive               *       &3
  45. Draw_FillWindingRuleShift       *       0
  46. Draw_FillWindingRule            *       &3
  47. Draw_FillFullExterior           *       &4
  48. Draw_FillExteriorBoundary       *       &8
  49. Draw_FillInteriorBoundary       *       &10
  50. Draw_FillFullInterior           *       &20
  51. Draw_FillCloseOpenSubpaths      *       &8000000
  52. Draw_FillFlatten                *       &10000000
  53. Draw_FillThicken                *       &20000000
  54. Draw_FillReflatten              *       &40000000
  55. Draw_FillFloat                  *       &80000000
  56. Draw_JoinMitred                 *       &0
  57. Draw_JoinRound                  *       &1
  58. Draw_JoinBevelled               *       &2
  59. Draw_CapButt                    *       &0
  60. Draw_CapRound                   *       &1
  61. Draw_CapSquare                  *       &2
  62. Draw_CapTriangular              *       &3
  63. Draw_SpecialInSitu              *       &0
  64. Draw_SpecialFill                *       &1
  65. Draw_SpecialFillBySubpaths      *       &2
  66. Draw_SpecialCount               *       &3
  67. Draw_SpecialBBox                *       &80000000
  68. Error_DrawNoDrawInIRQMode       *       &980
  69. Error_DrawBadDrawReasonCode     *       &981
  70. Error_DrawReservedDrawBits      *       &982
  71. Error_DrawInvalidDrawAddress    *       &983
  72. Error_DrawBadPathElement        *       &984
  73. Error_DrawBadPathSequence       *       &985
  74. Error_DrawMayExpandPath         *       &986
  75. Error_DrawPathFull              *       &987
  76. Error_DrawPathNotFlat           *       &988
  77. Error_DrawBadCapsOrJoins        *       &989
  78. Error_DrawTransformOverflow     *       &98A
  79. Error_DrawDrawNeedsGraphicsMode *       &98B
  80. Error_DrawUnimplementedDraw     *       &9FF
  81.  
  82. ;Symbols for structure offsets and sizes
  83. Draw_Tag                        *       Byte
  84.  
  85. Draw_FillStyle                  *       Bits
  86.  
  87. Draw_JoinStyle                  *       Byte
  88.  
  89. Draw_CapStyle                   *       Byte
  90.  
  91. Draw_OutputPath                 *       Ptr
  92.  
  93.                                 ^       0
  94. Draw_PathElement_tag            #       Draw_Tag
  95. Draw_PathElement_reserved       #       3*Byte
  96. Draw_PathElement_data           *       @
  97. Draw_PathElement_data_end_path  #       Int
  98.                                 ^       Draw_PathElement_data
  99. Draw_PathElement_data_continuation #       Ptr
  100.                                 ^       Draw_PathElement_data
  101. Draw_PathElement_data_move_to   #       OS_Coord
  102.                                 ^       Draw_PathElement_data
  103. Draw_PathElement_data_special_move_to #       OS_Coord
  104.                                 ^       Draw_PathElement_data
  105. Draw_PathElement_data_bezier_to #       OS_Coord
  106.                                 ^       Draw_PathElement_data
  107. Draw_PathElement_data_gap_to    #       OS_Coord
  108.                                 ^       Draw_PathElement_data
  109. Draw_PathElement_data_line_to   #       OS_Coord
  110.                                 ^       Draw_PathElement_data
  111. Draw_PathElement_data_reserved  #       24*Byte
  112. Draw_PathElement                *       @
  113.  
  114.                                 ^       0
  115. Draw_LineStyle_join_style       #       Draw_JoinStyle
  116. Draw_LineStyle_end_cap_style    #       Draw_CapStyle
  117. Draw_LineStyle_start_cap_style  #       Draw_CapStyle
  118. Draw_LineStyle_reserved         #       Byte
  119. Draw_LineStyle_mitre_limit      #       Int
  120. Draw_LineStyle_start_cap_width  #       Short
  121. Draw_LineStyle_start_cap_length #       Short
  122. Draw_LineStyle_end_cap_width    #       Short
  123. Draw_LineStyle_end_cap_length   #       Short
  124. Draw_LineStyle                  *       @
  125.  
  126.                                 ^       0
  127. Draw_DashPattern_start          #       Int
  128. Draw_DashPattern_element_count  #       Int
  129. Draw_DashPattern_elements       #       Int
  130. Draw_DashPattern                *       @
  131.  
  132.                                 ^       0
  133. Draw_Path_elements              #       Draw_PathElement
  134. Draw_Path                       *       @
  135.  
  136.  
  137. ;Symbols for SWI's and SWI reason codes
  138. XDraw_ProcessPath               *       &60700
  139. Draw_ProcessPath                *       &40700
  140.    ;Entry
  141.    ;  R0 -> path (Draw_Path)
  142.    ;  R1 = fill_style (Draw_FillStyle)
  143.    ;  R2 -> trfm (OS_Trfm)
  144.    ;  R3 = flatness (Int)
  145.    ;  R4 = thickness (Int)
  146.    ;  R5 -> line_style (Draw_LineStyle)
  147.    ;  R6 -> dash_pattern (Draw_DashPattern)
  148.    ;  R7 = processed_path (Draw_OutputPath)
  149.    ;Exit
  150.    ;  R0 = end_or_used (pointer to data)
  151.  
  152. XDraw_Fill                      *       &60702
  153. Draw_Fill                       *       &40702
  154.    ;Entry
  155.    ;  R0 -> path (Draw_Path)
  156.    ;  R1 = fill_style (Draw_FillStyle)
  157.    ;  R2 -> trfm (OS_Trfm)
  158.    ;  R3 = flatness (Int)
  159.  
  160. XDraw_Stroke                    *       &60704
  161. Draw_Stroke                     *       &40704
  162.    ;Entry
  163.    ;  R0 -> path (Draw_Path)
  164.    ;  R1 = fill_style (Draw_FillStyle)
  165.    ;  R2 -> trfm (OS_Trfm)
  166.    ;  R3 = flatness (Int)
  167.    ;  R4 = thickness (Int)
  168.    ;  R5 -> line_style (Draw_LineStyle)
  169.    ;  R6 -> dash_pattern (Draw_DashPattern)
  170.  
  171. XDraw_StrokePath                *       &60706
  172. Draw_StrokePath                 *       &40706
  173.    ;Entry
  174.    ;  R0 -> path (Draw_Path)
  175.    ;  R1 = stroked_path (pointer to Draw_Path)
  176.    ;  R2 -> trfm (OS_Trfm)
  177.    ;  R3 = flatness (Int)
  178.    ;  R4 = thickness (Int)
  179.    ;  R5 -> line_style (Draw_LineStyle)
  180.    ;  R6 -> dash_pattern (Draw_DashPattern)
  181.    ;Exit
  182.    ;  R0 = end_or_used (pointer to data)
  183.  
  184. XDraw_FlattenPath               *       &60708
  185. Draw_FlattenPath                *       &40708
  186.    ;Entry
  187.    ;  R0 -> path (Draw_Path)
  188.    ;  R1 = flattened_path (pointer to Draw_Path)
  189.    ;  R2 = flatness (Int)
  190.    ;Exit
  191.    ;  R0 = end_or_used (pointer to data)
  192.  
  193. XDraw_TransformPath             *       &6070A
  194. Draw_TransformPath              *       &4070A
  195.    ;Entry
  196.    ;  R0 -> path (Draw_Path)
  197.    ;  R1 = transformed_path (pointer to Draw_Path)
  198.    ;  R2 -> trfm (OS_Trfm)
  199.    ;  R3 = &0
  200.    ;Exit
  201.    ;  R0 = end_or_used (pointer to data)
  202.  
  203. DrawV                           *       &20
  204.  
  205.         ]
  206.         END
  207.