You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
903 B
33 lines
903 B
import { View3d } from "easel3d-wasm";
|
|
import { memory } from "easel3d-wasm/easel3d_wasm_bg";
|
|
|
|
// 3D canvas stuff
|
|
const view3d = View3d.new(301, 301);
|
|
|
|
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_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);
|