I'd like to generate images in a bit of asm.js code running on a web worker. And I'd like to regularly composite the latest state of that computation onto a user-visible 2d canvas, together with some other content. Currently I have code which
- constructs an
ImageData
object using its constructor, based on a portion of the array buffer used by the asm.js code, - calls
createImageBitmap
to turn theImageData
into anImageBitmap
, - transfers that image bitmap from the worker to the GUI thread and
- uses that
ImageBitmap
as an argument toCanvasRenderingContext2D.drawImage
.
Things work nicely in recent Chrome and Firefox, but Safari 9.1.3 apparently has no createImageBitmap
function. How would I do something like the above in a way that works on Safari?
Is there some low-cost encoding of images, short of creating a data:image/png…
for it? Is there some other way to turn a byte array into something you can feed to drawImage
?
By the way: http://caniuse.com/ currently doesn't list this feature. There is a feature request which you can