【发布时间】:2014-03-02 22:50:37
【问题描述】:
我有一个ArrayBuffer,还有一个名为module.repaint 的函数,它与ArrayBuffer 一起工作。在每次重绘调用中,我想将 ArrayBuffer 中的颜色放到画布上。
我是这样做的:
imgData.data.set(new Uint8ClampedArray(MEM, 0, siz));
但是是否有可能更快地将 ArrayBuffer 的一部分复制到另一个? 代码:
var MEM = new ArrayBuffer(2*1024*1024);
var canvas, ctx, imgData, siz;
var repaint = function() {
// module.repaint works on the arraybuffer
module.repaint();
imgData.data.set(new Uint8ClampedArray(MEM, 0, siz));
ctx.putImageData(imgData, 0, 0);
requestAnimationFrame(repaint);
};
var init = function() {
canvas = document.getElementById('canvas');
ctx = canvas.getContext('2d');
siz = canvas.width*canvas.height*4;
imgData=ctx.createImageData(canvas.width,canvas.height);
repaint();
};
【问题讨论】:
标签: javascript html canvas asm.js