GLuint没有得到承认

时间:2013-04-17 11:18:38

标签: c++ visual-studio opengl textures glut

我正在OpenGL中创建一个3D应用程序,为了在我正在阅读的模型上显示纹理,我正在使用GLuint。但是,我得到了视觉工作室错误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;,这是唯一引发错误的位。

3 个答案:

答案 0 :(得分:4)

您是否在要声明变量的标题中包含OpenGL标题? GLuint中定义了gl.h,因此您必须包含该内容。

在所有操作系统上除了 MacOS X

#include <GL/gl.h>
在MacOS X上

#include <OpenGL/gl.h>

答案 1 :(得分:2)

I think you should be using glew and include:

#include <GL/glew.h>

rather than:

#include <GL/gl.h>

答案 2 :(得分:-1)

对于iOS,您需要将OpenGLES.framework链接到目标并在代码中导入标头:

#import <OpenGLES/gltypes.h>