c++ - GLuint 未被识别

标签 c++ visual-studio opengl textures glut

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

包含过剩文件并且在放入之前工作正常。是 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 ? GLuintgl.h 中定义,因此您必须包含它。

在所有操作系统上, MacOS X 除外

#include <GL/gl.h>

在 MacOS X 上是

#include <OpenGL/gl.h>

关于c++ - GLuint 未被识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16058635/

相关文章:

c++ - 使用 C++ 从 bios 获取 Assets 标签和序列号

c# - Visual Studio 2015 独立缩放级别

android - 从MySql数据库获取cUrl

c++ - 天空盒纹理未在 opengl 中显示

c++ - 是否有任何理由在预分配内存中的 POD 结构上调用 new?

c++ - 如何在 Qt 信号和槽中使用枚举

math - glsl中光的半向量是什么?

c++ - "Warning: corrupt .drectve at end of def file"是什么意思?

c++ - 添加到布局时 QGLWidget 崩溃

c++ - 使用 Visual Studio 在 C++ 应用程序中查找内存泄漏