diff --git a/display.c b/display.c index 881f080..0de7c38 100644 --- a/display.c +++ b/display.c @@ -18,11 +18,12 @@ lv_color_t *get_canvas_buffer(void) int count = 0; for (int i = 0; i < BUFFER_SIZE; i++) { if (canvas_buffer[i].full != 0xfff5f5f5) { // TODO - lv_log("get_canvas_buffer: 0x%x", canvas_buffer[i].full); + // lv_log("get_canvas_buffer: 0x%x", canvas_buffer[i].full); count++; } } - lv_log("get_canvas_buffer: %d", count); + lv_log("get_canvas_buffer: %d non-empty pixels", count); + lv_log("canvas_buffer: %p", canvas_buffer); return canvas_buffer; } diff --git a/lvglwasm.js b/lvglwasm.js index 8f0a2c1..693519e 100644 --- a/lvglwasm.js +++ b/lvglwasm.js @@ -21,14 +21,20 @@ request.onload = function() { env: { // Render the LVGL Canvas from Zig to HTML // https://github.com/daneelsan/minimal-zig-wasm-canvas/blob/master/script.js - render: function() { + render: function() { // TODO: Add ptr, width, height console.log("render: start"); const bufferOffset = wasm.instance.exports.getCanvasBuffer(); console.log({ bufferOffset }); - const imageDataArray = wasmMemoryArray.slice( - bufferOffset, - bufferOffset + (canvas.width * canvas.height) * 4 - ); + + // const imageDataArray = wasmMemoryArray.slice( + // bufferOffset, + // bufferOffset + (canvas.width * canvas.height) * 4 + // ); + + const memory = wasm.instance.exports.memory; + const ptr = bufferOffset; + const len = (canvas.width * canvas.height) * 4; + const imageDataArray = new Uint8Array(memory.buffer, ptr, len) imageData.data.set(imageDataArray); context.clearRect(0, 0, canvas.width, canvas.height); diff --git a/lvglwasm.wasm b/lvglwasm.wasm index d8d1d2b..1b98b73 100755 Binary files a/lvglwasm.wasm and b/lvglwasm.wasm differ