Skip to main content
gamedev.net
🔒 Locked

Problem loading textures

Started by Billy Lee 1 reply 450+ views
Original Post
Billy Lee
Billy Lee
I''ve been following the NeHe tutorials up to and including the texture mapping section and they work fine. However, I have made several small alterations along the way. The texture mapping tutorial shows how to apply a texture map onto a cube but I want to change it to apply six texture maps - one for each side of the cube. I''m just working with two texture maps for now to see if it works. I have split the program into several files and the texture mapping one looks like this: #include // Header File For Standard Input/Output #include GLuint texture[2]; // Storage For Two 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) // Does The File Exist? { fclose(File); // Close The Handle return auxDIBImageLoad(Filename); // Load The Bitmap And Return A Pointer } return NULL; // If Load Failed Return NULL } // End of method AUX_RGBImageRec int LoadGLTextures() // Load Bitmaps And Convert To Textures { const int NumTextures = 2; // The number of textures int Status = FALSE; // Status Indicator For Texture Loaded/Built AUX_RGBImageRec *TextureImage[NumTextures]; // Create Storage Space For The Textures memset(TextureImage,0,sizeof(void *)*1); // Set The Pointer To NULL // Load The Bitmap, Check For Errors, If Bitmap''s Not Found Quit if ((TextureImage[0]=LoadBMP("Data/MSG_BJ.bmp")) && (TextureImage[1]=LoadBMP("Data/MSG_BJ_Brit.bmp"))) { Status = TRUE; // Set The Status To TRUE glGenTextures(NumTextures, &texture[0]); // Create The Texture // Typical Texture Generation Using Data From The Bitmap glBindTexture(GL_TEXTURE_2D, texture[0]); glBindTexture(GL_TEXTURE_2D, texture[1]); // Generate The Texture glTexImage2D(GL_TEXTURE_2D, 0, 3, TextureImage[0]->sizeX, TextureImage[0]->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, TextureImage[0]->data); glTexImage2D(GL_TEXTURE_2D, 0, 3, TextureImage[1]->sizeX, TextureImage[1]->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, TextureImage[0]->data); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR); // Linear Filtering glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR); // Linear Filtering } // Free up any ram containing bitmap data for (int count = 0; count < NumTextures; count++) { if (TextureImage[count]) // If Texture Exists { if (TextureImage[count]->data) // If Texture Image Exists { free(TextureImage[count]->data); // Free The Texture Image Memory } free(TextureImage[count]); // Free The Image Structure } } // End for return Status; // Return The Status } // End of method LoadGLTextures It compiles but when I run it, it says ''Initialisation failed''. It seems to fail on the bit highlighted in bold. I''ve run the debugger and that if statement is false. Also, is AUX_RGBImageRec *TextureImage[NumTextures]; correct when NumTextures = 2 to create storage space for 2 texture maps? And what about glGenTextures(NumTextures, &texture[0]); ?
CyberneticDreams
CyberneticDreams
Good news for you!

This subject has been covered in detail under another thread which can be found in this thread:
http://www.gamedev.net/community/forums/topic.asp?whichpage=2&pagesize=20&topic_id=105540

[edited by - CyberneticDreams on July 30, 2002 7:48:28 PM]
while (!compile) bash(computer);

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.