我正在使用 lodePNG 从 png 文件中加载纹理,但是当我加载纹理时程序崩溃了。
char* filename = "texture.png";
unsigned width, height;
std::vector<unsigned char>image;
GLuint texture[1];
//decode
unsigned error = lodepng::decode(image, width, height, filename);
if(error) std::cerr << "decoder error " << error << ": " << lodepng_error_text(error) << std::endl;
glBindTexture(GL_TEXTURE_2D, texture[0]);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0,
GL_RGBA, GL_UNSIGNED_BYTE, &image[0]);
我用VS 2010编译,没有错误,但是调用glTexImage2D的时候就崩溃了。我的系统是 Windows 7,显卡支持 OGL 3.3。
我有另一个系统,它是 Mac OSX 10.6,我一直在移植代码,在 Mac 上完全没有问题。有没有我可以提出的修复建议,以便在 Windows 上正确加载纹理?
这是我获得 lodePNG 文件的网站:http: //lodev.org/lodepng/