Archived

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

SonicMouse

auxDIBImageLoad memory failer

Recommended Posts

SonicMouse    122
anyone have a problem with freeing the memory after calling auxDIBImageLoad ? i have a map that has 7 textures and it loads fine. Then i make a map that has 8 textures and bam i get illeagal ops in the GDI32.DLL when i try to free the memory myself. this is the code:
GLuint Model::LoadGLTexture( const char *filename ){
	AUX_RGBImageRec *pImage;
	GLuint texture = 0;
	pImage = LoadBMP(filename);
	if ( pImage != NULL && pImage->data != NULL ){
		glGenTextures(1, &texture);
		glBindTexture(GL_TEXTURE_2D, texture);
		glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
		glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR_MIPMAP_LINEAR);
		gluBuild2DMipmaps(GL_TEXTURE_2D, 3, pImage->sizeX, pImage->sizeY, GL_RGB, GL_UNSIGNED_BYTE, pImage->data);
		free(pImage->data); <-- THIS IS THE LINE
		free(pImage);
	}
	return texture;
}
 
i checked the address of pImage->data and there is legitimate data there. If i remove that line it works great.. but i fear of a tremendeous memory leak if i remove that line for good. could someone tell me if it is necessary to free that data? and if it is, then why does it crash after 7 textures are loaded?

Share this post


Link to post
Share on other sites
Caste    973
Hey guys,
I just posted an update to the texture loading with glaux, as it is really old and actually deprecated.

[url="http://nehe.gamedev.net/tutorial/lesson_06_texturing_update/47002/"][url="http://nehe.gamedev.net/tutorial/lesson_06_texturing_update/47002/"]Lesson 06 Texturing Update[/url][/url]

Using this library should fix your problems.
Hope that helps :)

Share this post


Link to post
Share on other sites