3

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);
};
4

1 に答える 1