home *** CD-ROM | disk | FTP | other *** search
/ Amiga Developer CD v1.2 / amidev_cd_12.iso / inc&ad2.0 / text_autodocs / graphics.doc < prev    next >
Text File  |  1992-09-01  |  130KB  |  4,597 lines

  1. TABLE OF CONTENTS
  2.  
  3. graphics.library/AddAnimOb
  4. graphics.library/AddBob
  5. graphics.library/AddFont
  6. graphics.library/AddVSprite
  7. graphics.library/AllocRaster
  8. graphics.library/AndRectRegion
  9. graphics.library/AndRegionRegion
  10. graphics.library/Animate
  11. graphics.library/AreaCircle
  12. graphics.library/AreaDraw
  13. graphics.library/AreaEllipse
  14. graphics.library/AreaEnd
  15. graphics.library/AreaMove
  16. graphics.library/AskFont
  17. graphics.library/AskSoftStyle
  18. graphics.library/AttemptLockLayerRom
  19. graphics.library/BitMapScale
  20. graphics.library/BltBitMap
  21. graphics.library/BltBitMapRastPort
  22. graphics.library/BltClear
  23. graphics.library/BltMaskBitMapRastPort
  24. graphics.library/BltPattern
  25. graphics.library/BltTemplate
  26. graphics.library/CBump
  27. graphics.library/CEND
  28. graphics.library/ChangeSprite
  29. graphics.library/CINIT
  30. graphics.library/ClearEOL
  31. graphics.library/ClearRectRegion
  32. graphics.library/ClearRegion
  33. graphics.library/ClearScreen
  34. graphics.library/ClipBlit
  35. graphics.library/CloseFont
  36. graphics.library/CloseMonitor
  37. graphics.library/CMOVE
  38. graphics.library/CopySBitMap
  39. graphics.library/CWAIT
  40. graphics.library/DisownBlitter
  41. graphics.library/DisposeRegion
  42. graphics.library/DoCollision
  43. graphics.library/Draw
  44. graphics.library/DrawEllipse
  45. graphics.library/DrawGList
  46. graphics.library/EraseRect
  47. graphics.library/ExtendFont
  48. graphics.library/FindDisplayInfo
  49. graphics.library/Flood
  50. graphics.library/FontExtent
  51. graphics.library/FreeColorMap
  52. graphics.library/FreeCopList
  53. graphics.library/FreeCprList
  54. graphics.library/FreeGBuffers
  55. graphics.library/FreeRaster
  56. graphics.library/FreeSprite
  57. graphics.library/FreeVPortCopLists
  58. graphics.library/GetColorMap
  59. graphics.library/GetDisplayInfoData
  60. graphics.library/GetGBuffers
  61. graphics.library/GetRGB4
  62. graphics.library/GetSprite
  63. graphics.library/GetVPModeID
  64. graphics.library/GfxAssociate
  65. graphics.library/GfxFree
  66. graphics.library/GfxLookUP
  67. graphics.library/GfxNew
  68. graphics.library/InitArea
  69. graphics.library/InitBitMap
  70. graphics.library/InitGels
  71. graphics.library/InitGMasks
  72. graphics.library/InitMasks
  73. graphics.library/InitRastPort
  74. graphics.library/InitTmpRas
  75. graphics.library/InitView
  76. graphics.library/InitVPort
  77. graphics.library/LoadRGB4
  78. graphics.library/LoadView
  79. graphics.library/LockLayerRom
  80. graphics.library/MakeVPort
  81. graphics.library/ModeNotAvailable
  82. graphics.library/Move
  83. graphics.library/MoveSprite
  84. graphics.library/MrgCop
  85. graphics.library/NewRegion
  86. graphics.library/NextDisplayInfo
  87. graphics.library/OpenFont
  88. graphics.library/OpenMonitor
  89. graphics.library/OrRectRegion
  90. graphics.library/OrRegionRegion
  91. graphics.library/OwnBlitter
  92. graphics.library/PolyDraw
  93. graphics.library/QBlit
  94. graphics.library/QBSBlit
  95. graphics.library/ReadPixel
  96. graphics.library/ReadPixelArray8
  97. graphics.library/ReadPixelLine8
  98. graphics.library/RectFill
  99. graphics.library/RemBob
  100. graphics.library/RemFont
  101. graphics.library/RemIBob
  102. graphics.library/RemVSprite
  103. graphics.library/ScalerDiv
  104. graphics.library/ScrollRaster
  105. graphics.library/ScrollVPort
  106. graphics.library/SetAPen
  107. graphics.library/SetBPen
  108. graphics.library/SetCollision
  109. graphics.library/SetDrMd
  110. graphics.library/SetFont
  111. graphics.library/SetOPen
  112. graphics.library/SetRast
  113. graphics.library/SetRGB4
  114. graphics.library/SetRGB4CM
  115. graphics.library/SetSoftStyle
  116. graphics.library/SortGList
  117. graphics.library/StripFont
  118. graphics.library/SyncSBitMap
  119. graphics.library/Text
  120. graphics.library/TextExtent
  121. graphics.library/TextFit
  122. graphics.library/TextLength
  123. graphics.library/UnlockLayerRom
  124. graphics.library/VBeamPos
  125. graphics.library/VideoControl
  126. graphics.library/WaitBlit
  127. graphics.library/WaitBOVP
  128. graphics.library/WaitTOF
  129. graphics.library/WeighTAMatch
  130. graphics.library/WritePixel
  131. graphics.library/WritePixelArray8
  132. graphics.library/WritePixelLine8
  133. graphics.library/XorRectRegion
  134. graphics.library/XorRegionRegion
  135. graphics.library/AddAnimOb                         graphics.library/AddAnimOb
  136.  
  137.    NAME
  138.     AddAnimOb  --  Add an AnimOb to the linked list of AnimObs.
  139.  
  140.    SYNOPSIS
  141.     AddAnimOb(anOb, anKey, rp)
  142.               A0    A1     A2
  143.  
  144.     void AddAnimOb(struct AnimOb *,struct AnimOb **, struct RastPort *);
  145.  
  146.    FUNCTION
  147.     Links this AnimOb into the current list pointed to by animKey.
  148.     Initializes all the Timers of the AnimOb's components.
  149.     Calls AddBob with each component's Bob.
  150.     rp->GelsInfo must point to an initialized GelsInfo structure.
  151.  
  152.    INPUTS
  153.     anOb  = pointer to the AnimOb structure to be added to the list
  154.     anKey = address of a pointer to the first AnimOb in the list
  155.             (anKey = NULL if there are no AnimObs in the list so far)
  156.     rp    = pointer to a valid RastPort
  157.  
  158.    RESULT
  159.  
  160.    BUGS
  161.  
  162.    SEE ALSO
  163.     Animate() graphics/rastport.h graphics/gels.h
  164. graphics.library/AddBob                               graphics.library/AddBob
  165.  
  166.    NAME
  167.     AddBob -- Adds a Bob to current gel list.
  168.  
  169.    SYNOPSIS
  170.     AddBob(Bob, rp)
  171.            A0   A1
  172.  
  173.     void AddBob(struct Bob *, struct RastPort *);
  174.  
  175.    FUNCTION
  176.     Sets up the system Bob flags, then links this gel into the list
  177.     via AddVSprite.
  178.  
  179.    INPUTS
  180.     Bob = pointer to the Bob structure to be added to the gel list
  181.     rp  = pointer to a RastPort structure
  182.  
  183.    RESULT
  184.  
  185.    BUGS
  186.  
  187.    SEE ALSO
  188.     InitGels()  AddVSprite()  graphics/gels.h  graphics/rastport.h
  189.  
  190. graphics.library/AddFont                             graphics.library/AddFont
  191.  
  192.    NAME
  193.     AddFont -- add a font to the system list
  194.  
  195.    SYNOPSIS
  196.     AddFont(textFont)
  197.             A1
  198.  
  199.     void AddFont(struct TextFont *);
  200.  
  201.    FUNCTION
  202.     This function adds the text font to the system, making it
  203.     available for use by any application.  The font added must be
  204.     in public memory, and remain until successfully removed.
  205.  
  206.    INPUTS
  207.     textFont - a TextFont structure in public ram.
  208.  
  209.    RESULT
  210.  
  211.    BUGS
  212.  
  213.    SEE ALSO
  214.     SetFont()  RemFont()  graphics/text.h
  215.  
  216. graphics.library/AddVSprite                       graphics.library/AddVSprite
  217.  
  218.    NAME
  219.     AddVSprite -- Add a VSprite to the current gel list.
  220.  
  221.    SYNOPSIS
  222.     AddVSprite(vs, rp)
  223.                A0  A1
  224.  
  225.     void AddVSprite(struct VSprite *, struct RastPort *);
  226.  
  227.    FUNCTION
  228.     Sets up the system VSprite flags
  229.     Links this VSprite into the current gel list using its Y,X
  230.  
  231.    INPUTS
  232.     vs = pointer to the VSprite structure to be added to the gel list
  233.     rp = pointer to a RastPort structure
  234.  
  235.    RESULT
  236.  
  237.    BUGS
  238.  
  239.    SEE ALSO
  240.     InitGels()  graphics/rastport.h  graphics/gels.h
  241.  
  242. graphics.library/AllocRaster                     graphics.library/AllocRaster
  243.  
  244.    NAME
  245.     AllocRaster -- Allocate space for a bitplane.
  246.  
  247.    SYNOPSIS
  248.     planeptr = AllocRaster( width, height )
  249.        d0                    d0:16  d1:16
  250.  
  251.     PLANEPTR AllocRaster(UWORD,UWORD);
  252.  
  253.    FUNCTION
  254.     This function calls the memory allocation routines
  255.     to allocate memory space for a bitplane width bits
  256.     wide and height bits high.
  257.  
  258.    INPUTS
  259.     width    - number of bits wide for bitplane
  260.     height    - number of rows in bitplane
  261.  
  262.    RESULT
  263.     planeptr - pointer to first word in bitplane, or NULL if
  264.            it was not possible to allocate the desired
  265.            amount of memory.
  266.    BUGS
  267.  
  268.    SEE ALSO
  269.     FreeRaster() graphics/gfx.h
  270.  
  271. graphics.library/AndRectRegion                 graphics.library/AndRectRegion
  272.  
  273.    NAME
  274.     AndRectRegion -- Perform 2d AND operation of rectangle
  275.              with region, leaving result in region.
  276.  
  277.    SYNOPSIS
  278.     AndRectRegion(region,rectangle)
  279.              a0    a1
  280.  
  281.     void AndRectRegion( struct Region *, struct Rectangle * );
  282.  
  283.    FUNCTION
  284.     Clip away any portion of the region that exists outside
  285.     of the rectangle. Leave the result in region.
  286.  
  287.    INPUTS
  288.     region - pointer to Region structure
  289.     rectangle - pointer to Rectangle structure
  290.  
  291.    NOTES
  292.     Unlike the other rect-region primitives, AndRectRegion() cannot
  293.     fail.
  294.  
  295.    BUGS
  296.  
  297.    SEE ALSO
  298.     AndRegionRegion() OrRectRegion() graphics/regions.h
  299.  
  300. graphics.library/AndRegionRegion             graphics.library/AndRegionRegion
  301.  
  302.    NAME 
  303.        AndRegionRegion -- Perform 2d AND operation of one region
  304.                        with second region, leaving result in second region.
  305.  
  306.    SYNOPSIS 
  307.        status = AndRegionRegion(region1,region2) 
  308.           d0                       a0      a1 
  309.  
  310.     BOOL AndRegionRegion(struct Region *, struct Region * );
  311.  
  312.    FUNCTION 
  313.        Remove any portion of region2 that is not in region1.
  314.  
  315.    INPUTS 
  316.        region1 - pointer to Region structure
  317.        region2 - pointer to Region structure to use and for result
  318.  
  319.    RESULTS
  320.     status - return TRUE if successful operation
  321.          return FALSE if ran out of memory
  322.  
  323.    BUGS 
  324.  
  325.    SEE ALSO
  326.     OrRegionRegion() AndRectRegion() graphics/regions.h
  327.  
  328. graphics.library/Animate                             graphics.library/Animate
  329.  
  330.    NAME
  331.     Animate  --  Processes every AnimOb in the current animation list.
  332.  
  333.    SYNOPSIS
  334.     Animate(anKey, rp)
  335.             A0     A1
  336.  
  337.     void Animate(struct AnimOb **, struct RastPort *);
  338.  
  339.    FUNCTION
  340.     For every AnimOb in the list
  341.         - update its location and velocities
  342.         - call the AnimOb's special routine if one is supplied
  343.         - for each component of the AnimOb
  344.             - if this sequence times out, switch to the new one
  345.             - call this component's special routine if one is supplied
  346.             - set the sequence's VSprite's y,x coordinates based
  347.               on whatever these routines cause
  348.  
  349.    INPUTS
  350.     ankey = address of the variable that points to the head AnimOb
  351.     rp    = pointer to the RastPort structure
  352.  
  353.    RESULT
  354.  
  355.    BUGS
  356.  
  357.    SEE ALSO
  358.     AddAnimOb() graphics/gels.h graphics/rastport.h
  359.  
  360. graphics.library/AreaCircle                       graphics.library/AreaCircle
  361.  
  362.     NAME
  363.     AreaCircle -- add a circle to areainfo list for areafill.
  364.  
  365.  
  366.     SYNOPSIS
  367.     error = (int) AreaCircle( rp,  cx,  cy, radius)
  368.     D0              A1   D0   D1    D2
  369.  
  370.     ULONG AreaCircle(struct RastPort *, WORD, WORD, UWORD);
  371.  
  372.     FUNCTION
  373.     Add circle to the vector buffer. It will be drawn to the rastport when
  374.     AreaEnd is executed.
  375.  
  376.     INPUTS
  377.     rp     - pointer to a RastPort structure
  378.  
  379.     cx, cy   - the coordinates of the center of the desired circle.
  380.  
  381.     radius     - is the radius of the circle to draw around the centerpoint.
  382.  
  383.     RESULTS
  384.     0 if no error
  385.     -1 if no space left in vector list
  386.  
  387.     NOTES
  388.     This function is actually a macro which calls 
  389.         AreaEllipse(rp,cx,cy,radius,radius).
  390.  
  391.     SEE ALSO
  392.     AreaMove() AreaDraw() AreaCircle() InitArea() AreaEnd()
  393.     graphics/rastport.h graphics/gfxmacros.h
  394.  
  395. graphics.library/AreaDraw                           graphics.library/AreaDraw
  396.  
  397.    NAME
  398.     AreaDraw -- Add a point to a list of end points for areafill.
  399.  
  400.  
  401.    SYNOPSIS
  402.     error = AreaDraw( rp,  x,     y)
  403.       d0              A1 D0:16 D1:16
  404.  
  405.     ULONG AreaDraw( struct RastPort *, SHORT, SHORT);
  406.  
  407.    FUNCTION
  408.     Add point to the vector buffer.
  409.  
  410.  
  411.    INPUTS
  412.     rp    - points to a RastPort structure.
  413.     x,y    - are coordinates of a point in the raster.
  414.  
  415.    RESULT
  416.     error    - zero for success, else -1 if no there was no space
  417.           left in the vector list.
  418.  
  419.    BUGS
  420.  
  421.    SEE ALSO
  422.     AreaMove() InitArea() AreaEnd() graphics/rastport.h
  423.  
  424.  
  425. graphics.library/AreaEllipse                     graphics.library/AreaEllipse
  426.  
  427.     NAME
  428.     AreaEllipse -- add a ellipse to areainfo list for areafill.
  429.  
  430.  
  431.     SYNOPSIS
  432.     error = AreaEllipse( rp, cx,   cy,   a,    b    )
  433.     d0             a1  d0:16 d1:16 d2:16 d3:16
  434.  
  435.     LONG AreaEllipse( struct RastPort *, SHORT, SHORT, SHORT, SHORT)
  436.  
  437.     FUNCTION
  438.     Add an ellipse to the vector buffer. It will be draw when AreaEnd() is
  439.     called.
  440.  
  441.     INPUTS
  442.     rp - pointer to a RastPort structure
  443.     cx - x coordinate of the centerpoint relative to the rastport.
  444.     cy - y coordinate of the centerpoint relative to the rastport.
  445.     a  - the horizontal radius of the ellipse (note: a must be > 0)
  446.     b  - the vertical radius of the ellipse (note: b must be > 0)
  447.  
  448.     RESULT
  449.     error - zero for success, or -1 if there is no space left in the
  450.         vector list
  451.  
  452.     SEE ALSO
  453.     AreaMove() AreaDraw() AreaCircle() InitArea() AreaEnd()
  454.     graphics/rastport.h
  455.  
  456. graphics.library/AreaEnd                             graphics.library/AreaEnd
  457.  
  458.    NAME
  459.     AreaEnd -- Process table of vectors and ellipses and produce areafill.
  460.  
  461.  
  462.    SYNOPSIS
  463.     error = AreaEnd(rp)
  464.       d0              A1
  465.  
  466.     LONG AreaEnd( struct RastPort * );
  467.  
  468.    FUNCTION
  469.     Trigger the filling operation.
  470.     Process the vector buffer and generate required
  471.     fill into the raster planes. After the fill is complete, reinitialize
  472.     for the next AreaMove or AreaEllipse. Use the raster set up by
  473.     InitTmpRas when generating an areafill mask.
  474.  
  475.    RESULT
  476.     error - zero for success, or -1 if an error occured anywhere.
  477.  
  478.    INPUTS
  479.     rp - pointer to a RastPort structure which specifies where the filled
  480.          regions will be rendered to.
  481.  
  482.    BUGS
  483.  
  484.    SEE ALSO
  485.     InitArea() AreaMove() AreaDraw() AreaEllipse()  InitTmpRas()
  486.     graphics/rastport.h
  487.  
  488. graphics.library/AreaMove                           graphics.library/AreaMove
  489.  
  490.    NAME
  491.     AreaMove -- Define a new starting point for a new
  492.                 shape in the vector list.
  493.  
  494.  
  495.    SYNOPSIS
  496.     error =  AreaMove( rp,   x,     y)
  497.      d0                a1  d0:16  d1:16
  498.  
  499.     LONG AreaMove( struct RastPort *, SHORT, SHORT );
  500.  
  501.    FUNCTION
  502.     Close  the last polygon and start another polygon
  503.     at  (x,y). Add the necessary  points  to  vector
  504.     buffer. Closing a polygon may result in the generation
  505.     of another AreaDraw() to close previous polygon.
  506.     Remember to have an initialized AreaInfo structure attached
  507.     to the RastPort.
  508.  
  509.    INPUTS
  510.     rp  - points to a RastPort structure
  511.     x,y - positions in the raster
  512.  
  513.    RETURNS
  514.     error - zero for success, or -1 if there is no space left in the
  515.     vector list
  516.  
  517.    BUGS
  518.  
  519.    SEE ALSO
  520.     InitArea() AreaDraw() AreaEllipse() AreaEnd() graphics/rastport.h
  521.  
  522.  
  523. graphics.library/AskFont                             graphics.library/AskFont
  524.  
  525.    NAME
  526.     AskFont -- get the text attributes of the current font
  527.  
  528.    SYNOPSIS
  529.     AskFont(rp, textAttr)
  530.             A1  A0
  531.  
  532.     void AskFont(struct RastPort *, struct TextAttr *);
  533.  
  534.    FUNCTION
  535.     This function fills the text attributes structure with the
  536.     attributes of the current font in the RastPort.
  537.  
  538.    INPUTS
  539.     rp       - the RastPort from which the text attributes are
  540.                extracted
  541.     textAttr - the TextAttr structure to be filled.  Note that
  542.                there is no support for a TTextAttr.
  543.  
  544.    RESULT
  545.     The textAttr structure is filled with the RastPort's text
  546.     attributes.
  547.  
  548.    BUGS
  549.  
  550.    SEE ALSO
  551.     graphics/text.h
  552.  
  553. graphics.library/AskSoftStyle                   graphics.library/AskSoftStyle
  554.  
  555.    NAME
  556.     AskSoftStyle -- Get the soft style bits of the current font.
  557.  
  558.    SYNOPSIS
  559.     enable = AskSoftStyle(rp)
  560.     D0                    A1
  561.  
  562.     ULONG AskSoftStyle(struct RastPort *);
  563.  
  564.    FUNCTION
  565.     This function returns those style bits of the current font
  566.     that are not intrinsic in the font itself, but
  567.     algorithmically generated.  These are the bits that are
  568.     valid to set in the enable mask for SetSoftStyle().
  569.  
  570.    INPUTS
  571.     rp - the RastPort from which the font and style    are extracted.
  572.  
  573.    RESULTS
  574.     enable - those bits in the style algorithmically generated.
  575.              Style bits that are not defined are also set.
  576.  
  577.    BUGS
  578.  
  579.    SEE ALSO
  580.     SetSoftStyle()  graphics/text.h
  581.  
  582. graphics.library/AttemptLockLayerRom     graphics.library/AttemptLockLayerRom
  583.                            *
  584.    NAME
  585.     AttemptLockLayerRom -- Attempt to Lock Layer structure
  586.                      by rom(gfx lib) code
  587.  
  588.    SYNOPSIS
  589.     gotit = AttemptLockLayerRom( layer )
  590.      d0                  a5
  591.  
  592.     BOOL AttempLockLayerRom( struct Layer * );
  593.  
  594.    FUNCTION
  595.     Query the current state of the lock on this Layer. If it is
  596.     already locked then return FALSE, could not lock. If the
  597.     Layer was not locked then lock it and return TRUE.
  598.     This call does not destroy any registers.
  599.     This call nests so that callers in this chain will not lock
  600.     themselves out.
  601.  
  602.    INPUTS
  603.     layer - pointer to Layer structure
  604.  
  605.    RESULT
  606.     gotit - TRUE or FALSE depending on whether the Layer was
  607.         successfully locked by the caller.
  608.  
  609.    SEE ALSO
  610.     LockLayerRom() UnlockLayerRom()
  611.  
  612. graphics.library/BitMapScale                     graphics.library/BitMapScale
  613.  
  614.    NAME
  615.     BitMapScale -- Perform raster scaling on a bit map. (V36)
  616.  
  617.    SYNOPSIS
  618.     BitMapScale(bitScaleArgs)
  619.                 A0
  620.  
  621.     void BitMapScale(struct BitScaleArgs *);
  622.  
  623.    FUNCTION
  624.     Scale a source bit map to a non-overlapping destination
  625.     bit map.
  626.  
  627.    INPUTS
  628.     bitScaleArgs - structure of parameters describing scale:
  629.         bsa_SrcX, bsa_SrcY - origin of the source bits.
  630.         bsa_SrcWidth, bsa_SrcHeight - number of bits to scale from in x
  631.         and y.
  632.         bsa_DestX, bsa_DestY - origin of the destination.
  633.         bsa_DestWidth, bsa_DestHeight - resulting number of bits in x
  634.         and y.  NOTE: these values are set by this function.
  635.         bsa_XSrcFactor:bsa_XDestFactor - equivalant to the ratio
  636.             srcWidth:destWidth, but not necessarily the same
  637.             numbers.  Each must be in the range 1..16383.
  638.         bsa_YSrcFactor:bsa_YDestFactor - equivalant to the ratio
  639.             srcHeight:destHeight, but not necessarily the same
  640.             numbers.  Each must be in the range 1..16383.
  641.         bsa_SrcBitMap - source of the bits to scale.
  642.         bsa_DestBitMap - destination for the bits to scale.  This had
  643.             better be big enough!
  644.         bsa_Flags - future scaling options.  Set it to zero!
  645.         bsa_XDDA, bsa_YDDA - for future use.  Need not be set by user.
  646.         bsa_Reserved1, bsa_Reserved2 - for future use.  Need not be set.
  647.  
  648.    RESULT
  649.     The destWidth, destHeight fields are set by this function as
  650.     described above.
  651.  
  652.    NOTES
  653.     o   This function may use the blitter.
  654.     o   Overlapping source and destination bit maps are not
  655.         supported.
  656.     o   No check is made to ensure destBitMap is big enough: use
  657.         ScalerDiv to calculate a destination dimension.
  658.  
  659.    BUGS
  660.     o   This function does not use the HighRes Agnus 'Big Blit'
  661.         facility. You should not use XSrcFactor == XDestFactor,
  662.         where SrcWidth or DestWidth > 1024.
  663.  
  664.     o   Also, the blitter is used when expanding in the Y direction.
  665.         You should not expand in the Y direction if
  666.         ((DestX & 0xf) + DestWidth) >= 1024 pixels. (Up to 1008 pixels
  667.         is always safe).
  668.  
  669.    SEE ALSO
  670.     ScalerDiv()  graphics/scale.h
  671.  
  672. graphics.library/BltBitMap                         graphics.library/BltBitMap
  673.  
  674.    NAME
  675.     BltBitMap -- Move a rectangular region of bits in a BitMap.
  676.  
  677.    SYNOPSIS
  678.     planecnt = BltBitMap(SrcBitMap, SrcX, SrcY, DstBitMap,
  679.     D0                   A0         D0:16 D1:16 A1
  680.         DstX, DstY, SizeX, SizeY, Minterm, Mask [, TempA])
  681.         D2:16 D3:16 D4:16  D5:16  D6:8     D7:8   [A2]
  682.  
  683.     ULONG BltBitMap(struct BitMap *, WORD, WORD, struct BitMap *,
  684.         WORD, WORD, WORD, WORD, UBYTE, UBYTE, UWORD *);
  685.  
  686.    FUNCTION
  687.     Perform non-destructive blits to move a rectangle from one
  688.     area in a BitMap to another area, which can be on a different
  689.     BitMap.
  690.     This blit is assumed to be friendly: no error conditions (e.g.
  691.     a rectangle outside the BitMap bounds) are tested or reported.
  692.  
  693.    INPUTS
  694.     SrcBitMap, DstBitMap - the BitMap(s) containing the
  695.           rectangles
  696.         - the planes copied from the source to the destination are
  697.           only those whose plane numbers are identical and less
  698.           than the minimum Depth of either BitMap and whose Mask
  699.           bit for that plane is non-zero.
  700.         - as a special case, if a plane pointer in the SrcBitMap
  701.           is zero, it acts as a pointer to a plane of all zeros, and
  702.           if the plane pointer is 0xffffffff, it acts as a pointer
  703.           to a plane of all ones.  (Note: new for V36)
  704.         - SrcBitMap and DstBitMap can be identical if they point
  705.           to actual planes.
  706.     SrcX, SrcY - the x and y coordinates of the upper left corner
  707.         of the source rectangle.  Valid range is positive
  708.         signed integer such that the raster word's offset
  709.         0..(32767-Size)
  710.     DstX, DstY - the x and y coordinates of the upper left
  711.         corner of the destination for the rectangle.  Valid
  712.         range is as for Src.
  713.     SizeX, SizeY - the size of the rectangle to be moved.  Valid
  714.         range is (X: 1..976; Y: 1..1023 such that final raster
  715.         word's offset is 0..32767)
  716.     Minterm - the logic function to apply to the rectangle when
  717.         A is non-zero (i.e. within the rectangle).  B is the
  718.         source rectangle and C, D is the destination for the
  719.         rectangle.
  720.         - $0C0 is a vanilla copy
  721.         - $030 inverts the source before the copy
  722.         - $050 ignores the source and inverts the destination
  723.         - see the hardware reference manual for other combinations
  724.     Mask - the write mask to apply to this operation.  Bits set 
  725.         indicate the corresponding planes (if not greater than
  726.         the minimum plane count) are to participate in the
  727.         operation.  Typically this is set to 0xff.
  728.     TempA - If the copy overlaps exactly to the left or right
  729.         (i.e. the scan line addresses overlap), and TempA is
  730.         non-zero, it points to enough chip accessable memory
  731.         to hold a line of A source for the blit (ie CHIP RAM).
  732.         BitBitMap will allocate (and free) the needed TempA if
  733.         none is provided and one is needed.  Blit overlap is
  734.         determined from the relation of the first non-masked
  735.         planes in the source and destination bit maps.
  736.  
  737.    RESULTS
  738.     planecnt - the number of planes actually involved in the blit.
  739.  
  740.    NOTES
  741.     o   This function may use the blitter.
  742.  
  743.    SEE ALSO
  744.     ClipBlit()  graphics/gfx.h  hardware/blit.h
  745.  
  746. graphics.library/BltBitMapRastPort         graphics.library/BltBitMapRastPort
  747.  
  748.    NAME
  749.     BltBitMapRastPort -- Blit from source bitmap to destination rastport.
  750.  
  751.    SYNOPSIS
  752.     error = BltBitMapRastPort
  753.             (srcbm, srcx, srcy, destrp, destX, destY, sizeX, sizeY, minterm)
  754.      D0      A0     D0    D1    A1      D2     D3     D4     D5     D6
  755.  
  756.     BOOL BltBitMapRastPort
  757.          (struct BitMap *, WORD, WORD, struct RastPort *, WORD, WORD,
  758.           WORD, WORD, UBYTE);
  759.  
  760.    FUNCTION
  761.     Blits from source bitmap to position specified in destination rastport
  762.     using minterm.
  763.  
  764.    INPUTS
  765.     srcbm   - a pointer to the source bitmap
  766.     srcx    - x offset into source bitmap
  767.     srcy    - y offset into source bitmap
  768.     destrp  - a pointer to the destination rastport
  769.     destX   - x offset into dest rastport
  770.     destY   - y offset into dest rastport
  771.     sizeX   - width of blit in pixels
  772.     sizeY   - height of blit in rows 
  773.     minterm - minterm to use for this blit
  774.  
  775.    RESULT
  776.     TRUE
  777.  
  778.    BUGS
  779.  
  780.    SEE ALSO
  781.     BltMaskBitMapRastPort() graphics/gfx.h graphics/rastport.h
  782.  
  783. graphics.library/BltClear                           graphics.library/BltClear
  784.  
  785.    NAME   
  786.  
  787.     BltClear - Clear a block of memory words to zero.
  788.  
  789.    SYNOPSIS
  790.     BltClear( memBlock, bytecount, flags )
  791.             a1         d0       d1
  792.  
  793.     void BltClear( void *, ULONG, ULONG );
  794.  
  795.    FUNCTION
  796.     For memory that is local and blitter accessable, the most
  797.     efficient way to clear a range of memory locations is
  798.        to use the system's most efficient data mover, the blitter.
  799.        This command accepts the starting location and count and clears
  800.        that block to zeros.
  801.  
  802.    INPUTS
  803.     memBloc    - pointer to local memory to be cleared
  804.           memBlock is assumed to be even.
  805.     flags    - set bit 0 to force function to wait until 
  806.           the blit is done.
  807.           set bit 1 to use row/bytesperrow.
  808.  
  809.     bytecount - if (flags & 2) == 0 then
  810.                 even number of bytes to clear.
  811.             else
  812.                 low 16 bits is taken as number of bytes
  813.                 per row and upper 16 bits taken as
  814.                 number of rows.
  815.  
  816.     This function is somewhat hardware dependant. In the rows/bytesperrow
  817.     mode (with the pre-ECS blitter) rows must be <- 1024. In bytecount mode 
  818.     multiple runs of the blitter may be used to clear all the memory.
  819.  
  820.     Set bit 2 to use the upper 16 bits of the Flags as the data to fill 
  821.     memory with instead of 0 (V36).
  822.  
  823.    RESULT
  824.     The block of memory is initialized.
  825.  
  826.    BUGS
  827.  
  828.    SEE ALSO
  829.  
  830. graphics.library/BltMaskBitMapRastPort graphics.library/BltMaskBitMapRastPort
  831.  
  832.    NAME
  833.     BltMaskBitMapRastPort -- blit from source bitmap to destination rastport
  834.     with masking of source image.
  835.  
  836.    SYNOPSIS
  837.     BltMaskBitMapRastPort
  838.         (srcbm, srcx, srcy, destrp, destX, destY, sizeX, sizeY,
  839.          A0     D0    D1    A1      D2     D3     D4     D5
  840.          minterm, bltmask)
  841.          D6       A2
  842.  
  843.     void BltMaskBitMapRastPort
  844.          (struct BitMap *, WORD, WORD, struct RastPort *, WORD, WORD,
  845.           WORD, WORD, UBYTE, APTR);
  846.  
  847.    FUNCTION
  848.     Blits from source bitmap to position specified in destination rastport
  849.     using bltmask to determine where source overlays destination, and
  850.     minterm to determine whether to copy the source image "as is" or
  851.     to "invert" the sense of the source image when copying. In either
  852.     case, blit only occurs where the mask is non-zero.
  853.  
  854.    INPUTS
  855.     srcbm   - a pointer to the source bitmap
  856.     srcx    - x offset into source bitmap
  857.     srcy    - y offset into source bitmap
  858.     destrp  - a pointer to the destination rastport
  859.     destX   - x offset into dest rastport
  860.     destY   - y offset into dest rastport
  861.     sizeX   - width of blit in pixels
  862.     sizeY   - height of blit in rows 
  863.     minterm - either (ABC|ABNC|ANBC) if copy source and blit thru mask
  864.               or     (ANBC)          if invert source and blit thru mask
  865.     bltmask - pointer to the single bit-plane mask, which must be the
  866.               same size and dimensions as the planes of the
  867.               source bitmap.
  868.  
  869.    RESULT
  870.  
  871.    BUGS
  872.  
  873.    SEE ALSO
  874.     BltBitMapRastPort() graphics/gfx.h graphics/rastport.h
  875.  
  876. graphics.library/BltPattern                       graphics.library/BltPattern
  877.  
  878.    NAME
  879.     BltPattern --  Using standard drawing rules for areafill,
  880.                      blit through a mask.
  881.  
  882.    SYNOPSIS
  883.        BltPattern(rp, mask, xl, yl, maxx, maxy, bytecnt)
  884.                   a1,  a0   d0  d1   d2   d3     d4
  885.  
  886.     void BltPattern
  887.        (struct RastPort *, void *, SHORT, SHORT, SHORT, SHORT, SHORT);
  888.  
  889.    FUNCTION
  890.        Blit using drawmode,areafill pattern, and mask 
  891.        at position rectangle (xl,yl) (maxx,maxy).
  892.  
  893.    INPUTS
  894.        rp    -  points to the destination RastPort for the blit.
  895.        mask  -  points to 2 dimensional mask if needed
  896.                 if mask == NULL then use a rectangle.
  897.        xl,yl -  coordinates of upper left of rectangular region in RastPort
  898.        maxx,maxy - points to lower right of rectangular region in RastPort
  899.        bytecnt - BytesPerRow for mask
  900.  
  901.    RESULT
  902.  
  903.    SEE ALSO
  904.     AreaEnd
  905.  
  906. graphics.library/BltTemplate                     graphics.library/BltTemplate
  907.  
  908.    NAME
  909.     BltTemplate -- Cookie cut a shape in a rectangle to the RastPort.
  910.  
  911.    SYNOPSIS
  912.     BltTemplate(SrcTemplate, SrcX, SrcMod, rp,
  913.                 A0           D0:16  D1:16  A1
  914.         DstX,  DstY, SizeX, SizeY)
  915.         D2:16  D3:16 D4:16  D5:16
  916.  
  917.     void BltTemplate(UWORD *, WORD, WORD, struct RastPort *,
  918.          WORD, WORD, WORD, WORD);
  919.  
  920.    FUNCTION
  921.     This function draws the image in the template into the
  922.     RastPort in the current color and drawing mode at the
  923.     specified position.  The template is assumed not to overlap
  924.     the destination.
  925.     If the template falls outside the RastPort boundary, it is
  926.     truncated to that boundary.
  927.  
  928.     Note: the SrcTemplate pointer should point to the "nearest" word
  929.        (rounded down) of the template mask. Fine alignment of the mask
  930.        is acheived by setting the SrcX bit offseet within the range
  931.        of 0 to 15 decimal.
  932.  
  933.    INPUTS
  934.     SrcTemplate  - pointer to the first (nearest) word of the template mask.
  935.     SrcX         - x bit offset into the template mask (range 0..15).
  936.     SrcMod       - number of bytes per row in template mask.
  937.     rp           - pointer to destination RastPort.
  938.     DstX, DstY   - x and y coordinates of the upper left
  939.                    corner of the destination for the blit.
  940.     SizeX, SizeY - size of the rectangle to be used as the
  941.                    template.
  942.  
  943.    NOTES
  944.     o   This function may use the blitter.
  945.  
  946.    SEE ALSO
  947.     BltBitMap()  graphics/rastport.h
  948.  
  949. graphics.library/CBump                                 graphics.library/CBump
  950.    NAME
  951.     CBump -  increment user copper list pointer (bump to next position in list).
  952.  
  953.    SYNOPSIS
  954.     CBump( c )
  955.           a1
  956.  
  957.     void CBump( struct UCopList * );
  958.  
  959.    FUNCTION
  960.     Increment pointer to space for next instruction in user copper list.
  961.  
  962.    INPUTS
  963.     c - pointer to UCopList structure
  964.  
  965.    RESULTS
  966.     User copper list pointer is incremented to next position.  
  967.     Pointer is repositioned to next user copperlist instruction block 
  968.     if the current block is full.
  969.  
  970.         Note: CBump is usually invoked for the programmer as part of the
  971.               macro definitions CWAIT or CMOVE.
  972.  
  973.    BUGS
  974.  
  975.    SEE ALSO
  976.     CINIT CWAIT CMOVE CEND graphics/copper.h
  977. graphics.library/CEND                                   graphics.library/CEND
  978.    NAME
  979.     CEND -- Terminate user copper list.
  980.  
  981.    SYNOPSIS
  982.     CEND( c )
  983.  
  984.     struct UCopList *c;
  985.  
  986.    FUNCTION
  987.     Add instruction to terminate user copper list.
  988.  
  989.    INPUTS
  990.     c - pointer to UCopList structure
  991.  
  992.    RESULTS
  993.     This is actually a macro that calls the macro CWAIT(c,10000,255)
  994.     10000 is a magical number that the graphics.library uses.
  995.     I hope display technology doesn't catch up too fast!
  996.  
  997.    BUGS
  998.  
  999.    SEE ALSO
  1000.     CINIT CWAIT CMOVE graphics/copper.h
  1001. graphics.library/ChangeSprite                   graphics.library/ChangeSprite
  1002.  
  1003.    NAME
  1004.        ChangeSprite -- Change the sprite image pointer.
  1005.  
  1006.    SYNOPSIS
  1007.        ChangeSprite( vp, s, newdata)
  1008.                      a0  a1   a2
  1009.  
  1010.     void ChangeSprite(struct ViewPort *, struct SimpleSprite *, void * )
  1011.  
  1012.    FUNCTION 
  1013.     The sprite image is changed to use the data starting at newdata
  1014.  
  1015.    INPUTS
  1016.        vp - pointer to ViewPort structure that this sprite is
  1017.           relative to,  or 0 if relative only top of View
  1018.     s - pointer to SimpleSprite structure
  1019.     newdata    - pointer to data structure of the following form.
  1020.         struct spriteimage
  1021.         {
  1022.             UWORD    posctl[2];    /* used by simple sprite machine*/
  1023.             UWORD    data[height][2];   /* actual sprite image */
  1024.             UWORD    reserved[2];    /* initialized to */
  1025.                                          /*  0x0,0x0 */
  1026.         };
  1027.     The programmer must initialize reserved[2].  Spriteimage must be
  1028.     in CHIP memory. The height subfield of the SimpleSprite structure
  1029.     must be set to reflect the height of the new spriteimage BEFORE
  1030.     calling ChangeSprite(). The programmer may allocate two sprites to
  1031.     handle a single attached sprite.  After GetSprite(), ChangeSprite(),
  1032.     the programmer can set the SPRITE_ATTACHED bit in posctl[1] of the
  1033.     odd numbered sprite.
  1034.     If you need more than 8 sprites, look up VSprites in the
  1035.     graphics documentation.
  1036.  
  1037.    RESULTS 
  1038.  
  1039.    BUGS 
  1040.  
  1041.    SEE ALSO
  1042.     FreeSprite() ChangeSprite() MoveSprite() AddVSprite() graphics/sprite.h
  1043.  
  1044. graphics.library/CINIT                                 graphics.library/CINIT
  1045.  
  1046.    NAME
  1047.     CINIT -- Initialize user copperlist to accept intermediate 
  1048.          user copper instructions.
  1049.  
  1050.    SYNOPSIS
  1051.      cl = CINIT( ucl , n )
  1052.  
  1053.     cl = UCopperListInit( ucl , n )
  1054.                   a0    d0
  1055.  
  1056.     struct CopList *UCopperListInit( struct UCopList *, UWORD );
  1057.  
  1058.    FUNCTION
  1059.     Allocates and/or initialize copperlist structures/buffers
  1060.     internal to a UCopList structure.
  1061.  
  1062.     This is a macro that calls UCopListInit. You must pass a 
  1063.     (non-initialized) UCopList to CINIT (CINIT will NOT allocate 
  1064.     a new UCopList if ucl==0 ). If (ucl != 0) it will initialize the
  1065.     intermediate data buffers internal to a UCopList. 
  1066.  
  1067.     The maximum number of intermediate copper list instructions
  1068.     that these internal CopList data buffers contain is specified
  1069.     as the parameter n.
  1070.  
  1071.    INPUTS
  1072.     ucl - pointer to UCopList structure
  1073.     n - number of instructions buffer must be able to hold
  1074.  
  1075.    RESULTS
  1076.     cl- a pointer to a buffer which will accept n intermediate copper 
  1077.         instructions. 
  1078.  
  1079.     NOTE: this is NOT a UCopList pointer, rather a pointer to the 
  1080.           UCopList's->FirstCopList sub-structure.
  1081.         
  1082.    BUGS
  1083.     CINIT will not actually allocate a new UCopList if ucl==0.
  1084.     Instead you must allocate a block MEMF_PUBLIC|MEMF_CLEAR, the 
  1085.     sizeof(struct UCopList) and pass it to this function.  
  1086.  
  1087.     The system's FreeVPortCopLists function will take care of 
  1088.     deallocating it if they are called.
  1089.  
  1090.     Prior to release V36 the  CINIT macro had { } braces surrounding
  1091.     the definition, preventing the proper return of the result value.
  1092.     These braces have been removed for the V36 include definitions.
  1093.  
  1094.    SEE ALSO
  1095.      CINIT CMOVE CEND graphics/copper.h
  1096.  
  1097. graphics.library/ClearEOL                           graphics.library/ClearEOL
  1098.  
  1099.    NAME
  1100.     ClearEOL -- Clear from current position to end of line.
  1101.  
  1102.    SYNOPSIS
  1103.     ClearEOL(rp)
  1104.              A1
  1105.  
  1106.     void ClearEOL(struct RastPort *);
  1107.  
  1108.    FUNCTION
  1109.     Clear a rectangular swath from the current position to the
  1110.     right edge of the rastPort.  The height of the swath is taken
  1111.     from that of the current text font, and the vertical
  1112.     positioning of the swath is adjusted by the text baseline,
  1113.     such that text output at this position would lie wholly on
  1114.     this newly cleared area.
  1115.     Clearing consists of setting the color of the swath to zero,
  1116.     or, if the DrawMode is 2, to the BgPen.
  1117.  
  1118.    INPUTS
  1119.     rp - pointer to RastPort structure
  1120.  
  1121.    RESULT
  1122.  
  1123.    NOTES
  1124.     o   This function may use the blitter.
  1125.  
  1126.    SEE ALSO
  1127.     Text()  ClearScreen()  SetRast()
  1128.     graphics/text.h  graphics/rastport.h
  1129.  
  1130. graphics.library/ClearRectRegion             graphics.library/ClearRectRegion
  1131.  
  1132.    NAME
  1133.     ClearRectRegion -- Perform 2d CLEAR operation of rectangle
  1134.             with region, leaving result in region.
  1135.  
  1136.    SYNOPSIS
  1137.     status = ClearRectRegion(region,rectangle)
  1138.      d0                a0       a1
  1139.  
  1140.     BOOL ClearRectRegion(struct Region *, struct Rectangle * );
  1141.  
  1142.    FUNCTION
  1143.     Clip away any portion of the region that exists inside
  1144.     of the rectangle. Leave the result in region.
  1145.  
  1146.    INPUTS
  1147.     region - pointer to Region structure
  1148.     rectangle - pointer to Rectangle structure
  1149.  
  1150.    RESULTS
  1151.     status - return TRUE if successful operation
  1152.          return FALSE if ran out of memory
  1153.  
  1154.    BUGS
  1155.  
  1156.    SEE ALSO
  1157.     AndRectRegion() graphics/regions.h
  1158.  
  1159. graphics.library/ClearRegion                     graphics.library/ClearRegion
  1160.  
  1161.    NAME 
  1162.        ClearRegion -- Remove all rectangles from region.
  1163.  
  1164.    SYNOPSIS 
  1165.        ClearRegion(region)
  1166.                      a0
  1167.  
  1168.     void ClearRegion( struct Region * );
  1169.  
  1170.    FUNCTION 
  1171.        Clip away all rectangles in the region leaving nothing.
  1172.  
  1173.    INPUTS 
  1174.        region - pointer to Region structure
  1175.  
  1176.    BUGS 
  1177.  
  1178.    SEE ALSO
  1179.     NewRegion() graphics/regions.h
  1180.  
  1181. graphics.library/ClearScreen                     graphics.library/ClearScreen
  1182.  
  1183.    NAME
  1184.     ClearScreen -- Clear from current position to end of RastPort.
  1185.  
  1186.    SYNOPSIS
  1187.     ClearScreen(rp)
  1188.                 A1
  1189.  
  1190.     void ClearScreen(struct RastPort *);
  1191.  
  1192.    FUNCTION
  1193.     Clear a rectangular swath from the current position to the
  1194.     right edge of the rastPort with ClearEOL, then clear the rest
  1195.     of the screen from just beneath the swath to the bottom of
  1196.     the rastPort.
  1197.     Clearing consists of setting the color of the swath to zero,
  1198.     or, if the DrawMode is 2, to the BgPen.
  1199.  
  1200.    INPUTS
  1201.     rp - pointer to RastPort structure
  1202.  
  1203.    NOTES
  1204.     o   This function may use the blitter.
  1205.  
  1206.    SEE ALSO
  1207.     ClearEOL()  Text()  SetRast()
  1208.     graphics/text.h  graphics/rastport.h
  1209.  
  1210. graphics.library/ClipBlit                           graphics.library/ClipBlit
  1211.  
  1212.    NAME
  1213.     ClipBlit  --  Calls BltBitMap() after accounting for windows
  1214.  
  1215.    SYNOPSIS
  1216.     ClipBlit(Src, SrcX, SrcY, Dest, DestX, DestY, XSize, YSize, Minterm)
  1217.              A0   D0    D1    A1    D2     D3     D4     D5     D6
  1218.  
  1219.     void ClipBlit
  1220.          (struct RastPort *, WORD, WORD, struct RastPort *, WORD, WORD,
  1221.           WORD, WORD, UBYTE);
  1222.  
  1223.    FUNCTION
  1224.     Performs the same function as BltBitMap(), except that it
  1225.     takes into account the Layers and ClipRects of the layer library,
  1226.     all of which are (and should be) transparent to you.  So, whereas
  1227.     BltBitMap() requires pointers to BitMaps, ClipBlit requires pointers to
  1228.     the RastPorts that contain the Bitmaps, Layers, etcetera.
  1229.  
  1230.     If you are going to blit blocks of data around via the RastPort of your
  1231.     Intuition Window, you must call this routine (rather than BltBitMap()).
  1232.  
  1233.     Either the Src RastPort, the Dest RastPort, both, or neither, can have
  1234.     Layers. This routine takes care of all cases.
  1235.  
  1236.     See BltBitMap() for a thorough explanation.
  1237.  
  1238.    INPUTS
  1239.     Src          = pointer to the RastPort of the source for your blit
  1240.     SrcX, SrcY   = the topleft offset into Src for your data
  1241.     Dest         = pointer to the RastPort to receive the blitted data
  1242.     DestX, DestY = the topleft offset into the destination RastPort
  1243.     XSize        = the width of the blit
  1244.     YSize        = the height of the blit
  1245.     Minterm      = the boolean blitter function, where SRCB is associated
  1246.                    with the Src RastPort and SRCC goes to the Dest RastPort
  1247.  
  1248.    RESULT
  1249.  
  1250.    BUGS
  1251.  
  1252.    SEE ALSO
  1253.     BltBitMap();
  1254.  
  1255. graphics.library/CloseFont                         graphics.library/CloseFont
  1256.  
  1257.    NAME
  1258.     CloseFont -- Release a pointer to a system font.
  1259.  
  1260.    SYNOPSIS
  1261.     CloseFont(font)
  1262.               A1
  1263.  
  1264.     void CloseFont(struct TextFont *);
  1265.  
  1266.    FUNCTION
  1267.     This function indicates that the font specified is no longer
  1268.     in use.  It is used to close a font opened by OpenFont, so
  1269.     that fonts that are no longer in use do not consume system
  1270.     resources.
  1271.     
  1272.    INPUTS
  1273.     font -    a font pointer as returned by OpenFont() or OpenDiskFont()
  1274.  
  1275.    RESULT
  1276.  
  1277.    BUGS
  1278.  
  1279.    SEE ALSO
  1280.     OpenFont()  diskfont.library/OpenDiskFont  graphics/text.h
  1281.  
  1282. graphics.library/CloseMonitor                   graphics.library/CloseMonitor
  1283.  
  1284.    NAME
  1285.        CloseMonitor -- close a MonitorSpec (V36)
  1286.  
  1287.    SYNOPSIS
  1288.        error = CloseMonitor( monitor_spec )
  1289.        d0                    a0
  1290.  
  1291.        LONG CloseMonitor( struct MonitorSpec * );
  1292.  
  1293.    FUNCTION
  1294.        Relinquish access to a MonitorSpec.
  1295.  
  1296.    INPUTS
  1297.        monitor_spec - a pointer to a MonitorSpec opened via OpenMonitor()
  1298.  
  1299.    RESULTS
  1300.        error - FALSE if MonitorSpec closed uneventfully.
  1301.                TRUE if MonitorSpec could not be closed.
  1302.  
  1303.    BUGS
  1304.  
  1305.    SEE ALSO
  1306.        OpenMonitor()
  1307.  
  1308. graphics.library/CMOVE                                 graphics.library/CMOVE
  1309.  
  1310.    NAME
  1311.     CMOVE -- append copper move instruction to user copper list.
  1312.  
  1313.    SYNOPSIS
  1314.     CMOVE( c , a , v )
  1315.  
  1316.     CMove( c , a , v )
  1317.           a1  d0  d1
  1318.     CBump( c )
  1319.           a1
  1320.  
  1321.     void CMove( struct UCopList *, void *, WORD );
  1322.  
  1323.    FUNCTION
  1324.     Add instruction to move value v to hardware register a.
  1325.  
  1326.    INPUTS
  1327.     c - pointer to UCopList structure
  1328.     a - hardware register
  1329.     v - 16 bit value to be written
  1330.  
  1331.    RESULTS
  1332.     This is actually a macro that calls CMove(c,&a,v)
  1333.     and then calls CBump(c) to bump the local pointer
  1334.     to the next instruction. Watch out for macro side affects.
  1335.  
  1336.    BUGS
  1337.     
  1338.    SEE ALSO
  1339.     CINIT CWAIT CEND graphics/copper.h
  1340.  
  1341. graphics.library/CopySBitMap                     graphics.library/CopySBitMap
  1342.  
  1343.    NAME
  1344.        CopySBitMap --    Syncronize Layer window with contents of
  1345.                         Super BitMap
  1346.  
  1347.    SYNOPSIS
  1348.        CopySBitMap( layer )
  1349.                      a0
  1350.  
  1351.     void CopySBitMap(struct Layer *);
  1352.  
  1353.    FUNCTION
  1354.     This is the inverse of SyncSBitMap.
  1355.        Copy all bits from SuperBitMap to Layer bounds.
  1356.     This is used for those functions that do not
  1357.     want to deal with the ClipRect structures but do want
  1358.     to be able to work with a SuperBitMap Layer.
  1359.  
  1360.    INPUTS
  1361.     layer - pointer to a SuperBitMap Layer
  1362.         The Layer must already be locked by the caller.
  1363.  
  1364.    BUGS
  1365.  
  1366.    SEE ALSO
  1367.     LockLayerRom() SyncSBitMap()
  1368.  
  1369. graphics.library/CWAIT                                 graphics.library/CWAIT
  1370.  
  1371.    NAME
  1372.     CWAIT -- Append copper wait instruction to user copper list.
  1373.  
  1374.    SYNOPSIS
  1375.     CWAIT( c , v , h )
  1376.  
  1377.     CWait( c , v , h )
  1378.            a1  d0  d1
  1379.     CBump( c )
  1380.           a1
  1381.  
  1382.     void CWait( struct UCopList *, WORD, WORD)
  1383.  
  1384.    FUNCTION
  1385.     Add instruction to wait for vertical beam position v and
  1386.     horizontal position h to this intermediate copper list.
  1387.  
  1388.    INPUTS
  1389.     c - pointer to UCopList structure
  1390.     v - vertical beam position (relative to top of viewport)
  1391.     h - horizontal beam position
  1392.  
  1393.    RESULTS
  1394.     this is actually a macro that calls CWait(c,v,h)
  1395.     and then calls CBump(c) to bump the local pointer
  1396.     to the next instruction.
  1397.  
  1398.    BUGS
  1399.     User waiting for horizontal values of greater than 222 decimal 
  1400.     is illegal.
  1401.  
  1402.    SEE ALSO
  1403.      CINIT CMOVE CEND graphics/copper.h
  1404.  
  1405. graphics.library/DisownBlitter                 graphics.library/DisownBlitter
  1406.  
  1407.    NAME
  1408.        DisownBlitter - return blitter to free state.
  1409.  
  1410.  
  1411.    SYNOPSIS
  1412.        DisownBlitter()
  1413.  
  1414.     void DisownBlitter( void );
  1415.  
  1416.    FUNCTION
  1417.     Free blitter up for use by other blitter users.
  1418.  
  1419.    INPUTS
  1420.  
  1421.    RETURNS
  1422.  
  1423.    SEE ALSO
  1424.        OwnBlitter()
  1425.  
  1426.  
  1427. graphics.library/DisposeRegion                 graphics.library/DisposeRegion
  1428.  
  1429.    NAME
  1430.        DisposeRegion -- Return all space for this region to free
  1431.              memory pool.
  1432.  
  1433.    SYNOPSIS
  1434.        DisposeRegion(region)
  1435.                       a0 
  1436.  
  1437.     void DisposeRegion( struct Region * );
  1438.  
  1439.    FUNCTION
  1440.        Free all RegionRectangles for this Region then
  1441.     free the Region itself.
  1442.  
  1443.    INPUTS
  1444.        region - pointer to Region structure
  1445.  
  1446.    BUGS
  1447.  
  1448.    SEE ALSO
  1449.     NewRegion() graphics/regions.h
  1450.  
  1451. graphics.library/DoCollision                     graphics.library/DoCollision
  1452.  
  1453.    NAME
  1454.     DoCollision -- Test every gel in gel list for collisions.
  1455.  
  1456.    SYNOPSIS
  1457.     DoCollision(rp)
  1458.                 A1
  1459.  
  1460.     void DoCollision(struct RastPort *);
  1461.  
  1462.    FUNCTION
  1463.     Tests each gel in gel list for boundary and gel-to-gel collisions.
  1464.     On detecting one of these collisions, the appropriate collision-
  1465.     handling routine is called. See the documentation for a thorough
  1466.     description of which collision routine is called. This routine
  1467.     expects to find the gel list correctly sorted in Y,X order.
  1468.     The system routine SortGList performs this function for the user.
  1469.  
  1470.    INPUTS
  1471.     rp = pointer to a RastPort
  1472.  
  1473.    RESULT
  1474.  
  1475.    BUGS
  1476.  
  1477.    SEE ALSO
  1478.     InitGels()  SortGList()  graphics/gels.h  graphics/gels.h
  1479.  
  1480. graphics.library/Draw                                   graphics.library/Draw
  1481.  
  1482.    NAME
  1483.        Draw -- Draw a line between the current pen position
  1484.                        and the new x,y position.
  1485.  
  1486.    SYNOPSIS
  1487.        Draw( rp,   x,     y)
  1488.              a1  d0:16  d1:16
  1489.  
  1490.     void Draw( struct RastPort *, SHORT, SHORT);
  1491.  
  1492.    FUNCTION
  1493.        Draw a line from the current pen position to (x,y).
  1494.  
  1495.    INPUTS
  1496.  
  1497.     rp - pointer to the destination RastPort
  1498.     x,y - coordinates of where in the RastPort to end the line.
  1499.  
  1500.    BUGS
  1501.  
  1502.    SEE ALSO
  1503.     Move() graphics/rastport.h
  1504.  
  1505. graphics.library/DrawEllipse                     graphics.library/DrawEllipse
  1506.  
  1507.     NAME
  1508.     DrawEllipse -- Draw an ellipse centered at cx,cy with vertical
  1509.        and horizontal radii of a,b respectively.
  1510.  
  1511.     SYNOPSIS
  1512.     DrawEllipse( rp, cx, cy, a, b )
  1513.              a1  d0  d1  d2 d3 
  1514.  
  1515.     void DrawEllipse( struct RastPort *, SHORT, SHORT, SHORT, SHORT);
  1516.  
  1517.     FUNCTION
  1518.        Creates an elliptical outline within the rectangular region
  1519.     specified by the parameters, using the current foreground pen color.
  1520.  
  1521.     INPUTS
  1522.     rp - pointer to the RastPort into which the ellipse will be drawn.
  1523.     cx - x coordinate of the centerpoint relative to the rastport.
  1524.     cy - y coordinate of the centerpoint relative to the rastport.
  1525.     a - the horizontal radius of the ellipse (note: a must be > 0)
  1526.     b - the vertical radius of the ellipse (note: b must be > 0)
  1527.  
  1528.     BUGS
  1529.  
  1530.     NOTES
  1531.     this routine does not clip the ellipse to a non-layered rastport.
  1532.  
  1533.     SEE ALSO
  1534.     DrawCircle(), graphics/rastport.h
  1535.  
  1536. graphics.library/DrawGList                         graphics.library/DrawGList
  1537.  
  1538.    NAME
  1539.     DrawGList -- Process the gel list, queueing VSprites, drawing Bobs.
  1540.  
  1541.    SYNOPSIS
  1542.     DrawGList(rp, vp)
  1543.               A1  A0
  1544.  
  1545.     void DrawGList(struct RastPort *, struct ViewPort *);
  1546.  
  1547.    FUNCTION
  1548.     Performs one pass of the current gel list.
  1549.        - If nextLine and lastColor are defined, these are
  1550.          initialized for each gel.
  1551.           - If it's a VSprite, build it into the copper list.
  1552.           - If it's a Bob, draw it into the current raster.
  1553.           - Copy the save values into the "old" variables,
  1554.          double-buffering if required.
  1555.  
  1556.    INPUTS
  1557.     rp = pointer to the RastPort where Bobs will be drawn
  1558.     vp = pointer to the ViewPort for which VSprites will be created
  1559.  
  1560.    RESULT
  1561.  
  1562.    BUGS
  1563.     MUSTDRAW isn't implemented yet.
  1564.  
  1565.    SEE ALSO
  1566.     InitGels()  graphics/gels.h graphics/rastport.h  graphics/view.h
  1567.  
  1568. graphics.library/EraseRect                         graphics.library/EraseRect
  1569.  
  1570.    NAME
  1571.  
  1572.        EraseRect -- Fill a defined rectangular area using the current
  1573.                  BackFill hook. (V36)
  1574.  
  1575.    SYNOPSIS
  1576.     EraseRect( rp, xmin, ymin, xmax, ymax)
  1577.                   a1  d0:16 d1:16 d2:16 d3:16
  1578.  
  1579.     void EraseRect(struct RastPort *, SHORT, SHORT, SHORT, SHORT);
  1580.  
  1581.    FUNCTION
  1582.     Fill the rectangular region specified by the parameters with the
  1583.     BackFill hook. If non-layered, the rectangular region specified by
  1584.     the parameters is cleared. If layered the Layer->BackFill Hook is used.
  1585.  
  1586.    INPUTS
  1587.     rp    - pointer to a RastPort structure
  1588.     xmin    - x coordinate of the upper left corner of the region to fill.
  1589.     ymin    - y coordinate of the upper left corner of the region to fill.
  1590.     xmax    - x coordinate of the lower right corner of the region to fill.
  1591.     ymax    - y coordinate of the lower right corner of the region to fill.
  1592.  
  1593.    BUGS
  1594.  
  1595.    NOTES
  1596.     The following relation MUST be true:
  1597.     (xmax >= xmin) and (ymax >= ymin)
  1598.  
  1599.    SEE ALSO
  1600.     graphics/rastport.h graphics/clip.h
  1601.  
  1602. graphics.library/ExtendFont                       graphics.library/ExtendFont
  1603.  
  1604.    NAME
  1605.     ExtendFont -- ensure tf_Extension has been built for a font (V36)
  1606.  
  1607.    SYNOPSIS
  1608.     success = ExtendFont(font, fontTags)
  1609.     D0                   A0    A1
  1610.  
  1611.     ULONG ExtendFont(struct TextFont *, struct TagItem *);
  1612.  
  1613.    SEE ALSO
  1614.     graphics/text.h
  1615.  
  1616. graphics.library/FindDisplayInfo             graphics.library/FindDisplayInfo
  1617.  
  1618.    NAME
  1619.     FindDisplayInfo -- search for a record identified by a specific key (V36)
  1620.  
  1621.    SYNOPSIS
  1622.     handle = FindDisplayInfo(ID)
  1623.     D0                       D0
  1624.  
  1625.     DisplayInfoHandle FindDisplayInfo(ULONG);
  1626.  
  1627.    FUNCTION
  1628.     Given a 32-bit Mode Key, return a handle to a valid DisplayInfoRecord
  1629.     found in the graphics database.  Using this handle, you can obtain
  1630.     information about this Mode, including its default dimensions,
  1631.     properties, and whether it is currently available for use.
  1632.  
  1633.    INPUTS
  1634.     ID     - unsigned long identifier
  1635.  
  1636.    RESULT
  1637.     handle - handle to a displayinfo Record with that key
  1638.              or NULL if no match.
  1639.  
  1640.    BUGS
  1641.  
  1642.    SEE ALSO
  1643.     graphics/displayinfo.h
  1644.  
  1645. graphics.library/Flood                                 graphics.library/Flood
  1646.  
  1647.    NAME
  1648.     Flood -- Flood rastport like areafill.
  1649.  
  1650.    SYNOPSIS
  1651.     error = Flood( rp, mode, x, y)
  1652.         d0            a1   d2  d0  d1
  1653.  
  1654.     BOOL Flood(struct RastPort *, ULONG, SHORT, SHORT);
  1655.  
  1656.    FUNCTION
  1657.     Search the BitMap starting at (x,y).
  1658.     Fill all adjacent pixels if they are:
  1659.         Mode 0: not the same color as AOLPen
  1660.         Mode 1: the same color as the pixel at (x,y)
  1661.  
  1662.     When actually doing the fill use the modes that apply to
  1663.     standard areafill routine such as drawmodes and patterns.
  1664.  
  1665.    INPUTS
  1666.     rp - pointer to RastPort
  1667.     (x,y) - coordinate in BitMap to start the flood fill at.
  1668.     mode -  0 fill all adjacent pixels searching for border.
  1669.         1 fill all adjacent pixels that have same pen number
  1670.         as the one at (x,y).
  1671.  
  1672.    NOTES
  1673.     In order to use Flood, the destination RastPort must 
  1674.     have a valid TmpRas raster whose size is as large as 
  1675.     that of the RastPort.
  1676.  
  1677.    SEE ALSO
  1678.     AreaEnd() InitTmpRas() graphics/rastport.h
  1679.  
  1680. graphics.library/FontExtent                       graphics.library/FontExtent
  1681.  
  1682.    NAME
  1683.     FontExtent -- get the font attributes of the current font (V36)
  1684.  
  1685.    SYNOPSIS
  1686.     FontExtent(font, fontExtent)
  1687.                A0    A1
  1688.  
  1689.     void FontExtent(struct TextFont *, struct TextExtent *);
  1690.  
  1691.    FUNCTION
  1692.     This function fills the text extent structure with a bounding
  1693.     (i.e. maximum) extent for the characters in the specified font.
  1694.  
  1695.    INPUTS
  1696.     font       - the TextFont from which the font metrics are extracted.
  1697.     fontExtent - the TextExtent structure to be filled.
  1698.  
  1699.    RESULT
  1700.     fontExtent is filled.
  1701.  
  1702.    NOTES
  1703.     The TextFont, not the RastPort, is specified -- unlike
  1704.     TextExtent(), effect of algorithmic enhancements is not
  1705.     included, nor does te_Width include any effect of
  1706.     rp_TxSpacing.  The returned te_Width will be negative only
  1707.     when FPF_REVPATH is set in the tf_Flags of the font -- the
  1708.     effect of left-moving characters is ignored for the width of
  1709.     a normal font, and the effect of right-moving characters is
  1710.     ignored if a REVPATH font.  These characters will, however,
  1711.     be reflected in the bounding extent.
  1712.  
  1713.    SEE ALSO
  1714.     TextExtent()  graphics/text.h
  1715.  
  1716. graphics.library/FreeColorMap                   graphics.library/FreeColorMap
  1717.  
  1718.    NAME
  1719.        FreeColorMap -- Free the ColorMap structure and return memory
  1720.                         to free memory pool.
  1721.  
  1722.    SYNOPSIS
  1723.        FreeColorMap( colormap )
  1724.                        a0
  1725.  
  1726.     void FreeColorMap(struct ColorMap *);
  1727.  
  1728.    FUNCTION
  1729.     Return the memory to the free memory pool that was allocated
  1730.     with GetColorMap.
  1731.  
  1732.    INPUTS
  1733.     colormap - pointer to ColorMap allocated with GetColorMap
  1734.  
  1735.    RESULT
  1736.     The space is made available for others to use.
  1737.  
  1738.    BUGS
  1739.  
  1740.    SEE ALSO
  1741.        SetRGB4() GetColorMap() graphics/view.h
  1742. graphics.library/FreeCopList                     graphics.library/FreeCopList
  1743.  
  1744.    NAME
  1745.     FreeCopList -- deallocate intermediate copper list
  1746.  
  1747.    SYNOPSIS
  1748.        FreeCopList(coplist)
  1749.               a0
  1750.  
  1751.     void FreeCopList( struct CopList *);
  1752.  
  1753.    FUNCTION
  1754.     Deallocate all memory associated with this copper list.
  1755.  
  1756.    INPUTS
  1757.        coplist    - pointer to structure CopList
  1758.  
  1759.    RESULTS
  1760.     memory returned to memory manager
  1761.  
  1762.    BUGS
  1763.  
  1764.    SEE ALSO
  1765.     graphics/copper.h
  1766.  
  1767. graphics.library/FreeCprList                     graphics.library/FreeCprList
  1768.  
  1769.    NAME
  1770.        FreeCprList -- deallocate hardware copper list
  1771.  
  1772.    SYNOPSIS
  1773.        FreeCprList(cprlist)
  1774.               a0
  1775.  
  1776.     void FreeCprList(struct cprlist *);
  1777.  
  1778.    FUNCTION
  1779.        return cprlist to free memory pool
  1780.  
  1781.    INPUTS
  1782.        cprlist - pointer to cprlist structure
  1783.  
  1784.    RESULTS
  1785.     memory returned and made available to other tasks
  1786.  
  1787.    BUGS
  1788.  
  1789.    SEE ALSO
  1790.     graphics/copper.h
  1791.  
  1792. graphics.library/FreeGBuffers                   graphics.library/FreeGBuffers
  1793.  
  1794.    NAME
  1795.     FreeGBuffers -- Deallocate memory obtained by GetGBufers.
  1796.  
  1797.    SYNOPSIS
  1798.     FreeGBuffers(anOb, rp, db)
  1799.                  A0    A1  D0
  1800.  
  1801.     void FreeGBuffers(struct AnimOb *, struct RastPort *, BOOL);
  1802.  
  1803.    FUNCTION
  1804.     For each sequence of each component of the AnimOb,
  1805.     deallocate memory for:
  1806.         SaveBuffer
  1807.         BorderLine
  1808.         CollMask and ImageShadow (point to same buffer)
  1809.         if db is set (user had used double-buffering) deallocate:
  1810.             DBufPacket
  1811.             BufBuffer
  1812.  
  1813.    INPUTS
  1814.     anOb = pointer to the AnimOb structure
  1815.     rp   = pointer to the current RastPort
  1816.     db   = double-buffer indicator (set TRUE for double-buffering)
  1817.  
  1818.    RESULT
  1819.  
  1820.    BUGS
  1821.  
  1822.    SEE ALSO
  1823.     GetGBuffers()  graphics/gels.h  graphics/rastport.h
  1824.  
  1825. graphics.library/FreeRaster                       graphics.library/FreeRaster
  1826.  
  1827.    NAME
  1828.        FreeRaster -- Release an allocated area to the system free memory pool
  1829. .
  1830.  
  1831.  
  1832.    SYNOPSIS
  1833.        FreeRaster( p, width, height)
  1834.            a0   d0:16  d1:16
  1835.  
  1836.     void FreeRaster( PLANEPTR, USHORT, USHORT);
  1837.  
  1838.    FUNCTION
  1839.     Return the memory associated with this PLANEPTR of size
  1840.     width and height to the MEMF_CHIP memory pool.
  1841.  
  1842.    INPUTS
  1843.        p  =  a pointer to a memory space  returned  as  a
  1844.              result of a call to AllocRaster.
  1845.  
  1846.     width - the width in bits of the bitplane.
  1847.     height - number of rows in bitplane.
  1848.  
  1849.    BUGS
  1850.  
  1851.    NOTES
  1852.        Width and height should be the same values with which you
  1853.        called AllocRaster in the first place.
  1854.  
  1855.    SEE ALSO
  1856.     AllocRaster() graphics/gfx.h
  1857.  
  1858. graphics.library/FreeSprite                       graphics.library/FreeSprite
  1859.  
  1860.    NAME
  1861.        FreeSprite -- Return sprite for use by others and virtual
  1862.                       sprite machine.
  1863.  
  1864.    SYNOPSIS
  1865.        FreeSprite( pick )
  1866.                     d0
  1867.  
  1868.     void FreeSprite( WORD );
  1869.  
  1870.    FUNCTION
  1871.     Mark sprite as available for others to use.
  1872.        These sprite routines are provided to ease sharing of sprite
  1873.     hardware and to handle simple cases of sprite usage and
  1874.     movement.  It is assumed the programs that use these routines
  1875.     do want to be good citizens in their hearts. ie: they will
  1876.     not FreeSprite unless they actually own the sprite.
  1877.     The Virtual Sprite machine may ignore the simple sprite machine.
  1878.  
  1879.    INPUTS
  1880.        pick - number in range of 0-7
  1881.  
  1882.    RESULTS
  1883.     sprite made available for subsequent callers of GetSprite
  1884.     as well as use by Virtual Sprite Machine.
  1885.  
  1886.    BUGS
  1887.  
  1888.    SEE ALSO
  1889.        GetSprite() ChangeSprite() MoveSprite() graphics/sprite.h
  1890.  
  1891. graphics.library/FreeVPortCopLists         graphics.library/FreeVPortCopLists
  1892.  
  1893.    NAME
  1894.        FreeVPortCopLists -- deallocate all intermediate copper lists and
  1895.        their headers from a viewport
  1896.  
  1897.    SYNOPSIS
  1898.        FreeVPortCopLists(vp)
  1899.                          a0
  1900.  
  1901.     void FreeVPortCopLists(struct ViewPort *);
  1902.  
  1903.    FUNCTION
  1904.        Search display, color, sprite, and user copper
  1905.        lists and call FreeMem() to deallocate them from memory
  1906.  
  1907.    INPUTS
  1908.        vp - pointer to ViewPort structure
  1909.  
  1910.    RESULTS
  1911.        The memory allocated to the various copper lists will be returned
  1912.     to the system's free memory pool, and the following fields in
  1913.     the viewport structure will be set to NULL:
  1914.         
  1915.         DspIns, Sprins, ClrIns, UCopIns
  1916.  
  1917.    BUGS
  1918.        none known
  1919.  
  1920.    SEE ALSO
  1921.     graphics/view.h
  1922.  
  1923. graphics.library/GetColorMap                     graphics.library/GetColorMap
  1924.  
  1925.    NAME
  1926.        GetColorMap -- allocate and initialize Colormap
  1927.  
  1928.  
  1929.    SYNOPSIS
  1930.        cm = GetColorMap( entries )
  1931.        d0            d0
  1932.  
  1933.     struct ColorMap *GetColorMap( ULONG);
  1934.  
  1935.    FUNCTION
  1936.        Allocates, initializes and returns a pointer to a ColorMap
  1937.        data structure, later enabling calls to SetRGB4 
  1938.        and LoadRGB4 to load colors for a view port. The ColorTable
  1939.     pointer in the ColorMap structure points to a hardware
  1940.     specific colormap data structure. You should not count on
  1941.     it being anything you can understand. Use GetRGB4() to
  1942.     query it or SetRGB4CM to set it directly.
  1943.  
  1944.    INPUTS
  1945.     entries - number of entries for this colormap 
  1946.  
  1947.     RESULT
  1948.     The pointer value returned by this routine, if nonzero,
  1949.        may be stored into the ViewPort.ColorMap pointer.
  1950.        If a value of 0 is returned, the system was unable
  1951.        to allocate enough memory space for the required
  1952.        data structures.
  1953.  
  1954.    BUGS
  1955.  
  1956.    SEE ALSO
  1957.        SetRGB4() FreeColorMap()
  1958. graphics.library/GetDisplayInfoData       graphics.library/GetDisplayInfoData
  1959.  
  1960.    NAME
  1961.     GetDisplayInfoData -- query DisplayInfo Record parameters (V36)
  1962.  
  1963.    SYNOPSIS
  1964.     result = GetDisplayInfoData(handle, buf, size, tagID, [ID])
  1965.     D0                          A0      A1   D0    D1     [D2]
  1966.  
  1967.     ULONG GetDisplayInfoData(DisplayInfoHandle, UBYTE *, ULONG, ULONG, ULONG);
  1968.  
  1969.    FUNCTION
  1970.     GetDisplayInfoData() fills a buffer with data meaningful to the
  1971.     DisplayInfoRecord pointed at by your valid handle. The data type
  1972.     that you are interested in is indicated by a tagID for that chunk.
  1973.     The types of tagged information that may be available include:
  1974.  
  1975.     DTAG_DISP: (DisplayInfo)   - properties and availability information.
  1976.     DTAG_DIMS: (DimensionInfo) - default dimensions and overscan info.
  1977.     DTAG_MNTR: (MonitorInfo)   - type, position, scanrate, and compatibility
  1978.     DTAG_NAME: (NameInfo)      - a user friendly way to refer to this mode.
  1979.  
  1980.    INPUTS
  1981.     handle - displayinfo handle
  1982.     buf    - pointer to destination buffer
  1983.     size   - buffer size in bytes
  1984.     tagID  - data chunk type
  1985.     ID     - displayinfo identifier, optionally used if handle is NULL
  1986.  
  1987.    RESULT
  1988.     result - if positive, number of bytes actually transferred
  1989.              if zero, no information for ID was available
  1990.  
  1991.    BUGS
  1992.  
  1993.    SEE ALSO
  1994.     FindDisplayInfo(), NextDisplayInfo()
  1995.     graphics/displayinfo.h
  1996.  
  1997. graphics.library/GetGBuffers                     graphics.library/GetGBuffers
  1998.  
  1999.    NAME
  2000.     GetGBuffers -- Attempt to allocate ALL buffers of an entire AnimOb.
  2001.  
  2002.    SYNOPSIS
  2003.     status = GetGBuffers(anOb, rp, db)
  2004.     D0                   A0    A1  D0
  2005.  
  2006.     BOOL GetGBuffers(struct AnimOb *, struct RastPort *, BOOL);
  2007.  
  2008.    FUNCTION
  2009.     For each sequence of each component of the AnimOb, allocate memory for:
  2010.         SaveBuffer
  2011.         BorderLine
  2012.         CollMask and ImageShadow (point to same buffer)
  2013.         if db is set TRUE (user wants double-buffering) allocate:
  2014.             DBufPacket
  2015.             BufBuffer
  2016.  
  2017.    INPUTS
  2018.     anOb = pointer to the AnimOb structure
  2019.     rp   = pointer to the current RastPort
  2020.     db   = double-buffer indicator (set TRUE for double-buffering)
  2021.  
  2022.    RESULT
  2023.     status = TRUE if the memory allocations were all successful, else FALSE
  2024.  
  2025.    BUGS
  2026.     If any of the memory allocations fail it does not free the partial
  2027.     allocations that did succeed.
  2028.  
  2029.    SEE ALSO
  2030.     FreeGBuffers() graphics/gels.h
  2031.  
  2032. graphics.library/GetRGB4                             graphics.library/GetRGB4
  2033.  
  2034.    NAME
  2035.        GetRGB4 -- Inquire value of entry in ColorMap.
  2036.  
  2037.    SYNOPSIS
  2038.        value = GetRGB4( colormap, entry )
  2039.           d0              a0       d0
  2040.  
  2041.     ULONG GetRGB4(struct ColorMap *, LONG);
  2042.  
  2043.    FUNCTION
  2044.     Read and format a value from the ColorMap.
  2045.  
  2046.    INPUTS
  2047.     colormap - pointer to ColorMap structure
  2048.     entry - index into colormap
  2049.  
  2050.    RESULT
  2051.     returns -1 if no valid entry
  2052.     return UWORD RGB value 4 bits per gun right justified
  2053.  
  2054.    NOTE
  2055.     Intuition's DisplayBeep() changes color 0. Reading Color 0 during a
  2056.     DisplayBeep() will lead to incorrect results.
  2057.  
  2058.    BUGS
  2059.  
  2060.    SEE ALSO
  2061.        SetRGB4() LoadRGB4() GetColorMap() FreeColorMap() graphics/view.h
  2062. graphics.library/GetSprite                         graphics.library/GetSprite
  2063.  
  2064.    NAME
  2065.     GetSprite -- Attempt to get a sprite for the simple sprite
  2066.                      manager.
  2067.  
  2068.    SYNOPSIS
  2069.     Sprite_Number = GetSprite( sprite, pick )
  2070.         d0                a0      d0
  2071.  
  2072.     SHORT GetSprite( struct SimpleSprite *, SHORT );
  2073.  
  2074.    FUNCTION
  2075.     Attempt to allocate one of the eight sprites for private use
  2076.     with the simple sprite manager. This must be done before using
  2077.     further calls to the simple sprite machine. If the programmer
  2078.     wants to use 15 color sprites, they must allocate both sprites
  2079.     and set the 'SPRITE_ATTACHED' bit in the odd sprite's posctldata
  2080.     array. 
  2081.  
  2082.    INPUTS
  2083.     sprite - ptr to programmers SimpleSprite structure.
  2084.     pick - number in the range of 0-7 or
  2085.       -1 if programmer just wants the next one.
  2086.  
  2087.    RESULTS
  2088.     If pick is 0-7 attempt to allocate the sprite. If the sprite
  2089.     is already allocated then return -1.
  2090.     If pick -1 allocate the next sprite starting search at 0.
  2091.     If no sprites are available return -1 and fill -1 in num entry
  2092.     of SimpleSprite structure.
  2093.     If the sprite is available for allocation, mark it allocated
  2094.     and fill in the 'num' entry of the SimpleSprite structure.
  2095.     If successful return the sprite number.
  2096.  
  2097.    BUGS
  2098.  
  2099.    SEE ALSO
  2100.     FreeSprite() ChangeSprite() MoveSprite() GetSprite() graphics/sprite.h
  2101.  
  2102. graphics.library/GetVPModeID                     graphics.library/GetVPModeID
  2103.  
  2104.    NAME
  2105.     GetVPModeID -- get the 32 bit DisplayID from a ViewPort. (V36)
  2106.  
  2107.    SYNOPSIS
  2108.     modeID =  GetVPModeID( vp )
  2109.     d0               a0
  2110.  
  2111.     ULONG GetVPModeID( struct ViewPort *);
  2112.  
  2113.    FUNCTION
  2114.     returns the normal display modeID, if one is currently  associated 
  2115.     with this ViewPort.
  2116.  
  2117.    INPUTS
  2118.     vp -- pointer to a ViewPort structure.
  2119.  
  2120.    RESULT
  2121.     
  2122.     modeID -- a 32 bit DisplayInfoRecord identifier associated with 
  2123.           this ViewPort, or INVALID_ID.
  2124.  
  2125.    NOTES
  2126.     Test the return value of this function against INVALID_ID, not NULL.
  2127.     (INVALID_ID is defined in graphics/displayinfo.h).
  2128.  
  2129.    BUGS
  2130.  
  2131.    SEE ALSO
  2132.     graphics/displayinfo.h, ModeNotAvailable()
  2133.  
  2134. graphics.library/GfxAssociate                   graphics.library/GfxAssociate
  2135.  
  2136.    NAME
  2137.     GfxAssociate -- associate a graphics extended node with a given pointer
  2138.                     (V36)
  2139.  
  2140.    SYNOPSIS
  2141.        GfxAssociate(pointer, node);
  2142.                     A0       A1
  2143.  
  2144.     void GfxAssociate(VOID *, struct ExtendedNode *);
  2145.  
  2146.    FUNCTION
  2147.     Associate a special graphics extended data structure (each of which
  2148.     begins with an ExtendedNode structure)  with another structure via
  2149.     the other structure's pointer. Later, when you call GfxLookUp()
  2150.     with the other structure's pointer you may retrieve a pointer
  2151.     to this special graphics extended data structure, if it is
  2152.     available.
  2153.  
  2154.    INPUTS
  2155.     pointer = a pointer to a data structure.
  2156.     node = an ExtendedNode structure to associate with the pointer
  2157.     
  2158.    RESULT
  2159.     an association is created between the pointer and the node such
  2160.     that given the pointer the node can be retrieved via GfxLookUp().
  2161.  
  2162.    BUGS
  2163.  
  2164.    SEE ALSO
  2165.     graphics/gfxnodes.h GfxNew() GfxFree() GfxLookUp()
  2166.  
  2167. graphics.library/GfxFree                             graphics.library/GfxFree
  2168.  
  2169.    NAME
  2170.        GfxFree -- free a graphics extended data structure (V36)
  2171.  
  2172.    SYNOPSIS
  2173.        GfxFree( node );
  2174.                  a0
  2175.     
  2176.     void GfxFree(struct ExtendedNode *);
  2177.  
  2178.    FUNCTION
  2179.     Free a special graphics extended data structure (each of which
  2180.     begins with an ExtendedNode structure).
  2181.  
  2182.    INPUTS
  2183.     node = pointer to a graphics extended data structure obtained via
  2184.            GfxNew().
  2185.  
  2186.    RESULT
  2187.     the node is deallocated from memory. graphics will dissassociate
  2188.     this special graphics extended node from any associated data
  2189.     structures, if necessary, before freeing it (see GfxAssociate()).
  2190.  
  2191.    BUGS
  2192.     an Alert() will be called if you attempt to free any structure 
  2193.     other than a graphics extended data strucure obtained via GfxFree().
  2194.  
  2195.    SEE ALSO
  2196.     graphics/gfxnodes.h GfxNew() GfxAssociate() GfxLookUp()
  2197.  
  2198. graphics.library/GfxLookUP                         graphics.library/GfxLookUP
  2199.  
  2200.    NAME
  2201.         GfxLookUp -- find a graphics extended node associated with a 
  2202.              given pointer (V36)
  2203.  
  2204.    SYNOPSIS
  2205.        result = GfxLookUp( pointer );
  2206.        d0            a0
  2207.  
  2208.     struct ExtendedNode *GfxLookUp( void *);
  2209.  
  2210.    FUNCTION
  2211.     Finds a special graphics extended data structure (if any) associated
  2212.     with the pointer to a data structure (eg: ViewExtra associated with
  2213.     a View structure).
  2214.  
  2215.    INPUTS
  2216.     pointer = a pointer to a data structure which may have an 
  2217.           ExtendedNode associated with it (typically a View ).
  2218.  
  2219.    RESULT
  2220.     result = a pointer to the ExtendedNode that has previously been
  2221.          associated with the pointer.
  2222.         
  2223.    BUGS
  2224.  
  2225.    SEE ALSO
  2226.     graphics/gfxnodes.h GfxNew() GfxFree() GfxAssociate()
  2227.  
  2228. graphics.library/GfxNew                               graphics.library/GfxNew
  2229.  
  2230.    NAME
  2231.        GfxNew -- allocate a graphics extended data structure (V36)
  2232.  
  2233.    SYNOPSIS
  2234.      result = GfxNew( node_type );    
  2235.     d0         d0
  2236.  
  2237.     struct ExtendedNode *GfxNew( ULONG);
  2238.  
  2239.    FUNCTION
  2240.     Allocate a special graphics extended data structure (each of which
  2241.     begins with an ExtendedNode structure).  The type of structure to
  2242.     be allocated is specified by the node_type identifier.
  2243.  
  2244.    INPUTS
  2245.     node_type = which type of graphics extended data structure to allocate. 
  2246.             (see gfxnodes.h for identifier definitions.)
  2247.  
  2248.    RESULT
  2249.     result = a pointer to the allocated graphics node or NULL if the 
  2250.          allocation failed.
  2251.  
  2252.    BUGS
  2253.  
  2254.    SEE ALSO
  2255.     graphics/gfxnodes.h GfxFree() GfxAssociate() GfxLookUp()
  2256.  
  2257. graphics.library/InitArea                           graphics.library/InitArea
  2258.  
  2259.    NAME   
  2260.  
  2261.     InitArea -- Initialize vector collection matrix
  2262.  
  2263.    SYNOPSIS
  2264.  
  2265.        InitArea( areainfo, buffer, maxvectors )
  2266.             a0          a1      d0
  2267.  
  2268.     void InitArea(struct AreaInfo *, void *, SHORT);
  2269.     
  2270.    FUNCTION
  2271.     This function provides initialization for the vector collection matrix
  2272.     such that it has a size of (max vectors ).  The size of the region
  2273.     pointed to by buffer (short pointer) should be five (5) times as large
  2274.     as maxvectors. This size is in bytes.  Areafills done by using AreaMove,
  2275.     AreaDraw, and AreaEnd must have enough space allocated in this table to
  2276.     store all the points of the largest fill. AreaEllipse takes up two
  2277.     vectors for every call. If AreaMove/Draw/Ellipse detect too many
  2278.     vectors going into the buffer they will return -1.
  2279.  
  2280.    INPUTS
  2281.     areainfo - pointer to AreaInfo structure
  2282.     buffer - pointer to chunk of memory to collect vertices
  2283.     maxvectors - max number of vectors this buffer can hold
  2284.  
  2285.    RESULT
  2286.     Pointers are set up to begin storage of vectors done by
  2287.     AreaMove, AreaDraw, and AreaEllipse.
  2288.  
  2289.    BUGS
  2290.  
  2291.    SEE ALSO
  2292.     AreaEnd() AreaMove() AreaDraw() AreaEllipse() graphics/rastport.h
  2293.  
  2294. graphics.library/InitBitMap                       graphics.library/InitBitMap
  2295.  
  2296.    NAME   
  2297.  
  2298.        InitBitMap -- Initialize bit map structure with input values.
  2299.  
  2300.    SYNOPSIS
  2301.     InitBitMap( bm, depth, width, height )
  2302.             a0   d0     d1      d2
  2303.  
  2304.     void InitBitMap( struct BitMap *, BYTE, UWORD, UWORD );
  2305.     
  2306.    FUNCTION
  2307.     Initialize various elements in the BitMap structure to
  2308.     correctly reflect depth, width, and height.
  2309.     Must be used before use of BitMap in other graphics calls.
  2310.     The Planes[8] are not initialized and need to be set up
  2311.     by the caller.  The Planes table was put at the end of the
  2312.     structure so that it may be truncated to conserve space,
  2313.     as well as extended. All routines that use BitMap should
  2314.     only depend on existence of depth number of bitplanes.
  2315.     The Flagsh and pad fields are reserved for future use and
  2316.     should not be used by application programs.
  2317.  
  2318.    INPUTS
  2319.     bm - pointer to a BitMap structure (gfx.h)
  2320.     depth - number of bitplanes that this bitmap will have
  2321.     width - number of bits (columns) wide for this BitMap
  2322.     height- number of bits (rows) tall for this BitMap
  2323.  
  2324.    BUGS
  2325.  
  2326.    SEE ALSO
  2327.     graphics/gfx.h
  2328.  
  2329. graphics.library/InitGels                           graphics.library/InitGels
  2330.  
  2331.    NAME
  2332.     InitGels -- initialize a gel list; must be called before using gels.
  2333.  
  2334.    SYNOPSIS
  2335.     InitGels(head, tail, GInfo)
  2336.              A0    A1    A2
  2337.  
  2338.     void InitGels(struct VSprite *, struct VSprite *, struct GelsInfo *);
  2339.  
  2340.    FUNCTION
  2341.     Assigns the VSprites as the head and tail of the gel list in GfxBase.
  2342.     Links these two gels together as the keystones of the list.
  2343.     If the collHandler vector points to some memory array, sets
  2344.     the BORDERHIT vector to NULL.
  2345.  
  2346.    INPUTS
  2347.     head  = pointer to the VSprite structure to be used as the gel list head
  2348.     tail  = pointer to the VSprite structure to be used as the gel list tail
  2349.     GInfo = pointer to the GelsInfo structure to be initialized
  2350.  
  2351.    RESULT
  2352.  
  2353.    BUGS
  2354.  
  2355.    SEE ALSO
  2356.     graphics/gels.h  graphics/rastport.h
  2357.  
  2358. graphics.library/InitGMasks                       graphics.library/InitGMasks
  2359.  
  2360.    NAME
  2361.     InitGMasks -- Initialize all of the masks of an AnimOb.
  2362.  
  2363.    SYNOPSIS
  2364.     InitGMasks(anOb)
  2365.                A0
  2366.  
  2367.     void InitGMasks(struct AnimOb *);
  2368.  
  2369.    FUNCTION
  2370.     For every sequence of every component call InitMasks.
  2371.  
  2372.    INPUTS
  2373.     anOb = pointer to the AnimOb
  2374.  
  2375.    BUGS
  2376.  
  2377.    SEE ALSO
  2378.     InitMasks() graphics/gels.h
  2379.  
  2380. graphics.library/InitMasks                         graphics.library/InitMasks
  2381.  
  2382.    NAME
  2383.     InitMasks -- Initialize the BorderLine and CollMask masks of a VSprite.
  2384.  
  2385.    SYNOPSIS
  2386.     InitMasks(vs)
  2387.               A0
  2388.  
  2389.     void InitMasks(struct VSprite *);
  2390.  
  2391.    FUNCTION
  2392.     Creates the appropriate BorderLine and CollMask masks of the VSprite.
  2393.     Correctly detects if the VSprite is actually a Bob definition, handles
  2394.     the image data accordingly.
  2395.  
  2396.    INPUTS
  2397.     vs = pointer to the VSprite structure
  2398.  
  2399.    RESULT
  2400.  
  2401.    BUGS
  2402.  
  2403.    SEE ALSO
  2404.     InitGels()  graphics/gels.h
  2405.  
  2406. graphics.library/InitRastPort                   graphics.library/InitRastPort
  2407.  
  2408.    NAME
  2409.     InitRastPort -- Initialize raster port structure
  2410.  
  2411.    SYNOPSIS
  2412.        InitRastPort( rp )
  2413.               a1
  2414.  
  2415.     void InitRastPort(struct RastPort *);
  2416.  
  2417.     
  2418.    FUNCTION
  2419.        Initialize a RastPort structure to standard values.
  2420.  
  2421.    INPUTS
  2422.     rp    = pointer to a RastPort structure.
  2423.  
  2424.    RESULT
  2425.     all entries in RastPort get zeroed out, with the following exceptions:
  2426.  
  2427.         Mask, FgPen, AOLPen, and LinePtrn are set to -1.
  2428.         The DrawMode is set to JAM2
  2429.         The font is set to the standard system font
  2430.  
  2431.    NOTES
  2432.     The struct Rastport describes a control structure
  2433.        for a write-able raster. The RastPort structure
  2434.        describes how a complete single playfield display
  2435.        will be written into. A RastPort structure is
  2436.        referenced whenever any drawing or filling
  2437.        operations are to be performed on a section of
  2438.        memory.
  2439.  
  2440.        The section of memory which is being used in this
  2441.        way may or may not be presently a part of the
  2442.        current actual onscreen display memory. The name
  2443.        of the actual memory section which is linked to
  2444.        the RastPort is referred to here as a "raster" or
  2445.        as a bitmap.
  2446.  
  2447.        NOTE: Calling the routine InitRastPort only
  2448.        establishes various defaults. It does NOT
  2449.        establish where, in memory, the rasters are
  2450.        located. To do graphics with this RastPort the user
  2451.     must set up the BitMap pointer in the RastPort.
  2452.  
  2453.    BUGS
  2454.  
  2455.    SEE ALSO
  2456.        graphics/rastport.h
  2457.  
  2458. graphics.library/InitTmpRas                       graphics.library/InitTmpRas
  2459.  
  2460.    NAME
  2461.     InitTmpRas -- Initialize area of local memory for usage by
  2462.             areafill, floodfill, text.
  2463.  
  2464.    SYNOPSIS
  2465.        InitTmpRas(tmpras, buffer, size)
  2466.                       a0         a1     d0
  2467.  
  2468.     void InitTmpRas( struct TmpRas *, void *, ULONG );
  2469.  
  2470.    FUNCTION
  2471.     The area of memory pointed to by buffer is set up to be used
  2472.     by RastPort routines that may need to get some memory for
  2473.     intermediate operations in preparation to putting the graphics
  2474.     into the final BitMap.
  2475.     Tmpras is used to control the usage of buffer.
  2476.  
  2477.    INPUTS
  2478.     tmpras - pointer to a TmpRas structure to be linked into
  2479.         a RastPort
  2480.     buffer - pointer to a contguous piece of chip memory.
  2481.     size - size in bytes of buffer
  2482.  
  2483.    RESULT
  2484.     makes buffer available for users of RastPort
  2485.  
  2486.    BUGS
  2487.     Would be nice if RastPorts could share one TmpRas.
  2488.  
  2489.    SEE ALSO
  2490.     AreaEnd() Flood() Text() graphics/rastport.h
  2491.  
  2492. graphics.library/InitView                           graphics.library/InitView
  2493.  
  2494.    NAME   
  2495.    InitView - Initialize View structure.
  2496.  
  2497.    SYNOPSIS
  2498.     InitView( view )
  2499.            a1
  2500.  
  2501.     void InitView( struct View * );
  2502.  
  2503.    FUNCTION
  2504.     Initialize View structure to default values.
  2505.  
  2506.    INPUTS
  2507.     view - pointer to a View structure
  2508.  
  2509.    RESULT
  2510.     View structure set to all 0's. (1.0,1.1.1.2)
  2511.     Then values are put in DxOffset,DyOffset to properly position
  2512.     default display about .5 inches from top and left on monitor.
  2513.     InitView pays no attention to previous contents of view.
  2514.  
  2515.    BUGS
  2516.  
  2517.    SEE ALSO
  2518.      MakeVPort graphics/view.h
  2519.  
  2520. graphics.library/InitVPort                         graphics.library/InitVPort
  2521.  
  2522.    NAME   
  2523.     InitVPort - Initialize ViewPort structure.
  2524.  
  2525.    SYNOPSIS
  2526.     InitVPort( vp )
  2527.            a0
  2528.  
  2529.     void InitVPort( struct ViewPort * );
  2530.  
  2531.    FUNCTION
  2532.     Initialize ViewPort structure to default values.
  2533.  
  2534.    INPUTS
  2535.     vp - pointer to a ViewPort structure
  2536.  
  2537.    RESULT
  2538.     ViewPort structure set to all 0's. (1.0,1.1)
  2539.        New field added SpritePriorities, initialized to 0x24 (1.2)
  2540.  
  2541.    BUGS
  2542.  
  2543.    SEE ALSO
  2544.     MakeVPort() graphics/view.h
  2545.  
  2546. graphics.library/LoadRGB4                           graphics.library/LoadRGB4
  2547.  
  2548.    NAME
  2549.     LoadRGB4 -- Load RGB color values from table.
  2550.  
  2551.    SYNOPSIS
  2552.     LoadRGB4( vp, colors , count )
  2553.                  a0      a1     d0:16
  2554.  
  2555.     void LoadRGB4( struct ViewPort *, UWORD *, WORD);
  2556.  
  2557.    FUNCTION
  2558.        load the count words of the colormap from table starting at
  2559.     entry 0.
  2560.  
  2561.    INPUTS
  2562.     vp - pointer to ViewPort, whose colors you wish to change
  2563.     colors - pointer to table of RGB values set up as an array
  2564.              of USHORTS
  2565.              background--  0x0RGB
  2566.             color1      --  0x0RGB
  2567.             color2    --  0x0RGB
  2568.              etc.         UWORD per value.
  2569.         The colors are interpreted as 15 = maximum intensity.
  2570.                                       0 = minimum intensity.
  2571.     count    = number of UWORDs in the table to load into the
  2572.       colormap starting at color 0(background) and proceeding
  2573.       to the next higher color number
  2574.  
  2575.    RESULTS
  2576.     The ViewPort should have a pointer to a valid ColorMap to store
  2577.     the colors in.
  2578.     Updates the hardware copperlist to reflect the new colors.
  2579.     Updates the intermediate copperlist with the new colors.
  2580.  
  2581.    BUGS
  2582.  
  2583.     NOTE: With V36 and up, it is not safe to call this function
  2584.     from an interrupt, because of the semaphore locking on graphics
  2585.     copper lists.
  2586.  
  2587.    SEE ALSO
  2588.     SetRGB4() GetRGB4() GetColorMap() graphics/view.h
  2589.  
  2590. graphics.library/LoadView                           graphics.library/LoadView
  2591.  
  2592.    NAME
  2593.        LoadView -- Use a (possibly freshly created) coprocessor instruction
  2594.                    list to create the current display.
  2595.  
  2596.    SYNOPSIS
  2597.        LoadView( View )
  2598.                   A1
  2599.  
  2600.     void LoadView( struct View * );
  2601.  
  2602.    FUNCTION
  2603.     Install a new view to be displayed during the next display
  2604.     refresh pass.
  2605.        Coprocessor instruction list has been created by
  2606.        InitVPort(), MakeVPort(), and MrgCop().
  2607.  
  2608.    INPUTS
  2609.        View - a pointer to the View structure which contains the
  2610.        pointer to the constructed coprocessor instructions list, or NULL.
  2611.  
  2612.    RESULT
  2613.     If the View pointer is non-NULL, the new View is displayed, 
  2614.     according to your instructions.  The vertical blank routine 
  2615.     will pick this pointer up and direct the copper to start 
  2616.     displaying this View.
  2617.  
  2618.     If the View pointer is NULL, no View is displayed. 
  2619.  
  2620.    NOTE
  2621.     Even though a LoadView(NULL) is performed, display DMA will still be 
  2622.     active.  Sprites will continue to be displayed after a LoadView(NULL)
  2623.     unless an OFF_SPRITE is subsequently performed. 
  2624.  
  2625.    BUGS
  2626.  
  2627.    SEE ALSO
  2628.        InitVPort() MakeVPort() MrgCop() intuition/RethinkDisplay()
  2629.     graphics/view.h
  2630.  
  2631. graphics.library/LockLayerRom                   graphics.library/LockLayerRom
  2632.  
  2633.    NAME
  2634.     LockLayerRom -- Lock Layer structure by rom(gfx lib) code.
  2635.  
  2636.    SYNOPSIS
  2637.     LockLayerRom( layer )
  2638.                a5
  2639.  
  2640.     void LockLayerRom( struct Layer * );
  2641.  
  2642.    FUNCTION
  2643.     Return when the layer is locked and no other task may
  2644.     alter the ClipRect structure in the Layer structure.
  2645.     This call does not destroy any registers.
  2646.     This call nests so that callers in this chain will not lock
  2647.     themselves out.
  2648.     Do not have the Layer locked during a call to intuition.
  2649.     There is a potential deadlock problem here, if intuition
  2650.     needs to get other locks as well.
  2651.     Having the layer locked prevents other tasks from using the
  2652.     layer library functions, most notably intuition itself. So
  2653.     be brief.
  2654.     layers.library's LockLayer is identical to LockLayerRom.
  2655.  
  2656.    INPUTS
  2657.     layer - pointer to Layer structure
  2658.  
  2659.    RESULTS
  2660.     The layer is locked and the task can render assuming the
  2661.     ClipRects will not change out from underneath it until
  2662.     an UnlockLayerRom is called.
  2663.  
  2664.    SEE ALSO
  2665.     UnlockLayerRom() layers.library/LockLayer() graphics/clip.h
  2666.  
  2667. graphics.library/MakeVPort                         graphics.library/MakeVPort
  2668.  
  2669.    NAME
  2670.     MakeVPort -- generate display copper list for a viewport.
  2671.  
  2672.    SYNOPSIS
  2673.     MakeVPort( view, viewport )
  2674.                       a0         a1
  2675.  
  2676.     void MakeVPort( struct View *, struct ViewPort * );
  2677.  
  2678.    FUNCTION
  2679.     Uses information in the View, ViewPort, ViewPort->RasInfo to
  2680.     construct and intermediate copper list for this ViewPort.
  2681.  
  2682.    INPUTS
  2683.     view - pointer to a View structure
  2684.     viewport - pointer to a ViewPort structure
  2685.          The viewport must have valid pointer to a RasInfo.
  2686.  
  2687.    RESULTS
  2688.     constructs intermediate copper list and puts pointers in
  2689.     viewport.DspIns
  2690.     If the ColorMap ptr in ViewPort is NULL then it uses colors
  2691.     from the default color table.
  2692.     If DUALPF in Modes then there must be a second RasInfo pointed
  2693.     to by the first RasInfo
  2694.  
  2695.    BUGS
  2696.     Narrow Viewports (whose righthand edge is less than 3/4 of the
  2697.     way across the display) still do not work properly.
  2698.  
  2699.    SEE ALSO
  2700.     InitVPort() MrgCop() graphics/view.h intuition.library/MakeScreen()
  2701.     intuition.library/RemakeDisplay() intuition.library/RethinkDisplay()
  2702.  
  2703. graphics.library/ModeNotAvailable           graphics.library/ModeNotAvailable
  2704.  
  2705.    NAME
  2706.     ModeNotAvailable -- check to see if a DisplayID isn't available. (V36)
  2707.  
  2708.    SYNOPSIS
  2709.     error =  ModeNotAvailable( modeID )
  2710.     d0                   d0
  2711.  
  2712.     ULONG    ModeNotAvailable( ULONG);
  2713.  
  2714.    FUNCTION
  2715.     returns an error code, indicating why this modeID is not available, 
  2716.     or NULL if there is no reason known why this mode should not be there.
  2717.  
  2718.    INPUTS
  2719.     modeID -- a 32 bit DisplayInfoRecord identifier.
  2720.  
  2721.    RESULT
  2722.     error -- a general indication of why this modeID is not available,
  2723.          or NULL if there is no reason why it shouldn't be available.
  2724.  
  2725.    NOTE
  2726.     ULONG return values from this function are a proper superset of the
  2727.     DisplayInfo.NotAvailable field (defined in graphics/displayinfo.h).
  2728.  
  2729.    BUGS
  2730.  
  2731.    SEE ALSO
  2732.     graphics/displayinfo.h, GetVPModeID()
  2733.  
  2734. graphics.library/Move                                   graphics.library/Move
  2735.  
  2736.    NAME
  2737.     Move -- Move graphics pen position.
  2738.  
  2739.    SYNOPSIS
  2740.     Move( rp,   x,    y)
  2741.           a1  d0:16 d1:16
  2742.  
  2743.     void Move( struct RastPort *, SHORT, SHORT );
  2744.  
  2745.    FUNCTION
  2746.     Move graphics pen position to (x,y) relative to upper left (0,0)
  2747.     of RastPort. This sets the starting point for subsequent Draw()
  2748.     and Text() calls.
  2749.  
  2750.    INPUTS
  2751.     rp - pointer to a RastPort structure
  2752.     x,y - point in the RastPort
  2753.  
  2754.    RESULTS
  2755.  
  2756.    BUGS
  2757.  
  2758.    SEE ALSO
  2759.     Draw graphics/rastport.h
  2760.  
  2761. graphics.library/MoveSprite                       graphics.library/MoveSprite
  2762.  
  2763.    NAME
  2764.     MoveSprite -- Move sprite to a point relative to top of viewport.
  2765.  
  2766.    SYNOPSIS
  2767.     MoveSprite(vp, sprite, x, y)
  2768.                A0  A1      D0 D1
  2769.  
  2770.     void MoveSprite(struct ViewPort *,struct SimpleSprite *, WORD, WORD);
  2771.  
  2772.    FUNCTION
  2773.     Move sprite image to new place on display.
  2774.  
  2775.    INPUTS
  2776.     vp - pointer to ViewPort structure
  2777.          if vp = 0, sprite is positioned relative to View.
  2778.     sprite - pointer to SimpleSprite structure
  2779.     (x,y)  - new position relative to top of viewport or view.
  2780.  
  2781.    RESULTS
  2782.     Calculate the hardware information for the sprite and
  2783.     place it in the posctldata array. During next video display
  2784.     the sprite will appear in new position.
  2785.  
  2786.    BUGS
  2787.     Sprites really appear one pixel to the left of the position you specify.
  2788.     This bug affects the apparent display position of the sprite on the
  2789.     screen,    but does not affect the numeric position relative to the
  2790.     viewport or view.
  2791.  
  2792.    SEE ALSO
  2793.     FreeSprite()  ChangeSprite()  GetSprite()  graphics/sprite.h
  2794.  
  2795. graphics.library/MrgCop                               graphics.library/MrgCop
  2796.  
  2797.    NAME
  2798.        MrgCop -- Merge together coprocessor instructions.
  2799.  
  2800.    SYNOPSIS
  2801.        MrgCop( View )
  2802.                 A1
  2803.  
  2804.     void MrgCop( struct View * );
  2805.  
  2806.    FUNCTION
  2807.        Merge together the display, color, sprite and user coprocessor
  2808.        instructions into a single coprocessor instruction stream.  This
  2809.        essentially creates a per-display-frame program for the coprocessor.
  2810.        This function MrgCop is used, for example, by the graphics animation
  2811.        routines which effectively add information into an essentially
  2812.        static background display.  This changes some of the user
  2813.        or sprite instructions, but not those which have formed the
  2814.        basic display in the first place.  When all forms of coprocessor
  2815.        instructions are merged together, you will have a complete per-
  2816.        frame instruction list for the coprocessor.
  2817.  
  2818.        Restrictions:  Each of the coprocessor instruction lists MUST be
  2819.        internally sorted in min to max Y-X order.  The merge routines
  2820.        depend on this! Each list must be terminated using CEND(copperlist).
  2821.  
  2822.    INPUTS
  2823.        View - a pointer to the view structure whose coprocessor
  2824.               instructions are to be merged.
  2825.  
  2826.    RESULT
  2827.  
  2828.        The view structure will now contain a complete, sorted/merged
  2829.        list of instructions for the coprocessor, ready to be used by
  2830.        the display processor.  The display processor is told to use
  2831.        this new instruction stream through the instruction LoadView().
  2832.  
  2833.    BUGS
  2834.  
  2835.    SEE ALSO
  2836.        InitVPort() MakeVPort() LoadView() graphics/view.h
  2837.     intuition.library/RethinkDisplay()
  2838.  
  2839. graphics.library/NewRegion                         graphics.library/NewRegion
  2840.  
  2841.    NAME 
  2842.        NewRegion -- Get an empty region.
  2843.  
  2844.    SYNOPSIS 
  2845.        region = NewRegion()
  2846.     d0
  2847.  
  2848.     struct Region *NewRegion();
  2849.  
  2850.    FUNCTION 
  2851.     Create a Region structure, initialize it to empty, and return
  2852.     a pointer it.
  2853.  
  2854.    RESULTS
  2855.     region - pointer to initialized region. If it could not allocate
  2856.         required memory region = NULL.
  2857.  
  2858.    INPUTS 
  2859.     none
  2860.  
  2861.    BUGS 
  2862.  
  2863.    SEE ALSO
  2864.     graphics/regions.h
  2865.  
  2866. graphics.library/NextDisplayInfo             graphics.library/NextDisplayInfo
  2867.  
  2868.    NAME
  2869.     NextDisplayInfo -- iterate current displayinfo identifiers (V36)
  2870.  
  2871.    SYNOPSIS
  2872.     next_ID = NextDisplayInfo(last_ID)
  2873.     D0                        D0
  2874.  
  2875.     ULONG NextDisplayInfo(ULONG);
  2876.  
  2877.    FUNCTION
  2878.     The basic iteration function with which to find all records in the
  2879.     graphics database.  Using each ID in succession, you can then call
  2880.     FindDisplayInfo() to obtain the handle associated with each ID.
  2881.     Each ID is a 32-bit Key which uniquely identifies one record.
  2882.     The INVALID_ID is special, and indicates the end-of-list.
  2883.  
  2884.    INPUTS
  2885.     last_ID - previous displayinfo identifier
  2886.               or INVALID_ID if beginning iteration.
  2887.  
  2888.    RESULT
  2889.     next_ID - subsequent displayinfo identifier
  2890.               or INVALID_ID if no more records.
  2891.  
  2892.    BUGS
  2893.  
  2894.    SEE ALSO
  2895.     FindDisplayInfo(), GetDisplayInfoData()
  2896.     graphics/displayinfo.h
  2897.  
  2898. graphics.library/OpenFont                           graphics.library/OpenFont
  2899.  
  2900.    NAME
  2901.     OpenFont -- Get a pointer to a system font.
  2902.  
  2903.    SYNOPSIS
  2904.     font = OpenFont(textAttr)
  2905.     D0              A0
  2906.  
  2907.     struct TextFont *OpenFont(struct TextAttr *);
  2908.  
  2909.    FUNCTION
  2910.     This function searches the system font space for the graphics
  2911.     text font that best matches the attributes specified.  The
  2912.     pointer to the font returned can be used in subsequent
  2913.     SetFont and CloseFont calls.  It is important to match this
  2914.     call with a corresponding CloseFont call for effective
  2915.     management of ram fonts.
  2916.  
  2917.    INPUTS
  2918.     textAttr - a TextAttr or TTextAttr structure that describes the
  2919.                text font attributes desired.
  2920.  
  2921.    RESULT
  2922.     font is zero if the desired font cannot be found.  If the named
  2923.     font is found, but the size and style specified are not
  2924.     available, a font with the nearest attributes is returned.
  2925.  
  2926.    SEE ALSO
  2927.     CloseFont()  SetFont()
  2928.     diskfont.library/OpenDiskFont  graphics/text.h
  2929.  
  2930. graphics.library/OpenMonitor                     graphics.library/OpenMonitor
  2931.  
  2932.    NAME
  2933.        OpenMonitor -- open a named MonitorSpec (V36)
  2934.  
  2935.    SYNOPSIS
  2936.        mspc = OpenMonitor( monitor_name , display_id)
  2937.        d0                  a1           d0
  2938.  
  2939.        struct MonitorSpec *OpenMonitor( char *, ULONG );
  2940.  
  2941.    FUNCTION
  2942.        Locate and open a named MonitorSpec.
  2943.  
  2944.    INPUTS
  2945.        monitor_name - a pointer to a null terminated string.
  2946.        display_id - an optional 32 bit monitor/mode identifier 
  2947.  
  2948.    RESULTS
  2949.        mspc - a pointer to an open MonitorSpec structure.
  2950.               NULL if MonitorSpec could not  be opened.
  2951.  
  2952.    NOTE
  2953.     if monitor_name is non-NULL, the monitor will be opened by name.
  2954.     if monitor_name is NULL the monitor will be opened by optional ID.
  2955.     if both monitor_name and display_id are NULL returns default monitor.
  2956.  
  2957.    BUGS
  2958.  
  2959.    SEE ALSO
  2960.        CloseMonitor() graphics/monitor.h
  2961.  
  2962. graphics.library/OrRectRegion                   graphics.library/OrRectRegion
  2963.  
  2964.    NAME 
  2965.        OrRectRegion -- Perform 2d OR operation of rectangle
  2966.                        with region, leaving result in region.
  2967.  
  2968.    SYNOPSIS 
  2969.        status = OrRectRegion(region,rectangle) 
  2970.          d0                    a0      a1 
  2971.  
  2972.     BOOL OrRectRegion( struct Region *, struct Rectangle * );
  2973.  
  2974.    FUNCTION 
  2975.        If any portion of rectangle is not in the region then add
  2976.        that portion to the region.
  2977.  
  2978.    INPUTS 
  2979.        region - pointer to Region structure
  2980.        rectangle - pointer to Rectangle structure 
  2981.  
  2982.    RESULTS
  2983.     status - return TRUE if successful operation
  2984.          return FALSE if ran out of memory
  2985.  
  2986.    BUGS 
  2987.  
  2988.    SEE ALSO
  2989.     AndRectRegion() OrRegionRegion() graphics/regions.h
  2990.  
  2991. graphics.library/OrRegionRegion               graphics.library/OrRegionRegion
  2992.  
  2993.    NAME 
  2994.        OrRegionRegion -- Perform 2d OR operation of one region
  2995.                        with second region, leaving result in second region 
  2996.  
  2997.    SYNOPSIS 
  2998.        status = OrRegionRegion(region1,region2) 
  2999.          d0                       a0      a1 
  3000.  
  3001.     BOOL OrRegionRegion( struct Region *, struct Region * );
  3002.  
  3003.    FUNCTION 
  3004.        If any portion of region1  is not in the region then add
  3005.        that portion to the region2
  3006.  
  3007.    INPUTS 
  3008.        region1 - pointer to Region structure
  3009.        region2 - pointer to Region structure
  3010.  
  3011.    RESULTS
  3012.     status - return TRUE if successful operation
  3013.          return FALSE if ran out of memory
  3014.  
  3015.    BUGS 
  3016.  
  3017.    SEE ALSO
  3018.      OrRectRegion() graphics/regions.h
  3019.  
  3020. graphics.library/OwnBlitter                       graphics.library/OwnBlitter
  3021.  
  3022.    NAME
  3023.        OwnBlitter -- get the blitter for private usage
  3024.  
  3025.    SYNOPSIS
  3026.        OwnBlitter()
  3027.  
  3028.     void OwnBlitter( void );
  3029.  
  3030.    FUNCTION
  3031.     If blitter is available return immediately with the blitter
  3032.     locked for your exclusive use. If the blitter is not available
  3033.     put task to sleep. It will be awakened as soon as the blitter
  3034.     is available. When the task first owns the blitter the blitter
  3035.     may still be finishing up a blit for the previous owner. You
  3036.     must do a WaitBlit before actually using the blitter registers.
  3037.  
  3038.     Calls to OwnBlitter() do not nest. If a task that owns the
  3039.     blitter calls OwnBlitter() again, a lockup will result. 
  3040.     (Same situation if the task calls a system function
  3041.     that tries to own the blitter).
  3042.  
  3043.    INPUTS
  3044.     NONE
  3045.  
  3046.    RETURNS
  3047.     NONE
  3048.  
  3049.    SEE ALSO
  3050.     DisownBlitter() WaitBlit()
  3051. graphics.library/PolyDraw                           graphics.library/PolyDraw
  3052.  
  3053.    NAME
  3054.     PolyDraw -- Draw lines from table of (x,y) values.
  3055.  
  3056.    SYNOPSIS
  3057.     PolyDraw( rp, count , array )
  3058.           a1   d0      a0
  3059.  
  3060.     void PolyDraw( struct RastPort *, WORD, WORD * );
  3061.  
  3062.    FUNCTION
  3063.     starting with the first pair in the array, draw connected lines to
  3064.     it and every successive pair.
  3065.  
  3066.    INPUTS
  3067.     rp - pointer to RastPort structure
  3068.     count -  number of (x,y) pairs in the array
  3069.     array - pointer to first (x,y) pair
  3070.  
  3071.    BUGS
  3072.  
  3073.    SEE ALSO
  3074.     Draw() Move() graphics/rastport.h
  3075.  
  3076. graphics.library/QBlit                                 graphics.library/QBlit
  3077.  
  3078.    NAME
  3079.  
  3080.     QBlit -- Queue up a request for blitter usage
  3081.  
  3082.    SYNOPSIS
  3083.     QBlit( bp )
  3084.            a1
  3085.  
  3086.     void QBlit( struct bltnode * );
  3087.  
  3088.    FUNCTION
  3089.     Link a request for the use of the blitter to the end of the
  3090.        current blitter queue.  The pointer bp points to a blit structure
  3091.        containing, among other things, the link information, and the
  3092.        address of your routine which is to be called when the blitter
  3093.        queue finally gets around to this specific request.  When your
  3094.        routine is called, you are in control of the blitter ... it is
  3095.        not busy with anyone else's requests.  This means that you can
  3096.        directly specify the register contents and start the blitter.
  3097.        See the description of the blit structure and the uses of QBlit
  3098.        in the section titled Graphics Support in the OS Kernel Manual.
  3099.     Your code must be written to run either in supervisor or user
  3100.     mode on the 68000.
  3101.  
  3102.    INPUTS
  3103.     bp - pointer to a blit structure
  3104.  
  3105.    RESULT
  3106.     Your routine is called when the blitter is ready for you.
  3107.     In general requests for blitter usage through this channel are
  3108.     put in front of those who use the blitter via OwnBlitter and
  3109.     DisownBlitter. However for small blits there is more overhead
  3110.     using the queuer than Own/Disown Blitter.
  3111.  
  3112.    BUGS
  3113.  
  3114.    SEE ALSO
  3115.     QBSBlit() hardware/blit.h
  3116.  
  3117. graphics.library/QBSBlit                             graphics.library/QBSBlit
  3118.  
  3119.    NAME
  3120.  
  3121.     QBSBlit -- Synchronize the blitter request with the video beam.
  3122.  
  3123.    SYNOPSIS
  3124.  
  3125.     QBSBlit( bsp )
  3126.          a1
  3127.  
  3128.     void QBSBlit( struct bltnode * );
  3129.  
  3130.    FUNCTION
  3131.     Call a user routine for use of the blitter, enqueued separately from
  3132.        the QBlit queue.  Calls the user routine contained in the blit
  3133.        structure when the video beam is located at a specified position
  3134.        onscreen.   Useful when you are trying to blit into a visible part
  3135.        of the screen and wish to perform the data move while the beam is
  3136.        not trying to display that same area.  (prevents showing part of
  3137.        an old display and part of a new display simultaneously).  Blitter
  3138.        requests on the QBSBlit queue take precedence over those on the
  3139.        regular blitter queue. The beam position is specified the blitnode.
  3140.  
  3141.    INPUTS
  3142.     bsp - pointer to a blit structure.  See description in the
  3143.              Graphics Support section of the manual for more info.
  3144.  
  3145.    RESULT
  3146.        User routine is called when the QBSBlit queue reaches this
  3147.        request AND the video beam is in the specified position.
  3148.     If there are lots of blits going on and the video beam
  3149.     has wrapped around back to the top it will call all the
  3150.     remaining bltnodes as fast as it can to try and catch up.
  3151.  
  3152.    BUGS
  3153.     Not very smart when getting blits from different tasks.
  3154.     They all get put in same queue so there are unfortunately
  3155.     some interdependencies with the beam syncing.
  3156.  
  3157.    SEE ALSO
  3158.     QBlit() hardware/blit.h
  3159.  
  3160. graphics.library/ReadPixel                         graphics.library/ReadPixel
  3161.  
  3162.    NAME
  3163.        ReadPixel -- read the pen number value of the pixel at a
  3164.                     specified x,y location within a certain RastPort.
  3165.  
  3166.    SYNOPSIS
  3167.        penno = ReadPixel( rp,    x,    y )
  3168.          d0               a1  d0:16 d1:16
  3169.  
  3170.     LONG ReadPixel( struct RastPort *, SHORT, SHORT );
  3171.  
  3172.    FUNCTION
  3173.        Combine the bits from each of the bit-planes used to describe
  3174.        a particular RastPort into the pen number selector which that
  3175.        bit combination normally forms for the system hardware selection
  3176.        of pixel color.
  3177.  
  3178.    INPUTS
  3179.        rp -  pointer to a RastPort structure
  3180.        (x,y) a point in the RastPort
  3181.  
  3182.    RESULT
  3183.        penno - the pen number of the pixel at (x,y) is returned.
  3184.         -1 is returned if the pixel cannot be read for some reason.
  3185.  
  3186.    BUGS
  3187.  
  3188.    SEE ALSO
  3189.        WritePixel()    graphics/rastport.h
  3190.  
  3191. graphics.library/ReadPixelArray8             graphics.library/ReadPixelArray8
  3192.  
  3193.    NAME
  3194.     ReadPixelArray8 -- read the pen number value of a rectangular array
  3195.     of pixels starting at a specified x,y location and continuing 
  3196.     through to another x,y location within a certain RastPort. (V36)
  3197.  
  3198.    SYNOPSIS
  3199.     count = ReadPixelArray8(rp,xstart,ystart,xstop,ystop,array,temprp)
  3200.     D0                      A0 D0:16  D1:16  D2:16 D3:16 A2    A1
  3201.  
  3202.      LONG ReadPixelArray8(struct  RastPort *, UWORD, UWORD, UWORD, UWORD,
  3203.        UBYTE *, struct RastPort *);
  3204.  
  3205.    FUNCTION
  3206.     For each pixel in a rectangular region, combine the bits from each
  3207.     of the bit-planes used to describe a particular RastPort into the pen
  3208.     number selector which that bit combination normally forms for the
  3209.     system hardware selection of pixel color.
  3210.  
  3211.    INPUTS
  3212.     rp    -  pointer to a RastPort structure
  3213.     (xstart,ystart) - starting point in the RastPort
  3214.     (xstop,ystop)   - stopping point in the RastPort
  3215.     array - pointer to an array of ubytes from which to fetch the pixel data
  3216.             allocate at least ((((width+15)>>4)<<4)*(ystop-ystart+1)) bytes.
  3217.     temprp - temporary rastport (copy of rp with Layer set == NULL,
  3218.              temporary memory allocated for
  3219.              temprp->BitMap with Rows set == 1,
  3220.              temprp->BytesPerRow == (((width+15)>>4)<<1),
  3221.              and temporary memory allocated for 
  3222.              temprp->BitMap->Planes[])
  3223.  
  3224.    RESULT
  3225.     For each pixel in the array:
  3226.         Pen - (0..255) number at that position is returned
  3227.     count   - the number of pixels read.
  3228.  
  3229.    NOTE
  3230.     xstop must be >= xstart
  3231.     ystop must be >= ystart
  3232.  
  3233.    BUGS
  3234.  
  3235.    SEE ALSO
  3236.     ReadPixel()  ReadPixelLine8()  graphics/rastport.h
  3237.  
  3238. graphics.library/ReadPixelLine8               graphics.library/ReadPixelLine8
  3239.  
  3240.    NAME
  3241.     ReadPixelLine8 -- read the pen number value of a horizontal line
  3242.     of pixels starting at a specified x,y location and continuing
  3243.     right for count pixels. (V36)
  3244.  
  3245.    SYNOPSIS
  3246.     count = ReadPixelLine8(rp,xstart,ystart,width,array,temprp)
  3247.     D0                     A0 D0:16  D1:16  D2    A2    A1
  3248.  
  3249.     LONG ReadPixelLine8(struct RastPort *, UWORD, UWORD, UWORD,
  3250.          UBYTE *, struct RastPort * );
  3251.  
  3252.    FUNCTION
  3253.     For each pixel in a rectangular region, combine the bits from each
  3254.     of the bit-planes used to describe a particular RastPort into the pen
  3255.     number selector which that bit combination normally forms for the
  3256.     system hardware selection of pixel color.
  3257.  
  3258.    INPUTS
  3259.     rp    - pointer to a RastPort structure
  3260.     (x,y) - a point in the RastPort
  3261.     width - count of horizontal pixels to read
  3262.     array - pointer to an array of UBYTEs from which to fetch the pixel data
  3263.             allocate at least (((width+15)>>4)<<4) bytes.
  3264.     temprp - temporary rastport (copy of rp with Layer set == NULL,
  3265.              temporary memory allocated for
  3266.              temprp->BitMap with Rows set == 1,
  3267.              temprp->BytesPerRow == (((width+15)>>4)<<1),
  3268.              and temporary memory allocated for 
  3269.              temprp->BitMap->Planes[])
  3270.  
  3271.    RESULT
  3272.     For each pixel in the array:
  3273.         Pen - (0..255) number at that position is returned
  3274.     count   - the number of pixels read.
  3275.  
  3276.    NOTE
  3277.     width must be non negative
  3278.  
  3279.    BUGS
  3280.  
  3281.    SEE ALSO
  3282.     ReadPixel()  graphics/rastport.h
  3283.  
  3284. graphics.library/RectFill                           graphics.library/RectFill
  3285.  
  3286.    NAME
  3287.        RectFill -- Fill a rectangular region in a RastPort.
  3288.  
  3289.    SYNOPSIS
  3290.  
  3291.     RectFill( rp, xmin, ymin, xmax, ymax)
  3292.                  a1  d0:16 d1:16 d2:16 d3:16
  3293.  
  3294.     void RectFill( struct RastPort *, SHORT, SHORT, SHORT, SHORT );
  3295.  
  3296.    FUNCTION
  3297.     Fills  the  rectangular  region  specified  by  the
  3298.     parameters  with the chosen pen  colors,  areafill
  3299.     pattern, and drawing mode. If no areafill pattern is
  3300.     specified, fill the rectangular region with the FgPen
  3301.     color, taking into account the drawing mode.
  3302.  
  3303.    INPUTS
  3304.     rp - pointer to a RastPort structure
  3305.     (xmin,ymin) (xmax,ymax) are the coordinates of the upper
  3306.         left corner and the lower right corner, respectively, of the
  3307.             rectangle.
  3308.    NOTE
  3309.  
  3310.     The following relation MUST be true:
  3311.         (xmax >= xmin) and (ymax >= ymin)  
  3312.  
  3313.    BUGS
  3314.     Complement mode with FgPen complements all bitplanes.
  3315.  
  3316.    SEE ALSO
  3317.     AreaEnd() graphics/rastport.h
  3318.  
  3319. graphics.library/RemBob                               graphics.library/RemBob
  3320.  
  3321.    NAME
  3322.     RemBob -- Macro to remove a Bob from the gel list.
  3323.  
  3324.    SYNOPSIS
  3325.     RemBob(bob)
  3326.  
  3327.     RemBob(struct Bob *);
  3328.  
  3329.    FUNCTION
  3330.     Marks a Bob as no-longer-required.  The gels internal code then
  3331.     removes the Bob from the list of active gels the next time
  3332.     DrawGList is executed. This is implemented as a macro.
  3333.     If the user is double-buffering the Bob, it could take two
  3334.     calls to DrawGList before the Bob actually disappears from
  3335.     the RastPort.
  3336.  
  3337.    INPUTS
  3338.     Bob = pointer to the Bob to be removed
  3339.  
  3340.    RESULT
  3341.  
  3342.    BUGS
  3343.  
  3344.    SEE ALSO
  3345.     RemIBob()  DrawGList()  graphics/gels.h  graphics/gfxmacros.h
  3346.  
  3347. graphics.library/RemFont                             graphics.library/RemFont
  3348.  
  3349.    NAME
  3350.     RemFont -- Remove a font from the system list.
  3351.  
  3352.    SYNOPSIS
  3353.     RemFont(textFont)
  3354.             A1
  3355.  
  3356.     void RemFont(struct TextFont *);
  3357.  
  3358.    FUNCTION
  3359.     This function removes a font from the system, ensuring that
  3360.     access to it is restricted to those applications that
  3361.     currently have an active pointer to it: i.e. no new SetFont
  3362.     requests to this font are satisfied.
  3363.  
  3364.    INPUTS
  3365.     textFont - the TextFont structure to remove.
  3366.  
  3367.    RESULT
  3368.  
  3369.    BUGS
  3370.  
  3371.    SEE ALSO
  3372.     SetFont()  AddFont()  graphics/text.h
  3373.  
  3374. graphics.library/RemIBob                             graphics.library/RemIBob
  3375.  
  3376.    NAME
  3377.     RemIBob -- Immediately remove a Bob from the gel list and the RastPort.
  3378.  
  3379.    SYNOPSIS
  3380.     RemIBob(bob, rp, vp)
  3381.             A0   A1  A2
  3382.  
  3383.     void RemIBob(struct Bob *, struct RastPort *, struct ViewPort *);
  3384.  
  3385.    FUNCTION
  3386.     Removes a Bob immediately by uncoupling it from the gel list and
  3387.     erases it from the RastPort.
  3388.  
  3389.    INPUTS
  3390.     bob = pointer to the Bob to be removed
  3391.     rp  = pointer to the RastPort if the Bob is to be erased
  3392.     vp  = pointer to the ViewPort for beam-synchronizing
  3393.  
  3394.    RESULT
  3395.  
  3396.    BUGS
  3397.  
  3398.    SEE ALSO
  3399.     InitGels()  RemVSprite()  graphics/gels.h
  3400.  
  3401. graphics.library/RemVSprite                       graphics.library/RemVSprite
  3402.  
  3403.    NAME
  3404.     RemVSprite -- Remove a VSprite from the current gel list.
  3405.  
  3406.    SYNOPSIS
  3407.     RemVSprite(vs)
  3408.                A0
  3409.  
  3410.     void RemVSprite(struct VSprite *);
  3411.  
  3412.    FUNCTION
  3413.     Unlinks the VSprite from the current gel list.
  3414.  
  3415.    INPUTS
  3416.     vs = pointer to the VSprite structure to be removed from the gel list
  3417.  
  3418.    RESULT
  3419.  
  3420.    BUGS
  3421.  
  3422.    SEE ALSO
  3423.     InitGels()  RemIBob()  graphics/gels.h
  3424.  
  3425. graphics.library/ScalerDiv                         graphics.library/ScalerDiv
  3426.  
  3427.    NAME
  3428.     ScalerDiv -- Get the scaling result that BitMapScale would. (V36)
  3429.  
  3430.    SYNOPSIS
  3431.     result = ScalerDiv(factor, numerator, denominator)
  3432.     D0                 D0      D1         D2
  3433.  
  3434.     UWORD ScalerDiv(UWORD, UWORD, UWORD);
  3435.  
  3436.    FUNCTION
  3437.     Calculate the expression (factor*numerator/denominator) such
  3438.     that the result is the same as the width of the destination
  3439.     result of BitMapScale when the factor here is the width of
  3440.     the source, and the numerator and denominator are the
  3441.     XDestFactor and XSrcFactor for BitMapScale.
  3442.  
  3443.    INPUTS
  3444.     factor                 - a number in the range 0..16383
  3445.     numerator, denominator - numbers in the range 1..16383
  3446.  
  3447.    RESULT
  3448.     this returns factor*numerator/denominator
  3449.  
  3450. graphics.library/ScrollRaster                   graphics.library/ScrollRaster
  3451.  
  3452.    NAME
  3453.     ScrollRaster -- Push bits in rectangle in raster around by
  3454.                     dx,dy towards 0,0 inside rectangle.
  3455.    SYNOPSIS
  3456.     ScrollRaster(rp, dx, dy, xmin, ymin, xmax, ymax)
  3457.                  A1  D0  D1  D2    D3    D4    D5
  3458.  
  3459.     void ScrollRaster
  3460.          (struct RastPort *, WORD, WORD, WORD, WORD, WORD, WORD);
  3461.  
  3462.    FUNCTION
  3463.     Move the bits in the raster by (dx,dy) towards (0,0)
  3464.     The space vacated is RectFilled with BGPen.
  3465.     Limit the scroll operation to the rectangle defined
  3466.     by (xmin,ymin)(xmax,ymax). Bits outside will not be
  3467.     affected. If xmax,ymax is outside the rastport then use
  3468.     the lower right corner of the rastport.
  3469.     If you are dealing with a SimpleRefresh layered RastPort you
  3470.     should check rp->Layer->Flags & LAYER_REFRESH to see if
  3471.     there is any damage in the damage list.  If there is you should
  3472.     call the appropriate BeginRefresh(Intuition) or BeginUpdate(graphics)
  3473.     routine sequence.
  3474.  
  3475.    INPUTS
  3476.     rp - pointer to a RastPort structure
  3477.     dx,dy are integers that may be postive, zero, or negative
  3478.     xmin,ymin - upper left of bounding rectangle
  3479.     xmax,ymax - lower right of bounding rectangle
  3480.  
  3481.    EXAMPLE
  3482.     ScrollRaster(rp,0,1)    /* shift raster up by one row */
  3483.     ScrollRaster(rp,-1,-1)  /* shift raster down and to the right by 1 pixel
  3484.  
  3485.    BUGS
  3486.     In 1.2/V1.3 if you ScrollRaster a SUPERBITMAP exactly left or 
  3487.     right, and there is no TmpRas attached to the RastPort, the system
  3488.     will allocate one for you, but will never free it or record its 
  3489.     location. This bug has been fixed for V1.4.  The workaround for
  3490.     1.2/1.3 is to attach a valid TmpRas of size at least 
  3491.     MAXBYTESPERROW to the RastPort before the call.
  3492.  
  3493.     Begining with V1.4 ScrollRaster adds the shifted areas into the 
  3494.     damage list for SIMPLE_REFRESH windows. Due to unacceptable 
  3495.     system overhead, the decision was made NOT to propagate this 
  3496.     shifted area damage for SMART_REFRESH windows.
  3497.  
  3498.    SEE ALSO
  3499.     graphics/rastport.h
  3500.  
  3501. graphics.library/ScrollVPort                     graphics.library/ScrollVPort
  3502.  
  3503.    NAME
  3504.     ScrollVPort -- Reinterpret RasInfo information in ViewPort to reflect
  3505.             the current Offset values.
  3506.  
  3507.    SYNOPSIS
  3508.     ScrollVPort( vp )
  3509.              a0
  3510.  
  3511.     void ScrollVPort(struct ViewPort *);
  3512.  
  3513.    FUNCTION
  3514.     After the programmer has adjusted the Offset values in
  3515.     the RasInfo structures of ViewPort, change the
  3516.     the copper lists to reflect the the Scroll positions.
  3517.     Changing the BitMap ptr in RasInfo and not changing the
  3518.     the Offsets will effect a double buffering affect.
  3519.  
  3520.    INPUTS
  3521.        vp - pointer to a ViewPort structure
  3522.          that is currently be displayed.
  3523.    RESULTS
  3524.     modifies hardware and intermediate copperlists to reflect
  3525.     new RasInfo
  3526.  
  3527.    BUGS
  3528.        pokes not fast enough to avoid some visible hashing of display
  3529.  
  3530.    SEE ALSO
  3531.     MakeVPort() MrgCop() LoadView()  graphics/view.h
  3532.  
  3533. graphics.library/SetAPen                             graphics.library/SetAPen
  3534.  
  3535.    NAME   
  3536.     SetAPen -- Set the primary pen for a RastPort.
  3537.  
  3538.    SYNOPSIS
  3539.     SetAPen( rp, pen )
  3540.          a1  d0
  3541.  
  3542.     void SetAPen( struct RastPort *, UBYTE );
  3543.  
  3544.    FUNCTION
  3545.     Set the primary drawing pen for lines, fills, and text.
  3546.  
  3547.    INPUTS
  3548.     rp - pointer to RastPort structure.
  3549.     pen - (0-255)
  3550.  
  3551.    RESULT
  3552.     Changes the minterms in the RastPort to reflect new primary pen.
  3553.     Sets line drawer to restart pattern.
  3554.  
  3555.    BUGS
  3556.  
  3557.    SEE ALSO
  3558.     SetBPen() graphics/rastport.h
  3559.  
  3560. graphics.library/SetBPen                             graphics.library/SetBPen
  3561.  
  3562.    NAME   
  3563.     SetBPen -- Set secondary pen for a RastPort
  3564.  
  3565.    SYNOPSIS
  3566.     SetBPen( rp, pen )
  3567.          a1  d0
  3568.  
  3569.     void SetBPen( struct RastPort *, UBYTE );
  3570.  
  3571.    FUNCTION
  3572.     Set the secondary drawing pen for lines, fills, and text.
  3573.  
  3574.    INPUTS
  3575.     rp - pointer to RastPort structure.
  3576.     pen - (0-255)
  3577.  
  3578.    RESULT
  3579.     Changes the minterms in the RastPort to reflect new secondary pen.
  3580.     Sets line drawer to restart pattern.
  3581.  
  3582.    BUGS
  3583.  
  3584.     SEE ALSO
  3585.     SetAPen() graphics/rastport.h
  3586.  
  3587. graphics.library/SetCollision                   graphics.library/SetCollision
  3588.  
  3589.    NAME
  3590.     SetCollision -- Set a pointer to a user collision routine.
  3591.  
  3592.    SYNOPSIS
  3593.     SetCollision(num, routine, GInfo)
  3594.                  D0   A0       A1
  3595.  
  3596.     void SetCollision(ULONG, VOID (*)(), struct GelsInfo *);
  3597.  
  3598.    FUNCTION
  3599.     Sets a specified entry (num) in the user's collision vectors table
  3600.     equal to the address of the specified collision routine.
  3601.  
  3602.    INPUTS
  3603.     num     = collision vector number
  3604.     routine = pointer to the user's collision routine
  3605.     GInfo   = pointer to a GelsInfo structure
  3606.  
  3607.    RESULT
  3608.  
  3609.    BUGS
  3610.  
  3611.    SEE ALSO
  3612.     InitGels()  graphics/gels.h  graphics/rastport.h
  3613.  
  3614. graphics.library/SetDrMd                             graphics.library/SetDrMd
  3615.  
  3616.    NAME   
  3617.      SetDrMd -- Set drawing mode for a RastPort
  3618.  
  3619.    SYNOPSIS
  3620.     SetDrMd( rp, mode )
  3621.          a1  d0:8
  3622.  
  3623.     void SetDrMd( struct RastPort *, UBYTE );
  3624.  
  3625.    FUNCTION
  3626.     Set the drawing mode for lines, fills and text.
  3627.     Get the bit definitions from rastport.h
  3628.  
  3629.    INPUTS
  3630.     rp - pointer to RastPort structure.
  3631.     mode - 0-255, some combinations may not make much sense.
  3632.  
  3633.    RESULT
  3634.     The mode set is dependant on the bits selected.
  3635.     Changes minterms to reflect new drawing mode.
  3636.     Sets line drawer to restart pattern.
  3637.  
  3638.    BUGS
  3639.  
  3640.    SEE ALSO
  3641.     SetAPen() SetBPen() graphics/rastport.h
  3642.  
  3643. graphics.library/SetFont                             graphics.library/SetFont
  3644.  
  3645.    NAME
  3646.     SetFont -- Set the text font and attributes in a RastPort.
  3647.  
  3648.    SYNOPSIS
  3649.     SetFont(rp, font)
  3650.             A1   A0
  3651.  
  3652.     void SetFont(struct RastPort *, struct TextFont *);
  3653.  
  3654.    FUNCTION
  3655.     This function sets the font in the RastPort to that described
  3656.     by font, and updates the text attributes to reflect that
  3657.     change.  This function clears the effect of any previous
  3658.     soft styles.
  3659.  
  3660.    INPUTS
  3661.     rp   - the RastPort in which the text attributes are to be changed
  3662.     font - pointer to a TextFont structure returned from OpenFont()
  3663.            or OpenDiskFont()
  3664.  
  3665.    RESULT
  3666.  
  3667.    NOTES
  3668.     This function had previously been documented that it would
  3669.     accept a null font.  This practice is discouraged.
  3670.     o   Use of a RastPort with a null font with text routines has
  3671.         always been incorrect and risked the guru.
  3672.     o   Keeping an obsolete font pointer in the RastPort is no more
  3673.         dangerous than keeping a zero one there.
  3674.     o   SetFont(rp, 0) causes spurious low memory accesses under
  3675.         some system software releases.
  3676.  
  3677.     As of V36, the following Amiga font variants are no longer
  3678.     directly supported:
  3679.         fonts with NULL tf_CharSpace and non-NULL tf_CharKern.
  3680.         fonts with non-NULL tf_CharSpace and NULL tf_CharKern.
  3681.         fonts with NULL tf_CharSpace and NULL tf_CharKern with
  3682.         a tf_CharLoc size component greater than tf_XSize.
  3683.     Attempts to SetFont these one of these font variants will
  3684.     cause the system to modify your font to make it acceptable.
  3685.  
  3686.    BUGS
  3687.     Calling SetFont() on in-code TextFonts (ie fonts not
  3688.     OpenFont()ed) will result in a loss of 24 bytes from
  3689.     the system as of V36.
  3690.     This can be resolved by calling StripFont().
  3691.  
  3692.    SEE ALSO
  3693.     OpenFont()  StripFont()
  3694.     diskfont.library/OpenDiskFont()  graphics/text.h
  3695.  
  3696. graphics.library/SetOPen                             graphics.library/SetOPen
  3697.  
  3698.    NAME
  3699.     SetOPen -- Change the Area OutLine pen and turn on Outline
  3700.             mode for areafills.
  3701.  
  3702.    SYNOPSIS
  3703.     SetOPen(rp, pen)
  3704.  
  3705.     void SetOPen( struct RastPort *, UBYTE );
  3706.  
  3707.    FUNCTION
  3708.     This is implemented as a c-macro.
  3709.     Pen is the pen number that will be used to draw a border
  3710.     around an areafill during AreaEnd().
  3711.  
  3712.    INPUTS
  3713.     rp = pointer to RastPort structure
  3714.     pen = number  between 0-255
  3715.  
  3716.    BUGS
  3717.  
  3718.    SEE ALSO
  3719.     AreaEnd() graphics/gfxmacros.h graphics/rastport.h
  3720.  
  3721. graphics.library/SetRast                             graphics.library/SetRast
  3722.  
  3723.    NAME
  3724.        SetRast - Set an entire drawing area to a specified color.
  3725.  
  3726.    SYNOPSIS
  3727.        SetRast( rp, pen )
  3728.                 a1  d0
  3729.  
  3730.     void SetRast( struct RastPort *, UBYTE );
  3731.  
  3732.    FUNCTION
  3733.        Set the entire contents of the specified RastPort to the
  3734.        specified pen.
  3735.  
  3736.    INPUTS
  3737.        rp - pointer to RastPort structure
  3738.        pen - the pen number (0-255) to jam into bitmap
  3739.  
  3740.    RESULT
  3741.        All pixels within the drawing area are set to the
  3742.     selected pen number.
  3743.  
  3744.    BUGS
  3745.  
  3746.    SEE ALSO
  3747.     RectFill() graphics/rastport.h
  3748.  
  3749. graphics.library/SetRGB4                             graphics.library/SetRGB4
  3750.  
  3751.     NAME
  3752.        SetRGB4 -- Set one color register for this viewport.
  3753.  
  3754.     SYNOPSIS
  3755.        SetRGB4(  vp, n,   r,    g,    b)
  3756.                  a0  d0  d1:4  d2:4  d3:4
  3757.  
  3758.     void SetRGB4( struct ViewPort *, SHORT, UBYTE, UBYTE, UBYTE );
  3759.  
  3760.     FUNCTION
  3761.     Change the color look up table so that this viewport displays
  3762.     the color (r,g,b) for pen number n.
  3763.  
  3764.     INPUTS
  3765.     vp - pointer to  viewport structure
  3766.        n - the color number (range from 0 to 31)
  3767.        r - red level (0-15)
  3768.        g - green level (0-15)
  3769.        b - blue level (0-15)
  3770.  
  3771.     RESULT
  3772.     If there is a ColorMap for this viewport, then the value will
  3773.     be stored in the ColorMap.
  3774.        The selected color register is changed to match your specs.
  3775.     If the color value is unused then nothing will happen.
  3776.  
  3777.     BUGS
  3778.     NOTE: Under V36 and up, it is not safe to call this function
  3779.     from an interrupt, due to semaphore protection of graphics
  3780.     copper lists.
  3781.  
  3782.     SEE ALSO
  3783.        LoadRGB4() GetRGB4() graphics/view.h
  3784. graphics.library/SetRGB4CM                         graphics.library/SetRGB4CM
  3785.  
  3786.    NAME
  3787.        SetRGB4CM -- Set one color register for this ColorMap.
  3788.  
  3789.    SYNOPSIS
  3790.        SetRGB4CM(  cm,  n,   r,    g,    b)
  3791.                    a0  d0  d1:4  d2:4  d3:4
  3792.  
  3793.        void SetRGB4CM( struct ColorMap *, SHORT, UBYTE, UBYTE, UBYTE );
  3794.  
  3795.    INPUTS
  3796.     cm = colormap
  3797.        n = the number of the color register to set. Ranges from 0 to 31
  3798.         on current amiga displays.
  3799.        r = red level (0-15)
  3800.        g = green level (0-15)
  3801.        b = blue level (0-15)
  3802.  
  3803.    RESULT
  3804.     Store the (r,g,b) triplet at index n of the ColorMap structure.
  3805.        This function can be used to set up a ColorMap before before
  3806.     linking it into a viewport.
  3807.  
  3808.    BUGS
  3809.  
  3810.    SEE ALSO
  3811.        GetColorMap() GetRGB4() SetRGB4() graphics/view.h
  3812. graphics.library/SetSoftStyle                   graphics.library/SetSoftStyle
  3813.  
  3814.    NAME
  3815.     SetSoftStyle -- Set the soft style of the current font.
  3816.  
  3817.    SYNOPSIS
  3818.     newStyle = SetSoftStyle(rp, style, enable)
  3819.     D0                      A1  D0     D1
  3820.  
  3821.     ULONG SetSoftStyle(struct RastPort *, ULONG, ULONG);
  3822.  
  3823.    FUNCTION
  3824.     This function alters the soft style of the current font.  Only
  3825.     those bits that are also set in enable are affected.  The
  3826.     resulting style is returned, since some style request changes
  3827.     will not be honored when the implicit style of the font
  3828.     precludes changing them.
  3829.  
  3830.    INPUTS
  3831.     rp     - the RastPort from which the font and style
  3832.              are extracted.
  3833.     style  - the new font style to set, subject to enable.
  3834.     enable - those bits in style to be changed.  Any set bits here
  3835.              that would not be set as a result of AskSoftStyle will
  3836.              be ignored, and the newStyle result will not be as
  3837.              expected. 
  3838.  
  3839.    RESULTS
  3840.     newStyle - the resulting style, both as a result of previous
  3841.                soft style selection, the effect of this function,
  3842.                and the style inherent in the set font.
  3843.  
  3844.    BUGS
  3845.  
  3846.    SEE ALSO
  3847.     AskSoftStyle()  graphics/text.h
  3848.  
  3849. graphics.library/SortGList                         graphics.library/SortGList
  3850.  
  3851.    NAME
  3852.     SortGList -- Sort the current gel list, ordering its y,x coordinates.
  3853.  
  3854.    SYNOPSIS
  3855.     SortGList(rp)
  3856.               A1
  3857.  
  3858.     void SortGList(struct RastPort *);
  3859.  
  3860.    FUNCTION
  3861.     Sorts the current gel list according to the gels' y,x coordinates.
  3862.     This sorting is essential before calls to DrawGList or DoCollision.
  3863.  
  3864.    INPUTS
  3865.     rp = pointer to the RastPort structure containing the GelsInfo
  3866.  
  3867.    RESULT
  3868.  
  3869.    BUGS
  3870.  
  3871.    SEE ALSO
  3872.     InitGels()  DoCollision()  DrawGList()  graphics/rastport.h
  3873.  
  3874. graphics.library/StripFont                         graphics.library/StripFont
  3875.  
  3876.    NAME
  3877.     StripFont -- remove the tf_Extension from a font (V36)
  3878.  
  3879.    SYNOPSIS
  3880.     StripFont(font)
  3881.               A0
  3882.  
  3883.     VOID StripFont(struct TextFont *);
  3884.  
  3885. graphics.library/SyncSBitMap                     graphics.library/SyncSBitMap
  3886.  
  3887.    NAME
  3888.        SyncSBitMap --    Syncronize Super BitMap with whatever is
  3889.             in the standard Layer bounds.
  3890.  
  3891.    SYNOPSIS
  3892.        SyncSBitMap( layer )
  3893.                       a0
  3894.  
  3895.     void SyncSBitMap( struct Layer * );
  3896.  
  3897.    FUNCTION
  3898.        Copy all bits from ClipRects in Layer into Super BitMap
  3899.     BitMap.  This is used for those functions that do not
  3900.     want to deal with the ClipRect structures but do want
  3901.     to be able to work with a SuperBitMap Layer.
  3902.  
  3903.    INPUTS
  3904.     layer - pointer to a Layer that has a SuperBitMap
  3905.         The Layer should already be locked by the caller.
  3906.  
  3907.    RESULT
  3908.     After calling this function, the programmer can manipulate
  3909.     the bits in the superbitmap associated with the layer.
  3910.     Afterwards, the programmer should call CopySBitMap to
  3911.     copy the bits back into the onscreen layer.
  3912.  
  3913.    BUGS
  3914.  
  3915.    SEE ALSO
  3916.     CopySBitMap() graphics/clip.h
  3917.  
  3918. graphics.library/Text                                   graphics.library/Text
  3919.  
  3920.    NAME
  3921.     Text -- Write text characters (no formatting).
  3922.  
  3923.    SYNOPSIS
  3924.     Text(rp, string, length)
  3925.          A1  A0      D0-0:16
  3926.  
  3927.     void Text(struct RastPort *, STRPTR, WORD);
  3928.  
  3929.    FUNCTION
  3930.     This graphics function writes printable text characters to the
  3931.     specified RastPort at the current position.  No control meaning
  3932.     is applied to any of the characters, thus only text on the
  3933.     current line is output.
  3934.  
  3935.     The current position in the RastPort is updated to the next
  3936.     character position.
  3937.     If the characters displayed run past the RastPort boundary,
  3938.     the current position is truncated to the boundary, and
  3939.     thus does not equal the old position plus the text length.
  3940.  
  3941.    INPUTS
  3942.     rp     - a pointer to the RastPort which describes where the
  3943.              text is to be output
  3944.     string - the address of string to output
  3945.     length - the number of characters in the string.
  3946.              If zero, there are no characters to be output.
  3947.  
  3948.    NOTES
  3949.     o   This function may use the blitter.
  3950.     o   Changing the text direction with RastPort->TxSpacing is
  3951.         not supported.
  3952.  
  3953.    BUGS
  3954.     For V34 and earlier:
  3955.     o   The maximum string length (in pixels) is limited to
  3956.         (1024 - 16 = 1008) pixels wide.
  3957.     o   A text string whose last character(s) have a
  3958.         tf_CharLoc size component that extends to the right of
  3959.         the rightmost of the initial and final CP positions
  3960.         will be (inappropriately) clipped.
  3961.  
  3962.    SEE ALSO
  3963.     Move()  TextLength()  graphics/text.h  graphics/rastport.h
  3964.  
  3965. graphics.library/TextExtent                       graphics.library/TextExtent
  3966.  
  3967.    NAME
  3968.     TextExtent -- Determine raster extent of text data. (V36)
  3969.  
  3970.    SYNOPSIS
  3971.     TextExtent(rp, string, count, textExtent)
  3972.                A1  A0      D0:16  A2
  3973.  
  3974.     void TextExtent(struct RastPort *, STRPTR, WORD,
  3975.          struct TextExtent *);
  3976.  
  3977.    FUNCTION
  3978.     This function determines a more complete metric of the space
  3979.     that a text string would render into than the TextLength()
  3980.     function.
  3981.  
  3982.    INPUTS
  3983.     rp     - a pointer to the RastPort which describes where the
  3984.              text attributes reside.
  3985.     string - the address of the string to determine the length of.
  3986.     count  - the number of characters in the string.
  3987.                 If zero, there are no characters in the string.
  3988.     textExtent - a structure to hold the result.
  3989.  
  3990.    RESULTS
  3991.     textExtent is filled in as follows:
  3992.         te_Width  - same as TextLength() result: the rp_cp_x
  3993.                     advance that rendering this text would cause.
  3994.         te_Height - same as tf_YSize.  The height of the
  3995.                     font.
  3996.         te_Extent.MinX - the offset to the left side of the
  3997.                     rectangle this would render into.  Often zero.
  3998.         te_Extent.MinY - same as -tf_Baseline.  The offset
  3999.                     from the baseline to the top of the rectangle
  4000.                     this would render into.
  4001.         te_Extent.MaxX - the offset of the left side of the
  4002.                     rectangle this would render into.  Often the
  4003.                     same as te_Width-1.
  4004.         te_Extent.MaxY - same as tf_YSize-tf_Baseline-1.
  4005.                     The offset from the baseline to the bottom of
  4006.                     the rectanangle this would render into.
  4007.  
  4008.    SEE ALSO
  4009.     TextLength()  Text()  TextFit()
  4010.     graphics/text.h  graphics/rastport.h
  4011.  
  4012. graphics.library/TextFit                             graphics.library/TextFit
  4013.  
  4014.    NAME
  4015.     TextFit - count characters that will fit in a given extent (V36)
  4016.  
  4017.    SYNOPSIS
  4018.     chars = TextFit(rastport, string, strLen, textExtent,
  4019.     D0              A1        A0      D0      A2
  4020.             constrainingExtent, strDirection,
  4021.             A3                  D1
  4022.             constrainingBitWidth, constrainingBitHeight)
  4023.             D2                    D3
  4024.  
  4025.     ULONG TextFit(struct RastPort *, STRPTR, UWORD,
  4026.         struct TextExtent *, struct TextExtent *, WORD, UWORD, UWORD);
  4027.  
  4028.    FUNCTION
  4029.     This function determines how many of the characters of the
  4030.     provided string will fit into the space described by the
  4031.     constraining parameters.  It also returns the extent of
  4032.     that number of characters.
  4033.  
  4034.    INPUTS
  4035.     rp     - a pointer to the RastPort which describes where the
  4036.              text attributes reside.
  4037.     string - the address of string to determine the constraint of
  4038.     strLen - The number of characters in the string.
  4039.              If zero, there are no characters in the string.
  4040.     textExtent - a structure to hold the extent result.
  4041.     constrainingExtent - the extent that the text must fit in.
  4042.         This can be NULL, indicating only the constrainingBit
  4043.         dimensions will describe the constraint.
  4044.     strDirection - the offset to add to the string pointer to
  4045.         get to the next character in the string.  Usually 1.
  4046.         Set to -1 and the string to the end of the string to
  4047.         perform a TextFit() anchored at the end.  No other value
  4048.         is valid.
  4049.     constrainingBitWidth - an alternative way to specify the
  4050.         rendering box constraint width that is independent of
  4051.         the rendering origin.  Range 0..32767.
  4052.     constrainingBitHeight - an alternative way to specify the
  4053.         rendering box constraint height that is independent of
  4054.         the rendering origin.  Range 0..32767.
  4055.  
  4056.    RESULTS
  4057.     chars - the number of characters from the origin of the
  4058.             given string that will fit in both the constraining
  4059.             extent (which specifies a CP bound and a rendering
  4060.             box relative to the origin) and in the rendering width
  4061.             and height specified.
  4062.  
  4063.    NOTES
  4064.     The result is zero chars and an empty textExtent when the fit
  4065.     cannot be performed.  This occurs not only when no text will
  4066.     fit in the provided constraints, but also when:
  4067.     -   the RastPort rp's rp_TxSpacing sign and magnitude is so
  4068.         great it reverses the path of the text. 
  4069.     -   the constrainingExtent does not include x = 0.
  4070.  
  4071.    SEE ALSO
  4072.     TextExtent()  TextLength()  Text()
  4073.     graphics/text.h  graphics/rastport.h
  4074.  
  4075. graphics.library/TextLength                       graphics.library/TextLength
  4076.  
  4077.    NAME
  4078.     TextLength -- Determine raster length of text data.
  4079.  
  4080.    SYNOPSIS
  4081.     length = TextLength(rp, string, count)
  4082.     D0                  A1  A0      D0:16
  4083.  
  4084.     WORD TextLength(struct RastPort *, STRPTR, WORD);
  4085.  
  4086.    FUNCTION
  4087.     This graphics function determines the length that text data
  4088.     would occupy if output to the specified RastPort with the
  4089.     current attributes.  The length is specified as the number of
  4090.     raster dots: to determine what the current position would be
  4091.     after a Write() using this string, add the length to cp_x
  4092.     (cp_y is unchanged by Write()).  Use the newer TextExtent() to
  4093.     get more information.
  4094.  
  4095.    INPUTS
  4096.     rp     - a pointer to the RastPort which describes where the
  4097.              text attributes reside.
  4098.     string - the address of string to determine the length of
  4099.     count  - the string length.  If zero, there are no characters
  4100.              in the string.
  4101.  
  4102.    RESULTS
  4103.     length - the number of pixels in x this text would occupy, not
  4104.              including any negative kerning that may take place at
  4105.              the beginning of the text string, nor taking into
  4106.              account the effects of any clipping that may take
  4107.              place.
  4108.  
  4109.    NOTES
  4110.     Prior to V36, the result length occupied only the low word of
  4111.     d0 and was not sign extended into the high word.
  4112.  
  4113.    BUGS
  4114.     A length that would overflow single word arithmatic is not
  4115.     calculated correctly.
  4116.  
  4117.    SEE ALSO
  4118.     TextExtent()  Text()  TextFit()
  4119.     graphics/text.h  graphics/rastport.h
  4120.  
  4121. graphics.library/UnlockLayerRom               graphics.library/UnlockLayerRom
  4122.  
  4123.    NAME
  4124.     UnlockLayerRom -- Unlock Layer structure by rom(gfx lib) code.
  4125.  
  4126.    SYNOPSIS
  4127.     UnlockLayerRom( layer )
  4128.              a5
  4129.  
  4130.     void UnlockLayerRom( struct Layer * );
  4131.  
  4132.    FUNCTION
  4133.     Release the lock on this layer. If the same task has called
  4134.     LockLayerRom more than once than the same number of calls to
  4135.     UnlockLayerRom must happen before the layer is actually freed
  4136.     so that other tasks may use it.
  4137.     This call does destroy scratch registers.
  4138.     This call is identical to UnlockLayer (layers.library).
  4139.  
  4140.    INPUTS
  4141.     layer - pointer to Layer structure
  4142.  
  4143.    BUGS
  4144.  
  4145.    SEE ALSO
  4146.     LockLayerRom() layers.library/UnlockLayer() graphics/clip.h
  4147.  
  4148. graphics.library/VBeamPos                           graphics.library/VBeamPos
  4149.  
  4150.    NAME   
  4151.     VBeamPos -- Get vertical beam position at this instant.
  4152.  
  4153.    SYNOPSIS
  4154.     pos = VBeamPos()
  4155.      d0
  4156.  
  4157.     LONG VBeamPos( void );
  4158.  
  4159.    FUNCTION
  4160.     Get the vertical beam position from the hardware.
  4161.  
  4162.    INPUTS
  4163.     none
  4164.  
  4165.    RESULT
  4166.     interrogates hardware for beam position and returns value.
  4167.     valid results in are the range of 0-511.
  4168.     Because of multitasking, the actual value returned may have
  4169.     no use. If you are the highest priority task then the value
  4170.     returned should be close, within 1 line.
  4171.  
  4172.    BUGS
  4173.  
  4174.    SEE ALSO
  4175.  
  4176.  
  4177. graphics.library/VideoControl                   graphics.library/VideoControl
  4178.  
  4179.    NAME
  4180.        VideoControl -- Modify the operation of a ViewPort's ColorMap (V36)
  4181.  
  4182.    SYNOPSIS
  4183.        error = VideoControl( cm , tags )
  4184.        d0                    a0   a1
  4185.  
  4186.     ULONG VideoControl( struct ColorMap *, struct TagItem * );
  4187.  
  4188.    FUNCTION
  4189.     Process the commands in the VideoControl command TagItem buffer 
  4190.     using cm as the target, with respect to its "attached" ViewPort.
  4191.  
  4192.     viewport commands:
  4193.  
  4194.     VTAG_ATTACH_CM     [_SET        | _GET] -- set\get attached viewport
  4195.     VTAG_VIEWPORTEXTRA [_SET        | _GET] -- set\get attached vp_extra 
  4196.     VTAG_NORMAL_DISP   [_SET        | _GET] -- set\get DisplayInfoHandle
  4197.                                (natural mode)
  4198.     VTAG_COERCE_DISP   [_SET        | _GET] -- set\get DisplayInfoHandle 
  4199.                                (coerced mode)
  4200.  
  4201.     genlock commands:
  4202.  
  4203.     VTAG_BORDERBLANK   [_SET | _CLR | _GET] -- on\off\inquire blanking
  4204.     VTAG_BORDERNOTRANS [_SET | _CLR | _GET] -- on\off\inquire notransparency
  4205.     VTAG_CHROMAKEY     [_SET | _CLR | _GET] -- on\off\inquire chroma mode
  4206.     VTAG_BITPLANEKEY   [_SET | _CLR | _GET] -- on\off\inquire bitplane mode
  4207.     VTAG_CHROMA_PEN    [_SET | _CLR | _GET] -- set\clr\get chromakey pen #
  4208.     VTAG_CHROMA_PLANE  [_SET |      | _GET] -- set\get bitplanekey plane #
  4209.  
  4210.     copper commands
  4211.  
  4212.     VTAG_USERCLIP      [_SET | _CLR | _GET] -- on\off\inquire clipping of
  4213.                            UserCopperList at bottom
  4214.                            edge of ColorMap->cm_vp 
  4215.                            (defaults to off)
  4216.  
  4217.     buffer commands:
  4218.  
  4219.     VTAG_NEXTBUF_CM                    -- link to more VTAG commands
  4220.     VTAG_END_CM                            -- terminate command buffer
  4221.  
  4222.     batch mode commands:
  4223.  
  4224.     (if you want your videocontol taglist to be processed in "batch"
  4225.      mode, that is, at the next MakeVPort() for the ColorMap->cm_vp;
  4226.      you may intall a static list of videocontrol TagItems into the 
  4227.      ColorMap with the BATCH_ITEMS_SET command; and then enable/disable
  4228.      batch mode processing of those items via the BATCH_CM control
  4229.      command)
  4230.                 
  4231.     VTAG_BATCH_CM      [_SET | _CLR | _GET] -- on\off\inquire batch mode
  4232.     VTAG_BATCH_ITEMS   [_SET | _ADD | _GET] -- set\add\get batched TagLists
  4233.  
  4234.     private commands (used internally by intuition -- do not call):
  4235.  
  4236.     VTAG_VPMODEID      [_SET | _CLR | _GET] -- force GetVPModeID() return
  4237.     
  4238.  
  4239.    INPUTS
  4240.     cm   = pointer to struct ColorMap obtained via GetColorMap().
  4241.     tags = pointer to a table of videocontrol tagitems.
  4242.  
  4243.    RESULT
  4244.     error = NULL if no error occured in the control operation.
  4245.        (non-NULL if bad colormap pointer, no tagitems or bad tag) 
  4246.  
  4247.     The operating characteristics of the ColorMap and its attached 
  4248.     ViewPort are modified. The result will be incorporated into the 
  4249.     ViewPort when its copper lists are reassembled via MakeVPort().
  4250.  
  4251.    BUGS
  4252.  
  4253.    SEE ALSO
  4254.     graphics/videocontrol.h, GetColorMap(), FreeColorMap()
  4255.  
  4256. graphics.library/WaitBlit                           graphics.library/WaitBlit
  4257.  
  4258.    NAME
  4259.        WaitBlit -- Wait for the blitter to be finished before proceeding
  4260.                    with anything else.
  4261.  
  4262.    SYNOPSIS
  4263.        WaitBlit()
  4264.  
  4265.     void WaitBlit( void );
  4266.  
  4267.    FUNCTION
  4268.     WaitBlit returns when the blitter is idle. This function should
  4269.     normally only be used when dealing with the blitter in a
  4270.     synchronous manner, such as when using OwnBlitter and DisownBlitter.
  4271.     WaitBlit does not wait for all blits queued up using QBlit or
  4272.     QBSBlit. You should call WaitBlit if you are just about to modify or
  4273.     free some memory that the blitter may be using.
  4274.  
  4275.    INPUTS
  4276.        none
  4277.  
  4278.    RESULT
  4279.        Your program waits until the blitter is finished.
  4280.     This routine does not use any the CPU registers.
  4281.     do/d1/a0/a1 are preserved by this routine.
  4282.     It may change the condition codes though.
  4283.  
  4284.    BUGS
  4285.     When examining bits with the CPU right after a blit, or when freeeing
  4286.     temorary memory used by the blitter, a WaitBlit() may be required.
  4287.  
  4288.     Note that many graphics calls fire up the blitter, and let it run.
  4289.     The CPU does not need to wait for the blitter to finish before 
  4290.     returning.
  4291.  
  4292.     Because of a bug in agnus (prior to all revisions of fat agnus)
  4293.      this code may return too soon when the blitter has, in fact, not 
  4294.     started the blit yet, even though BltSize has been written.  
  4295.  
  4296.     This most often occurs in a heavily loaded systen with extended memory,
  4297.     HIRES, and 4 bitplanes.
  4298.  
  4299.     WaitBlit currently tries to avoid this agnus problem by testing
  4300.     the BUSY bit multiple times to make sure the blitter has started.
  4301.     If the blitter is BUSY at first check, this function busy waits.
  4302.  
  4303.     This initial hardware bug was fixed as of the first "Fat Agnus" chip, 
  4304.     as used in all A500 and A2000 computers.
  4305.  
  4306.     Because of a different bug in agnus (currently all revisions thru ECS)
  4307.      this code may return too soon when the blitter has, in fact, not 
  4308.     stopped the blit yet, even though blitter busy has been cleared.  
  4309.  
  4310.     This most often occurs in a heavily loaded systen with extended memory,
  4311.     in PRODUCTIVITY mode, and 2 bitplanes.
  4312.  
  4313.     WaitBlit currently tries to avoid this agnus problem by testing
  4314.     the BUSY bit multiple times to make sure the blitter has really
  4315.     written its final word of desination data.
  4316.  
  4317.    SEE ALSO
  4318.     OwnBlitter() DisownBlitter() hardware/blit.h
  4319.  
  4320. graphics.library/WaitBOVP                           graphics.library/WaitBOVP
  4321.                                                       
  4322.    NAME
  4323.     WaitBOVP -- Wait till vertical beam reached bottom of
  4324.             this viewport.
  4325.  
  4326.    SYNOPSIS
  4327.     WaitBOVP( vp )
  4328.           a0
  4329.  
  4330.     void WaitBOVP( struct ViewPort * );
  4331.  
  4332.    FUNCTION
  4333.     Returns when the vertical beam has reached the bottom of this viewport
  4334.  
  4335.    INPUTS
  4336.     vp - pointer to ViewPort structure
  4337.  
  4338.    RESULT
  4339.     This function will return sometime after the beam gets beyond
  4340.     the bottom of the viewport.  Depending on the multitasking load
  4341.     of the system, the actual beam position may be different than
  4342.     what would be expected in a lightly loaded system.
  4343.  
  4344.    BUGS
  4345.     Horrors! This function currently busy waits waiting for the
  4346.     beam to get to the right place.  It should use the copper
  4347.     interrupt to trigger and send signals like WaitTOF does.
  4348.  
  4349.    SEE ALSO
  4350.     WaitTOF() VBeamPos()
  4351.  
  4352. graphics.library/WaitTOF                             graphics.library/WaitTOF
  4353.  
  4354.    NAME
  4355.        WaitTOF -- Wait for the top of the next video frame.
  4356.  
  4357.    SYNOPSIS
  4358.        WaitTOF()
  4359.  
  4360.     void WaitTOF( void );
  4361.  
  4362.    FUNCTION
  4363.        Wait  for vertical blank to occur and all vertical blank
  4364.        interrupt routines to complete before returning to caller.
  4365.  
  4366.    INPUTS
  4367.        none
  4368.  
  4369.    RESULT
  4370.     Places this task on the TOF wait queue. When the vertical blank
  4371.     interupt comes around, the interrupt service routine will fire off
  4372.     signals to all the tasks doing WaitTOF. The highest priority task
  4373.     ready will get to run then.
  4374.  
  4375.    BUGS
  4376.  
  4377.    SEE ALSO
  4378.     exec.library/Wait() exec.library/Signal()
  4379.  
  4380. graphics.library/WeighTAMatch                   graphics.library/WeighTAMatch
  4381.  
  4382.    NAME
  4383.     WeighTAMatch -- Get a measure of how well two fonts match. (V36)
  4384.  
  4385.    SYNOPSIS
  4386.     weight = WeighTAMatch(reqTextAttr, targetTextAttr, targetTags)
  4387.     D0                    A0           A1              A2
  4388.  
  4389.     WORD WeighTAMatch(struct TTextAttr *, struct TextAttr *,
  4390.          struct TagItem *);
  4391.  
  4392.    FUNCTION
  4393.     This function provides a metric to describe how well two fonts
  4394.     match.  This metric ranges from MAXFONTMATCHWEIGHT (perfect match)
  4395.     through lower positive numbers to zero (unsuitable match).
  4396.  
  4397.    INPUTS
  4398.     reqTextAttr    - the text attributes requested.
  4399.     targetTextAttr - the text attributes of a potential match.
  4400.     targetTags     - tags describing the extended target attributes, or
  4401.                      zero if not available.
  4402.  
  4403.     The [t]ta_Name fields of the [T]TextAttr structures are not used.
  4404.  
  4405.     The tags affect the weight only when both a) the reqTextAttr
  4406.     has the FSF_TAGGED bit set in ta_Style, and b) targetTags is
  4407.     not zero.  To fairly compare two different weights, the inclusion
  4408.     or exclusion of tags in the weighing must be the same for both.
  4409.  
  4410.    RESULTS
  4411.     weight -- a positive weight describes suitable matches, in
  4412.           increasing desirability.  MAXFONTMATCHWEIGHT is a perfect
  4413.           match.  A zero weight is an unsuitable match.
  4414.  
  4415.    SEE ALSO
  4416.     OpenFont()
  4417.  
  4418. graphics.library/WritePixel                       graphics.library/WritePixel
  4419.  
  4420.    NAME
  4421.        WritePixel -- Change the pen num of one specific pixel in a
  4422.                      specified RastPort.
  4423.  
  4424.    SYNOPSIS
  4425.        error = WritePixel(  rp, x,  y)
  4426.          d0                 a1 D0  D1
  4427.  
  4428.     LONG WritePixel( struct RastPort *, SHORT, SHORT );
  4429.  
  4430.    FUNCTION
  4431.        Changes the pen number of the selected pixel in the specified
  4432.        RastPort to that currently specified by PenA, the primary
  4433.        drawing pen. Obeys minterms in RastPort.
  4434.  
  4435.    INPUTS
  4436.        rp - a pointer to the RastPort structure
  4437.        (x,y) - point within the RastPort at which the selected
  4438.            pixel is located.
  4439.  
  4440.    RESULT
  4441.        error = 0 if pixel succesfully changed
  4442.           = -1 if (x,y) is outside the RastPort
  4443.  
  4444.    BUGS
  4445.  
  4446.    SEE ALSO
  4447.        ReadPixel() graphics/rastport.h
  4448.  
  4449. graphics.library/WritePixelArray8           graphics.library/WritePixelArray8
  4450.  
  4451.    NAME
  4452.     WritePixelArray8 -- write the pen number value of a rectangular array
  4453.     of pixels starting at a specified x,y location and continuing
  4454.     through to another x,y location within a certain RastPort. (V36)
  4455.  
  4456.    SYNOPSIS
  4457.     count = WritePixelArray8(rp,xstart,ystart,xstop,ystop,array,temprp)
  4458.     D0                       A0 D0:16  D1:16  D2:16 D3:16  A2   A1
  4459.  
  4460.     LONG WritePixelArray8(struct  RastPort *, UWORD, UWORD,
  4461.          UWORD, UWORD, UBYTE *, struct  RastPort *);
  4462.  
  4463.    FUNCTION
  4464.     For each pixel in a rectangular region, decode the pen number selector
  4465.     from a linear array of pen numbers into the bit-planes used to describe
  4466.     a particular rastport.
  4467.  
  4468.    INPUTS
  4469.     rp     -  pointer to a RastPort structure
  4470.     (xstart,ystart) -  starting point in the RastPort
  4471.     (xstop,ystop)   -  stopping point in the RastPort
  4472.     array  - pointer to an array of UBYTEs from which to fetch the
  4473.              pixel data. Allocate at least
  4474.              ((((width+15)>>4)<<4)*(ystop-ystart+1)) bytes.
  4475.     temprp - temporary rastport (copy of rp with Layer set == NULL,
  4476.              temporary memory allocated for
  4477.              temprp->BitMap with Rows set == 1,
  4478.              temprp->BytesPerRow == (((width+15)>>4)<<1),
  4479.              and temporary memory allocated for
  4480.              temprp->BitMap->Planes[])
  4481.  
  4482.    RESULT
  4483.     For each pixel in the array:
  4484.         Pen - (0..255) number at that position is returned
  4485.  
  4486.    NOTE
  4487.     xstop must be >= xstart
  4488.     ystop must be >= ystart
  4489.  
  4490.    BUGS
  4491.  
  4492.    SEE ALSO
  4493.     WritePixel()  graphics/rastport.h
  4494.  
  4495. graphics.library/WritePixelLine8             graphics.library/WritePixelLine8
  4496.  
  4497.    NAME
  4498.     WritePixelLine8 -- write the pen number value of a horizontal line
  4499.     of pixels starting at a specified x,y location and continuing
  4500.     right for count pixels. (V36)
  4501.  
  4502.    SYNOPSIS
  4503.     count = WritePixelLine8(rp,xstart,ystart,width,array,temprp)
  4504.     D0                      A0 D0:16  D1:16  D2    A2    A1
  4505.  
  4506.     LONG WritePixelLine8(struct RastPort *, UWORD, UWORD,
  4507.          UWORD, UBYTE *, struct RastPort *);
  4508.  
  4509.    FUNCTION
  4510.     For each pixel in a horizontal region, decode the pen number selector
  4511.     from a linear array of pen numbers into the bit-planes used to describe
  4512.     a particular rastport.
  4513.  
  4514.    INPUTS
  4515.     rp    -  pointer to a RastPort structure
  4516.     (x,y) - a point in the RastPort
  4517.     width - count of horizontal pixels to write
  4518.     array - pointer to an array of UBYTEs from which to fetch the pixel data
  4519.             allocate at least (((width+15)>>4)<<4) bytes.
  4520.     temprp - temporary rastport (copy of rp with Layer set == NULL,
  4521.              temporary memory allocated for
  4522.              temprp->BitMap with Rows set == 1,
  4523.              temprp->BytesPerRow == (((width+15)>>4)<<1),
  4524.              and temporary memory allocated for
  4525.              temprp->BitMap->Planes[])
  4526.  
  4527.    RESULT
  4528.     For each pixel in the array:
  4529.         Pen - (0..255) number at that position is returned
  4530.  
  4531.    NOTE
  4532.     width must be non negative
  4533.  
  4534.    BUGS
  4535.  
  4536.    SEE ALSO
  4537.     WritePixel()  graphics/rastport.h
  4538.  
  4539. graphics.library/XorRectRegion                 graphics.library/XorRectRegion
  4540.  
  4541.    NAME
  4542.        XorRectRegion -- Perform 2d XOR operation of rectangle
  4543.                        with region, leaving result in region
  4544.  
  4545.    SYNOPSIS
  4546.        status = XorRectRegion(region,rectangle)
  4547.          d0                     a0      a1
  4548.  
  4549.     BOOL XorRectRegion( struct Region *, struct Rectangle * );
  4550.  
  4551.    FUNCTION
  4552.     Add portions of rectangle to region if they are not in
  4553.     the region.
  4554.     Remove portions of rectangle from region if they are
  4555.     in the region.
  4556.  
  4557.    INPUTS
  4558.        region - pointer to Region structure
  4559.        rectangle - pointer to Rectangle structure
  4560.  
  4561.    RESULTS
  4562.     status - return TRUE if successful operation
  4563.          return FALSE if ran out of memory
  4564.  
  4565.    BUGS
  4566.  
  4567.    SEE ALSO
  4568.     OrRegionRegion() AndRegionRegion() graphics/regions.h
  4569.  
  4570. graphics.library/XorRegionRegion             graphics.library/XorRegionRegion
  4571.  
  4572.    NAME 
  4573.        XorRegionRegion -- Perform 2d XOR operation of one region
  4574.                        with second region, leaving result in second region 
  4575.  
  4576.    SYNOPSIS 
  4577.        status = XorRegionRegion(region1,region2) 
  4578.          d0                        a0      a1 
  4579.  
  4580.     BOOL XorRegionRegion( struct Region *, struct Region * );
  4581.  
  4582.    FUNCTION 
  4583.     Join the regions together. If any part of region1 overlaps
  4584.     region2 then remove that from the new region.
  4585.  
  4586.    INPUTS 
  4587.        region1      = pointer to Region structure
  4588.        region2      = pointer to Region structure
  4589.  
  4590.    RESULTS
  4591.     status - return TRUE if successful operation
  4592.          return FALSE if ran out of memory
  4593.  
  4594.    BUGS 
  4595.  
  4596.  
  4597.