none
关于canvas 使用native code 层的数据进行显示的问题 RRS feed

  • 问题

  • Hi,

    我在做一个app,UI 是JS的, 采用Canvas进行绘图显示, 私有定义格式的数据来自网络。

    采用c++的Runtime component完成数据的接受和处理,然后传给JS层进行显示,JS调用的是canvas的PutImageData(). 但是我发现JS和native之间的数据传输代价比较高,我是将native的数组引用传给JS 层,JS层用for() 逐个进行拷贝。代码类似:

    update(frameBuffer, x, y, width, height)

    {

    var myCanvas = document.getElenmentById("myCanvas"),

         context = myCanvas.getContext('2d'),

         imageData = context.createImageData(width, height),

        data = imageData.data,

        i,

       len = width * height * 4;

      for(  i=0; i< len ; i++){

          data[i] = frameBuffer[i];

       } 

      context.putImageData(imageData, x, y);

    }

    请问, 有没有更加高效的方法呢,比如跨界的数据传递、JS层的数组快速拷贝。‘

    谢谢大家!!

    2013年5月14日 5:34

答案

全部回复