我正在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;
,这是唯一引发错误的位。
答案 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>