在IE11版11.0.9600.16428和下面一些WebGL的方法是无法正常工作(如这里提到的:https://github.com/mrdoob/three.js/issues/3600)如何识别IE11的WebGL兼容性(clearStencil,着色器)正确
一个例子是方法clearStencil
。问题是该方法存在,但它不能正常工作。我想检测并给用户一些反馈。我尝试了Three.js中的Detector.js,但它仅检查浏览器和图形卡是否支持WebGL,而不支持所有相关功能。
我试图做一个WebGL的检查是这样的:
var supportsWebGL=function(){
if(Detector.webgl){
var _canvas = document.createElement('canvas');
var _gl = _canvas.getContext('webgl') || _canvas.getContext('experimental-webgl');
try{
_gl.clearStencil(0);
}catch(e){
return false;
}
return true;
}else{
return false;
}
}
在IE11(11.0.9600.16428)supportsWebGL
返回true,但给了我这样的错误方法:
WEBGL11095:无效 - 操作:clearStencil:方法当前不支持 。
现在我想我的方法supportsWebGL
检测到不兼容性并返回false。有谁知道如何做到这一点?
我喜欢这个解决方案比浏览器嗅探更多,但仍然... try/catch ... urgh ...创建一个新的上下文只是为了检查... urgh ... ^^ – Winchestro 2015-02-10 13:36:53