2011-12-20 63 views
0

我在将bmp图像作为背景纹理加载到我的项目中时出现问题 程序在显示它时出现问题。而不是它的显示我一个白色背景 这是怎么我加载它:在visual studio 2008中加载bmp图像

void makeTexture(char * path,int i) 
{ 
    teximage[i]=auxDIBImageLoadA(path); 
    glGenTextures(i,&tex[i]); 
    glBindTexture(GL_TEXTURE_2D,tex[i]); 
    glTexImage2D(GL_TEXTURE_2D,0,3,teximage[i]->sizeX,teximage[i]->sizeY, 
     0,GL_RGB, GL_UNSIGNED_BYTE, teximage[i]->data); 
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR); 
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR); 
    glTexEnvf(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_DECAL); 
} 
bool setTexture() 
{ 
     //load the images 
     memset(teximage,0,sizeof(void *)*1); //init the array 

     makeTexture("6.bmp",0); 
     return true; 
} 
+0

是'6.bmp的尺寸'两个幂? – genpfault 2011-12-20 00:30:11

+0

不,它是800 * 336 – 2011-12-20 01:16:36

回答

0

尝试设置您的筛选模式您上传您的像素数据之前:

glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR); 
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR); 
glTexEnvf(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_DECAL); 
glTexImage2D(GL_TEXTURE_2D, 0, 3, teximage[i]->sizeX, teximage[i]->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, teximage[i]->data); 
+0

我试过了。它仍然不起作用。它给了我一个x,y大小的错误 – 2011-12-20 01:12:59

相关问题