This is the graphics.h header file which contains all the graphics functions and their implementations. It is quite nice to have a look at header files just to know more about functions and their parameters. Also it tells about different structures, enum defined in the file for specific purpose.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 | #if !defined(__GRAPHICS_H) #define __GRAPHICS_H #if !defined( __DEFS_H ) #include <_defs.h> #endif 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, SCRIPT_FONT = 5, SIMPLEX_FONT = 6, TRIPLEX_SCR_FONT = 7, COMPLEX_FONT = 8, EUROPEAN_FONT = 9, BOLD_FONT = 10 }; #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; }; #ifdef __cplusplus extern "C" { #endif 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, const 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, const 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 * 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, const char far *__pathtodriver); int far _Cdecl installuserdriver( const char far *__name, int huge (*detect)(void) ); int far _Cdecl installuserfont( const 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(const char far *__textstring); void far _Cdecl outtextxy(int __x, int __y, const 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, const 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(const 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(const 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(const char far *__textstring); int far _Cdecl textwidth(const 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[]; #ifdef __cplusplus } #endif #endif |