Estoy en el proceso de intentar optimizar un juego que consiste en un lienzo HTML5. La idea básica del juego es tomar un objeto ImageData (presumiblemente con getImageData ) y modificarlo, reemplazando el original (presumiblemente con putImageData ). El problema es que me preocupa el rendimiento de getImageData seguido de putImageData , ya que el proceso de transferencia hacia y desde un objeto de lienzo es bastante engorroso cuando, idealmente, se podría escribir directamente en él. Essentiallt espera mostrar un Uint8Array **mientras** también lee dicha matriz para la próxima iteración.
Este soy yo postulando, pero teniendo en cuenta que *simplemente* tomo ImageData de un objeto de lienzo y lo uso para modificar otro, no veo la necesidad de copiar ningún dato como un todo. Los datos podrían leerse de un 'ImageData', escribirse en otro, después de lo cual la referencia de la imagen del lienzo podría cambiarse con ambos objetos asignados desde el principio.
Supongo que lo que busco es algún tipo de doble almacenamiento en búfer. La idea es modificar un conjunto de datos, mostrarlo y luego usar ese mismo conjunto de datos en pantalla para la próxima iteración, evitando copias innecesarias en el medio.