我正在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>

08-24 18:25