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打破它,有人可以为我解释一下吗?
突破原因OpenGL错误突破glVertexAttribPointer(0,3 ,GL_FLOAT,FALSE,0,0x00000000)错误代码
GL_INVALID_OPERATION错误描述指定的操作是 在当前状态下不允许。违规功能被忽略, 除了设置错误标志之外没有任何副作用。 *在执行功能前停止
这是休息信息。
答案 0 :(得分:6)
GL_INVALID_OPERATION
生成的glVertexAttribPointer()
错误:
GL_INVALID_OPERATION
且类型不是,则会生成 GL_BGRA
GL_UNSIGNED_BYTE
,GL_INT_2_10_10_10_REV
或GL_UNSIGNED_INT_2_10_10_10_REV
。
GL_INVALID_OPERATION
,则会生成 GL_INT_2_10_10_10_REV
或GL_UNSIGNED_INT_2_10_10_10_REV
且尺寸不是4或GL_BGRA
。
GL_INVALID_OPERATION
GL_UNSIGNED_INT_10F_11F_11F_REV
且尺寸不是3。
GL_INVALID_OPERATION
由glVertexAttribPointer
生成(如果大小)
是GL_BGRA
,noramlized是GL_FALSE
。
GL_INVALID_OPERATION
GL_ARRAY_BUFFER
缓冲区对象绑定点和指针参数
不是NULL
。
http://www.opengl.org/sdk/docs/man/xhtml/glVertexAttribPointer.xml