gpt4 book ai didi

c++ - OpenGL 中奇怪的 GL_INVALID_OPERATION 错误

转载 作者:太空狗 更新时间:2023-10-29 20:26:51 27 4
gpt4 key购买 nike

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

这是我的初始化函数的一部分,我真的不知道为什么 gDEBugger 会中断它,有人可以为我解释一下吗?

Break Reason OpenGL Error Breaked-on glVertexAttribPointer(0 , 3 , GL_FLOAT , FALSE , 0 , 0x00000000) Error-Code
GL_INVALID_OPERATION Error-Description The specified operation is not allowed in the current state. The offending function is ignored, having no side effect other than to set the error flag. * Stopped before function execution

这是中断信息。

最佳答案

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

  1. GL_INVALID_OPERATION 如果大小为 GL_BGRA 且类型不是GL_UNSIGNED_BYTEGL_INT_2_10_10_10_REVGL_UNSIGNED_INT_2_10_10_10_REV

  2. 如果类型为 GL_INT_2_10_10_10_REV,则生成
  3. GL_INVALID_OPERATIONGL_UNSIGNED_INT_2_10_10_10_REV 并且大小不是 4 或 GL_BGRA

  4. GL_INVALID_OPERATION 如果类型是GL_UNSIGNED_INT_10F_11F_11F_REV 并且大小不是 3。

  5. GL_INVALID_OPERATIONglVertexAttribPointer 生成,如果大小是 GL_BGRA 并且 normalized 是 GL_FALSE

  6. 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com