/*** *graph.h - declare constants and functions for graphics library * * Copyright (c) 1987-1988, Microsoft Corporation. All rights reserved. * *Purpose: * This file declares the graphics library functions and * the manifest constants that are used with them. * *******************************************************************************/ /* user-visible declarations for Quick-C Graphics Library */ #ifndef _GRAPH_T_DEFINED /* structure for _getvideoconfig() as visible to user */ struct videoconfig { short numxpixels; /* number of pixels on X axis */ short numypixels; /* number of pixels on Y axis */ short numtextcols; /* number of text columns available */ short numtextrows; /* number of text rows available */ short numcolors; /* number of actual colors */ short bitsperpixel; /* number of bits per pixel */ short numvideopages; /* number of available video pages */ short mode; /* current video mode */ short adapter; /* active display adapter */ short monitor; /* active display monitor */ short memory; /* adapter video memory in K bytes */ }; /* return value of _setlogorg(), etc. */ struct xycoord { short xcoord; short ycoord; }; /* structure for text position */ struct rccoord { short row; short col; }; #define _GRAPH_T_DEFINED #endif /* SETUP AND CONFIGURATION */ short far cdecl _setvideomode(short); /* arguments to _setvideomode() */ #define _DEFAULTMODE -1 /* restore screen to original mode */ #define _TEXTBW40 0 /* 40 x 25 text, 16 grey */ #define _TEXTC40 1 /* 40 x 25 text, 16/8 color */ #define _TEXTBW80 2 /* 80 x 25 text, 16 grey */ #define _TEXTC80 3 /* 80 x 25 text, 16/8 color */ #define _MRES4COLOR 4 /* 320 x 200, 4 color */ #define _MRESNOCOLOR 5 /* 320 x 200, 4 grey */ #define _HRESBW 6 /* 640 x 200, BW */ #define _TEXTMONO 7 /* 80 x 25 text, BW */ #define _HERCMONO 8 /* 720 x 348, BW for HGC */ #define _MRES16COLOR 13 /* 320 x 200, 16 color */ #define _HRES16COLOR 14 /* 640 x 200, 16 color */ #define _ERESNOCOLOR 15 /* 640 x 350, BW */ #define _ERESCOLOR 16 /* 640 x 350, 4 or 16 color */ #define _VRES2COLOR 17 /* 640 x 480, BW */ #define _VRES16COLOR 18 /* 640 x 480, 16 color */ #define _MRES256COLOR 19 /* 320 x 200, 256 color */ short far cdecl _setactivepage(short); short far cdecl _setvisualpage(short); /* videoconfig adapter values */ /* these manifest constants can be used to determine the type of monitor in */ /* use, using either simple comparisons or the bitwise-AND operator (&) */ #define _MDPA 0x0001 /* Monochrome Display Adapter (MDPA) */ #define _CGA 0x0002 /* Color Graphics Adapter (CGA) */ #define _EGA 0x0004 /* Enhanced Graphics Adapter (EGA) */ #define _VGA 0x0008 /* Video Graphics Array (VGA) */ #define _MCGA 0x0010 /* MultiColor Graphics Array (MCGA) */ #define _HGC 0x0020 /* Hercules Graphics Card (HGC) */ /* videoconfig monitor values */ /* these manifest constants can be used to determine the type of the active */ /* adapter, using either simple comparisons or the bitwise-AND operator (&) */ #define _MONO 0x0001 /* Monochrome */ #define _COLOR 0x0002 /* Color (or Enhanced emulating color) */ #define _ENHCOLOR 0x0004 /* Enhanced Color */ #define _ANALOG 0x0018 /* Analog */ struct videoconfig far * far cdecl _getvideoconfig(struct videoconfig far *); /* COORDINATE SYSTEMS */ struct xycoord far cdecl _setlogorg(short, short); struct xycoord far cdecl _getlogcoord(short, short); struct xycoord far cdecl _getphyscoord(short, short); void far cdecl _setcliprgn(short, short, short, short); void far cdecl _setviewport(short, short, short, short); /* OUTPUT ROUTINES */ /* control parameters for Rectangle, Ellipse and Pie */ #define _GBORDER 2 /* draw outline only */ #define _GFILLINTERIOR 3 /* fill using current fill mask */ #define _GCLEARSCREEN 0 #define _GVIEWPORT 1 #define _GWINDOW 2 void far cdecl _clearscreen(short); struct xycoord far cdecl _moveto(short, short); struct xycoord far cdecl _getcurrentposition(void); short far cdecl _lineto(short, short); short far cdecl _rectangle(short, short, short, short, short); short far cdecl _ellipse(short, short, short, short, short); short far cdecl _arc(short, short, short, short, short, short, short, short); short far cdecl _pie(short, short, short, short, short, short, short, short, short); short far cdecl _setpixel(short, short); short far cdecl _getpixel(short, short); short far cdecl _floodfill(short, short, short); /* PEN COLOR, LINE STYLE, FILL PATTERN */ short far cdecl _setcolor(short); short far cdecl _getcolor(void); void far cdecl _setlinestyle(unsigned short); unsigned short far cdecl _getlinestyle(void); void far cdecl _setfillmask(unsigned char far *); unsigned char far * far cdecl _getfillmask(unsigned char far *); /* COLOR SELECTION */ long far cdecl _setbkcolor(long); long far cdecl _getbkcolor(void); long far cdecl _remappalette(short, long); short far cdecl _remapallpalette(long far *); short far cdecl _selectpalette(short); /* TEXT */ #define _GCURSOROFF 0 #define _GCURSORON 1 #define _GWRAPOFF 0 #define _GWRAPON 1 void far cdecl _settextwindow(short, short, short, short); void far cdecl _outtext(char far *); short far cdecl _wrapon(short); short far cdecl _displaycursor(short); struct rccoord far cdecl _settextposition(short, short); struct rccoord far cdecl _gettextposition(void); short far cdecl _settextcolor(short); short far cdecl _gettextcolor(void); /* SCREEN IMAGES */ void far cdecl _getimage(short, short, short, short, char far *); void far cdecl _putimage(short, short, char far *, short); long far cdecl _imagesize(short, short, short, short); /* "action verbs" for _putimage() */ #define _GPSET 3 #define _GPRESET 2 #define _GAND 1 #define _GOR 0 #define _GXOR 4 /* universal color values: */ #define _BLACK 0x000000L #define _BLUE 0x2a0000L #define _GREEN 0x002a00L #define _CYAN 0x2a2a00L #define _RED 0x00002aL #define _MAGENTA 0x2a002aL #define _BROWN 0x00152aL #define _WHITE 0x2a2a2aL #define _GRAY 0x151515L #define _LIGHTBLUE 0x3F1515L #define _LIGHTGREEN 0x153f15L #define _LIGHTCYAN 0x3f3f15L #define _LIGHTRED 0x15153fL #define _LIGHTMAGENTA 0x3f153fL #define _LIGHTYELLOW 0x153f3fL #define _BRIGHTWHITE 0x3f3f3fL /* mono mode F color values: */ #define _MODEFOFF 0L #define _MODEFOFFTOON 1L #define _MODEFOFFTOHI 2L #define _MODEFONTOOFF 3L #define _MODEFON 4L #define _MODEFONTOHI 5L #define _MODEFHITOOFF 6L #define _MODEFHITOON 7L #define _MODEFHI 8L /* mono mode 7 color values: */ #define _MODE7OFF 0L #define _MODE7ON 1L #define _MODE7HI 2L