home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1989 / 12 / praxis / graphx.def < prev    next >
Encoding:
Modula Definition  |  1989-09-14  |  3.8 KB  |  135 lines

  1. (* Copyright (C) 1987 Jensen & Partners International *)
  2. DEFINITION MODULE GraphX; (* Basic graphics routines *)
  3.  
  4.  
  5. (* Filling functions take a combination of two colors
  6.    encoded as Color1 + NumColor * Color2 *)
  7.  
  8. (* Device independant routines
  9.    provided as procedure variables
  10.    (see below)
  11.  
  12. PROCEDURE GraphMode;
  13.  
  14. PROCEDURE TextMode;
  15.  
  16. PROCEDURE Plot(x,y: CARDINAL; Color: CARDINAL);
  17. (* set a single pixel to given color *)
  18.  
  19. PROCEDURE Point(x,y: CARDINAL) : CARDINAL;
  20. (* read a pixel of the screen *)
  21.  
  22. PROCEDURE HLine(x,y,x2: CARDINAL; FillColor: CARDINAL);
  23. (* draw a horizontal line of given color (used for filling) *)
  24.  
  25.  
  26. End of device dependant routines
  27. *)
  28.  
  29. PROCEDURE Line(x1,y1,x2,y2: CARDINAL; Color: CARDINAL);
  30. (* draw an arbitrary line in given color *)
  31.  
  32. PROCEDURE Circle(x0,y0,r: CARDINAL; c: CARDINAL);
  33. (* centre x0,y0; radius r *)
  34.  
  35. PROCEDURE Disc(x0,y0,r : CARDINAL; FillColor: CARDINAL);
  36. (* filled circle, centre x0,y0; radius r *)
  37.  
  38. PROCEDURE Ellipse ( x0,y0 : CARDINAL ;  (* center *)
  39.                     a0,b0 : CARDINAL ;  (* semi-axes *)
  40.                     c     : CARDINAL ;  (* color *)
  41.                     fill  : BOOLEAN ) ; (* wether filled *)
  42.  
  43.  
  44.  
  45. PROCEDURE Polygon(n: CARDINAL; px,py: ARRAY OF CARDINAL; FillColor: CARDINAL);
  46. (* filled polygon of n points *)
  47.  
  48.  
  49. (*
  50.    Initialization routines.
  51.    Called to setup display output type.
  52. *)
  53.  
  54. PROCEDURE InitCGA ;    (* Default *)
  55. PROCEDURE InitEGA ;
  56. PROCEDURE InitVGA ;
  57. PROCEDURE InitHerc ;
  58. PROCEDURE InitATT ;
  59. PROCEDURE Init1512 ;
  60.  
  61. TYPE
  62.   PlotProc     = PROCEDURE ((* x *) CARDINAL,(* y *)CARDINAL,(* c *)CARDINAL);
  63.   PointProc    = PROCEDURE ((* x *) CARDINAL,(* y *)CARDINAL) : CARDINAL ;
  64.   HLineProc    = PROCEDURE ((* x *) CARDINAL,(* y *)CARDINAL,(* x2 *)CARDINAL,
  65.                             (* FillColor *)CARDINAL);
  66. VAR
  67.   Width    : CARDINAL ;     (* x values are 0..Width-1  *)
  68.   Depth    : CARDINAL ;     (* y values are 0..Depth-1  *)
  69.   NumColor : CARDINAL ;     (* Colors are 0..NumColor-1 *)
  70.  
  71. (*
  72.   procedure variables for device dependant routines
  73. *)
  74.  
  75.   GraphMode,TextMode     : PROC ;
  76.   Plot                   : PlotProc ;
  77.   Point                  : PointProc ;
  78.   HLine                  : HLineProc ;
  79.   Clear : PROC;
  80.  
  81. (*
  82.     Device specific constants and routines
  83.     equivalent to the variables Width, Depth and NumColors
  84. *)
  85. PROCEDURE CGAGraphMode;
  86. PROCEDURE CGATextMode;
  87. PROCEDURE CGAPlot(x,y:CARDINAL;c:CARDINAL);
  88. PROCEDURE CGAPoint(x,y:CARDINAL) : CARDINAL;
  89. PROCEDURE CGAHLine ( x,y,x2 : CARDINAL; c:CARDINAL );
  90. PROCEDURE EGAGraphMode;
  91. PROCEDURE EGAPlot( x,y,c : CARDINAL);
  92. PROCEDURE EGAPoint(x,y:CARDINAL) : CARDINAL;
  93. PROCEDURE EGAHLine ( x,y,x2 : CARDINAL; c:CARDINAL );
  94. PROCEDURE HercGraphMode;
  95. PROCEDURE HercTextMode;
  96. PROCEDURE HercPlot(x,y:CARDINAL;c:CARDINAL);
  97. PROCEDURE HercPoint(x,y:CARDINAL) : CARDINAL;
  98. PROCEDURE HercHLine ( x,y,x2 : CARDINAL; c:CARDINAL );
  99. PROCEDURE ATTGraphMode;
  100. PROCEDURE ATTPlot(x,y:CARDINAL;c:CARDINAL);
  101. PROCEDURE ATTPoint(x,y:CARDINAL) : CARDINAL;
  102. PROCEDURE ATTHLine ( x,y,x2 : CARDINAL; c:CARDINAL );
  103. PROCEDURE MyHLine(x,y,x2 : CARDINAL; c:CARDINAL);
  104. PROCEDURE Line1512 (x1,y1,x2,y2 : CARDINAL; color : CARDINAL);
  105.  
  106. CONST
  107.   VGAGraphMode = EGAGraphMode ;
  108.   VGAPlot      = EGAPlot ;
  109.   VGAPoint     = EGAPoint ;
  110.   VGAHLine     = EGAHLine ;
  111.   EGATextMode  = CGATextMode ;
  112.   VGATextMode  = CGATextMode ;
  113.   ATTTextMode  = CGATextMode ;
  114.  
  115. CONST
  116.   CGAWidth           = 320 ;
  117.   CGADepth           = 200 ;
  118.   CGANumColor        = 4 ;
  119.   EGAWidth           = 640 ;
  120.   EGADepth           = 350 ;
  121.   EGANumColor        = 16 ;
  122.   VGAWidth           = 640 ;
  123.   VGADepth           = 480 ;
  124.   VGANumColor        = 16 ;
  125.   HercWidth          = 720 ;
  126.   HercDepth          = 348 ;
  127.   HercNumColor       = 2 ;
  128.   ATTWidth           = 640 ;
  129.   ATTDepth           = 400 ;
  130.   ATTNumColor        = 2 ;
  131.  
  132.  
  133.  
  134. END GraphX.
  135.