在MFC框架下的OPENGL绘图程序,按照NEHE和其他一些教程做的。在使用贴图时,成功加载了贴图文件,但之后出现了奇怪的问题。相关代码如下:GLuint texture[1];...AUX_RGBImageRec * TextureImage[1];
memset(TextureImage,0,sizeof(void *)*1);if(TextureImage[0] = auxDIBImageLoad(CA2W("Zapotec.bmp")))
{
    Status = TRUE;
    glGenTextures(1,&texture[0]);
    glBindTexture(GL_TEXTURE_2D,texture[0]);
    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);  
}纹理图片的读取没有问题,status也已变成true,但在glGenTextures和glBindTexture后,texture[0]依然为0,导致后面正式绘图的时候,完全显示不出贴图。我也看不出代码的问题,请教。

解决方案 »

  1.   

    texture[0]的值很有可能是零啊。glGenTextures(1,&texture[0]);不就是生成一个纹理ID吗?
    void glGenTextures(
      GLsizei n,
      GLuint *textures
    );
    n :The number of texture names to be generated. textures :A pointer to the first element of an array in which the generated texture names are stored. 
    我觉得应该不是texture[0]依然为0的问题,可能是其他地方有问题。