反正有没有检测到#34;老鼠,WebGL遇到了障碍?"

时间:2016-09-16 22:48:47

标签: javascript google-chrome webgl

我们知道"老鼠"某些人在我们的WebGL应用程序中发生错误。我们不知道为什么。我们确实要求他们报告他们的硬件配置。似乎没有相应的错误记录到我们的javascript日志记录系统。因此,我们的假设是WebGL错误主要是从控制台中被抑制的。结果,我们无法检测到#34;大鼠"类型错误。

我们有针对非webgl驱动的浏览器的后备策略,但是要在" Rats"中激活它。情况我们需要知道一个"老鼠"发生了。我们怎么能这样做?

1 个答案:

答案 0 :(得分:6)

您应该可以通过检查webglcontextlost事件

来检测它
canvas.addEventListener("webglcontextlost", reportRats);

如果您想尝试处理自动恢复,也可以

canvas.addEventListener("webglcontextlost", function(e) {
   // prevent the default (the default is don't recover)
   e.preventDefault(); 
}); 

要处理恢复,如果浏览器决定恢复WebGL上下文,则需要检查webglcontextrestored事件

canvas.addEventListener("webglcontextrestored", function(e) {
   // recreate all WebGL resources
}); 

至于报告,至少在Chrome中,您还可以使用the WEBGL_debug_renderer_info extension检查GPU /驱动程序。显然谷歌地图使用它不在某些支持WebGL的旧GPU /驱动程序上使用WebGL,但对于显示在其分析中的谷歌地图来说显然太慢了。