0
glVertexAttribPointer
在运行于Cocoa for OS X 10.8.3的OpenGL 3.2程序中正在提升GL_INVALID_OPERATION
。glVertexAttribPointer在OS X上的OpenGL 3.2上提升GL_INVALID_OPERATION
我已经使用APPLE
功能设置了vao,并使用glGetAttribLocation
拉下了属性位置。
尽管绑定了vao,vbo,并启用了该属性,但它导致无效操作。
我可以成功修改清除颜色,并且不关心GL上下文的完整性。
对于标头,我有这些定义:
GLuint _vao;
GLuint _vbo;
还可以这里假设positionAttribute
是一个vec3
参考不透明物体。
在实现中,我运行以下命令:
glGenVertexArraysAPPLE(1, &_vao);
glBindVertexArrayAPPLE(_vao);
static GLfloat vertices[] = {
0.f, 0.f, 0.f,
1.f, 0.f, 0.f,
0.f, 1.f, 0.f,
1.f, 1.f, 0.f
};
glGenBuffers(1, &_vbo);
glBindBuffer(GL_ARRAY_BUFFER, _vbo);
glBufferData(GL_ARRAY_BUFFER, 4 * 3 * sizeof(GLfloat), vertices, GL_STATIC_DRAW);
glEnableVertexAttribArray(positionAttribute.location);
glVertexAttribPointer(positionAttribute.location, 3, GL_FLOAT, GL_FALSE, 0, NULL);
// Error here
有其他人遇到这样或可能知道是什么引起的?
VAOs 3.0以来一直核心,你为什么要使用扩展入口点? – genpfault
你可以测试'glGetAttribLocation'返回的值吗?具体来说,它不是'(-1)'? –
@genpfault老实说,我已经开始使用OSXGLEssentials,它使用了APPLE的扩展。删除扩展名(并找到正确的头文件)后,错误消失。 – adamRenny