tron.h 2.61 KB
/**************************************************************************
 *                                                                        *
 *               Copyright (C) 1994, 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.  *
 *                                                                        *
 *************************************************************************/

#define	PHYSICAL_SEGMENT	0
#define	STATIC_SEGMENT		1
#define	DYNAMIC_SEGMENT		2

#define	MAX_STATIC_GFX_SIZE	256

#define	SCREEN_HT	240
#define	SCREEN_WD	320

#define	STACKSIZE	0x2000
#define MAXHIST         256

#define REALCLEAR 1

/*
 * ifdef needed because this file is included by "spec"
 */
#ifdef _LANGUAGE_C

/*
 * Layout of dynamic segment
 */
#define LIST_SIZE	128
typedef struct Dynamic
{
	Gfx glist[LIST_SIZE];
	Mtx rotate1;
	Mtx rotate2;
	Mtx translate1;
} Dynamic;

extern unsigned short	zbuffer[];
extern Gfx	setup_rdpstate[];
extern Gfx	setup_rspstate[];
extern Gfx	clear_fb[];
extern Gfx	init[];
extern Gfx	objlist[];
extern Gfx	objlist1[];
extern Gfx	objlist2[];
extern Gfx	objlist3[];
extern Gfx	objlist4[];
extern Gfx	objlist5[];

extern unsigned short cfb_16_a[];
extern unsigned short cfb_16_b[];

extern u64 dram_stack[];    /* used for matrix stack */
extern u64 dram_yield[];    /* used for yeild data */
extern u64 rdp_output_len;  /* RSP writes back size of RDP data */
extern u64 rdp_output[];    /* RSP writes back RDP data */

/*
 *  Allow tmem address & tile number to be specified
 */
#define	_gsDPLoadTMemTile(timg, tmem, tile, fmt, siz, width, height,	\
		pal, cms, cmt, masks, maskt, shifts, shiftt)		\
									\
	gsDPSetTextureImage(fmt, siz, 1, timg),				\
	gsDPSetTile(fmt, siz, 0, tmem, G_TX_LOADTILE, 0 , cmt, maskt,	\
		shiftt, cms, masks, shifts),				\
	gsDPLoadSync(),							\
	gsDPLoadBlock(G_TX_LOADTILE, 0, 0, (width)*(height)-1,		\
		ROUNDUP((1.0/((width)/(8.0/siz##_BYTES))*		\
		(1<<G_TX_DXT_FRAC)))),					\
	gsDPSetTile(fmt, siz, ((((width) * siz##_LINE_BYTES)+7)>>3), tmem,	\
		tile, pal, cmt, maskt, shiftt, cms, masks,	\
		shifts),						\
	gsDPSetTileSize(tile, 0, 0,				\
		((width)-1) << G_TEXTURE_IMAGE_FRAC,			\
		((height)-1) << G_TEXTURE_IMAGE_FRAC)


#endif	/* _LANGUAGE_C */