嘗試使用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