GLU_
参数
我想知道事情并非如此。谁会有任何想法?
如果需要任何代码,请发表评论,我会尽快回复。
另外,我的IDE是CodeBlocks,MinGW作为windows 32位的编译器。
答案 0 :(得分:1)
glu不是OpenGL的一部分。它是OpenGL的辅助库,但如果传递给纯OpenGL函数,GLU的标记就毫无意义。或者以外行的术语:如果您想使用以GLU_...
开头的代码,则必须将其传递给前缀为glu...
的函数。
答案 1 :(得分:1)
看来你的GLU与GLUT混淆了。 没有 GLU_RGBA,但 是创建显示窗口时传递的GLUT_RGBA。
答案 2 :(得分:0)
这不是一个答案,而是对您的代码的评论。我明白了,你正在使用SFML作为框架。 SFML内部使用OpenGL,sf::Image
由OpenGL纹理支持。换句话说:不需要自己创建sf::Image
的OpenGL纹理。实际上,SFML注意一切都正确设置为使用图像作为OpenGL纹理。
在你的代码中你有这个:
GLuint LoadTexture(sf::Image image)
{
GLuint Texture;
glGenTextures(1, &Texture);
glBindTexture(GL_TEXTURE_2D, Texture);
gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGBA,image.GetWidth(),image.GetHeight(), GL_RGBA,GL_UNSIGNED_BYTE,image.GetPixelsPtr());
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
return Texture;
}
根本不需要此功能。您要做的只是image->Bind()
而不是LoadTexture(image)
,因为已经存在纹理。只需查看sf::Image
http://www.sfml-dev.org/documentation/1.6/Image_8cpp-source.htm