OpenTK GL.VertexAttribPointer()调用产生INVALID_OPERATION错误

时间:2012-08-18 23:13:44

标签: opengl opentk

我在我的第一个顶点属性上调用GL.VertexAttribPointer,并且该调用产生了INVALID_OPERATION错误。我不知道这意味着什么,因为OpenGL API没有将其列为VertexAttribPointer调用可能产生的错误之一:(http://www.opengl.org/sdk/docs/man/xhtml/glVertexAttribPointer.xml)。

这是紧接着设置错误的代码:

GL.BindVertexArray(mi_VAOHandle);

OpenGLUtilityLib.CheckError("binding vertex array");

System.Diagnostics.Debug.WriteLine("Binding attribute...");
GL.EnableVertexAttribArray(0);
OpenGLUtilityLib.CheckError("Enabling VAA 0");
GL.BindBuffer(BufferTarget.ArrayBuffer, mi_PositionBufferHandle);
OpenGLUtilityLib.CheckError("Binding position buffer to array buffer target");
GL.VertexAttribPointer(0, 3, VertexAttribPointerType.Float, false, Vector3.SizeInBytes, 0);
OpenGLUtilityLib.CheckError("Set vertex attribute pointer");

最后一次错误检查会返回错误。

对于上下文,当我收到此错误时,我一直在将一些初学者OpenTK GL代码重构为面向对象的结构,并且我的程序副本仍然有效,而且我正在以相同的顺序执行所有操作,所以我想知道如果某些东西可能因为处于不同的区域而被打破。

1 个答案:

答案 0 :(得分:0)

我没有调用GL.GenVertexArrays来创建我正在加载的VAO。绑定VAO时,但是当您第一次尝试在其中设置状态时,显然不会创建错误。