glClearColor( 1.0f, 1.0f, 1.0f, 1.0f );

AttachVertexShader( shader, "szescian_vs.glsl" );
AttachFragmentShader( shader, "szescian_fs.glsl" );
LinkProgram( shader );

glBindVertexArray( vertexVAO );

glGenBuffers( 1, &positionBuffer );

glGenBuffers( 1, &positionBuffer );
glBindBuffer( GL_ARRAY_BUFFER, positionBuffer );
glBufferData( GL_ARRAY_BUFFER, sizeof( position ), position, GL_STATIC_DRAW );
positionLoc = glGetAttribLocation( shader, "inPosition" );
glEnableVertexAttribArray ( positionLoc );
glVertexAttribPointer ( positionLoc, 3, GL_FLOAT, GL_FALSE, 0, ( void* ) 0 ); //here gDEBugger GL breaks on OpenGL Error

这是我的 init 函数的一部分,我真的不知道为什么 gDEBugger 会破坏它,有人可以为我解释一下吗?



这是中断信息。

最佳答案

GL_INVALID_OPERATION 可能产生的 glVertexAttribPointer() 错误:

如果大小为 GL_INVALID_OPERATION 而类型不是,则生成

  • GL_BGRAGL_UNSIGNED_BYTEGL_INT_2_10_10_10_REVGL_UNSIGNED_INT_2_10_10_10_REV
  • 如果类型为 GL_INVALID_OPERATION,则生成
  • GL_INT_2_10_10_10_REVGL_UNSIGNED_INT_2_10_10_10_REV 且大小不是 4 或 GL_BGRA
  • GL_INVALID_OPERATION 如果 type 是GL_UNSIGNED_INT_10F_11F_11F_REV 和 size 不是 3.
  • GL_INVALID_OPERATIONglVertexAttribPointer 生成,如果大小
    GL_BGRA ,归一化是 GL_FALSE
  • GL_INVALID_OPERATION 如果零绑定(bind)到GL_ARRAY_BUFFER 缓冲区对象绑定(bind)点和指针参数
    不是 NULL

  • http://www.opengl.org/sdk/docs/man/xhtml/glVertexAttribPointer.xml

    关于c++ - OpenGL 中奇怪的 GL_INVALID_OPERATION 错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18234069/

    10-11 21:57
    查看更多