| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- (* Copyright (C) 1987 Jensen & Partners International *)
- DEFINITION MODULE Graph; (* Basic graphics routines *)
- (* Filling functions take a combination of two colors
- encoded as Color1 + NumColor * Color2 *)
- (* Device independant routines
- provided as procedure variables
- (see below)
- PROCEDURE GraphMode;
- PROCEDURE TextMode;
- PROCEDURE Plot(x,y: CARDINAL; Color: CARDINAL);
- (* set a single pixel to given color *)
- PROCEDURE Point(x,y: CARDINAL) : CARDINAL;
- (* read a pixel of the screen *)
- PROCEDURE HLine(x,y,x2: CARDINAL; FillColor: CARDINAL);
- (* draw a horizontal line of given color (used for filling) *)
- End of device dependant routines
- *)
- PROCEDURE Line(x1,y1,x2,y2: CARDINAL; Color: CARDINAL);
- (* draw an arbitrary line in given color *)
- PROCEDURE Circle(x0,y0,r: CARDINAL; c: CARDINAL);
- (* centre x0,y0; radius r *)
- PROCEDURE Disc(x0,y0,r : CARDINAL; FillColor: CARDINAL);
- (* filled circle, centre x0,y0; radius r *)
- PROCEDURE Ellipse ( x0,y0 : CARDINAL ; (* center *)
- a0,b0 : CARDINAL ; (* semi-axes *)
- c : CARDINAL ; (* color *)
- fill : BOOLEAN ) ; (* wether filled *)
- PROCEDURE Polygon(n: CARDINAL; px,py: ARRAY OF CARDINAL; FillColor: CARDINAL);
- (* filled polygon of n points *)
- (*
- Initialization routines.
- Called to setup display output type.
- *)
- PROCEDURE InitCGA ; (* Default *)
- PROCEDURE InitEGA ;
- PROCEDURE InitVGA ;
- PROCEDURE InitHerc ;
- PROCEDURE InitATT ;
- TYPE
- PlotProc = PROCEDURE ((* x *) CARDINAL,(* y *)CARDINAL,(* c *)CARDINAL);
- PointProc = PROCEDURE ((* x *) CARDINAL,(* y *)CARDINAL) : CARDINAL ;
- HLineProc = PROCEDURE ((* x *) CARDINAL,(* y *)CARDINAL,(* x2 *)CARDINAL,
- (* FillColor *)CARDINAL);
- VAR
- Width : CARDINAL ; (* x values are 0..Width-1 *)
- Depth : CARDINAL ; (* y values are 0..Depth-1 *)
- NumColor : CARDINAL ; (* Colors are 0..NumColor-1 *)
- (*
- procedure variables for device dependant routines
- *)
- GraphMode,TextMode : PROC ;
- Plot : PlotProc ;
- Point : PointProc ;
- HLine : HLineProc ;
- (*
- Device specific constants and routines
- equivalent to the variables Width, Depth and NumColors
- *)
- PROCEDURE CGAGraphMode;
- PROCEDURE CGATextMode;
- PROCEDURE CGAPlot(x,y:CARDINAL;c:CARDINAL);
- PROCEDURE CGAPoint(x,y:CARDINAL) : CARDINAL;
- PROCEDURE CGAHLine ( x,y,x2 : CARDINAL; c:CARDINAL );
- PROCEDURE EGAGraphMode;
- PROCEDURE EGAPlot( x,y,c : CARDINAL);
- PROCEDURE EGAPoint(x,y:CARDINAL) : CARDINAL;
- PROCEDURE EGAHLine ( x,y,x2 : CARDINAL; c:CARDINAL );
- PROCEDURE HercGraphMode;
- PROCEDURE HercTextMode;
- PROCEDURE HercPlot(x,y:CARDINAL;c:CARDINAL);
- PROCEDURE HercPoint(x,y:CARDINAL) : CARDINAL;
- PROCEDURE HercHLine ( x,y,x2 : CARDINAL; c:CARDINAL );
- PROCEDURE ATTGraphMode;
- PROCEDURE ATTPlot(x,y:CARDINAL;c:CARDINAL);
- PROCEDURE ATTPoint(x,y:CARDINAL) : CARDINAL;
- PROCEDURE ATTHLine ( x,y,x2 : CARDINAL; c:CARDINAL );
- CONST
- VGAGraphMode = EGAGraphMode ;
- VGAPlot = EGAPlot ;
- VGAPoint = EGAPoint ;
- VGAHLine = EGAHLine ;
- EGATextMode = CGATextMode ;
- VGATextMode = CGATextMode ;
- ATTTextMode = CGATextMode ;
- CONST
- CGAWidth = 320 ;
- CGADepth = 200 ;
- CGANumColor = 4 ;
- EGAWidth = 640 ;
- EGADepth = 350 ;
- EGANumColor = 16 ;
- VGAWidth = 640 ;
- VGADepth = 480 ;
- VGANumColor = 16 ;
- HercWidth = 720 ;
- HercDepth = 348 ;
- HercNumColor = 2 ;
- ATTWidth = 640 ;
- ATTDepth = 400 ;
- ATTNumColor = 2 ;
- END Graph.
|