尝试使用glUseProgramObjectARB
时出现“无效操作”错误,我不知道为什么。glUseProgramObjectARB操作错误无效
着色器程序加载正确,我很确定。这显示在glGetInfoLogARB
上:
- 顶点着色器已成功编译为在硬件上运行。
- 片段着色器已成功编译为在此硬件上运行。
此命令之前没有以前的openGL错误。所以这个特定的命令肯定会出现问题。
我在SDL中使用了glew。我之前使用过GLee,并且遇到同样的问题。
读documentation我认为它是这个错误:
GL_INVALID_OPERATION is generated if program could not be made part of current state.
,但我不知道到底是什么可能会导致这样的事情。由于所有以前的着色器命令都正常工作,因此该命令在工作的openGL上下文中发出。它不在“开始”和“结束”之间。
真的,我很难理解它的含义。也许有一些更具体的情况下,命令不能发布。如果有人知道更多,那就太好了。
编辑:
解决:这是弱智啊耶稣,我错过了我的功能之一返回调用其他地方,因此没有传回我已经构建的程序。
我看到您的信息日志没问题,但实际编译/链接的对象/程序是否正确? (glGetObjectiv(GL_COMPILE_STATUS),glGetProgramiv(GL_LINK_STATUS))。我知道该程序的一些场景尽管生成了相同的“良好”信息日志,但未能链接。 – kvark 2011-04-25 21:23:27