home *** CD-ROM | disk | FTP | other *** search
- /***
- *graph.h - Konstanten-, Funktions- und Makro-Deklarationen für Grafik-Bibliothek
- *
- * Copyright (c) 1987 - 1990, Microsoft Corporation. Alle Rechte vorbehalten.
- *
- * Zweck:
- * Diese Datei enthält die Deklarationen der Grafik-Bibliotheksfunktionen
- * und der damit benutzten Strukturen und manifesten Konstanten.*
- *
- ***/
-
-
- /* Erzwingt das Packen von Worten, um mögliches Überschreiben von -Zp zu vermeiden */
- #pragma pack(2)
-
- /* Benutzer gegenüber sichtbare Deklarationen für Quick-C Grafikbibliothek */
-
- #ifndef _VIDEOCONFIG_DEFINED
- /* Benutzer gegenüber sichtbare Struktur für _getvideoconfig() */
- struct videoconfig {
- short numxpixels; /* Anzahl der Bildpunkte auf X-Achse */
- short numypixels; /* Anzahl der Bildpunkte auf Y-Achse */
- short numtextcols; /* Anzahl der verfügbaren Textspalten */
- short numtextrows; /* Anzahl der verfügbaren Textreihen */
- short numcolors; /* Anzahl der tatsächlichen Farben */
- short bitsperpixel; /* Anzahl der Bits pro Bildpunkt */
- short numvideopages; /* Anzahl der verfügbaren Videoseiten */
- short mode; /* Gegenwärtiger Videomodus */
- short adapter; /* Eingeschalteter Videoadapter */
- short monitor; /* Eingeschalteter Monitor */
- short memory; /* Videospeicher des Adapters in KByte */
- };
- #define _VIDEOCONFIG_DEFINED
- #endif
-
-
- #ifndef _XYCOORD_DEFINED
- /* Rückgabewert von _setvieworg(), etc. */
- struct xycoord {
- short xcoord;
- short ycoord;
- };
- #define _XYCOORD_DEFINED
- #endif
-
-
- /* Struktur für Textposition */
- #ifndef _RCCOORD_DEFINED
- struct rccoord {
- short row;
- short col;
- };
- #define _RCCOORD_DEFINED
- #endif
-
-
-
- /* Fehlerbehandlung */
- short _far _cdecl _grstatus(void);
-
- /* Information zum Fehlerstatus zurückgegeben durch Funktion _grstatus() */
-
- /* erfolgreich */
- #define _GROK 0
-
- /* fehlerhaft */
- #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)
-
- /* Warnungen */
- #define _GRNOOUTPUT 1
- #define _GRCLIPPED 2
- #define _GRPARAMETERALTERED 3
-
-
- /* SETUP AND KONFIGURATION */
-
- short _far _cdecl _setvideomode(short);
- short _far _cdecl _setvideomoderows(short,short); /* übergibt Reihen; 0 bei Fehler */
-
- /* Argumente für _setvideomode() */
- #define _MAXRESMODE (-3) /* Grafikmodus mit höchster Auflösung */
- #define _MAXCOLORMODE (-2) /* Grafikmodus mit maximaler Farbenanzahl */
- #define _DEFAULTMODE (-1) /* Bildschirm auf urspr. Modus rücksetzen */
- #define _TEXTBW40 0 /* 40-spaltiger Text, 16 Grautöne */
- #define _TEXTC40 1 /* 40-spaltiger Text, 16/8 Farben */
- #define _TEXTBW80 2 /* 80-spaltiger Text, 16 Grautöne */
- #define _TEXTC80 3 /* 80-spaltiger Text, 16/8 Farben */
- #define _MRES4COLOR 4 /* 320 x 200, 4 Farben */
- #define _MRESNOCOLOR 5 /* 20 x 200, 4 Grautöne */
- #define _HRESBW 6 /* 640 x 200, S-W */
- #define _TEXTMONO 7 /* 80-spaltiger Text, S-W */
- #define _HERCMONO 8 /* 720 x 348, S-W für HGC */
- #define _MRES16COLOR 13 /* 320 x 200, 16 Farben */
- #define _HRES16COLOR 14 /* 640 x 200, 16 Farben */
- #define _ERESNOCOLOR 15 /* 640 x 350, S-W */
- #define _ERESCOLOR 16 /* 640 x 350, 4 oder 16 Farben */
- #define _VRES2COLOR 17 /* 640 x 480, S-W */
- #define _VRES16COLOR 18 /* 640 x 480, 16 Farben */
- #define _MRES256COLOR 19 /* 320 x 200, 256 Farben */
- #define _ORESCOLOR 64 /* 640 x 400, 1 von 16 Farben (Olivetti) */
-
- short _far _cdecl _setactivepage(short);
- short _far _cdecl _setvisualpage(short);
- short _far _cdecl _getactivepage(void);
- short _far _cdecl _getvisualpage(void);
-
- /* Adapterwerte für videoconfig *
- * Über diese manifesten Konstanten läßt sich der aktive Adaptertyp feststellen
- * und zwar durch einfachen Vergleich oder den bitweisen-UND-Operator (&) */
- #define _MDPA 0x0001 /* Monochrom-Grafikadapter (MDPA) */
- #define _CGA 0x0002 /* Farb-Grafikadapter (CGA) */
- #define _EGA 0x0004 /* Erweiterter Grafikadapter (EGA) */
- #define _VGA 0x0008 /* Video Graphics Array (VGA) */
- #define _MCGA 0x0010 /* Mehrfarben-Grafikadapter (MCGA) */
- #define _HGC 0x0020 /* Hercules-Grafik (HGC) */
- #define _OCGA 0x0042 /* Olivetti Farb-Grafikadapter (OCGA) */
- #define _OEGA 0x0044 /* Olivetti Erweiterter Grafikadapter (OEGA) */
- #define _OVGA 0x0048 /* Olivetti Video Graphics Array (OVGA) */
-
- /* Monitorwerte für videoconfig */
- /* Über diese manifesten Konstanten läßt sich der Typ des Monitors feststellen,
- * und zwar durch einfachen Vergleich oder den bitweisen-UND-Operator (&) */
- #define _MONO 0x0001 /* Monochrom */
- #define _COLOR 0x0002 /* Farb (oder EGA-Emulation von Farbe) */
- #define _ENHCOLOR 0x0004 /* Erweiterte Farbe */
- #define _ANALOGMONO 0x0008 /* Nur Analog-Monochrom */
- #define _ANALOGCOLOR 0x0010 /* Nur Analog-Farbe */
- #define _ANALOG 0x0018 /* Analog Monochrom- und Farbmodi */
-
- struct videoconfig _far * _far _cdecl _getvideoconfig(struct videoconfig _far *);
-
-
-
- /* KOORDINATENSYSTEME */
-
- struct xycoord _far _cdecl _setvieworg(short, short);
- #define _setlogorg _setvieworg /* veraltet */
-
- struct xycoord _far _cdecl _getviewcoord(short, short);
- #define _getlogcoord _getviewcoord /* veraltet */
-
- struct xycoord _far _cdecl _getphyscoord(short, short);
-
- void _far _cdecl _setcliprgn(short, short, short, short);
- void _far _cdecl _setviewport(short, short, short, short);
-
-
- /* AUSGABE-ROUTINEN */
-
- /* Zum Steuern der Parameter für Recheck, Ellipse und Kreisdiagramm */
- #define _GBORDER 2 /* Nur Umriß zeichnen */
- #define _GFILLINTERIOR 3 /* mit gegenwärtiger Füllmaske füllen */
-
- /* Parameter für _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);
-
-
- /* STIFTFARBE, LINIENART, FÜLLMUSTER */
-
- 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 *);
-
- /* FARBAUSWAHL */
-
- 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 */
- /* Parameter für _displaycursor */
- #define _GCURSOROFF 0
- #define _GCURSORON 1
-
- /* Parameter für _wrapon */
- #define _GWRAPOFF 0
- #define _GWRAPON 1
-
-
- /* Richtungs-Parameter für _scrolltextwindow */
- #define _GSCROLLUP 1
- #define _GSCROLLDOWN (-1)
-
- /* Anforderung der maximalen Zeilenanzahl in _settextrows und _setvideomoderows */
- #define _MAXTEXTROWS (-1)
-
- short _far _cdecl _settextrows(short); /* Ergibt Anzahl der Zeilen; 0 bei Fehler */
- 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);
-
-
- /* BILDSCHIRM-BILDMANIPULATION */
-
- 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);
-
- /* Aktionsattirbute für _putimage() und _setwritemode() */
- #define _GPSET 3
- #define _GPRESET 2
- #define _GAND 1
- #define _GOR 0
- #define _GXOR 4
-
-
- /* Farbwerte werden im Grafikmouds mit _setbkcolor und auch mit
- _remappalette und _remapallpalette verwendet. Auch als Farbpaletten bekannt.
- Nicht mit den Farbindizes verwechseln (auch Farbattribute genannt). */
-
- /* Universal-Farbwerte (für alle Farbmodi): */
- #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
-
- /* die folgende Farbe ist veraltet und wird nur aus Kompatibiltätsgründen
- aufgeführt */
- #define _LIGHTYELLOW _YELLOW
-
- /* Monochrom-Farbwerte F (_ERESNOCOLOR): */
- #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
-
- /* Monochrom-7 Farbwerte (_TEXTMONO): */
- #define _MODE7OFF 0L
- #define _MODE7ON 1L
- #define _MODE7HI 2L
-
-
- /* Warnung: die nachfolgenden '_xy'-Funktionen sind undokumentiert.
- In zukünftigen Versionen werden sie eventuell unterstützt. */
- 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);
-
-
- /* FENSTER-KOORDINATENSYSTEM */
-
- #ifndef _WXYCOORD_DEFINED
- /* Struktur für Fensterkoordiantenpaar */
- struct _wxycoord {
- double wx; /* x-Koordinate */
- double wy; /* y-Koordinate */
- };
- #define _WXYCOORD_DEFINED
- #endif
-
-
- /* Fenster Reel-Koordinaten definieren - ergibt bei Erfolg Wert ungleich Null */
- short _far _cdecl _setwindow(short,double,double,double,double);
-
- /* von Einsichtrahmen- zu Fenster-Koordinaten umwandeln */
- struct _wxycoord _far _cdecl _getwindowcoord(short,short);
- struct _wxycoord _far _cdecl _getwindowcoord_xy(struct xycoord);
-
- /* von Fenster- zu Einsichtrahmen-Koordinaten umwandeln */
- struct xycoord _far _cdecl _getviewcoord_w(double,double);
- struct xycoord _far _cdecl _getviewcoord_wxy(const struct _wxycoord _far *);
-
- /* ergibt Fensterkkoordinaten der gegenwärtigen Grafik-Ausgabeposition
- * als _wxycoord-Struktur. Besitzt kein Fehlerergebnis. */
- struct _wxycoord _far _cdecl _getcurrentposition_w(void);
-
-
- /* Fensterkoordinaten-Einsteigepunkt für Grafik-Ausgaberoutinen */
-
- /* ergibt Wert ungleich Null, wenn erfolgreich, sonst 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 *);
-
- /* ergibt Wert ungleich Null, wenn erfolgreich, sonst 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 *);
-
- /* ergibt Wert ungleich Null, wenn erfolgreich, sonst 0 */
- short _far _cdecl _floodfill_w(double, double, short);
-
- /* ergibt Pixel-Wert an angegebenen Punkt; -1 wenn nicht erfolgreich */
- short _far _cdecl _getpixel_w(double, double);
-
- /* ergibt Wert ungleich Null, wenn erfolgreich, sonst 0 */
- short _far _cdecl _lineto_w(double, double);
-
- /* übergibt die Sicht-Koordiante der vorherigen Ausgabe-
- position als eine _xycoord Struktur; bei Fehler keine Rückgabe */
- struct _wxycoord _far _cdecl _moveto_w(double, double);
-
- /* ergibt Wert ungleich Null, wenn erfolgreich, sonst 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 *);
-
- /* ergibt Wert ungleich Null, wenn erfolgreich, sonst 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 *);
-
- /* ergibt Wert ungleich Null, wenn erfolgreich, sonst 0 */
- short _far _cdecl _polygon_w(short, const double _far *, short);
- short _far _cdecl _polygon_wxy(short, const struct _wxycoord _far *, short);
-
- /* ergibt die vorige Farbe; bei Versagen -1 */
- short _far _cdecl _setpixel_w(double, double);
-
-
- /* Fensterkoordinaten-Abbildroutinen */
-
- /* kein Rückgabewert */
- 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 *);
-
- /* ergibt den nötigen Speicherplatz für Abbild in Bytes */
- long _far _cdecl _imagesize_w(double, double, double, double);
- long _far _cdecl _imagesize_wxy(const struct _wxycoord _far *, const struct _wxycoord _far *);
-
- /* kein Rückgabewert */
- void _far _cdecl _putimage_w(double, double ,char _huge * ,short);
-
-
- /* Schriftsätze */
-
- #ifndef _FONTINFO_DEFINED
- /* Struktur für _getfontinfo() */
- struct _fontinfo {
- int type; /* b0 gesetzt = Vektor, gelöscht = Bitabbild */
- int ascent; /* Bildpunktverteilung von oben bis Grundlinie */
- int pixwidth; /* Zeichenbreite in Bildpunkten, 0=proportional */
- int pixheight; /* Zeichenhöhe in Bildpunkten */
- int avgwidth; /* Durchschnittl. Zeichenbreite in Bildpunkten */
- char filename[81]; /* Dateinamen einschl. Pfadbestimmung */
- char facename[32]; /* Schriftsatz-Name */
- };
- #define _FONTINFO_DEFINED
- #endif
-
-
- /* Schriftsatz-Funktionsprototypen */
- 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);
-
- /* Standard-Packing wieder initialisieren */
- #pragma pack()
-