Multiple textures in OpenGL...
I'm trying to adjust NeHe's OpenGL texturing code to easily enable multiple textures within my program but nothing seems to work. This is my attempt:
Code:
GLuint texture[2]; //adjust the number to the amount of textures
AUX_RGBImageRec *LoadBMP(char *Filename) // Loads A Bitmap Image
{
FILE *File=NULL; // File Handle
if (!Filename) // Make Sure A Filename Was Given
{
return NULL; // If Not Return NULL
}
File=fopen(Filename,"r"); // Check To See If The File Exists
if (File)
{
fclose(File); // Close The Handle
return auxDIBImageLoad(Filename); // Load The Bitmap And Return A Pointer
}
return NULL; // If Load Failed Return NULL
}
int LoadGLTextures() // Load Bitmaps And Convert To Textures
{
int Status=FALSE; // Status Indicator
int texsiz=sizeof(texture)/sizeof(texture[0]);
AUX_RGBImageRec *TextureImage[texsiz];
memset(TextureImage,0,sizeof(void *)*texsiz);
// Load The Bitmap, Check For Errors, If Bitmap's Not Found Quit
if ( (TextureImage[0]=LoadBMP("test1.bmp")) //add directories here
&&(TextureImage[1]=LoadBMP("test2.bmp"))
){
Status=TRUE; // Set The Status To TRUE
glGenTextures(texsiz, &texture[0]); // Create The Texture
for (int loop=0; loop<texsiz; loop++) // Loop Through All The Textures
{
glBindTexture(GL_TEXTURE_2D, texture[loop]);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D,0,3,TextureImage[loop]->sizeX,TextureImage[loop]->sizeY,0,GL_RGB,GL_UNSIGNED_BYTE,TextureImage[loop]->data);
}
}
for (int loop=0; loop<texsiz; loop++)
{
if (TextureImage[loop]) // If Texture Exists
{
if (TextureImage[loop]->data) // If Texture Image Exists
free(TextureImage[loop]->data); // Free The Texture Image Memory
free(TextureImage[loop]); // Free The Image Structure
}
}
return Status;
}
Thanks.