/**************************************************************************
 *									  *
 * 		 Copyright (C) 1983, Silicon Graphics, Inc.		  *
 *									  *
 *  These coded instructions, statements, and computer programs  contain  *
 *  unpublished  proprietary  information of Silicon Graphics, Inc., and  *
 *  are protected by Federal copyright law.  They  may  not be disclosed  *
 *  to  third  parties  or copied or duplicated in any form, in whole or  *
 *  in part, without the prior written consent of Silicon Graphics, Inc.  *
 *									  *
 **************************************************************************/


/* graphics libary header file */


/* maximum X and Y screen coordinates */

#define XMAXSCREEN	1023
#define YMAXSCREEN	767

/* approximate interval between retraces in milliseconds */

#define RETRACEINTERVAL	33.333333

/* names for colors in color map loaded by ginit() */

#define BLACK		0
#define RED		1
#define GREEN		2
#define YELLOW		3
#define BLUE		4
#define MAGENTA		5
#define CYAN		6
#define WHITE		7

#ifndef FALSE
#define	FALSE		0
#endif
#ifndef TRUE
#define TRUE		(!FALSE)
#endif

/* typedefs */

typedef unsigned char Byte;
typedef Byte Boolean;
typedef char *String;

typedef short Angle;
typedef short Screencoord;
typedef long Icoord;
typedef float Coord;
typedef float Matrix[4][4];

typedef unsigned short Colorindex;
typedef unsigned short RGBvalue;

typedef unsigned short Device;

typedef unsigned short Linestyle;
typedef Byte Texture[16];
typedef unsigned short Cursor[16];
typedef struct {
	unsigned short offset;
	Byte w,h;
	char xoff,yoff;
	short width;
} Fontchar;

typedef long Object;
typedef long Tag;
typedef long Offset;

/* function declarations */

extern void	xsetslowcom();
extern void	xsetfastcom();
extern short	gversion();
extern void	gdownload();
extern void	pagecolor();
extern void	textcolor();
extern void	textport();
extern void	arc();
extern void	arcf();
extern void	arcfi();
extern void	arci();
extern void	attachcursor();
extern void	backbuffer();
extern void	bbox();
extern void	bbox2();
extern void	bbox2i();
extern void	bboxi();
extern void	blink();
extern void	callobj();
extern void	charstr();
extern void	circ();
extern void	circf();
extern void	circfi();
extern void	circi();
extern void	clear();
extern void	clearhitcode();
extern long	clipline();
extern void	clippnt();
extern long	clippoly();
extern void	closeobj();
extern void	cmov();
extern void	cmov2();
extern void	cmov2i();
extern void	cmovi();
extern void	color();
extern void	cursoff();
extern void	curson();
extern void	curve();
extern void	curveit();
extern void	defcursor();
extern void	deflinestyle();
extern void	defobjfont();
extern void	defrasterfont();
extern void	deftexture();
extern void	delete();
extern void	delobj();
extern void	doublebuffer();
extern void	draw();
extern void	draw2();
extern void	draw2i();
extern void	drawi();
extern void	editobj();
extern long	endpick();
extern long	endselect();
extern void	finish();
extern void	font();
extern void	frontbuffer();
extern void	gconfig();
extern Object	genobj();
extern Tag	gentag();
extern short	getbuffer();
extern Boolean	getbutton();
extern short	getcmmode();
extern Colorindex	getcolor();
extern void	getcursor();
extern void	getdepth();
extern short	getdisplaymode();
extern short	getfont();
extern short	getheight();
extern short	gethitcode();
extern Boolean	getlsbackup();
extern short	getlstyle();
extern short	getlwidth();
extern short	getmap();
extern void	getmatrix();
extern short	getobjfont();
extern short	getplanes();
extern Boolean	getresetls();
extern void	getscrmask();
extern short	gettexture();
extern short	getvaluator();
extern void	getviewport();
extern Colorindex	getwritemask();
extern void	xginit();
extern void	xgreset();
extern void	gRGBcolor();
extern void	gRGBcursor();
extern void	gRGBmask();
extern void	insert();
extern Boolean	isobj();
extern Boolean	istag();
extern char	keyboard();
extern void	linewidth();
extern void	loadmatrix();
extern void	lookat();
extern void	lsbackup();
extern void	makeobj();
extern void	maketag();
extern void	mapcolor();
extern void	mapw();
extern void	mapw2();
extern void	modify();
extern void	move();
extern void	move2();
extern void	move2i();
extern void	movei();
extern void	multimap();
extern void	multmatrix();
extern void	noise();
extern void	objfont();
extern void	objstr();
extern void	onemap();
extern void	ortho();
extern void	ortho2();
extern void	perspective();
extern void	pick();
extern void	picksize();
extern void	pnt();
extern void	pnt2();
extern void	pnt2i();
extern void	pnti();
extern void	polarview();
extern void	polf();
extern void	polf2();
extern void	polf2i();
extern void	polfi();
extern void	poly();
extern void	poly2();
extern void	poly2i();
extern void	polyi();
extern void	popattributes();
extern void	popmatrix();
extern void	popviewport();
extern void	pushattributes();
extern void	pushmatrix();
extern void	pushviewport();
extern void	qbutton();
extern void	qenter();
extern void	qkeyboard();
extern Device	qread();
extern void	qreset();
extern Device	qtest();
extern void	qvaluator();
extern short	readpixels();
extern short	readRGB();
extern void	rect();
extern void	rectf();
extern void	rectfi();
extern void	recti();
extern void	replace();
extern void	resetls();
extern void	RGBcolor();
extern void	RGBcursor();
extern void	RGBmode();
extern void	RGBwritemask();
extern void	rotate();
extern void	scale();
extern void	screenpnt();
extern void	scrmask();
extern void	select();
extern void	setbutton();
extern void	setcursor();
extern void	setdepth();
extern void	setlinestyle();
extern void	setmap();
extern void	setplanes();
extern void	settexture();
extern void	setvaluator();
extern void	singlebuffer();
extern long	strwidth();
extern void	swapbuffers();
extern void	swapinterval();
extern void	sync();
extern void	tie();
extern void	transform();
extern void	translate();
extern void	unqbutton();
extern void	unqkeyboard();
extern void	unqvaluator();
extern void	viewport();
extern void	window();
extern void	writemask();
extern void	writepixels();
extern void	writeRGB();
extern void	tpon();
extern void	tpoff();
extern void	pagewritemask();
extern void	textwritemask();
extern void	xgexit();
extern void	clkon();
extern void	clkoff();
extern void	lampon();
extern void	lampoff();
extern void	setbell();
extern void	ringbell();
