嘿,我还有一个问题。这里涉及的信息不多,但我注意到,尽管我链接了liblug32.a,并且包含了lu.h,但我仍然不能使用GLU_参数
我想知道为什么不是这样。有没有人有什么想法?
如果有任何代码需要,请发表意见,我会迅速回应。
而且,我的集成开发环境是使用MinGW作为32位Windows32位的编译器的CodeBlocks。
发布于 2011-03-26 19:59:52
与其说这是一个答案,不如说是对你的代码的一个评论。我明白了,您正在使用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的代码
发布于 2011-03-26 03:33:42
glu不是OpenGL的一部分。它是OpenGL的一个辅助库,但是如果传递给纯OpenGL函数,那么来自GLU的标记就没有意义了。或者用外行的话说:如果你想使用一个以GLU_...开头的令牌,你必须把它传递给以glu...为前缀的函数。
发布于 2011-03-26 03:53:23
看起来你把GLU和GLUT搞混了。没有GLU_RGBA,但在创建显示窗口时传递了一个GLUT_RGBA。
https://stackoverflow.com/questions/5436487
复制相似问题