我正在OpenGL中创建3D应用程序,为了在正在读取的模型上显示纹理,我使用了GLuint。但是,我得到的Visual Studio错误C4430缺少类型,还有一些与此问题有关的错误。
包含glut文件,并且在插入之前可以正常工作。是GLuint过时了还是其他原因?
编辑:
更改的代码是:
之前的对象构造函数
Object::Object(string shapeFileName, string texFileName){
readFile(shapeFileName);
loadTexture(texFileName);
}
之后的对象构造函数
Object::Object(string shapeFileName, string texFileName){
readFile(shapeFileName);
glGenTextures(1, &texture);
glBindTexture(GL_TEXTURE_2D, texture);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
loadTexture(texFileName);
gluBuild2DMipmaps(GL_TEXTURE_2D, 3, 1024, 512, GL_RGB, GL_UNSIGNED_BYTE, image_array);
free(image_array);
glTexImage2D(GL_TEXTURE_2D, 0, 3, 1024, 512, 0, GL_RGB, GL_UNSIGNED_BYTE, image_array);
}
头文件中添加了
GLuint texture;
行,这是唯一引发错误的位。 最佳答案
您在要在其中声明变量的 header 中是否包含OpenGL header ? GLuint
是在gl.h
中定义的,因此您必须包括它。
在除MacOS X之外的所有操作系统上,
#include <GL/gl.h>
在MacOS X上是
#include <OpenGL/gl.h>