home *** CD-ROM | disk | FTP | other *** search
- /*****************************************************************************/
- /* File : GRAPHICS.H */
- /* */
- /* Purpose : definitions for Turbo C v2.0 compatible graphics library. */
- /* This header file is to be used with Lattice C v5.06 */
- /* */
- /* Author : Kenneth W. Hartlen */
- /* Address : Box 37, Site 6, RR#3 */
- /* Armdale, Nova Scotia */
- /* B3L 4J3 Canada */
- /* */
- /* Copyright (c) 1992 */
- /* */
- /* Note: Turbo C v2.0 is a copyrighted product and trademark of */
- /* ==== Borland International Inc. */
- /* */
- /*****************************************************************************/
-
- #ifndef __GRAPHX_DEF_ /* prevent multiple inclusions */
- #define __GRAPHX_DEF_
-
- /*---------------------------------------------------------------------------*/
- /* Access to Atari ST VDI and AES work areas */
- #include <vdi.h>
- #include <aes.h>
-
- extern
- short contrl[], /* default of 12 */
- intin[], /* default of 128 */
- ptsin[], /* default of 128 */
- intout[], /* default of 128 */
- ptsout[]; /* default of 128 */
-
- extern
- short handle; /* workstation handle */
-
- extern
- short work_in[], /* default of 12 */
- work_out[]; /* default of 57 */
-
- /*---------------------------------------------------------------------------*/
- /* Remainder of header file provides a degree of compatiblity with */
- /* Borland's Turbo C v2.0 graphics library */
-
- 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, /* general error */
- grIOerror = -12,
- grInvalidFont = -13,
- grInvalidFontNum = -14,
- grInvalidDeviceNum = -15,
- grInvalidFontSize = -16,
- grNotImplemented = -17,
- grInvalidVersion = -18
- };
-
- enum graphics_drivers { /* define graphics drivers */
- CURRENT_DRIVER = -1,
- DETECT = 0, /* autodetection */
- CGA, MCGA, EGA, EGA64, EGAMONO, IBM8514, /* 1 - 6 */
- HERCMONO, ATT400, VGA, PC3270, /* 7 - 10 */
- SC1224, SM124, /* 11 - 12 */
- TTC1434, TTM194, /* 13 - 14 */
- UNKNOWN_DRIVER /* 15 */
- };
-
- enum graphics_modes { /* graphics modes for each driver */
- CGAC0 = 0, CGAC1, CGAC2, CGAC3, CGAHI,
- MCGAC0 = 0, MCGAC1, MCGAC2, MCGAC3, MCGAMED, MCGAHI,
- EGALO = 0, EGAHI,
- EGA64LO = 0, EGA64HI,
- EGAMONOHI = 0,
- IBM8514LO = 0, IBM8514HI,
- HERCMONOHI = 0,
- ATT400C0 = 0, ATT400C1, ATT400C2, ATT400C3, ATT400MED, ATT400HI,
- VGALO = 0, VGAMED, VGAHI,
- PC3270HI = 0,
- SC1224LO = 0, SC1224MED,
- SM124HI = 0,
- TTC1434STLO = 0, TTC1434STMED, TTC1434STHI, TTC1434LO, TTC1434MED,
- TTM194HI = 0,
- UNKNOWN_MODE = 0
- };
-
- /* undefine GEM colour definitions that conflict with Turbo C */
- #undef BLACK
- #undef BLUE
- #undef GREEN
- #undef CYAN
- #undef RED
- #undef MAGENTA
- #undef YELLOW
- #undef WHITE
-
- #ifndef __COLORS /* prevent multiple inclusions */
- #define __COLORS
- enum COLORS {
- BLACK,
- BLUE,
- GREEN,
- CYAN,
- RED,
- MAGENTA,
- BROWN,
- LIGHTGRAY,
- DARKGRAY,
- LIGHTBLUE,
- LIGHTGREEN,
- LIGHTCYAN,
- LIGHTRED,
- LIGHTMAGENTA,
- YELLOW,
- WHITE
- };
- #endif /* __COLORS */
-
- enum CGA_COLORS {
- CGA_LIGHTGREEN = 1,
- CGA_LIGHTRED = 2,
- CGA_YELLOW = 3,
-
- CGA_LIGHTCYAN = 1,
- CGA_LIGHTMAGENTA = 2,
- CGA_WHITE = 3,
-
- CGA_GREEN = 1,
- CGA_RED = 2,
- CGA_BROWN = 3,
-
- CGA_CYAN = 1,
- CGA_MAGENTA = 2,
- CGA_LIGHTGRAY = 3
- };
-
- enum EGA_COLORS {
- EGA_BLACK = 0,
- EGA_BLUE = 1,
- EGA_GREEN = 2,
- EGA_CYAN = 3,
- EGA_RED = 4,
- EGA_MAGENTA = 5,
- EGA_BROWN = BROWN,
- EGA_LIGHTGRAY = 7,
- EGA_DARKGRAY = DARKGRAY,
- EGA_LIGHTBLUE = LIGHTBLUE,
- EGA_LIGHTGREEN = LIGHTGREEN,
- EGA_LIGHTCYAN = LIGHTCYAN,
- EGA_LIGHTRED = LIGHTRED,
- EGA_LIGHTMAGENTA = LIGHTMAGENTA,
- EGA_YELLOW = YELLOW,
- EGA_WHITE = WHITE
- };
-
- 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, /* system font */
- TRIPLEX_FONT = 1,
- SMALL_FONT = 2,
- SANS_SERIF_FONT = 3,
- GOTHIC_FONT = 4
- };
-
- #define HORIZ_DIR 0 /* text left to right, 0 degrees */
- #define VERT_DIR 1 /* text bottom to top, 90 degrees */
-
- #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 15 /* number of pens */
-
- struct 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;
- };
-
- /*****************************************************************************/
- /* Turbo C compatible graphic function prototypes */
- /*****************************************************************************/
- void far arc(int x, int y, int stangle, int endangle,
- int radius);
- void far bar(int left, int top, int right, int bottom);
- void far bar3d(int left, int top, int right, int bottom,
- int depth, int topflag);
- void far circle(int x, int y, int radius);
- void far cleardevice(void);
- void far clearviewport(void);
- void far closegraph(void);
- void far detectgraph(int far *graphdriver,int far *graphmode);
- void far drawpoly(int numpoints, int far *polypoints);
- void far ellipse(int x, int y, int stangle, int endangle,
- int xradius, int yradius);
- void far fillellipse(int x, int y, int xradius, int yradius);
- void far fillpoly(int numpoints, int far *polypoints);
- void far floodfill(int x, int y, int border);
- void far getarccoords(struct arccoordstype far *arccoords);
- void far getaspectratio(int far *xasp, int far *yasp);
- int far getbkcolor(void);
- int far getcolor(void);
- struct palettetype * far getdefaultpalette(void);
- char * far getdrivername(void);
- void far getfillpattern(char far *pattern);
- void far getfillsettings(struct fillsettingstype far *fillinfo);
- int far getgraphmode(void);
- void far getimage(int left, int top, int right, int bottom,
- void far *bitmap);
- void far getlinesettings(struct linesettingstype far *lineinfo);
- int far getmaxcolor(void);
- int far getmaxmode(void);
- int far getmaxx(void);
- int far getmaxy(void);
- char * far getmodename(int mode_number);
- void far getmoderange(int graphdriver, int far *lomode,
- int far *himode);
- void far getpalette(struct palettetype far *palette);
- int far getpalettesize(void);
- unsigned far getpixel(int x, int y);
- void far gettextsettings(struct textsettingstype far *texttypeinfo);
- void far getviewsettings(struct viewporttype far *viewport);
- int far getx(void);
- int far gety(void);
- void far graphdefaults(void);
- char * far grapherrormsg(int errorcode);
- int far graphresult(void);
- unsigned far imagesize(int left, int top, int right, int bottom);
- void far initgraph(int far *graphdriver, int far *graphmode,
- char far *pathtodriver);
- void far line(int x1, int y1, int x2, int y2);
- void far linerel(int dx, int dy);
- void far lineto(int x, int y);
- void far moverel(int dx, int dy);
- void far moveto(int x, int y);
- void far outtext(char far *textstring);
- void far outtextxy(int x, int y, char far *textstring);
- void far pieslice(int x, int y, int stangle, int endangle,
- int radius);
- void far putimage(int left, int top, void far *bitmap, int op);
- void far putpixel(int x, int y, int color);
- void far rectangle(int left, int top, int right, int bottom);
- void far restorecrtmode(void);
- void far sector(int x, int y, int stangle, int endangle,
- int xradius, int yradius );
- void far setactivepage(int page);
- void far setallpalette(struct palettetype far *palette);
- void far setbkcolor(int color);
- void far setcolor(int color);
- void far setfillpattern(char far *upattern, int color);
- void far setfillstyle(int pattern, int color);
- void far setgraphmode(int mode);
- void far setlinestyle(int linestyle, unsigned upattern,
- int thickness);
- void far setpalette(int colornum, int color);
- void far setrgbpalette(int colornum,
- int red, int green, int blue);
- void far settextjustify(int horiz, int vert);
- void far settextstyle(int font, int direction, int charsize);
- void far setviewport(int left, int top, int right, int bottom,
- int clip);
- void far setvisualpage(int page);
- void far setwritemode(int mode);
- int far textheight(char far *textstring);
- int far textwidth(char far *textstring);
-
- /*****************************************************************************/
- /* The following Turbo C graphic functions are not implemented in the */
- /* Turbo compatible graphics library. */
- /* Functions can be called, but graphresult() reports grNotImplemented. */
- /*****************************************************************************/
-
- void far _graphfreemem(void far *ptr, unsigned size);
- void far * far _graphgetmem(unsigned size);
- int far installuserdriver(char far *name, int huge (*detect)(void));
- int far installuserfont(char far *name);
- int registerbgidriver(void (*driver)(void));
- int far registerfarbgidriver(void far *driver);
- int registerbgifont(void (*font)(void));
- int far registerfarbgifont(void far *font);
- void far setaspectratio(int xasp, int yasp);
- unsigned far setgraphbufsize(unsigned bufsize);
- void far setusercharsize(int multx, int divx, int multy, int divy);
-
- #endif /* __GRAPHX_DEF_ */
-