Skip to main content
gamedev.net
🔒 Locked

texture loader problem

Started by neonoblivion 0 replies 300+ views
Original Post
neonoblivion
neonoblivion
I''m trying to get 2 bmps to conbine into one 32 bit texture, heres the function that I made. it crashes my comp. it takes a filename of the bmp for the first 3 bits, and another bmp filename for the alpha channel, and a GLuint for the texture to be bound to.
  
int loadtexalpha(char *str1,char *str2,GLuint *tex){
	
	AUX_RGBImageRec *tex2=NULL;
	if(!(tex2=LoadBMP(str1)))
		return(0);
	
	AUX_RGBImageRec *tex3=NULL;
	if(!(tex3=LoadBMP(str2)))
		return(0);
	
	if(tex2->sizeX!=tex3->sizeX || tex2->sizeY!=tex3->sizeY){
		if(tex2){
			if(tex2->data){
				free(tex2->data);
			}
			free(tex2);
		}
		if(tex3){
			if(tex3->data){
				free(tex3->data);
			}
			free(tex3);
		}
		return(0);
	}


	AUX_RGBImageRec tex4;
	tex4.sizeX=tex2->sizeX;
	tex4.sizeY=tex2->sizeY;
	tex4.data=(unsigned char *)malloc(sizeof(tex2->data)+(sizeof(tex3->data)/3));
	int num=(tex2->sizeY*tex2->sizeX)*3;
	int y=0;
	int x=0;
	while(y<num){
		tex4.data[x]=tex2->data[y];
		tex4.data[x+1]=tex2->data[y+1];
		tex4.data[x+2]=tex2->data[y+2];
		tex4.data[x+3]=(tex3->data[y]+tex3->data[y+1]+tex3->data[y+2])/3;
		y+=3;
		x+=4;
	}
	glGenTextures(1,tex);
	glBindTexture(GL_TEXTURE_2D, *(tex));
	glTexImage2D(GL_TEXTURE_2D, 0, 3, tex4.sizeX, 
		tex4.sizeY, 0, GL_RGBA, GL_UNSIGNED_BYTE, 
		tex4.data);
	
	glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT);
	glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT);

	glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST_MIPMAP_NEAREST);
	glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);

	gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGB,tex4.sizeX,tex4.sizeY,GL_RGB,GL_UNSIGNED_BYTE,tex4.data);
	
	if(tex2){
		if(tex2->data){
			free(tex2->data);
		}
		free(tex2);
	}
	if(tex3){
		if(tex3->data){
			free(tex3->data);
		}
		free(tex3);
	}
	if(tex4.data){
		free(tex4.data);
	}
	return(1);
}
  
when tex3 is loaded it doesen''t work right I don''t know how to debug well but it seems to be loading the wrong data If somone can tell me whats wrong that would be great. Klaus

Topic Locked

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

Sign in to reply to this topic.