IE11 バージョン 11.0.9600.16428 以下では、一部の WebGL メソッドが正しく機能していません (ここで説明されているように: https://github.com/mrdoob/three.js/issues/3600 )
一例はメソッド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: INVALID-OPERATION: clearStencil: メソッドは現在サポートされていません。
ここで、メソッドsupportsWebGL
がその非互換性を検出して false を返すようにします。誰もそれを行う方法を知っていますか?