diff options
author | Adam <you@example.com> | 2020-05-17 05:51:50 +0200 |
---|---|---|
committer | Adam <you@example.com> | 2020-05-17 05:51:50 +0200 |
commit | e611b132f9b8abe35b362e5870b74bce94a1e58e (patch) | |
tree | a5781d2ec0e085eeca33cf350cf878f2efea6fe5 /private/os2/client/thunk/include/graph.h | |
download | NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.gz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.bz2 NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.lz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.xz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.zst NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.zip |
Diffstat (limited to 'private/os2/client/thunk/include/graph.h')
-rw-r--r-- | private/os2/client/thunk/include/graph.h | 427 |
1 files changed, 427 insertions, 0 deletions
diff --git a/private/os2/client/thunk/include/graph.h b/private/os2/client/thunk/include/graph.h new file mode 100644 index 000000000..6469809bf --- /dev/null +++ b/private/os2/client/thunk/include/graph.h @@ -0,0 +1,427 @@ +/*** +*graph.h - declare constants, functions, and macros for graphics library +* +* Copyright (c) 1987 - 1990, Microsoft Corporation. All rights reserved. +* +*Purpose: +* This file declares the graphics library functions and the +* structures and manifest constants that are used with them. +* +***************************************************************************/ + + +/* force word packing to avoid possible -Zp override */ +#pragma pack(2) + +/* user-visible declarations for Quick-C Graphics Library */ + +#ifndef _VIDEOCONFIG_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 */ +}; +#define _VIDEOCONFIG_DEFINED +#endif + + +#ifndef _XYCOORD_DEFINED +/* return value of _setvieworg(), etc. */ +struct xycoord { + short xcoord; + short ycoord; +}; +#define _XYCOORD_DEFINED +#endif + + +/* structure for text position */ +#ifndef _RCCOORD_DEFINED +struct rccoord { + short row; + short col; +}; +#define _RCCOORD_DEFINED +#endif + + + +/* ERROR HANDLING */ +short _far _cdecl _grstatus(void); + +/* Error Status Information returned by _grstatus() */ + +/* successful */ +#define _GROK 0 + +/* errors */ +#define _GRERROR (-1) +#define _GRMODENOTSUPPORTED (-2) +#define _GRNOTINPROPERMODE (-3) +#define _GRINVALIDPARAMETER (-4) +#define _GRFONTFILENOTFOUND (-5) +#define _GRINVALIDFONTFILE (-6) +#define _GRCORRUPTEDFONTFILE (-7) +#define _GRINSUFFICIENTMEMORY (-8) +#define _GRINVALIDIMAGEBUFFER (-9) + +/* warnings */ +#define _GRNOOUTPUT 1 +#define _GRCLIPPED 2 +#define _GRPARAMETERALTERED 3 + + +/* SETUP AND CONFIGURATION */ + +short _far _cdecl _setvideomode(short); +short _far _cdecl _setvideomoderows(short,short); /* return rows; 0 if error */ + +/* arguments to _setvideomode() */ +#define _MAXRESMODE (-3) /* graphics mode with highest resolution */ +#define _MAXCOLORMODE (-2) /* graphics mode with most colors */ +#define _DEFAULTMODE (-1) /* restore screen to original mode */ +#define _TEXTBW40 0 /* 40-column text, 16 grey */ +#define _TEXTC40 1 /* 40-column text, 16/8 color */ +#define _TEXTBW80 2 /* 80-column text, 16 grey */ +#define _TEXTC80 3 /* 80-column 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-column 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 */ +#define _ORESCOLOR 64 /* 640 x 400, 1 of 16 colors (Olivetti) */ + +short _far _cdecl _setactivepage(short); +short _far _cdecl _setvisualpage(short); +short _far _cdecl _getactivepage(void); +short _far _cdecl _getvisualpage(void); + +/* videoconfig adapter 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 _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) */ +#define _OCGA 0x0042 /* Olivetti Color Graphics Adapter (OCGA) */ +#define _OEGA 0x0044 /* Olivetti Enhanced Graphics Adapter (OEGA) */ +#define _OVGA 0x0048 /* Olivetti Video Graphics Array (OVGA) */ + +/* videoconfig monitor 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 _MONO 0x0001 /* Monochrome */ +#define _COLOR 0x0002 /* Color (or Enhanced emulating color) */ +#define _ENHCOLOR 0x0004 /* Enhanced Color */ +#define _ANALOGMONO 0x0008 /* Analog Monochrome only */ +#define _ANALOGCOLOR 0x0010 /* Analog Color only */ +#define _ANALOG 0x0018 /* Analog Monochrome and Color modes */ + +struct videoconfig _far * _far _cdecl _getvideoconfig(struct videoconfig _far *); + + + +/* COORDINATE SYSTEMS */ + +struct xycoord _far _cdecl _setvieworg(short, short); +#define _setlogorg _setvieworg /* obsolescent */ + +struct xycoord _far _cdecl _getviewcoord(short, short); +#define _getlogcoord _getviewcoord /* obsolescent */ + +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 _ellipse, _rectangle, _pie and _polygon */ +#define _GBORDER 2 /* draw outline only */ +#define _GFILLINTERIOR 3 /* fill using current fill mask */ + +/* parameters for _clearscreen */ +#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 _polygon(short, const struct xycoord _far *, short); +short _far _cdecl _arc(short, short, short, short, short, short, short, short); +short _far _cdecl _ellipse(short, short, short, short, short); +short _far _cdecl _pie(short, short, short, short, short, short, short, short, short); + +short _far _cdecl _getarcinfo(struct xycoord _far *, struct xycoord _far *, struct xycoord _far *); + +short _far _cdecl _setpixel(short, short); +short _far _cdecl _getpixel(short, short); +short _far _cdecl _floodfill(short, short, short); + + +/* PEN COLOR, LINE STYLE, WRITE MODE, FILL PATTERN */ + +short _far _cdecl _setcolor(short); +short _far _cdecl _getcolor(void); + +void _far _cdecl _setlinestyle(unsigned short); +unsigned short _far _cdecl _getlinestyle(void); + +short _far _cdecl _setwritemode(short); +short _far _cdecl _getwritemode(void); + +void _far _cdecl _setfillmask(const 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(const long _far *); +short _far _cdecl _selectpalette(short); + + +/* TEXT */ +/* parameters for _displaycursor */ +#define _GCURSOROFF 0 +#define _GCURSORON 1 + +/* parameters for _wrapon */ +#define _GWRAPOFF 0 +#define _GWRAPON 1 + + +/* direction parameters for _scrolltextwindow */ +#define _GSCROLLUP 1 +#define _GSCROLLDOWN (-1) + +/* request maximum number of rows in _settextrows and _setvideomoderows */ +#define _MAXTEXTROWS (-1) + +short _far _cdecl _settextrows(short); /* returns # rows set; 0 if error */ +void _far _cdecl _settextwindow(short, short, short, short); +void _far _cdecl _gettextwindow(short _far *, short _far *, short _far *, short _far *); +void _far _cdecl _scrolltextwindow(short); +void _far _cdecl _outmem(const unsigned char _far *, short); +void _far _cdecl _outtext(const unsigned char _far *); +short _far _cdecl _wrapon(short); + +short _far _cdecl _displaycursor(short); +short _far _cdecl _settextcursor(short); +short _far _cdecl _gettextcursor(void); + +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 _huge *); +void _far _cdecl _putimage(short, short, char _huge *, short); +long _far _cdecl _imagesize(short, short, short, short); + +/* "action verbs" for _putimage() and _setwritemode() */ +#define _GPSET 3 +#define _GPRESET 2 +#define _GAND 1 +#define _GOR 0 +#define _GXOR 4 + + +/* Color values are used with _setbkcolor in graphics modes and also by + _remappalette and _remapallpalette. Also known as palette colors. + Not to be confused with color indices (aka. color attributes). */ + +/* universal color values (all color modes): */ +#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 _YELLOW 0x153f3fL +#define _BRIGHTWHITE 0x3f3f3fL + +/* the following is obsolescent and defined only for backward compatibility */ +#define _LIGHTYELLOW _YELLOW + +/* mono mode F (_ERESNOCOLOR) 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 (_TEXTMONO) color values: */ +#define _MODE7OFF 0L +#define _MODE7ON 1L +#define _MODE7HI 2L + + +/* Warning: these '_xy' entrypoints are undocumented. + They may or may not be supported in future versions. */ +struct xycoord _far _cdecl _moveto_xy(struct xycoord); +short _far _cdecl _lineto_xy(struct xycoord); +short _far _cdecl _rectangle_xy(short,struct xycoord,struct xycoord); +short _far _cdecl _arc_xy(struct xycoord, struct xycoord, struct xycoord, struct xycoord); +short _far _cdecl _ellipse_xy(short, struct xycoord, struct xycoord); +short _far _cdecl _pie_xy(short, struct xycoord, struct xycoord, struct xycoord, struct xycoord); +short _far _cdecl _getpixel_xy(struct xycoord); +short _far _cdecl _setpixel_xy(struct xycoord); +short _far _cdecl _floodfill_xy(struct xycoord, short); +void _far _cdecl _getimage_xy(struct xycoord,struct xycoord, char _huge *); +long _far _cdecl _imagesize_xy(struct xycoord,struct xycoord); +void _far _cdecl _putimage_xy(struct xycoord, char _huge *, short); + + +/* WINDOW COORDINATE SYSTEM */ + +#ifndef _WXYCOORD_DEFINED +/* structure for window coordinate pair */ +struct _wxycoord { + double wx; /* window x coordinate */ + double wy; /* window y coordinate */ + }; +#define _WXYCOORD_DEFINED +#endif + + +/* define real coordinate window - returns non-zero if successful */ +short _far _cdecl _setwindow(short,double,double,double,double); + +/* convert from view to window coordinates */ +struct _wxycoord _far _cdecl _getwindowcoord(short,short); +struct _wxycoord _far _cdecl _getwindowcoord_xy(struct xycoord); + +/* convert from window to view coordinates */ +struct xycoord _far _cdecl _getviewcoord_w(double,double); +struct xycoord _far _cdecl _getviewcoord_wxy(const struct _wxycoord _far *); + +/* return the window coordinates of the current graphics output + position as an _wxycoord structure. no error return. */ +struct _wxycoord _far _cdecl _getcurrentposition_w(void); + + +/* window coordinate entry points for graphics output routines */ + +/* returns nonzero if successful; otherwise 0 */ +short _far _cdecl _arc_w(double, double, double, double, double, double, double, double); +short _far _cdecl _arc_wxy(const struct _wxycoord _far *, const struct _wxycoord _far *, const struct _wxycoord _far *, const struct _wxycoord _far *); + +/* returns nonzero if successful; otherwise 0 */ +short _far _cdecl _ellipse_w(short, double, double, double, double); +short _far _cdecl _ellipse_wxy(short, const struct _wxycoord _far *, const struct _wxycoord _far *); + +/* returns nonzero if successful; otherwise 0 */ +short _far _cdecl _floodfill_w(double, double, short); + +/* returns pixel value at given point; -1 if unsuccessful. */ +short _far _cdecl _getpixel_w(double, double); + +/* returns nonzero if successful; otherwise 0 */ +short _far _cdecl _lineto_w(double, double); + +/* returns the view coordinates of the previous output + position as an _xycoord structure. no error return */ +struct _wxycoord _far _cdecl _moveto_w(double, double); + +/* returns nonzero if successful; otherwise 0 */ +short _far _cdecl _pie_w(short, double, double, double, double, double, double, double, double); +short _far _cdecl _pie_wxy(short, const struct _wxycoord _far *, const struct _wxycoord _far *, const struct _wxycoord _far *, const struct _wxycoord _far *); + +/* returns nonzero if successful; otherwise 0 */ +short _far _cdecl _rectangle_w(short, double, double, double, double); +short _far _cdecl _rectangle_wxy(short, const struct _wxycoord _far *, const struct _wxycoord _far *); + +/* returns nonzero if successful; otherwise 0 */ +short _far _cdecl _polygon_w(short, const double _far *, short); +short _far _cdecl _polygon_wxy(short, const struct _wxycoord _far *, short); + +/* returns previous color; -1 if unsuccessful */ +short _far _cdecl _setpixel_w(double, double); + + +/* window coordinate image routines */ + +/* no return value */ +void _far _cdecl _getimage_w(double, double, double, double, char _huge *); +void _far _cdecl _getimage_wxy(const struct _wxycoord _far *, const struct _wxycoord _far *, char _huge *); + +/* returns the image's storage size in bytes */ +long _far _cdecl _imagesize_w(double, double, double, double); +long _far _cdecl _imagesize_wxy(const struct _wxycoord _far *, const struct _wxycoord _far *); + +/* no return value */ +void _far _cdecl _putimage_w(double, double ,char _huge * ,short); + + +/* FONTS */ + +#ifndef _FONTINFO_DEFINED +/* structure for _getfontinfo() */ +struct _fontinfo { + int type; /* b0 set = vector,clear = bit map */ + int ascent; /* pix dist from top to baseline */ + int pixwidth; /* character width in pixels, 0=prop */ + int pixheight; /* character height in pixels */ + int avgwidth; /* average character width in pixels */ + char filename[81]; /* file name including path */ + char facename[32]; /* font name */ +}; +#define _FONTINFO_DEFINED +#endif + + +/* font function prototypes */ +short _far _cdecl _registerfonts( const unsigned char _far *); +void _far _cdecl _unregisterfonts( void ); +short _far _cdecl _setfont( const unsigned char _far * ); +short _far _cdecl _getfontinfo( struct _fontinfo _far * ); +void _far _cdecl _outgtext( const unsigned char _far * ); +short _far _cdecl _getgtextextent( const unsigned char _far * ); +struct xycoord _far _cdecl _setgtextvector( short, short ); +struct xycoord _far _cdecl _getgtextvector(void); + +/* restore default packing */ +#pragma pack() |