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:
Thanks.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; }



LinkBack URL
About LinkBacks



