/* GRAPHICS.H (c) 1992 Pure Software GmbH */ #ifndef __GRAPHX_DEF_ #define __GRAPHX_DEF_ enum graphics_errors { 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 = -12, grInvalidFont = -13, grInvalidFontNum = -14, grInvalidVersion = -18 }; enum graphics_drivers { DETECT, CURRENT_DRIVER = -1, CGA, MCGA, EGA, EGA64, EGAMONO, IBM8514, HERCMONO, ATT400, VGA, PC3270, VDI = 256 }; enum graphics_modes { CGAC0 = 0, CGAC1 = 1, CGAC2 = 2, CGAC3 = 3, CGAHI = 4, MCGAC0 = 0, MCGAC1 = 1, MCGAC2 = 2, MCGAC3 = 3, MCGAMED = 4, MCGAHI = 5, EGALO = 0, EGAHI = 1, EGA64LO = 0, EGA64HI = 1, EGAMONOHI = 0, 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, VDIMODE = 0 }; #ifndef __COLORS #define __COLORS enum COLORS { BLACK, BLUE, GREEN, CYAN, RED, MAGENTA, BROWN, LIGHTGRAY, DARKGRAY, LIGHTBLUE, LIGHTGREEN, LIGHTCYAN, LIGHTRED, LIGHTMAGENTA, YELLOW, WHITE }; #endif enum CGA_COLORS { CGA_GREEN = 2, CGA_CYAN = 3, CGA_RED = 4, CGA_MAGENTA = 5, CGA_BROWN = 6, CGA_LIGHTGRAY = 7, CGA_LIGHTGREEN = 10, CGA_LIGHTCYAN = 11, CGA_LIGHTRED = 12, CGA_LIGHTMAGENTA = 13, CGA_YELLOW = 14, CGA_WHITE = 15 }; enum EGA_COLORS { EGA_BLACK = 0, EGA_BLUE = 1, EGA_GREEN = 2, EGA_CYAN = 3, EGA_RED = 4, EGA_MAGENTA = 5, EGA_BROWN = 6, EGA_LIGHTGRAY = 7, EGA_DARKGRAY = 8, EGA_LIGHTBLUE = 9, EGA_LIGHTGREEN = 10, EGA_LIGHTCYAN = 11, EGA_LIGHTRED = 12, EGA_LIGHTMAGENTA = 13, EGA_YELLOW = 14, EGA_WHITE = 15 }; enum line_styles { SOLID_LINE = 0, DOTTED_LINE = 1, CENTER_LINE = 2, DASHED_LINE = 3, USERBIT_LINE = 4 }; enum line_widths { NORM_WIDTH = 1, THICK_WIDTH = 3 }; enum font_names { DEFAULT_FONT = 0, TRIPLEX_FONT = 1, SMALL_FONT = 2, SANS_SERIF_FONT = 3, GOTHIC_FONT = 4 }; #define HORIZ_DIR 0 #define VERT_DIR 1 #define USER_CHAR_SIZE 0 enum fill_patterns { EMPTY_FILL, SOLID_FILL, LINE_FILL, LTSLASH_FILL, SLASH_FILL, BKSLASH_FILL, LTBKSLASH_FILL, HATCH_FILL, XHATCH_FILL, INTERLEAVE_FILL, WIDE_DOT_FILL, CLOSE_DOT_FILL, USER_FILL }; enum putimage_ops { COPY_PUT, XOR_PUT, OR_PUT, AND_PUT, NOT_PUT }; enum text_just { LEFT_TEXT = 0, CENTER_TEXT = 1, RIGHT_TEXT = 2, BOTTOM_TEXT = 0, TOP_TEXT = 2 }; #define MAXCOLORS 15 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; int y; }; struct viewporttype { int left; int top; int right; int bottom; int clip; }; struct arccoordstype { int x; int y; int xstart; int ystart; int xend; int yend; }; void arc( int x, int y, int stangle, int endangle, int radius ); void bar( int left, int top, int right, int bottom ); void bar3d( int left, int top, int right, int bottom, int depth, int topflag ); void circle( int x, int y, int radius ); void cleardevice( void ); void clearviewport( void ); void closegraph( void ); void detectgraph( int *graphdriver,int *graphmode ); void drawpoly( int numpoints, int *polypoints ); void ellipse( int x, int y, int stangle, int endangle, int xradius, int yradius ); void fillellipse( int x, int y, int xradius, int yradius ); void fillpoly( int numpoints, int *polypoints ); void floodfill( int x, int y, int border ); void getarccoords( struct arccoordstype *arccoords ); void getaspectratio( int *xasp, int *yasp ); int getbkcolor( void ); int getcolor( void ); char *getdrivername( void ); void *getdefaultpalette( void ); void getfillpattern( char *pattern ); void getfillsettings( struct fillsettingstype *fillinfo ); int getgraphmode( void ); void getimage( int left, int top, int right, int bottom, void *bitmap ); void getlinesettings( struct linesettingstype *lineinfo ); int getmaxcolor( void ); int getmaxmode( void ); int getmaxx( void ); int getmaxy( void ); char *getmodename( int mode_number ); void getmoderange( int graphdriver, int *lomode, int *himode ); unsigned int getpixel( int x, int y ); void getpalette( struct palettetype *palette ); int getpalettesize( void ); void gettextsettings( struct textsettingstype *texttypeinfo ); void getviewsettings( struct viewporttype *viewport ); int getx( void ); int gety( void ); void graphdefaults( void ); char *grapherrormsg( int errorcode ); void _graphfreemem( void *ptr, unsigned size ); void *_graphgetmem( unsigned size ); int graphresult( void ); unsigned long imagesize( int left, int top, int right, int bottom ); void initgraph( int *graphdriver, int *graphmode, char *pathtodriver ); int installuserdriver( char *name, int (*detect)( void )); int installuserfont( char *name ); void line( int x1, int y1, int x2, int y2 ); void linerel( int dx, int dy ); void lineto( int x, int y ); void moverel( int dx, int dy ); void moveto( int x, int y ); void outtext( char *textstring ); void outtextxy( int x, int y, char *textstring ); void pieslice( int x, int y, int stangle, int endangle, int radius ); void putimage( int left, int top, void *bitmap, int op ); void putpixel( int x, int y, int color ); void rectangle( int left, int top, int right, int bottom ); int registerbgidriver( void (*driver)( void )); int registerbgifont( void (*font)( void )); void restorecrtmode( void ); void sector( int X, int Y, int StAngle, int EndAngle, int XRadius, int YRadius ); void setactivepage( int page ); void setallpalette( struct palettetype *palette ); void setaspectratio( int xasp, int yasp ); void setbkcolor( int color ); void setcolor( int color ); void setfillpattern( char *upattern, int color ); void setfillstyle( int pattern, int color ); unsigned int setgraphbufsize( unsigned bufsize ); void setgraphmode( int mode ); void setlinestyle( int linestyle, unsigned upattern, int thickness ); void setpalette( int index, int color ); void setrgbpalette( int colornum, int red, int green, int blue ); void settextjustify( int horiz, int vert ); void settextstyle( int font, int direction, int charsize ); void setusercharsize( int multx, int divx, int multy, int divy ); void setviewport( int left, int top, int right, int bottom, int clip ); void setvisualpage( int page ); void setwritemode( int mode ); int textheight( char *textstring ); int textwidth( char *textstring ); void triplex_font( void ); void small_font( void ); void sansserif_font( void ); void gothic_font( void ); #endif