繁体   English   中英

glVertexAttribPointer 给出 GL_INVALID_OPERATION(1282 错误代码)

[英]glVertexAttribPointer giving GL_INVALID_OPERATION (1282 error code)

在我的 openGL 代码中 glVertexAttribPointer 给出 1282 错误,我绑定了我的 vbo。

清除以前的错误

{
   while(glGetError()!=GL_NO_ERROR);
}

检查错误

{
   while(GLenum error=glGetError())
  {
     std::cout<<error;
   }

}

我的主Function


if(glewInit() !=GLEW_OK)
{
  std::cout<<"ERROR::MAIN.CPP::GLEW_INIT_FAILED"<<"\n";
  glfwTerminate();
}

> Vertex

glewInit();
float positions[6]={
    -0.5f,-0.5f,
    0.0f,0.5f,
     0.5f,-0.5f
  };
  GLuint buffer;
glGenBuffers(1,&buffer);
glBindBuffer(GL_ARRAY_BUFFER,buffer);//Binding BUffer
glBufferData(GL_ARRAY_BUFFER,sizeof(positions),positions,GL_STATIC_DRAW);
glEnableVertexAttribArray(0);

这是错误

GLError();
glVertexAttribPointer(0,2,GL_FLOAT,GL_FALSE,0,0);
GLcheck();

我正在使用 Ubuntu 和我的 OpenGL 的核心版本是 4.6这里版本说明

在 OpenGL 3文档中,我发现以下内容:

如果零绑定到 GL_ARRAY_BUFFER 缓冲区 object 绑定点并且指针参数不是 NULL,则生成 GL_INVALID_OPERATION。 (注意:在核心上下文中,不再允许将 glVertexAttribPointer 和 glDrawArrays 指针传递给主 memory 中的网格数据的旧方法。您必须创建一个顶点缓冲区 Object 并用您的网格数据填充它。)

如果没有顶点数组 Object 绑定,则在核心上下文中生成 GL_INVALID_OPERATION。

不确定您使用的 OpenGL 的版本是什么。 也许值得检查这是否也是您的情况。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM