我有一个asmjs模块,它在名为'MEM'的ArrayBuffer
上工作。重绘函数在每个循环中被调用。前'siz'字节存储像素颜色。我的代码可以工作,但运行速度很慢。有没有可能通过某种方式使其更快?数组缓冲区不能是'siz'长度,因为该模块在整个ArrayBuffer上工作。
var MEM = new ArrayBuffer(2*1024*1024);
var MEMU8 = new Uint8Array(MEM);
var imgData=ctx.createImageData(canvas.width,canvas.height);
var siz = (canvas.width*canvas.height*4)|0;
var rePaint = function() {
var i=0;
module.repaint();
i=siz;
while(i--) {
imgData.data[i] = MEMU8[i];
}
ctx.putImageData(imgData, 0, 0);
requestAnimationFrame(rePaint);
};