关于OpenGL,望高手指教
lb017 2005-07-06 12:06:35 为什么glGenTextures()在win32下可以用,但在MFC用下老是不成功,希望各位高手给予解答!!!
源程序是这样:
bool load(char *strFileName, GLuint &texture)
{
AUX_RGBImageRec *pImage = NULL;
FILE *pFile = NULL;
if(!strFileName)
return false;
// 以只读模式打开文件
if((pFile = fopen(strFileName, "rb")) == NULL)
{
// 如果文件无法打开,则显示错误信息
// MessageBox(g_hWnd, "Unable to load BMP File!", "Error", MB_OK);
return NULL;
}
// 装入位图
pImage = auxDIBImageLoad(strFileName);
// 确保位图数据已经装入
if(pImage == NULL)
return false;
// 生成纹理
glGenTextures(1, &texture);
// DWORD dwFlag= GetLastError();
//unsigned char s=glIsTexture(texture);
// 设置像素格式
glPixelStorei (GL_UNPACK_ALIGNMENT, 1);
// 捆绑纹理
glBindTexture(GL_TEXTURE_2D, texture);
gluBuild2DMipmaps(GL_TEXTURE_2D, 3, pImage->sizeX,
pImage->sizeY, GL_RGB, GL_UNSIGNED_BYTE, pImage->data);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
// 释放位图数据占据的内存资源
if (pImage)
{
if (pImage->data)
{
free(pImage->data);
}
free(pImage);
}
// 返回true
return true;
}