据我所知,Canvas API不再支持probablySupportsContext
,至少据我所知,运行!!canvas.getContext('webgl')
非常昂贵且速度慢。
在使用JavaScript的客户端中,支持更好的WebGL的最佳和最低性能的方法是什么?
答案 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;
我不相信除了沿着你已经展示过的创建上下文的路径之外,还有其他方法可以检测到这个功能。