私はWebGLキャンバスを持っていると仮定します(getContext( "experimental-webgl")を呼び出して)。キャンバスコンテキストを切り替える
"2d"を使用するために後でコンテキストを切り替える方法はありますか?
このようなことの目的は、レンダリング中にエラーが発生したときにデバッグBSODのようなものを表示することです。その後、
それが不可能な場合は、:
- は、私は(この最後のサイズが変更された場合でも)、キャンバスの上にHTML要素を埋め込むと、キャンバスそのまったく同じ同じを持っているために、この要素を強制することはできますか?
- domノードを置き換えて、古いものについてのすべての参照を更新して、変更を反映させることはできますか?
[編集]これは現在の最小限のコールコードです。キャンバスは、WebGL APIで塗りつぶされたキャンバスを含むDOMノードであり、コールバックは単一のフレームを処理する関数です。
function failure(cvs, e) {
var ctx = cvs.getContext('2d'); // Fail here, returns `null' if cvs.getContext('webgl') has been called
ctx.fillStyle = 'rgb(0, 0, 0)';
ctx.fillRect(0, 0, cvs.width, cvs.height);
ctx.fillStyle = 'rgb(255, 255, 255)';
ctx.font = 'bold 12px sans-serif';
ctx.fillText(e.toString(), 0, 0);
}
function foobar(canvas, callback) {
try {
callback();
} catch (e) {
failure(canvas, e);
throw e;
} finally {
requestAnimationFrame(arguments.callee);
}
}
実際のコードを掲載して、「はい」だけでなくこの質問に正しく答える方法を知ることができますか? –
これで、コードの関連部分のみを保存しようとしました。 –