GLuint 不被识别

Yan*_*ann 7 c++ opengl glut textures visual-studio

我正在 OpenGL 中创建一个 3D 应用程序,为了在我正在阅读的模型上显示纹理,我正在使用 GLuint。但是,我收到了 Visual Studio 错误 C4430 缺少类型,以及一些与该问题相关的其他错误。

包含 glut 文件并且在放入之前运行良好。是 GLuint 过时了,还是其他什么?

编辑:已更改的代码是:

对象构造器之前

Object::Object(string shapeFileName, string texFileName){
    readFile(shapeFileName);
    loadTexture(texFileName);
}
Run Code Online (Sandbox Code Playgroud)

之后的对象构造函数

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);
}
Run Code Online (Sandbox Code Playgroud)

连同GLuint texture;在头文件中添加的行一起,这是抛出错误的唯一位。

dat*_*olf 6

您是否在声明变量的标头中包含了 OpenGL 标头?GLuint定义在gl.h所以你必须包括它。

MacOS X之外的所有操作系统上

#include <GL/gl.h>
Run Code Online (Sandbox Code Playgroud)

在 MacOS X 上它是

#include <OpenGL/gl.h>
Run Code Online (Sandbox Code Playgroud)