OpenGL中创建贴图的问题
我做了一个类用来存放和管理贴图,但现在无论读入多少新的贴图,不知为什么显示的时候只能显最后读入的那张?下面是类里的函数
#include "Texture.h"
CTexture::CTexture(){
}
CTexture::~CTexture(){
}
AUX_RGBImageRec *CTexture::LoadBMP( char *pFilename ){
FILE *pFile=NULL;
if ( !pFilename ) {
return NULL;
}
pFile = fopen( pFilename, "r" );
if ( pFile ) {
fclose( pFile );
return auxDIBImageLoad( pFilename );
}
return NULL;
}
boolean CTexture::Loader( char *cPicPath, GLuint nTexNum ){
if( nTexNum > MAX_TEXTURE ) {
return false;
}
boolean Status = false;
AUX_RGBImageRec *TextureImage[1];
memset(TextureImage,0,sizeof(void *)*1);
if ( TextureImage[0] = LoadBMP( cPicPath ) ) {
Status = true;
glGenTextures(1, &nTextures[nTexNum] );
glBindTexture(GL_TEXTURE_2D, nTextures[nTexNum] );
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);
glTexImage2D(GL_TEXTURE_2D, 0, 3, TextureImage[0]->sizeX, TextureImage[0]->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, TextureImage[0]->data);
}
if (TextureImage[0]) {
if (TextureImage[0]->data) {
free(TextureImage[0]->data);
}
free(TextureImage[0]);
}
return Status;
}
void CTexture::SetTexture( GLuint nTexNum )
{
if( nTexNum > MAX_TEXTURE ) {
return;
}
glBindTexture( GL_TEXTURE_2D, nTextures[nTexNum] );
}