我在我的第一个顶点属性上调用 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 代码重构为面向对象的结构,并且我的程序副本仍然有效,并且我正在按照相同的顺序执行所有操作,所以我想知道是否有什么可能已经被不同的街区打破了。