• Advertisement

Archived

This topic is now archived and is closed to further replies.

weird prob

This topic is 5413 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

this is just the nehe code for loading bitmaps, but there is a loop, and the loop works fine with only 3 textures loading but when i put in a 4th one all the textures went all weird in the game. whats wrong with it? thanks
  
int LoadGLTextures()									
{
        int Status=FALSE;								
        AUX_RGBImageRec *TextureImage[9];				
        memset(TextureImage,0,sizeof(void *)*2);		

       if ((TextureImage[0]=LoadBMP("data/Font.bmp")) && (TextureImage[1]=LoadBMP("data/circ.bmp")) && (TextureImage[2]=LoadBMP("data/particle.bmp")) && (TextureImage[3]=LoadBMP("data/cross.bmp")))	
        {
			Status=TRUE;								

			glGenTextures(2, &texture[0]);					

			for (int loop1=0; loop1<4; loop1++)				
			{
				glBindTexture(GL_TEXTURE_2D, texture[loop1]);
				glTexImage2D(GL_TEXTURE_2D, 0, 3, TextureImage[loop1]->sizeX, TextureImage[loop1]->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, TextureImage[loop1]->data);
				glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
				glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
			}

			for (loop1=0; loop1<4; loop1++)				
			{
				if (TextureImage[loop1])			
				{
					if (TextureImage[loop1]->data)		
					{
						free(TextureImage[loop1]->data);	
					}
					free(TextureImage[loop1]);		
				}
			}
		}
	return Status;									
}
   
[edited by - colinisinhere on May 1, 2003 1:10:14 PM]

Share this post


Link to post
Share on other sites
Advertisement
very usless code

make a texture class with a loadin function

just load the bmp, then

glGenTextures(&texnum, 1);
glBindTexture(GL_TEXTURE_2D, texnum);;
gluBuild2dMipmaps of glTexImage2d whatever

and bind the tex with glBindTexture(GL_TEXTURE_2D, tex.texnum)

Share this post


Link to post
Share on other sites
i kinda understand what you mean, is this what you mean?


  
class texture
{
public:
int textnum;
void loadBitmap(char *filename, int textnum1);

};

AUX_RGBImageRec *LoadBMP(char *Filename)
{
FILE *File=NULL;
if (!Filename)
{
return NULL;
}
File=fopen(Filename,"r");
if (File)
{
fclose(File);
return auxDIBImageLoad(Filename);
}
return NULL;
}

void texture::loadBitmap(char *filename, int textnum1)
{
AUX_RGBImageRec *TextureImage[1]; // Create Storage Space For The Texture


memset(TextureImage,0,sizeof(void *)*1); // Set The Pointer To NULL


textnum = textnum1;

// Load The Bitmap, Check For Errors, If Bitmap''s Not Found Quit

if (TextureImage[0]=LoadBMP(filename))
{
glGenTextures(1, &texture[textnum]); // Create The Texture


// Typical Texture Generation Using Data From The Bitmap

glBindTexture(GL_TEXTURE_2D, texture[textnum]);
glTexImage2D(GL_TEXTURE_2D, 0, 3, TextureImage[0]->sizeX, TextureImage[0]->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, TextureImage[0]->data);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
}

if (TextureImage[0]) // If Texture Exists

{
if (TextureImage[0]->data) // If Texture Image Exists

{
free(TextureImage[0]->data); // Free The Texture Image Memory

}

free(TextureImage[0]); // Free The Image Structure

}
}



for some reason it says illigal use of expresstion for glGenTextures(1, &texture[textnum]); and glBindTexture(GL_TEXTURE_2D, texture[textnum]);

please please help

Share this post


Link to post
Share on other sites

  • Advertisement