MEM
キャンバスの幅×高さのサイズよりも大きい名前付きの配列バッファがあります。そして、arrayBuffer データをキャンバスに描画したいと思います。
imgData.data.set(...)
imgData.data は .set hethod を持つ Uint8Array であるため、動作するはずです。FireFox と Chrome では動作しますが、IE では次のエラーが発生します。Object doesn't support this property or method: 'set'
初期化:
var MEM = new ArrayBuffer(2*1024*1024);
var canvas, ctx, imgData;
var init = function() {
canvas = document.getElementById('canvas');
ctx = canvas.getContext('2d');
imgData=ctx.createImageData(canvas.width, canvas.height);
repaint();
};
リペイント機能:
var repaint = function() {
// .... //
imgData.data.set(new Uint8Array(MEM, 0, canvas.width*canvas.height*4));
ctx.putImageData(imgData, 0, 0);
requestAnimationFrame(repaint);
};