我有一個WebGL的問題。隨機「位置不適用於當前程序」錯誤
有時,當我向應用程序中添加新着色器時,每次在每一幀中我都會在我的2D繪圖函數中設置圖像繪製着色器的統一圖標時,出現uniform4f: location not for current program
錯誤(顯示在Chrome控制檯中)。
雖然我之前幾次得到同樣的錯誤,但通過做一些隨機的未知操作來解決它們並不是很困難。然而,當我添加一個屏幕變形着色器時,我盡我所能,甚至glFinish
(我認爲錯誤是因爲失步而發生的),但沒有任何幫助。
當我嘗試在控制檯繪圖函數中設置2D 2D圖像shader的vec4制服時發生錯誤。如果我交換控制檯繪圖功能和菜單繪圖功能,菜單不繪製。
這是我的節目製作和交換功能的源代碼:http://pastebin.com/zDEWWgKV
錯誤停止,如果我做從以下列表中任何東西:
- 關閉菜單。
- 加載地圖並做一些3D渲染(導致程序切換至少4次)。
- 啓用畫面變形(導致程序切換1次)。
有人能告訴我,什麼可能會導致錯誤,我該如何解決?
我認爲這意味着你正在設置一個不是當前程序的程序(即最後一個傳遞給useProgram()')的程序。你可以添加一些檢查來確保。 – Thomas