back to the text
/*----------------------------------------------------
 * 
 * TEXTURES.c - texture mapping functions
 * 
 *--------------------------------------------------*/

#include "INCLUDES.h"

#define PIXPATH ""									
#define FIRST_TEX_INDEX 1000
#define TEXNAME	 118									
long img_list[TEXNAME];

extern long xorigin, yorigin; /* xsize, ysize; */
Matrix Identity = { 1, 0, 0, 0,  0, 1, 0, 0,  0, 0, 1, 0,  0, 0, 0, 1 };
unsigned long *ImgPic;

/*----------------------------------------------------
 * 
 * wierd texturemapping stuff
 * 
 *--------------------------------------------------*/

static float texprops[] = {TX_MAGFILTER,TX_BILINEAR,TX_MINFILTER,TX_BILINEAR,TX_WRAP, TX_REPEAT,TX_NULL};
static float tomtevprops[] = { TV_MODULATE , TV_NULL };
float scrparams[] = {0., 0., 10.};


/*----------------------------------------------------
 * 
 * wierd texturemapping stuff
 * 
 *--------------------------------------------------*/

char * texturenames[TEXNAME] =
{				
	"IMAGES/G400/column-01.rgb", /* 0 */							
	"IMAGES/G400/column-02.rgb",							
	"IMAGES/G400/column-03.rgb",
	"IMAGES/G400/column-04.rgb",									
	"IMAGES/G400/column-05.rgb",							
	"IMAGES/G400/column-06.rgb",							
	"IMAGES/G400/floor.rgb",
	"IMAGES/G400/sculpmat-t.rgb",							
	"IMAGES/G400/pedtex.rgb",
	"IMAGES/SOUP/sm-sour1.rgb", /* 9 */								
	"IMAGES/SOUP/sm-sour2.rgb",							
	"IMAGES/SOUP/sm-sour3.rgb",
	"IMAGES/SOUP/sm-sour4.rgb",
	"IMAGES/SOUP/sm-sour5.rgb",
	"IMAGES/SOUP/sm-sour6.rgb",
	"IMAGES/SOUP/sm-sour7.rgb",
	"IMAGES/SOUP/sm-sour8.rgb",
	"IMAGES/SOUP/sm-sour9.rgb",
	"IMAGES/SOUP/sm-sour10.rgb",
	"IMAGES/SOUP/sm-sour11.rgb",
	"IMAGES/SOUP/sm-sour12.rgb",
	"IMAGES/SOUP/sm-sour13.rgb",
	"IMAGES/SOUP/sm-sour14.rgb",
	"IMAGES/SOUP/sm-sour15.rgb",
	"IMAGES/SOUP/hot-t.rgb",
	"IMAGES/JAWS/tex001.rgb", /* 25 */
	"IMAGES/JAWS/tex002.rgb",							
	"IMAGES/JAWS/tex003.rgb",
	"IMAGES/JAWS/tex004.rgb",
	"IMAGES/JAWS/tex005.rgb",
	"IMAGES/JAWS/tex006.rgb",
	"IMAGES/JAWS/tex007.rgb",
	"IMAGES/JAWS/tex008.rgb",
	"IMAGES/JAWS/tex009.rgb",
	"IMAGES/FIRE/firecolor01.rgb", /* 34 */						
	"IMAGES/FIRE/firecolor02.rgb",							
	"IMAGES/FIRE/firecolor03.rgb",
	"IMAGES/FIRE/fire01-t.rgb",									
	"IMAGES/FIRE/fire02-t.rgb",							
	"IMAGES/FIRE/fire03-t.rgb",
	"IMAGES/FIRE/firegreen02-T.rgb",								
	"IMAGES/SPIN/sm-spin1.rgb", /* 41 */								
	"IMAGES/SPIN/sm-spin2.rgb",							
	"IMAGES/SPIN/sm-spin3.rgb",
	"IMAGES/SPIN/sm-spin4.rgb",
	"IMAGES/SPIN/sm-spin5.rgb",
	"IMAGES/SPIN/sm-spin6.rgb",
	"IMAGES/SPIN/sm-spin7.rgb",
	"IMAGES/SPIN/sm-spin8.rgb",
	"IMAGES/SPIN/sm-spin9.rgb",
	"IMAGES/SPIN/sm-spin10.rgb",
	"IMAGES/SPIN/sm-spin11.rgb",
	"IMAGES/SPIN/sm-spin12.rgb",
	"IMAGES/SPIN/sm-spin13.rgb",
	"IMAGES/SPIN/sm-spin14.rgb",
	"IMAGES/SPIN/sm-spin15.rgb",								
	"IMAGES/GROW/sm-grow1.rgb", /* 56 */							
	"IMAGES/GROW/sm-grow2.rgb",							
	"IMAGES/GROW/sm-grow3.rgb",
	"IMAGES/GROW/sm-grow4.rgb",
	"IMAGES/GROW/sm-grow5.rgb",
	"IMAGES/GROW/sm-grow6.rgb",
	"IMAGES/GROW/sm-grow7.rgb",
	"IMAGES/GROW/sm-grow8.rgb",
	"IMAGES/GROW/sm-grow9.rgb",
	"IMAGES/GROW/sm-grow10.rgb",
	"IMAGES/GROW/sm-grow11.rgb",
	"IMAGES/GROW/sm-grow12.rgb",
	"IMAGES/GROW/sm-grow13.rgb",
	"IMAGES/GROW/sm-grow14.rgb",
	"IMAGES/GROW/sm-grow15.rgb",
	"IMAGES/GROW/sm-blue1.rgb",								
	"IMAGES/GROW/sm-blue2.rgb",							
	"IMAGES/GROW/sm-blue3.rgb",
	"IMAGES/GROW/sm-blue4.rgb",
	"IMAGES/GROW/sm-blue5.rgb",
	"IMAGES/GROW/sm-blue6.rgb",
	"IMAGES/GROW/sm-blue7.rgb",
	"IMAGES/GROW/sm-blue8.rgb",
	"IMAGES/GROW/sm-blue9.rgb",
	"IMAGES/GROW/sm-blue10.rgb",
	"IMAGES/GROW/sm-blue11.rgb",
	"IMAGES/GROW/sm-blue12.rgb",
	"IMAGES/GROW/sm-blue13.rgb",
	"IMAGES/GROW/sm-blue14.rgb",
	"IMAGES/GROW/sm-blue15.rgb",
	"IMAGES/GALLERY/faces-01.rgb", /* 86 */
	"IMAGES/GALLERY/faces-02.rgb",							
	"IMAGES/GALLERY/faces-03.rgb",
	"IMAGES/GALLERY/faces-04.rgb",									
	"IMAGES/GALLERY/faces-05.rgb",
	"IMAGES/GALLERY/faces-06.rgb",							
	"IMAGES/GALLERY/galleryfloor.rgb",
	"IMAGES/GALLERY/sculpmat-t.rgb",							
	"IMAGES/GALLERY/sky.rgb",								
	"IMAGES/G400/floor2.rgb", /* 95 */
	"IMAGES/EX/ex01.rgb",
	"IMAGES/EX/ex02.rgb",
	"IMAGES/EX/ex03.rgb",
	"IMAGES/EX/ex04.rgb",
	"IMAGES/EX/ex05.rgb",
	"IMAGES/EX/ex06.rgb",
	"IMAGES/EX/ex07.rgb",
	"IMAGES/EX/ex08.rgb",
	"IMAGES/EX/ex09.rgb",
	"IMAGES/EX/ex10.rgb",
	"IMAGES/EX/ex11.rgb",
	"IMAGES/EX/ex12.rgb",
	"IMAGES/EX/ex13.rgb",
	"IMAGES/EX/ex14.rgb",
	"IMAGES/EX/ex15.rgb",
	"CREDITS/pushpop-small.rgb", /* 111 */
	"IMAGES/GALLERY/cara-01.rgb", /* 112 */
	"IMAGES/GALLERY/cara-02.rgb",							
	"IMAGES/GALLERY/cara-03.rgb",
	"IMAGES/GALLERY/cara-04.rgb",									
	"IMAGES/GALLERY/cara-05.rgb",
	"IMAGES/GALLERY/cara-06.rgb",							
		
};

/*----------------------------------------------------
 * 
 * functions
 * 
 *--------------------------------------------------*/

char * path(char * file)
{
	static char thepath[200];
	sprintf(thepath, "%s%s", PIXPATH, file);
	return thepath;
}

/*--------------------------------------------------*/ 

long gen_tex_index(void)
{
	static long lindex = FIRST_TEX_INDEX;
	return(lindex++);
}

/*--------------------------------------------------*/

long texture_index(char * file)
{
	printf("file=%s\n", file);
	static int sizex,  sizey;
	unsigned long * imgp,  texindex;			
	sizeofimage( file,  &sizex,  &sizey);		
	imgp = longimagedata(file);					
	texindex = gen_tex_index();					
	printf("texindex:%ld\n", texindex);
	texdef2d(texindex, 4, sizex, sizey, imgp, 0, texprops); 
	tevdef(1, 0, tomtevprops);
	puts("before tevbind");
	tevbind(TV_ENV0, 1);
	free(imgp);
	return(texindex);
}

/*----------------------------------------------------
 * this needs to be called in Init after CAVEInit
 *--------------------------------------------------*/

void rsReadTextures(void)
{
	int n;								
	/* for loop which reads in the texture maps	*/
	for (n = 0; n < TEXNAME; n++)				
	{
		if ( texturenames[n] != NULL )
		{
			printf("texnum=%d\n",n);				
			img_list[n] = texture_index( path( texturenames[n] ) );
			printf("Loaded texture %s\n", texturenames[n] );
		}  
	}
}

/*--------------------------------------------------*/