index.js 962 Bytes
import { View3d } from "wasm-game-of-life";
import { memory } from "wasm-game-of-life/wasm_game_of_life_bg";

// 3D canvas stuff
const view3d = View3d.new(300, 300);

const view3d_canvas  = document.getElementById("view3d");
view3d_canvas.width  = view3d.width();
view3d_canvas.height = view3d.height();
const view3d_ctx     = view3d_canvas.getContext('2d');

const view3d_renderLoop = () => {
    view3d.update();
    drawView3d();

    requestAnimationFrame(view3d_renderLoop);
}

const drawView3d = () => {
    const view3d_imagePtr = view3d.image();
    const view3d_image    = new ImageData(
        new Uint8ClampedArray( memory.buffer
                             , view3d.image()
                             , view3d.width() * view3d.height() * 4 )
        , view3d.width()
        , view3d.height() );

    view3d_ctx.putImageData(view3d_image, 0, 0);
}

// start everything ...
view3d.update();
drawView3d();
requestAnimationFrame(view3d_renderLoop);