www.pudn.com > linuxcici1.rar > GRAPHICS.H


/*	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 __COLORS 
 
enum COLORS { 
    BLACK,		    /* dark colors */ 
    BLUE, 
    GREEN, 
    CYAN, 
    RED, 
    MAGENTA, 
    BROWN, 
    LIGHTGRAY, 
    DARKGRAY,		    /* light colors */ 
    LIGHTBLUE, 
    LIGHTGREEN, 
    LIGHTCYAN, 
    LIGHTRED, 
    LIGHTMAGENTA, 
    YELLOW, 
    WHITE 
}; 
#endif 
 
enum 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 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, 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