{-------------------------------------------------------------------------} { graph.imp was designed to be read by p2c. It's a direct replacement for } { the graph unit defined in turbo.imp. } {-------------------------------------------------------------------------} { This interface declaration isn't totaly compatible with graph.tpu but } { mainly compatible with the BCC graphics.lib. Check the p2c output to } { be sure every thing wents right, most times I changed word to integer. } {-------------------------------------------------------------------------} unit graph; interface const grOk = 0; grNoInitGraph = -1; grNotDetected = -2; grFileNotFound = -3; grInvalidDriver = -4; grNoLoadMem = -5; grNoScanMem = -6; grNoFloodMem = -7; grFontNotFound = -8; grNoFontMem = -9; grInvalidMode = -10; grError = -11; grIOerror = -13; grInvalidFontNum = -14; DETECT = 0; CGA = 1; MCGA = 2; EGA = 3; EGA64 = 4; EGAMONO = 5; IBM8514 = 6; HERCMONO = 7; ATT400 = 8; VGA = 9; PC3270 = 10; CurrentDriver = -128; CGAC0 = 0; CGAC1 = 1; CGAC2 = 2; CGAC3 = 3; CGAHI = 4; MCGAC0 = 0; MCGAC1 = 1; MCGAC2 = 2; MCGAC3 = 3; MCGAMED = 4; MCGAHI = 5; EGALO = 0; EGAHO = 1; EGA64LO = 0; EGA64HO = 1; EGAMONOHI = 3; HERCMONOHI = 0; ATT400C0 = 0; ATT400C1 = 1; ATT400C2 = 2; ATT400C3 = 3; ATT400MED = 4; ATT400HI = 5; VGALO = 0; VGAMED = 1; VGAHI = 2; PC3270HI = 0; IBM8514LO = 0; IBM8514HI = 1; BLACK = 0; BLUE = 1; GREEN = 2; CYAN = 3; RED = 4; MAGENTA = 5; BROWN = 6; LIGHTGRAY = 7; DARKGRAY = 8; LIGHTBLUE = 9; LIGHTGREEN = 10; LIGHTCYAN = 11; LIGHTRED = 12; LIGHTMAGENTA = 13; YELLOW = 14; WHITE = 15; EGABLACK = 0; EGABLUE = 1; EGAGREEN = 2; EGACYAN = 3; EGARED = 4; EGAMAGENTA = 5; EGABROWN = 20; EGALIGHTGRAY = 7; EGADARKGRAY = 56; EGALIGHTBLUE = 57; EGALIGHTGREEN = 58; EGALIGHTCYAN = 59; EGALIGHTRED = 60; EGALIGHTMAGENTA = 61; EGAYELLOW = 62; EGAWHITE = 63; SolidLn = 0; DottedLn = 1; CenterLn = 2; DashedLn = 3; UserBitLn = 4; NormWidth = 1; ThickWidth = 3; type ArcCoordsType = record x, y: integer; xstart, ystart, xend, yend: integer; end; const MaxColors = 15; type PaletteType = record size: byte; colors: array[0..MaxColors] of shortint; end; FillPatternType = array[1..8] of byte; FillSettingsType = record pattern: integer; color: integer; end; LineSettingsType = record linestyle: integer; Pattern: word; thickness: integer; end; TextSettingsType = record font: integer; direction: integer; charsize: integer; horiz: integer; vert: integer; end; ViewPortType = record x1, y1, x2, y2: integer; clip: integer; end; PointType = record x, y: integer; end; const DefaultFont=0; TriplexFont=1; SmallFont=2; SansSerifFont=3; GothicFont=4; ScriptFont=5; SimplexFont=6; TriplexScrFont=7; ComplexFont=8; EuropeanFont=9; BoldFont=10; HorizDir=0; VertDir=1; UserCharSize=0; const LeftText = 0; CenterText = 1; RightText = 2; BottomText = 0; TopText = 2; const ClipOn = true; ClipOff = false; TopOn = true; TopOff = false; const EmptyFill = 0; SolidFill = 1; LineFill = 2; LtSlashFill = 3; SlashFill = 4; BkSlashFill = 5; LtBkSlashFill = 6; HatchFill = 7; XHatchFill = 8; InterleaveFill = 9; WideDotFill = 10; CloseDotFill = 11; UserFill = 17; const NormalPut = 0; CopyPut = 0; XORPut = 1; OrPut = 2; AndPut = 3; NotPut = 4; procedure arc(X, Y: integer; StAngle, EndAngle, Radius: integer); procedure bar(x1, y1, x2, y2: integer); procedure bar3d(x1, y1, x2, y2: integer; Depth: integer; Top: integer); procedure circle(X, Y: integer; Radius: integer); procedure cleardevice; procedure clearviewport; procedure closegraph; procedure detectgraph(var GraphDriver, GraphMode: integer); procedure drawpoly(NumPoints: integer; var PolyPoints); procedure ellipse(X, Y: integer; StAngle, EndAngle: integer; XRadius, YRadius: integer); procedure fillellipse(X, Y: integer; XRadius, YRadius: integer); procedure fillpoly(NumPoints: integer; var PolyPoints); procedure floodfill(x, y: integer; Border: word); procedure getarccoords(var ArcCoords: ArcCoordsType); procedure getaspectratio(var Xasp, Yasp: word); function getbkcolor: integer; function getcolor: integer; function GetDefaultPalette(var Palette: PaletteType): PaletteType; function GetDriverName: string; procedure getfillpattern(var FillPattern: FillPatternType); procedure getfillsettings(var FillInfo: FillSettingsType); function getgraphmode: integer; procedure getimage(x1, y1, x2, y2: integer; var BitMap); procedure getlinesettings(var LineInfo: LineSettingsType); function getmaxcolor: integer; function getmaxmode: integer; function getmaxx: integer; function getmaxy: integer; function GetModeName(ModeNumber: integer): string; procedure getmoderange(GraphDriver: integer; var LoMode, HiMode: integer); procedure getpalette(var Palette: PaletteType); function getpalettesize: integer; function getpixel(X,Y: integer): integer; procedure gettextsettings(var TextInfo: TextSettingsType); procedure getviewsettings(var ViewPort: ViewPortType); function getx: integer; function gety: integer; procedure graphdefaults; function GraphErrorMsg(ErrorCode: integer): string; function graphresult: integer; function imagesize(x1, y1, x2, y2: integer): word; procedure initgraph(var GraphDriver: integer; var GraphMode: integer; PathToDriver: string); function InstallUserDriver(Name: string; AutoDetectPtr: pointer): integer; function InstallUserFont(FontFileName: string): integer; procedure line(x1, y1, x2, y2: integer); procedure linerel(Dx, Dy: integer); procedure lineto(x, y: integer); procedure moverel(Dx, Dy: integer); procedure moveto(x, y: integer); procedure outtext(TextString: string); procedure outtextxy(X,Y: integer; TextString: string); procedure pieslice(x, y: integer; StAngle, EndAngle, Radius: integer); procedure putimage(x, y: integer; var BitMap; BitBlt: integer); procedure putpixel(x, y: integer; Pixel: integer); procedure rectangle(x1, y1, x2, y2: integer); function RegisterBGIdriver(driver: pointer): integer; function RegisterBGIfont(font: pointer): integer; procedure restorecrtmode; procedure sector(x, y: integer; StAngle, EndAngle, XRadius, YRadius: integer); procedure setactivepage(Page: integer); procedure setallpalette(var Palette); procedure setaspectratio(Xasp, Yasp: integer); procedure setbkcolor(ColorNum: integer); procedure setcolor(Color: integer); procedure setfillpattern(Pattern: FillPatternType; Color: integer); procedure setfillstyle(Pattern: integer; Color: integer); procedure setgraphbufsize(BufSize: word); procedure setgraphmode(Mode: integer); procedure setlinestyle(LineStyle: integer; Pattern: word; Thickness: integer); procedure setpalette(ColorNum: integer; Color: integer); procedure setrgbpalette(ColorNum, RedValue, GreenValue, BlueValue: integer); procedure settextjustify(Horiz, Vert: integer); procedure settextstyle(Font, Direction, CharSize: integer); procedure setusercharsize(MultX, DivX, MultY, DivY: integer); procedure setviewport(x1, y1, x2, y2: integer; Clip: integer); procedure setvisualpage(Page: integer); procedure setwritemode(WriteMode: integer); function textheight(TextString: string): integer; function textwidth(TextString: string): integer; end;