roo_e/thirdparty/grx249/include/libbcc.h
2022-05-16 17:59:47 -05:00

865 lines
27 KiB
C

/**
** BCC2GRX - Interfacing Borland based graphics programs to LIBGRX
** Copyright (C) 1993-97 by Hartmut Schirmer
**
** Contact : Hartmut Schirmer
** Feldstrasse 118
** D-24105 Kiel
** Germany
**
** e-mail : hsc@techfak.uni-kiel.de
**
** This file is part of the GRX graphics library.
**
** The GRX graphics library is free software; you can redistribute it
** and/or modify it under some conditions; see the "copying.grx" file
** for details.
**
** This library is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
**
**/
#ifndef __LIBBCC_H
#define __LIBBCC_H
/* Version number, read as
0x20a v2.0 alpha
0x21b v2.1 beta
0x230 v2.3 offical release */
#define __BCC2GRX__ 0x22b
#ifdef __cplusplus
extern "C" {
#endif
#ifndef TRUE
# define TRUE (1==1)
#endif
#ifndef FALSE
# define FALSE (1==0)
#endif
#ifndef near /* get rid of these stupid keywords */
#define near
#endif
#ifndef far
#define far
#endif
#ifndef huge
#define huge
#endif
#define grOk 0
#define grNoInitGraph -1
#define grNotDetected -2
#define grFileNotFound -3
#define grInvalidDriver -4
#define grNoLoadMem -5
#define grNoScanMem -6
#define grNoFloodMem -7
#define grFontNotFound -8
#define grNoFontMem -9
#define grInvalidMode -10
#define grError -11
#define grIOerror -12
#define grInvalidFont -13
#define grInvalidFontNum -14
#define grInvalidVersion -18
#define DETECT (-2)
#define DETECT_PAS (0)
#define NATIVE_GRX (-3)
#define CURRENT_DRIVER (-1)
#define VGA ( 9)
#define EGA ( 3)
#define IBM8514 ( 6)
#define HERCMONO ( 7)
#define EGA64 ( 4)
#define EGAMONO ( 5)
#define CGA ( 1)
#define MCGA ( 2)
#define ATT400 ( 8)
#define PC3270 (10)
/* driver definitions from BC++ 4.5 : */
#define DETECTX (DETECT)
#define VGA256 (11)
#define ATTDEB (12)
#define TOSHIBA (13)
#define SVGA16 (14)
#define SVGA256 (15)
#define SVGA32K (16)
#define SVGA64K (17)
#define VESA16 (18)
#define VESA256 (19)
#define VESA32K (20)
#define VESA64K (21)
#define VESA16M (22)
#define ATI16 (23)
#define ATI256 (24)
#define ATI32K (25)
#define COMPAQ (26)
#define TSENG316 (27)
#define TSENG3256 (28)
#define TSENG416 (29)
#define TSENG4256 (30)
#define TSENG432K (31)
#define GENOA5 (32)
#define GENOA6 (33)
#define OAK (34)
#define PARADIS16 (35)
#define PARADIS256 (36)
#define TECMAR (37)
#define TRIDENT16 (38)
#define TRIDENT256 (39)
#define VIDEO7 (40)
#define VIDEO7II (41)
#define S3 (42)
#define ATIGUP (43)
#define VGALO 0
#define VGAMED 1
#define VGAHI 2
#define IBM8514LO 0
#define IBM8514HI 1
#define HERCMONOHI 0
#define CGAC0 0
#define CGAC1 1
#define CGAC2 2
#define CGAC3 3
#define CGAHI 4
#define MCGAC0 CGAC0
#define MCGAC1 CGAC1
#define MCGAC2 CGAC2
#define MCGAC3 CGAC3
#define MCGAMED CGAHI
#define MCGAHI 5
#define ATT400C0 MCGAC0
#define ATT400C1 MCGAC1
#define ATT400C2 MCGAC2
#define ATT400C3 MCGAC3
#define ATT400MED MCGAMED
#define ATT400HI MCGAHI
#define EGA64LO 0
#define EGA64HI 1
#define EGALO 0
#define EGAHI 1
#define EGAMONOHI 0
#define EGAMONOHI_PAS 3
#define PC3270HI 0
/* mode definitions from BC++ 4.5 : */
#define RES640x350 0
#define RES640x480 1
#define RES800x600 2
#define RES1024x768 3
#define RES1280x1024 4
/* NATIVE_GRX modes : */
#define GRX_DEFAULT_GRAPHICS 0
#define GRX_BIGGEST_NONINTERLACED_GRAPHICS 1
#define GRX_BIGGEST_GRAPHICS 2
#define GRX_BGI_EMULATION 3
#define __FIRST_DRIVER_SPECIFIC_MODE 4
#ifndef BLACK
# define BLACK 0
#endif
#ifndef BLUE
# define BLUE 1
#endif
#ifndef GREEN
# define GREEN 2
#endif
#ifndef CYAN
# define CYAN 3
#endif
#ifndef RED
# define RED 4
#endif
#ifndef MAGENTA
# define MAGENTA 5
#endif
#ifndef BROWN
# define BROWN 6
#endif
#ifndef LIGHTGRAY
# define LIGHTGRAY 7
#endif
#ifndef DARKGRAY
# define DARKGRAY 8
#endif
#ifndef LIGHTBLUE
# define LIGHTBLUE 9
#endif
#ifndef LIGHTGREEN
# define LIGHTGREEN 10
#endif
#ifndef LIGHTCYAN
# define LIGHTCYAN 11
#endif
#ifndef LIGHTRED
# define LIGHTRED 12
#endif
#ifndef LIGHTMAGENTA
# define LIGHTMAGENTA 13
#endif
#ifndef YELLOW
# define YELLOW 14
#endif
#ifndef WHITE
# define WHITE (__gr_White())
#endif
#define EGA_BLACK 0
#define EGA_BLUE 1
#define EGA_GREEN 2
#define EGA_RED 4
#define EGA_LIGHTBLUE 57
#define EGA_LIGHTGREEN 58
#define EGA_LIGHTRED 60
#define EGA_CYAN 3
#define EGA_LIGHTCYAN 59
#define EGA_MAGENTA 5
#define EGA_LIGHTMAGENTA 61
#define EGA_BROWN 20
#define EGA_LIGHTGRAY 7
#define EGA_DARKGRAY 56
#define EGA_YELLOW 62
#define EGA_WHITE 63
#define SOLID_LINE 0
#define DOTTED_LINE 1
#define CENTER_LINE 2
#define DASHED_LINE 3
#define USERBIT_LINE 4
#define NORM_WIDTH 1
#define THICK_WIDTH 3
#define DEFAULT_FONT 0 /* 8x8 bit mapped font */
#define TRIPLEX_FONT 1
#define SMALL_FONT 2
#define SANS_SERIF_FONT 3
#define GOTHIC_FONT 4
#define SCRIPT_FONT 5
#define SIMPLEX_FONT 6
#define TRIPLEX_SCR_FONT 7
#define COMPLEX_FONT 8
#define EUROPEAN_FONT 9
#define 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 */
};
#define COPY_PUT 0
#define XOR_PUT 1
#define OR_PUT 2
#define AND_PUT 3
#define NOT_PUT 4
#define LEFT_TEXT 0
#define CENTER_TEXT 1
#define RIGHT_TEXT 2
#define BOTTOM_TEXT 0
#define TOP_TEXT 2
#define MAXCOLORS 15
struct palettetype {
unsigned char size;
signed char colors[MAXCOLORS+1];
};
struct linesettingstype {
int linestyle;
unsigned short upattern; /* Note : BCC defines unsigned ! */
int thickness;
};
struct textsettingstype {
int font;
int direction;
int charsize;
int horiz;
int vert;
};
struct fillsettingstype {
int pattern;
int color;
};
/* This definition is compatible with the grx
definition 'int pts[][2]' used to define polygons */
struct pointtype {
int x, y;
};
struct viewporttype {
int left, top, right, bottom;
int clip;
};
struct arccoordstype {
int x, y;
int xstart, ystart, xend, yend;
};
/* ------------------------------------------------------------------ */
/* --- Internal definitions --- */
/* --- Don't access one of these variable and functions directly! --- */
extern int __gr_Mode;
extern int __gr_INIT;
extern int __gr_MaxMode;
extern int __gr_Result;
extern int __gr_X, __gr_Y; /* graphics cursor pos */
extern int __gr_vpl, __gr_vpt, /* actual viewport */
__gr_vpr, __gr_vpb;
extern int __gr_color; /* drawing color */
extern int __gr_colorbg; /* background color */
extern int __gr_colorfill; /* fill color */
#if defined(__TURBOC__) && defined(__MSDOS__)
extern unsigned long __gr_WR; /* Write mode, type */
#else
extern unsigned int __gr_WR; /* must match GrColor */
#endif
extern int __gr_Xasp; /* Aspect ratio */
extern int __gr_Yasp;
extern int __gr_fpatno;
extern int __gr_lstyle;
extern int __gr_clip; /* actual clipping state */
extern int __gr_ADAPTER; /* Adapter used */
extern unsigned char __gr_fpatterns[][8];
extern struct palettetype __gr_EGAdef;
extern int __gr_BGI_w; /* Width, height and color */
extern int __gr_BGI_h; /* used in */
extern int __gr_BGI_c; /* GRX_BGI_EMULATION mode */
extern int __gr_TextLineStyle; /* use setlinestyle() while
plotting .chr fonts */
void __gr_set_up_modes(void);
int __gr_White(void);
/* ------------------------------------------------------------------ */
/* --- BGI - API definitions --- */
void detectgraph(int *graphdriver,int *graphmode);
void initgraph(int *graphdriver, int *graphmode, char *pathtodriver);
void closegraph(void);
void setgraphmode(int mode);
char *getmodename( int mode_number );
void graphdefaults(void);
char *getdrivername( void );
char *grapherrormsg(int errorcode);
int getmaxx(void);
int getmaxy(void);
int getmaxcolor(void);
void getviewsettings(struct viewporttype *viewport);
void setviewport(int left, int top, int right, int bottom, int clip);
void getlinesettings(struct linesettingstype *lineinfo);
void setlinestyle(int linestyle, unsigned upattern, int thickness);
void clearviewport(void);
unsigned getpixel(int x, int y);
void putpixel(int x, int y, int color);
void bar3d(int left,int top,int right,int bottom,int depth, int topflag);
void rectangle(int left, int top, int right, int bottom);
void fillpoly(int numpoints, void *polypoints);
void fillellipse( int x, int y, int xradius, int yradius );
void getarccoords(struct arccoordstype *arccoords);
void floodfill(int x, int y, int border);
void setfillpattern( char *upattern, int color);
void setfillstyle(int pattern, int color);
void getimage(int left, int top, int right, int bottom, void *bitmap);
void putimage(int left, int top, void *bitmap, int op);
unsigned imagesize(int left, int top, int right, int bottom);
void gettextsettings(struct textsettingstype *texttypeinfo);
void settextjustify(int horiz, int vert);
void settextstyle(int font, int direction, int charsize);
void setrgbpalette(int color, int red, int green, int blue);
void setusercharsize(int multx, int divx, int multy, int divy);
void setwritemode( int mode );
void outtext(const char *textstring);
void outtextxy(int x, int y, const char *textstring);
int textheight(const char *textstring);
int textwidth(const char *textstring);
int registerbgifont(void *font);
int installuserfont(const char *name);
int getpalettesize(void);
void getpalette(struct palettetype *palette);
void setallpalette( const struct palettetype *palette);
/* ------------------------------------------------------------------ */
/* --- BGI - API extensions --- */
extern int _bold_font, _euro_font, /* Linkable font files */
_goth_font, _lcom_font,
_litt_font, _sans_font,
_scri_font, _simp_font,
_trip_font, _tscr_font;
void set_BGI_mode(int *graphdriver, int *graphmode);
/*void set_BGI_mode_whc() declared inline */
void __getrgbpalette(int color, int *red, int *green, int *blue);
void __gr_set_libbcc_init_hooks (
int (*init) (void) ,
int (*close) (void) );
int set_BGI_print_mode ( int mode , char * dest );
extern unsigned char _dac_g256[][3]; /* 256 shading dac values */
extern unsigned char _dac_normal[][3]; /* 256 standard colors */
extern void setrgbdefaults(void);
extern void setrgbgray256(void);
int _ega_color(int egacol);
/* ------------------------------------------------------------------ */
/* --- direct linkable API functions --- */
/* --- ( mainly for GNU Pascal Graph unit usage ) --- */
void __gr_restorecrtmode(void);
void __gr_closegraph(void);
int __gr_getgraphmode(void);
int __gr_getmaxmode(void);
void __gr_getmoderange(int gd, int *lomode, int *himode);
int __gr_graphresult(void);
int __gr_getx(void);
int __gr_gety(void);
void __gr_moveto(int x, int y);
void __gr_moverel(int dx, int dy);
int __gr_getbkcolor(void);
int __gr_getcolor(void);
void __gr_cleardevice(void);
void __gr_setbkcolor(int color);
void __gr_setcolor(int color);
void __gr_line(int x1, int y1, int x2, int y2);
void __gr_linerel(int dx, int dy);
void __gr_lineto(int x, int y);
void __gr_drawpol(int numpoints, void *polypoints, int close);
void __gr_drawpoly(int numpoints, void *polypoints);
void __gr_bar(int left, int top, int right, int bottom);
void __gr_circle(int x, int y, int radius);
void __gr_ellipse(int x,int y,int stangle,int endangle,int xradius,int yradius);
void __gr_arc(int x, int y, int stangle, int endangle, int radius);
void __gr_getaspectratio(int *xasp, int *yasp);
void __gr_setaspectratio( int xasp, int yasp );
void __gr_getfillsettings(struct fillsettingstype *fillinfo);
void __gr_getfillpattern(char *pattern);
void __gr_sector(int x,int y,int stangle,int endangle,int xradius,int yradius);
void __gr_pieslice(int x, int y, int stangle, int endangle, int radius);
unsigned __gr_setgraphbufsize(unsigned bufsize);
struct palettetype *__gr_getdefaultpalette(void);
int __gr_installbgidriver(char *name, void *detect);
int __gr_registerfarbgidriver(void *driver);
int __gr_registerfarbgifont(void *font);
void __gr_textlinestyle(int on);
void __gr_setpalette(int colornum, int color);
int __gr_getvisualpage(void);
void __gr_setvisualpage(int p);
int __gr_getactivepage(void);
void __gr_setactivepage(int p);
int __gr_setrgbcolor(int r, int g, int b);
int __gr_getmodemaxy(int mode);
int __gr_getmodemaxx(int mode);
int __gr_getmodemaxcolor(int mode);
void __gr_set_BGI_mode_whc(int *gd, int *gm, int width, int height, int colors);
int __gr_get_BGI_mode_pages(void);
void __gr_set_BGI_mode_pages(int p);
#ifdef __cplusplus
}
#endif
/* ----------------------------------------------------------------- */
/* --- API functions with macro equivalents --- */
/* --- (for inlining) --- */
/* ----------------------------------------------------------------- */
void restorecrtmode(void);
int getgraphmode(void);
int getmaxmode(void);
void getmoderange(int gd, int *lomode, int *himode);
int graphresult(void);
int getx(void);
int gety(void);
void moveto(int x, int y);
void moverel(int dx, int dy);
int getbkcolor(void);
int getcolor(void);
void cleardevice(void);
void setbkcolor(int color);
void setcolor(int color);
void line(int x1, int y1, int x2, int y2);
void linerel(int dx, int dy);
void lineto(int x, int y);
void drawpoly(int numpoints, void *polypoints);
void bar(int left, int top, int right, int bottom);
void circle(int x, int y, int radius);
void ellipse( int x, int y, int stangle, int endangle,
int xradius, int yradius );
void arc(int x, int y, int stangle, int endangle, int radius);
void getaspectratio(int *xasp, int *yasp);
void setaspectratio( int xasp, int yasp );
void getfillsettings(struct fillsettingstype *fillinfo);
void getfillpattern(char *pattern);
void sector( int x, int y, int stangle, int endangle,
int xradius, int yradius );
void pieslice(int x, int y, int stangle, int endangle, int radius);
unsigned setgraphbufsize(unsigned bufsize);
struct palettetype *getdefaultpalette(void);
int installbgidriver(char *name, void *detect);
int registerfarbgidriver(void *driver);
int registerfarbgifont(void *font);
void textlinestyle(int on);
void setpalette(int colornum, int color);
void set_BGI_mode_pages(int p);
int get_BGI_mode_pages(void);
void set_BGI_mode_whc(int *gd, int *gm, int width, int height, int colors);
int getmodemaxcolor(int mode);
int getmodemaxx(int mode);
int getmodemaxy(int mode);
int setrgbcolor(int r, int g, int b);
void setactivepage(int p);
int getactivepage(void);
void setvisualpage(int p);
int getvisualpage(void);
/* ----------------------------------------------------------------- */
#define restorecrtmode() __gr_restorecrtmode()
#define getgraphmode() (__gr_INIT ? __gr_Mode : (__gr_Result=grNoInitGraph))
#define getmaxmode() (__gr_set_up_modes(), __gr_MaxMode)
#define getmoderange(gd, lomode, himode) \
__gr_getmoderange((gd),(lomode),(himode))
#define graphresult() __gr_graphresult()
#define getx() (__gr_X+0)
#define gety() (__gr_Y+0)
#define moveto(x, y) do { __gr_X = (x); __gr_Y = (y); } while(0)
#define moverel(dx, dy) moveto(getx()+(dx),gety()+(dy))
#define getbkcolor() (__gr_colorbg+0)
#define getcolor() (__gr_color+0)
#define cleardevice() __gr_cleardevice()
#define setbkcolor(color) do __gr_colorbg = (color); while(0)
#define setcolor(color) do __gr_color = (color); while(0)
#define line(x1, y1, x2, y2) __gr_line((x1),(y1),(x2),(y2))
#define linerel(dx, dy) __gr_line(getx(),gety(),getx()+(dx),gety()+(dy))
#define lineto(x, y) __gr_line(getx(),gety(),(x),(y))
#define drawpoly(numpoints, polypoints) \
__gr_drawpol((numpoints), (polypoints), FALSE)
#define bar(left, top, right, bottom) __gr_bar((left),(top),(right),(bottom))
#define circle(x, y, radius) __gr_circle((x),(y),(radius))
#define ellipse(x, y, stangle, endangle, xradius, yradius) \
__gr_ellipse((x),(y),(stangle),(endangle),(xradius),(yradius))
/* arc() uses radius twice */
#define getaspectratio(xasp, yasp) \
do { *(xasp) = __gr_Xasp; *(yasp) = __gr_Yasp; } while(0)
#define setaspectratio(xasp, yasp ) \
do { __gr_Xasp = (xasp); __gr_Yasp = (yasp); } while(0)
/* getfillsettings() uses fillinfo twice */
#define getfillpattern(pattern) __gr_getfillpattern(pattern)
#define sector(x, y, stangle, endangle, xradius, yradius) \
__gr_sector((x),(y),(stangle),(endangle),(xradius), (yradius));
/* pieslice() uses radius twice */
#define setgraphbufsize(bufsize) __gr_setgraphbufsize(bufsize)
#define getdefaultpalette() (&__gr_EGAdef)
#define installbgidriver(name, detect) __gr_installbgidriver((name), (detect))
#define registerfarbgidriver(driver) __gr_registerfarbgidriver(driver)
#define registerfarbgifont(font) registerbgifont(font)
#define textlinestyle(on) do __gr_TextLineStyle = on; while(0);
#define setpalette(colornum, color) __gr_setpalette((colornum),(color))
#define set_BGI_mode_pages(p) __gr_set_BGI_mode_pages(p)
#define get_BGI_mode_pages() __gr_get_BGI_mode_pages()
#define set_BGI_mode_whc(gd, gm, width, height, colors) \
do { \
__gr_set_BGI_mode_pages(1); \
__gr_BGI_w = (width); \
__gr_BGI_h = (height); \
__gr_BGI_c = (colors); \
*(gd) = NATIVE_GRX; \
*(gm) = GRX_BGI_EMULATION; \
} while(0)
#define getmodemaxcolor(mode) __gr_getmodemaxcolor(mode)
#define getmodemaxx(mode) __gr_getmodemaxx(mode)
#define getmodemaxy(mode) __gr_getmodemaxx(mode)
#define setrgbcolor(r, g, b) __gr_setrgbcolor((r),(g),(b))
#define setactivepage(p) __gr_setactivepage(p)
#define getactivepage() __gr_getactivepage()
#define setvisualpage(p) __gr_setvisualpage(p)
#define getvisualpage() __gr_getvisualpage()
#ifdef __BCCGRX_C
/* ----------------------------------------------------------------- */
void (restorecrtmode)(void) {
__gr_restorecrtmode();
}
/* ----------------------------------------------------------------- */
int (getgraphmode)(void) {
return (__gr_INIT ? __gr_Mode : (__gr_Result=grNoInitGraph));
}
/* ----------------------------------------------------------------- */
int (getmaxmode)(void) {
__gr_set_up_modes();
return __gr_MaxMode;
}
/* ----------------------------------------------------------------- */
void (getmoderange)(int gd, int *lomode, int *himode) {
__gr_getmoderange(gd, lomode, himode);
}
/* ----------------------------------------------------------------- */
int (graphresult)(void) {
return __gr_graphresult();
}
/* ----------------------------------------------------------------- */
int (getx)(void) {
return __gr_X;
}
/* ----------------------------------------------------------------- */
int (gety)(void) {
return __gr_Y;
}
/* ----------------------------------------------------------------- */
void (moveto)(int x, int y) {
__gr_X = x; __gr_Y = y;
}
/* ----------------------------------------------------------------- */
void (moverel)(int dx, int dy) {
moveto( getx()+dx, gety()+dy);
}
/* ----------------------------------------------------------------- */
int (getbkcolor)(void) {
return __gr_colorbg;
}
/* ----------------------------------------------------------------- */
int (getcolor)(void) {
return __gr_color;
}
/* ----------------------------------------------------------------- */
void (cleardevice)(void) {
__gr_cleardevice();
}
/* ----------------------------------------------------------------- */
void (setbkcolor)(int color) {
__gr_colorbg= color;
}
/* ----------------------------------------------------------------- */
void (setcolor)(int color) {
__gr_color= color;
}
/* ----------------------------------------------------------------- */
void (line)(int x1, int y1, int x2, int y2) {
__gr_line(x1,y1,x2,y2);
}
/* ----------------------------------------------------------------- */
void (linerel)(int dx, int dy) {
register int x = getx();
register int y = gety();
__gr_line(x,y,x+dx,y+dy);
}
/* ----------------------------------------------------------------- */
void (lineto)(int x, int y) {
__gr_line( getx(), gety(), x, y);
}
/* ----------------------------------------------------------------- */
void (drawpoly)(int numpoints, void *polypoints) {
__gr_drawpol(numpoints, polypoints, FALSE);
}
/* ----------------------------------------------------------------- */
void (bar)(int left, int top, int right, int bottom) {
__gr_bar(left,top,right, bottom);
}
/* ----------------------------------------------------------------- */
void (circle)(int x, int y, int radius) {
__gr_circle(x,y,radius);
}
/* ----------------------------------------------------------------- */
void (ellipse)( int x, int y, int stangle, int endangle,
int xradius, int yradius ) {
__gr_ellipse( x, y, stangle, endangle, xradius, yradius);
}
/* ----------------------------------------------------------------- */
void (arc)(int x, int y, int stangle, int endangle, int radius) {
__gr_ellipse(x,y,stangle,endangle,radius,radius);
}
/* ----------------------------------------------------------------- */
void (getaspectratio)(int *xasp, int *yasp) {
*xasp = __gr_Xasp; *yasp = __gr_Yasp;
}
/* ----------------------------------------------------------------- */
void (setaspectratio)( int xasp, int yasp ) {
__gr_Xasp = xasp; __gr_Yasp = yasp;
}
/* ----------------------------------------------------------------- */
void (getfillsettings)(struct fillsettingstype *fillinfo) {
fillinfo->pattern = __gr_fpatno;
fillinfo->color = __gr_colorfill;
}
/* ----------------------------------------------------------------- */
void (getfillpattern)(char *pattern) {
__gr_getfillpattern(pattern);
}
/* ----------------------------------------------------------------- */
void (sector)( int x, int y, int stangle, int endangle,
int xradius, int yradius ) {
__gr_sector(x,y,stangle,endangle,xradius, yradius);
}
/* ----------------------------------------------------------------- */
void (pieslice)(int x, int y, int stangle, int endangle, int radius) {
__gr_sector(x,y,stangle,endangle,radius,radius);
}
/* ----------------------------------------------------------------- */
unsigned (setgraphbufsize)(unsigned bufsize) {
return __gr_setgraphbufsize(bufsize);
}
/* ----------------------------------------------------------------- */
struct palettetype *(getdefaultpalette)(void) {
return &__gr_EGAdef;
}
/* ----------------------------------------------------------------- */
int (installbgidriver)(char *name, void *detect) {
return __gr_installbgidriver(name, detect);
}
/* ----------------------------------------------------------------- */
int (registerfarbgidriver)(void *driver) {
return __gr_registerfarbgidriver(driver);
}
/* ----------------------------------------------------------------- */
int (registerfarbgifont)(void *font) {
return registerbgifont(font);
}
/* ----------------------------------------------------------------- */
void (textlinestyle)(int on) {
__gr_TextLineStyle = on;
}
/* ----------------------------------------------------------------- */
void (setpalette)(int colornum, int color) {
__gr_setpalette(colornum,color);
}
/* ----------------------------------------------------------------- */
void (set_BGI_mode_pages)(int p) {
__gr_set_BGI_mode_pages(p);
}
/* ----------------------------------------------------------------- */
int (get_BGI_mode_pages)(void) {
return __gr_get_BGI_mode_pages();
}
/* ----------------------------------------------------------------- */
void (set_BGI_mode_whc)(int *gd, int *gm, int width, int height, int colors) {
__gr_set_BGI_mode_pages(1);
__gr_BGI_w = width;
__gr_BGI_h = height;
__gr_BGI_c = colors;
*gd = NATIVE_GRX;
*gm = GRX_BGI_EMULATION;
}
/* ----------------------------------------------------------------- */
int (getmodemaxcolor)(int mode) {
/* works like getmaxcolor() for mode */
return __gr_getmodemaxcolor(mode);
}
/* ----------------------------------------------------------------- */
int (getmodemaxx)(int mode) {
/* works like getmaxx() for mode */
return __gr_getmodemaxx(mode);
}
/* ----------------------------------------------------------------- */
int (getmodemaxy)(int mode) {
/* works like getmaxy() for mode */
return __gr_getmodemaxx(mode);
}
/* ----------------------------------------------------------------- */
int (setrgbcolor)(int r, int g, int b) {
return __gr_setrgbcolor(r,g,b);
}
/* ----------------------------------------------------------------- */
void (setactivepage)(int p) {
__gr_setactivepage(p);
}
/* ----------------------------------------------------------------- */
int (getactivepage)(void) {
return __gr_getactivepage();
}
/* ----------------------------------------------------------------- */
void (setvisualpage)(int p) {
__gr_setvisualpage(p);
}
/* ----------------------------------------------------------------- */
int (getvisualpage)(void) {
return __gr_getvisualpage();
}
#endif /* __BCCGRX_C */
/* ----------------------------------------------------------------- */
#endif