/* graphics.h Definitions for Graphics Package. Copyright (c) Borland International 1987,1988 All Rights Reserved.*/#if __STDC__#define _Cdecl#else#define _Cdecl cdecl#endif#if !defined(__GRAPHX_DEF_)#define __GRAPHX_DEF_enum graphics_errors { /* graphresult error return codes */ grOk = 0, grNoInitGraph = -1, grNotDetected = -2, grFileNotFound = -3, grInvalidDriver = -4, grNoLoadMem = -5, grNoScanMem = -6, grNoFloodMem = -7, grFontNotFound = -8, grNoFontMem = -9, grInvalidMode = -10, grError = -11, /* generic error */ grIOerror = -12, grInvalidFont = -13, grInvalidFontNum = -14, grInvalidVersion = -18};enum graphics_drivers { /* define graphics drivers */ DETECT, /* requests autodetection */ CGA, MCGA, EGA, EGA64, EGAMONO, IBM8514, /* 1 - 6 */ HERCMONO, ATT400, VGA, PC3270, /* 7 - 10 */ CURRENT_DRIVER = -1};enum graphics_modes { /* graphics modes for each driver */ CGAC0 = 0, /* 320x200 palette 0; 1 page */ CGAC1 = 1, /* 320x200 palette 1; 1 page */ CGAC2 = 2, /* 320x200 palette 2: 1 page */ CGAC3 = 3, /* 320x200 palette 3; 1 page */ CGAHI = 4, /* 640x200 1 page */ MCGAC0 = 0, /* 320x200 palette 0; 1 page */ MCGAC1 = 1, /* 320x200 palette 1; 1 page */ MCGAC2 = 2, /* 320x200 palette 2; 1 page */ MCGAC3 = 3, /* 320x200 palette 3; 1 page */ MCGAMED = 4, /* 640x200 1 page */ MCGAHI = 5, /* 640x480 1 page */ EGALO = 0, /* 640x200 16 color 4 pages */ EGAHI = 1, /* 640x350 16 color 2 pages */ EGA64LO = 0, /* 640x200 16 color 1 page */ EGA64HI = 1, /* 640x350 4 color 1 page */ EGAMONOHI = 0, /* 640x350 64K on card, 1 page - 256K on card, 4 pages */ HERCMONOHI = 0, /* 720x348 2 pages */ ATT400C0 = 0, /* 320x200 palette 0; 1 page */ ATT400C1 = 1, /* 320x200 palette 1; 1 page */ ATT400C2 = 2, /* 320x200 palette 2; 1 page */ ATT400C3 = 3, /* 320x200 palette 3; 1 page */ ATT400MED = 4, /* 640x200 1 page */ ATT400HI = 5, /* 640x400 1 page */ VGALO = 0, /* 640x200 16 color 4 pages */ VGAMED = 1, /* 640x350 16 color 2 pages */ VGAHI = 2, /* 640x480 16 color 1 page */ PC3270HI = 0, /* 720x350 1 page */ IBM8514LO = 0, /* 640x480 256 colors */ IBM8514HI = 1 /*1024x768 256 colors */};/* Colors for setpalette and setallpalette */#if !defined(__COLORS)#define __COLORSenum COLORS { BLACK, /* dark colors */ BLUE, GREEN, CYAN, RED, MAGENTA, BROWN, LIGHTGRAY, DARKGRAY, /* light colors */ LIGHTBLUE, LIGHTGREEN, LIGHTCYAN, LIGHTRED, LIGHTMAGENTA, YELLOW, WHITE};#endifenum CGA_COLORS { CGA_LIGHTGREEN = 1, /* Palette C0 Color Names */ CGA_LIGHTRED = 2, CGA_YELLOW = 3, CGA_LIGHTCYAN = 1, /* Palette C1 Color Names */ CGA_LIGHTMAGENTA = 2, CGA_WHITE = 3, CGA_GREEN = 1, /* Palette C2 Color Names */ CGA_RED = 2, CGA_BROWN = 3, CGA_CYAN = 1, /* Palette C3 Color Names */ CGA_MAGENTA = 2, CGA_LIGHTGRAY = 3};enum EGA_COLORS { EGA_BLACK = 0, /* dark colors */ EGA_BLUE = 1, EGA_GREEN = 2, EGA_CYAN = 3, EGA_RED = 4, EGA_MAGENTA = 5, EGA_BROWN = 20, EGA_LIGHTGRAY = 7, EGA_DARKGRAY = 56, /* light colors */ EGA_LIGHTBLUE = 57, EGA_LIGHTGREEN = 58, EGA_LIGHTCYAN = 59, EGA_LIGHTRED = 60, EGA_LIGHTMAGENTA = 61, EGA_YELLOW = 62, EGA_WHITE = 63};enum line_styles { /* Line styles for get/setlinestyle */ SOLID_LINE = 0, DOTTED_LINE = 1, CENTER_LINE = 2, DASHED_LINE = 3, USERBIT_LINE = 4, /* User defined line style */};enum line_widths { /* Line widths for get/setlinestyle */ NORM_WIDTH = 1, THICK_WIDTH = 3,};enum font_names { DEFAULT_FONT = 0, /* 8x8 bit mapped font */ TRIPLEX_FONT = 1, /* "Stroked" fonts */ SMALL_FONT = 2, SANS_SERIF_FONT = 3, GOTHIC_FONT = 4};#define HORIZ_DIR 0 /* left to right */#define VERT_DIR 1 /* bottom to top */#define USER_CHAR_SIZE 0 /* user-defined char size */enum fill_patterns { /* Fill patterns for get/setfillstyle */ EMPTY_FILL, /* fills area in background color */ SOLID_FILL, /* fills area in solid fill color */ LINE_FILL, /* --- fill */ LTSLASH_FILL, /* /// fill */ SLASH_FILL, /* /// fill with thick lines */ BKSLASH_FILL, /* \\\ fill with thick lines */ LTBKSLASH_FILL, /* \\\ fill */ HATCH_FILL, /* light hatch fill */ XHATCH_FILL, /* heavy cross hatch fill */ INTERLEAVE_FILL, /* interleaving line fill */ WIDE_DOT_FILL, /* Widely spaced dot fill */ CLOSE_DOT_FILL, /* Closely spaced dot fill */ USER_FILL /* user defined fill */};enum putimage_ops { /* BitBlt operators for putimage */ COPY_PUT, /* MOV */ XOR_PUT, /* XOR */ OR_PUT, /* OR */ AND_PUT, /* AND */ NOT_PUT /* NOT */};enum text_just { /* Horizontal and vertical justification for settextjustify */ LEFT_TEXT = 0, CENTER_TEXT = 1, RIGHT_TEXT = 2, BOTTOM_TEXT = 0, /* CENTER_TEXT = 1, already defined above */ TOP_TEXT = 2};#define MAXCOLORS 15struct palettetype { unsigned char size; signed char colors[MAXCOLORS+1];};struct linesettingstype { int linestyle; unsigned upattern; int thickness;};struct textsettingstype { int font; int direction; int charsize; int horiz; int vert;};struct fillsettingstype { int pattern; int color;};struct pointtype { int x, y;};struct viewporttype { int left, top, right, bottom; int clip;};struct arccoordstype { int x, y; int xstart, ystart, xend, yend;};void far _Cdecl arc(int x, int y, int stangle, int endangle, int radius);void far _Cdecl bar(int left, int top, int right, int bottom);void far _Cdecl bar3d(int left, int top, int right, int bottom, int depth, int topflag);void far _Cdecl circle(int x, int y, int radius);void far _Cdecl cleardevice(void);void far _Cdecl clearviewport(void);void far _Cdecl closegraph(void);void far _Cdecl detectgraph(int far *graphdriver,int far *graphmode);void far _Cdecl drawpoly(int numpoints, int far *polypoints);void far _Cdecl ellipse(int x, int y, int stangle, int endangle, int xradius, int yradius);void far _Cdecl fillellipse( int x, int y, int xradius, int yradius );void far _Cdecl fillpoly(int numpoints, int far *polypoints);void far _Cdecl floodfill(int x, int y, int border);void far _Cdecl getarccoords(struct arccoordstype far *arccoords);void far _Cdecl getaspectratio(int far *xasp, int far *yasp);int far _Cdecl getbkcolor(void);int far _Cdecl getcolor(void);struct palettetype * far _Cdecl getdefaultpalette( void );char * far _Cdecl getdrivername( void );void far _Cdecl getfillpattern(char far *pattern);void far _Cdecl getfillsettings(struct fillsettingstype far *fillinfo);int far _Cdecl getgraphmode(void);void far _Cdecl getimage(int left, int top, int right, int bottom, void far *bitmap);void far _Cdecl getlinesettings(struct linesettingstype far *lineinfo);int far _Cdecl getmaxcolor(void);int far _Cdecl getmaxmode(void);int far _Cdecl getmaxx(void);int far _Cdecl getmaxy(void);char * far _Cdecl getmodename( int mode_number );void far _Cdecl getmoderange(int graphdriver, int far *lomode, int far *himode);unsigned far _Cdecl getpixel(int x, int y);void far _Cdecl getpalette(struct palettetype far *palette);int far _Cdecl getpalettesize( void );void far _Cdecl gettextsettings(struct textsettingstype far *texttypeinfo);void far _Cdecl getviewsettings(struct viewporttype far *viewport);int far _Cdecl getx(void);int far _Cdecl gety(void);void far _Cdecl graphdefaults(void);char * far _Cdecl grapherrormsg(int errorcode);void far _Cdecl _graphfreemem(void far *ptr, unsigned size);void far * far _Cdecl _graphgetmem(unsigned size);int far _Cdecl graphresult(void);unsigned far _Cdecl imagesize(int left, int top, int right, int bottom);void far _Cdecl initgraph(int far *graphdriver, int far *graphmode, char far *pathtodriver);int far _Cdecl installuserdriver( char far *name, int huge (*detect)(void) );int far _Cdecl installuserfont( char far *name );void far _Cdecl line(int x1, int y1, int x2, int y2);void far _Cdecl linerel(int dx, int dy);void far _Cdecl lineto(int x, int y);void far _Cdecl moverel(int dx, int dy);void far _Cdecl moveto(int x, int y);void far _Cdecl outtext(char far *textstring);void far _Cdecl outtextxy(int x, int y, char far *textstring);void far _Cdecl pieslice(int x, int y, int stangle, int endangle, int radius);void far _Cdecl putimage(int left, int top, void far *bitmap, int op);void far _Cdecl putpixel(int x, int y, int color);void far _Cdecl rectangle(int left, int top, int right, int bottom);void far _Cdecl restorecrtmode(void);void far _Cdecl sector( int X, int Y, int StAngle, int EndAngle, int XRadius, int YRadius );void far _Cdecl setactivepage(int page);void far _Cdecl setallpalette(struct palettetype far *palette);void far _Cdecl setaspectratio( int xasp, int yasp );void far _Cdecl setbkcolor(int color);void far _Cdecl setcolor(int color);void far _Cdecl setfillpattern(char far *upattern, int color);void far _Cdecl setfillstyle(int pattern, int color);unsigned far _Cdecl setgraphbufsize(unsigned bufsize);void far _Cdecl setgraphmode(int mode);void far _Cdecl setlinestyle(int linestyle, unsigned upattern, int thickness);void far _Cdecl setpalette(int colornum, int color);void far _Cdecl setrgbpalette(int colornum, int red, int green, int blue);void far _Cdecl settextjustify(int horiz, int vert);void far _Cdecl settextstyle(int font, int direction, int charsize);void far _Cdecl setusercharsize(int multx, int divx, int multy, int divy);void far _Cdecl setviewport(int left, int top, int right, int bottom, int clip);void far _Cdecl setvisualpage(int page);void far _Cdecl setwritemode( int mode );int far _Cdecl textheight(char far *textstring);int far _Cdecl textwidth(char far *textstring);/***** graphics drivers *****/int _Cdecl registerbgidriver(void (*driver)(void));int far _Cdecl registerfarbgidriver(void far *driver);/* !! These "functions" are NOT user-callable !! *//* !! They are there just so you can link in graphics drivers !! */void _Cdecl CGA_driver(void);void _Cdecl EGAVGA_driver(void);void _Cdecl IBM8514_driver(void);void _Cdecl Herc_driver(void);void _Cdecl ATT_driver(void);void _Cdecl PC3270_driver(void);extern int far _Cdecl CGA_driver_far[];extern int far _Cdecl EGAVGA_driver_far[];extern int far _Cdecl IBM8514_driver_far[];extern int far _Cdecl Herc_driver_far[];extern int far _Cdecl ATT_driver_far[];extern int far _Cdecl PC3270_driver_far[];/***** graphics fonts *****/int _Cdecl registerbgifont(void (*font)(void));int far _Cdecl registerfarbgifont(void far *font);/* !! These "functions" are NOT user-callable, !! *//* !! they are there just so you can link in fonts !! */void _Cdecl triplex_font(void);void _Cdecl small_font(void);void _Cdecl sansserif_font(void);void _Cdecl gothic_font(void);extern int far _Cdecl triplex_font_far[];extern int far _Cdecl small_font_far[];extern int far _Cdecl sansserif_font_far[];extern int far _Cdecl gothic_font_far[];#endif.