在OS X上的OpenGL 3.2上,GLVERTEXATTRIBCPOINTER提升GL_无效_操作
在OS X上的OpenGL 3.2上,GLVERTEXATTRIBCPOINTER提升GL_无效_操作,opengl,opengl-3,Opengl,Opengl 3,glvertexattributepointer正在运行Cocoa for OS X 10.8.3的OpenGL 3.2程序上引发GL\u无效\u操作 我使用APPLE函数设置了vao,并使用glGetAttriblLocation下拉属性位置 尽管绑定了vao、vbo并启用了该属性,但它仍会导致无效操作 我可以成功地修改清晰的颜色,并且不关心GL上下文的完整性 对于标题,我定义了以下内容: GLuint _vao; GLuint _vbo; 这里还可以假设positionAttribute是
glvertexattributepointer
正在运行Cocoa for OS X 10.8.3的OpenGL 3.2程序上引发GL\u无效\u操作
我使用APPLE
函数设置了vao,并使用glGetAttriblLocation
下拉属性位置
尽管绑定了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
有没有其他人经历过这种情况,或者可能知道是什么导致了这种情况?回答,感谢您指出显而易见的原因
我在引用的条件定义中遗漏了一个#else
块,该块将使用3之前OpenGL中的APPLE
扩展
解决方案是删除APPLE
扩展并使用原生OpenGL
glgenvertexarray
glbindvertexarray
glGetAttriblLocation
返回的值?具体来说,它不是(-1)
?@genpfault老实说,我已经开始使用OSXGLEssentials,它使用了苹果的扩展。删除扩展名(并找到正确的头文件)后,错误消失了。@BrettHale我找到了,它确实返回了一个有效值。