尝试使用glUseProgramObjectARB
时出现“无效操作”错误,我不明白为什么。
着色器程序正确加载,我很确定。这显示在glGetInfoLogARB
:
此命令之前没有先前的openGL错误。因此,使用这个特定命令肯定会出现问题。
我正在使用SDL的glew。我之前使用过GLee,并遇到了同样的问题。
阅读documentation我认为这是错误:
如果程序无法成为当前状态的一部分,则会生成GL_INVALID_OPERATION。
但我不确定究竟是什么原因导致了这样的事情。该命令在工作的openGL上下文中发出,因为所有以前的着色器命令都可以正常工作。它不在“开始”和“结束”块之间。
我真的很难过这是什么意思。当命令无法发出时,可能会有一些更具体的情况。如果有人知道任何更好的事情。
编辑:
解决了:哦,耶稣被推迟了,我在其他地方的一个函数调用中错过了返回,所以没有传回我构建的程序。
答案 0 :(得分:3)
在没有看到您的代码的情况下很难知道,但是由于您明确提到glCompileShaderARB
(第二次)但不是glLinkProgramARB
的结果,我猜您忘了glLinkProgramARB
(之后)顺便说一下,你可以安全地glDeleteObjectARB
两个着色器对象。)