home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / programming / languages / turbo_part1.lha / modula / amiga / GfxMacros.mod < prev    next >
Encoding:
Modula Implementation  |  1995-01-24  |  2.7 KB  |  99 lines

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