我有一个WebGL的问题。随机“位置不适用于当前程序”错误
有时,当我向应用程序中添加新着色器时,每次在每一帧中我都会在我的2D绘图函数中设置图像绘制着色器的统一图标时,出现uniform4f: location not for current program
错误(显示在Chrome控制台中)。
虽然我之前几次得到同样的错误,但通过做一些随机的未知操作来解决它们并不是很困难。然而,当我添加一个屏幕变形着色器时,我尽我所能,甚至glFinish
(我认为错误是因为失步而发生的),但没有任何帮助。
当我尝试在控制台绘图函数中设置2D 2D图像shader的vec4制服时发生错误。如果我交换控制台绘图功能和菜单绘图功能,菜单不绘制。
这是我的节目制作和交换功能的源代码:http://pastebin.com/zDEWWgKV
错误停止,如果我做从以下列表中任何东西:
- 关闭菜单。
- 加载地图并做一些3D渲染(导致程序切换至少4次)。
- 启用画面变形(导致程序切换1次)。
有人能告诉我,什么可能会导致错误,我该如何解决?
我认为这意味着你正在设置一个不是当前程序的程序(即最后一个传递给useProgram()')的程序。你可以添加一些检查来确保。 – Thomas