home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Misc / M2V11-1.LHA / modula / amiga / GfxMacros.mod < prev    next >
Encoding:
Modula Implementation  |  1993-11-22  |  2.7 KB  |  100 lines

  1. (* @P- @B- *)
  2. IMPLEMENTATION MODULE GfxMacros ;
  3.  
  4. IMPORT SYSTEM, M2Lib, Hardware, Graphics ;
  5. FROM Graphics IMPORT BITSET, BITCLR, FRST_DOT, AREAOUTLINE,
  6.              RastPortPtr, UCopListPtr , CopListPtr , GfxBase ;
  7.  
  8. PROCEDURE ON_DISPLAY( ) ;
  9. BEGIN Hardware.custom.dmacon := BITSET + Hardware.DMAF_RASTER
  10. END ON_DISPLAY ;
  11.  
  12. PROCEDURE OFF_DISPLAY( ) ;
  13. BEGIN Hardware.custom.dmacon := BITCLR + Hardware.DMAF_RASTER
  14. END OFF_DISPLAY ;
  15.  
  16. PROCEDURE ON_SPRITE( ) ;
  17. BEGIN Hardware.custom.dmacon := BITSET + Hardware.DMAF_SPRITE
  18. END ON_SPRITE ;
  19.  
  20. PROCEDURE OFF_SPRITE( ) ;
  21. BEGIN Hardware.custom.dmacon := BITCLR + Hardware.DMAF_SPRITE
  22. END OFF_SPRITE ;
  23.  
  24. PROCEDURE ON_VBLANK( ) ;
  25. BEGIN Hardware.custom.intena := BITSET + Hardware.INTF_VERTB
  26. END ON_VBLANK ;
  27.  
  28. PROCEDURE OFF_VBLANK( ) ;
  29. BEGIN Hardware.custom.intena := BITCLR + Hardware.INTF_VERTB
  30. END OFF_VBLANK ;
  31.  
  32. PROCEDURE SetDrPt( w : RastPortPtr ; p : CARDINAL ) ;
  33. BEGIN
  34.   w^.LinePtrn := p ;
  35.   w^.Flags := w^.Flags + FRST_DOT ;
  36.   w^.linpatcnt := 15
  37. END SetDrPt ;
  38.  
  39. PROCEDURE SetAfPt( w : RastPortPtr ; p : SYSTEM.ADDRESS ; n : SHORTINT ) ;
  40. BEGIN w^.AreaPtrn := p ; w^.AreaPtSz := n
  41. END SetAfPt ;
  42.  
  43. PROCEDURE SetOPen( w : RastPortPtr ; c : SHORTINT ) ;
  44. BEGIN w^.AOlPen := c ; w^.Flags := w^.Flags + AREAOUTLINE
  45. END SetOPen ;
  46.  
  47. PROCEDURE SetWrMsk( w : RastPortPtr ; m : SYSTEM.SHORTSET ) ;
  48. BEGIN w^.Mask := m ;
  49. END SetWrMsk ;
  50.  
  51. PROCEDURE SafeSetOutlinePen( w : RastPortPtr ; c : SHORTINT ) ;
  52. BEGIN
  53.   IF GfxBase^.LibNode.lib_Version < 39 THEN
  54.     w^.AOlPen := c ; w^.Flags := w^.Flags + AREAOUTLINE
  55.   ELSE c := Graphics.SetOutlinePen( w , c )
  56.   END
  57. END SafeSetOutlinePen ;
  58.  
  59. PROCEDURE SafeSetWriteMask( w : RastPortPtr ; m : SYSTEM.SHORTSET ) ;
  60.   VAR x : LONGINT ;
  61. BEGIN
  62.   IF GfxBase^.LibNode.lib_Version < 39 THEN w^.Mask := m
  63.   ELSE x := Graphics.SetWriteMask( w, m )
  64.   END
  65. END SafeSetWriteMask ;
  66.  
  67. PROCEDURE GetOPen( rp : RastPortPtr ) : LONGINT ;
  68. BEGIN RETURN Graphics.GetOutlinePen( rp )
  69. END GetOPen ;
  70.  
  71. PROCEDURE BNDRYOFF( w : RastPortPtr ) ;
  72. BEGIN w^.Flags := w^.Flags - AREAOUTLINE
  73. END BNDRYOFF ;
  74.  
  75. PROCEDURE CINIT( c : UCopListPtr ; n : LONGINT ) : UCopListPtr ;
  76. BEGIN RETURN Graphics.UCopperListInit( c, n )
  77. END CINIT ;
  78.  
  79. PROCEDURE CMOVE( c : UCopListPtr ; a : SYSTEM.ADDRESS ; b : LONGINT ) ;
  80. BEGIN Graphics.CMove( c, a, b ) ; Graphics.CBump( c )
  81. END CMOVE ;
  82.  
  83. PROCEDURE CWAIT( c : UCopListPtr ; a, b : LONGINT ) ;
  84. BEGIN Graphics.CWait( c, a, b ) ; Graphics.CBump( c )
  85. END CWAIT ;
  86.  
  87. PROCEDURE CEND( c : UCopListPtr ) ;
  88. BEGIN Graphics.CWait( c, 10000, 255 ) ; Graphics.CBump( c )
  89. END CEND ;
  90.  
  91. PROCEDURE DrawCircle( rp : RastPortPtr ; cx, cy, r : LONGINT ) ;
  92. BEGIN Graphics.DrawEllipse( rp, cx, cy, r, r )
  93. END DrawCircle ;
  94.  
  95. PROCEDURE AreaCircle( rp : RastPortPtr ; cx, cy, r : LONGINT ) : LONGINT ;
  96. BEGIN RETURN Graphics.AreaEllipse( rp, cx, cy, r, r )
  97. END AreaCircle ;
  98.  
  99. END GfxMacros.
  100.