www.pudn.com > SVGACC10.zip > SVGACC.H, change:1994-03-11,size:10271b


/* SVGACC Include File for MS C/C++/QuickC and Borland C/C++ 
 * Copyright 1994 by Stephen L. Balkum and Daniel A. Sill 
 * Zephyr Software P.O. Box 7704, Austin, Texas  78713-7704 
 */ 
 
#ifndef SVGACC_H 
#define SVGACC_H 
 
typedef unsigned char byte; 
 
typedef struct { 
	char r; 
	char g; 
	char b; 
} RGB; 
 
typedef RGB PaletteData[256]; 
 
typedef struct { 
	byte hotspotx; 
	byte hotspoty; 
	byte data[384]; 
} MouseCursor; 
 
typedef struct { 
	byte width; 
	byte height; 
	byte data[4096]; 
} Font; 
 
typedef enum { 
	NO_ACTION = 0, 
	SET, 
	XOR, 
	OR, 
	AND 
} PixelMode; 
 
typedef enum { 
	UNKNOWN = 0, 
	ACUMOS, 
	ATI, 
	AHEADA, 
	AHEADB, 
	CHIPSTECH, 
	CIRRUS, 
	EVEREX, 
	GENOA, 
	NCR, 
	OAKTECH, 
	PARADISE, 
	REALTEK, 
	TRIDENT, 
	TSENG3, 
	TSENG4, 
	VESA, 
	VIDEO7, 
	AVANCE, 
	MXIC, 
	PRIMUS 
} VGAChipset; 
 
typedef struct { 
	unsigned int width; 
	unsigned int height; 
	byte data[1]; 
} RasterBlock; 
 
typedef struct { 
	int x; 
	int y; 
} D2Point; 
 
typedef struct { 
	int x; 
	int y; 
	int z; 
} D3Point; 
 
typedef struct { 
	int eyex; 
	int eyey; 
	int eyez; 
	int scrd; 
	int theta; 
	int phi; 
} ProjParameters; 
 
#ifdef __cplusplus 
extern "C" { 
#endif 
 
/* Global variables */ 
extern const int far maxx; 
extern const int far maxy; 
extern const int far viewx1; 
extern const int far viewy1; 
extern const int far viewx2; 
extern const int far viewy2; 
 
/* 'BLocK' methods to manipulate RasterBlocks on and off the screen */ 
 
extern int  far blkget (int x1, int y1, int x2, int y2, RasterBlock far *gfxblk); 
extern void far blkput (PixelMode mode, int x, int y, RasterBlock far *gfxblk); 
extern void far blkresize (unsigned newxsize, unsigned newysize, RasterBlock far *sourcegfxblk, RasterBlock far *destgfxblk); 
extern int  far blkrotate (int ang, int backfill, RasterBlock far *sourcegfxblk, RasterBlock far *destgfxblk); 
extern int  far blkrotatesize (int ang, RasterBlock far *sourcegfxblk); 
 
/* 'BYTECOPY' method for fast memory copy */ 
 
extern void far bytecopy (void far *src, void far *dst, unsigned long numbytes); 
 
/* '2D' methods to transform D2Points */ 
 
extern void far d2rotate (int points, int xorigin, int yorigin, int ang, D2Point far *inary, D2Point far *outary); 
extern void far d2scale (int points, int xscale, int yscale, D2Point far *inary, D2Point far *outary); 
extern void far d2translate (int points, int xtrans, int ytrans, D2Point far *inary, D2Point far *outary); 
 
/* '3D' methods to transform D3Points */ 
 
extern int  far d3project (int points, ProjParameters far *params, D3Point far *inary, D2Point far *outary); 
extern void far d3rotate (int points, int xorigin, int yorigin, int zorigin, int zrang, int yrang, int xrang, D3Point far *inary, D3Point far *outary); 
extern void far d3scale (int points, int xscale, int yscale, int zscale, D3Point far *inary, D3Point far *outary); 
extern void far d3translate (int points, int xtrans, int ytrans, int ztrans, D3Point far *inary, D3Point far *outary); 
 
/* 'DRaW' methods for placing text and graphics primitives on screen */ 
 
extern void far drwbox (PixelMode mode, int colr, int x1, int y1, int x2, int y2); 
extern void far drwcircle (PixelMode mode, int colr, int centerx, int centery, int radius); 
extern void far drwellipse (PixelMode mode, int colr, int centerx, int centery, int radiusx, int radiusy); 
extern void far drwfillbox (PixelMode mode, int colr, int x1, int y1, int x2, int y2); 
extern void far drwfillcircle (PixelMode mode, int colr, int centerx, int centery, int radius); 
extern void far drwfillellipse (PixelMode mode, int colr, int centerx, int centery, int radiusx, int radiusy); 
extern void far drwline (PixelMode mode, int colr, int x1, int y1, int x2, int y2); 
extern void far drwpoint (PixelMode mode, int colr, int x, int y); 
extern void far drwstring (PixelMode mode, int fcolr, int bcolr, const char far *strng, int x, int y); 
extern void far drwstringdn (PixelMode mode, int fcolr, int bcolr, const char far *strng, int x, int y); 
extern void far drwstringlt (PixelMode mode, int fcolr, int bcolr, const char far *strng, int x, int y); 
extern void far drwstringrt (PixelMode mode, int fcolr, int bcolr, const char far *strng, int x, int y); 
 
/* 'FILL' methods for filling various regions on screen with a color */ 
 
extern void far fillarea (int xseed, int yseed, int bordercolr, int fillcolr); 
extern void far fillcolor (int xseed, int yseed, int oldcolr, int newcolr); 
extern void far fillpage (int colr); 
extern void far fillscreen (int colr); 
extern void far fillview (int colr); 
 
/* 'FONT' methods for setting the current font */ 
 
extern void far fontgetinfo (int far *wdth, int far *hght); 
extern void far fontset (Font far *font); 
extern void far fontsystem (void); 
 
/* 'GET' methods to return information held by library */ 
 
extern void far getlaststring (RasterBlock far *strnggfxblk); 
extern long far getarccos (long cosvalue); 
extern long far getarcsin (long sinvalue); 
extern long far getarctan (long tanvalue); 
extern long far getcos (long angle); 
extern int  far getpoint (int x, int y); 
extern long far getsin (long angle); 
extern long far gettan (long angle); 
 
/* 'GIF' methods to read / write GIF files and place images on screen */ 
 
extern int  far gifgetinfo (const char far *name, int far *gifxsize, int far *gifysize, int far *numcolors, RGB far *pal); 
extern int  far gifmake (int x1, int y1, int x2, int y2, const char far *name); 
extern int  far gifput (PixelMode mode, int xloc, int yloc, const char far *name); 
 
/* 'JOYSTICK' method to read joysticks' status */ 
 
extern void far joystickinfo (int far *jax, int far *jay, int far *jabuts, int far *jbx, int far *jby, int far *jbbuts); 
 
/* 'MOUSE' methods to interact with mouse driver */ 
 
extern void far mousebutpress (int reqbut, int far *xloc, int far *yloc, int far *num, int far *mbuts); 
extern void far mousebutrelease (int reqbut, int far *xloc, int far *yloc, int far *num, int far *mbuts); 
extern void far mousecursordefault (void); 
extern void far mousecursorset (MouseCursor far *mousecursor); 
extern void far mouseenter (void); 
extern void far mouseexit (void); 
extern void far mousehide (void); 
extern void far mouseinfo (int far *drvmajorver, int far *drvminorver, int far *mousetype, int far *irqnumber); 
extern void far mouselocset (int xloc, int yloc); 
extern void far mouserangeset (int x1, int y1, int x2, int y2); 
extern void far mouserestorestate (byte far *mousebuf); 
extern void far mousesavestate (byte far *mousebuf); 
extern void far mousesensset (int xsens, int ysens, int dblspdthresh); 
extern void far mouseshow (void); 
extern void far mousestatus (int far *x, int far *y, int far *mbuts); 
extern int  far mousestoragesize (void); 
 
extern void far overscanset (int colr); 
 
/* 'PAGE' methods to control paging abilities */ 
 
extern int  far pageactive (int page); 
extern int  far pagedisplay (int x, int y, int page); 
 
/* 'PALette' methods to manipulate and activate palettes */ 
 
extern void far palchgauto (RGB far *pal, RGB far *newpal, int firstcolr, int lastcolr, int speed); 
extern void far palchgstep (RGB far *pal, RGB far *newpal, int firstcolr, int lastcolr, int percent); 
extern void far palcopy (RGB far *srcpal, RGB far *destpal, int firstcolr, int lastcolr); 
extern void far paldimstep (RGB far *pal, int firstcolr, int lastcolr, int percent); 
extern void far palget (RGB far *pal, int firstcolr, int lastcolr); 
extern void far palioauto (RGB far *pal, int firstcolr, int lastcolr, int speed); 
extern void far palrotate (RGB far *pal, int firstcolr, int lastcolr, int shift); 
extern void far palset (RGB far *pal, int firstcolr, int lastcolr); 
 
/* 'RESolution' methods to set various video modes */ 
 
extern int  far res320 (void); 
extern int  far res640 (void); 
extern int  far res640l (void); 
extern int  far res800 (void); 
extern int  far res1024 (void); 
extern int  far restext (void); 
 
/* 'SCROLL' methods for scrolling various sections of the screen */ 
 
extern void far scrolldn (int x1, int y1, int x2, int y2, int num, int colr); 
extern void far scrolllt (int x1, int y1, int x2, int y2, int num, int colr); 
extern void far scrollrt (int x1, int y1, int x2, int y2, int num, int colr); 
extern void far scrollup (int x1, int y1, int x2, int y2, int num, int colr); 
 
/* 'Sync' DELAY method */ 
 
extern void far sdelay (int count); 
 
/* 'SET' methods to adjust library internal variables */ 
 
extern void far setcard (VGAChipset chip, int mem); 
extern void far setview (int x1, int y1, int x2, int y2); 
 
/* 'SPRITE' methods for manipulating sprites on and off screen */ 
 
extern int  far spritecolldetect (int transcolr, int x1, int y1, int x2, int y2, RasterBlock far *sprite1, RasterBlock far *sprite2); 
extern void far spritegap (int transcolr, int x, int y, RasterBlock far *sprite, RasterBlock far *spritebkgnd); 
extern void far spriteget (int transcolr, int x, int y, RasterBlock far *sprite, RasterBlock far *spritebkgnd); 
extern void far spriteput (PixelMode mode, int transcolr, int x, int y, RasterBlock far *sprite); 
 
/* 'VIDEO' methods to interact with video mode and display */ 
 
extern int  far videomodeget (void); 
extern void far videomodeset (int videomode); 
extern void far videooff (void); 
extern void far videoon (void); 
 
/* 'Identification' methods to discover WHICH hardware is available */ 
 
extern int  far whichcpu (void); 
extern int  far whichjoystick (void); 
extern int  far whichmem (void); 
extern int  far whichmouse (void); 
extern VGAChipset far whichvga (void); 
extern int  far whichxms (unsigned int far *xmskbytesavail, unsigned int far *xmshandlesavail); 
 
/* 'XMS' methods to store and retrieve extended memory */ 
 
extern int  far xmsallocate (unsigned int reqkbytes); 
extern int  far xmscopy (int xmssrchandle, long srcoffset, int xmsdesthandle, long destoffset, unsigned long count); 
extern int  far xmserror (void); 
extern int  far xmsfree (int xmshandle); 
extern int  far xmsget (int xmshandle, long offset, void far *destmem, unsigned long count); 
extern int  far xmsput (void far *sourcemem, int xmshandle, long offset, unsigned long count); 
 
#ifdef __cplusplus 
} 
#endif 
 
#endif 
/* SVGACC_H */