在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