操作无效
glVertexPointer invalid operation
我有相当奇怪的问题与OpenGL。当我尝试使用glVertexPointer
时,没有缓冲区绑定到GL_ARRAY_BUFFER
并使用顶点数组对象(VAO),它会产生无效的操作错误。这个错误在glVertexPointer
的文档中找不到。
当我生成缓冲区并将其绑定到GL_ARRAY_BUFFER
时,错误消失,但是当我将数据存储在RAM上时,我绑定0并使用指向RAM的指针。另外,通过不绑定VAOs,我不再得到错误,但我注意到,当我不使用它时,我在程序中的其他东西会被损坏。
也许我错过了某个地方设置指针,而VAO是绑定和缓冲区不是,将是无效无效的操作?从理论上讲,我可以将这些数据移动到vbo,而不用麻烦,但我想知道为什么会发生这种情况。
ARB_vertex_array_object的扩展注册表明确指出,它们不能与客户端数组一起使用。对于支持vao的核心OpenGL版本来说,这应该没有什么不同,因为vao是服务器状态的。因此,得到无效操作错误是完全可以预期的行为。只需将所有内容存储在vbo中(如果数据经常更改,可能使用GL_DYNAMIC_DRAW
或GL_STREAM_DRAW
作为使用)。
相关文章:
- 为什么在popback()操作之后,它仍然打印完整的矢量
- Openssl 1.1.1d无效使用不完整的类型"struct dsa_st"
- 无法访问嵌套类.类的使用无效
- 如何修复无效的API密钥,IP或操作权限错误?
- glteximage3d抛出错误1282(无效操作)
- 调用 vector.erase() 函数时指针操作无效错误
- 如何在OpenGL中使用纹理?(无效操作错误:1282)
- 无效操作数以二进制读取结构的阵列
- 无故对 glend 的操作无效
- 非逻辑代码流 /无效的向量操作
- Python扩展在操作大列表时会创建无效指针
- glBlitFramebuffer 无效操作
- 省略复制操作后对象无效
- 在 && 语句的后半部分进行无效操作是否安全?
- 无法找出错误原因 跨线程操作从回调到 C# C++无效
- 展开操作期间遇到无效或未对齐的堆栈
- 使用核心配置文件交换缓冲区使用了无效操作
- 如何在不陷入无效输入的情况下重复此操作
- 哪些操作为无效迭代器定义
- 操作无效