什么是“廉价”方式来检查浏览器是否支持WebGL? (使用JS)

时间:2017-12-12 14:20:37

标签: javascript webgl

据我所知,Canvas API不再支持probablySupportsContext,至少据我所知,运行!!canvas.getContext('webgl')非常昂贵且速度慢。

在使用JavaScript的客户端中,支持更好的WebGL的最佳和最低性能的方法是什么?

1 个答案:

答案 0 :(得分:4)

我会想象像Modernizr这样的流行图书馆的表现方式是否具有表现意识。当supportsContext不可用时,他们会使用probablySupportsContext并检查canvas元素是否支持这些内容,否则他们会在WebGlRenderingContext对象中查找window

来源:https://github.com/Modernizr/Modernizr/blob/master/feature-detects/webgl.js

var canvas = document.createElement('canvas');
var supports = 'probablySupportsContext' in canvas
    ? 'probablySupportsContext'
    :  'supportsContext';


if (supports in canvas) {
  return canvas[supports]('webgl') || canvas[supports]('experimental-webgl');
}

return 'WebGLRenderingContext' in window;

我不相信除了沿着你已经展示过的创建上下文的路径之外,还有其他方法可以检测到这个功能。