強火で進め

このブログではプログラム関連の記事を中心に書いてます。

WebGL用のcontentIdとして有効な文字列をチェックするツール

WebGL用のコンテキストはこんな感じで取得すると思いますがこの時に指定する contextId 用の文字列としてどの文字列が対応しているかをチェックするプログラムを作りました。

var canvas = document.getElementById("gl_canvas");
gl = canvas.getContext(contextId);

チェックする文字列は以下のもの。

JavaScriptは以下の様に記述しました。
コンテキストの取得に成功するか失敗するかで判定しています。
成功したものは青色の文字で succeed 失敗したものは赤色の文字で failed と表示されます。

function initGL() {
	var contextId;
	
	var canvas = document.getElementById("gl_canvas");
	contextIdList = [
		'webkit-3d',
		'moz-webgl',
		'experimental-webgl',
		'webgl',
		'3d'
	];
	var resMsg = '';
	for(var idx in contextIdList) {
		contextId = contextIdList[idx];
		var errFlg = false;
		var gl;
	    try {
	      gl = canvas.getContext(contextId);
	    } catch(e) {
	    }
	    resMsg += contextId;
	    if (gl) {
	    	resMsg += ' -> <span id="succeed">succeed</span><br>';
	    } else {
	    	resMsg += ' -> <span id="failed">failed</span><br>';
	    }
	}
	document.getElementById("result").innerHTML = resMsg;
}
window.addEventListener('load', initGL, false);

実際に試す時はWebGLに対応しているブラウザでこちらにアクセスして下さい。

ちなみにWebKit Nightlyビルドの最新版だとこの様な結果になりました。