- mode 1: call putImageData from rust/wasm. This involves copying the
image data via the wasm-bindgen API.
- mode 2: allocating memory in rust/wasm and returning reference to it
for JS code. JS code calls draw2 using the reference so now image
data is copying in either direction.
- mode 3: same as mode 2 but the draw3 function treats the memory as
a vector of u32 instead of a vector of u8.