1
0
Fork 0

Add time to wasm

This commit is contained in:
Pabloader 2026-05-07 13:54:16 +00:00
parent a35c3197e9
commit d5eaac4099
3 changed files with 27 additions and 11 deletions

View File

@ -145,13 +145,20 @@ async function instantiate(url: string) {
}
return 0;
},
clock_time_get: (_id: number, _precision: bigint, timePtr: number) => {
const now = Date.now();
const nanosecondNow = BigInt(now) * 1_000_000n;
const data = new DataView(memory.buffer);
data.setBigInt64(timePtr, nanosecondNow, true);
return 0;
}
}, {
get(target, p) {
if (p in target) {
console.debug(`[${String(p)}] exists`);
return target[p as keyof typeof target];
}
return (...args: any[]) => { console.debug(`[${String(p)}]`, args); return 0; }
return (...args: any[]) => { console.warn(`[${String(p)}]`, args); return 0; }
},
}),
});

View File

@ -2,6 +2,7 @@
#include <js.h>
#include <stdint.h>
#include <stdlib.h>
#include <time.h>
#define WIDTH 512
#define HEIGHT 512
@ -18,13 +19,15 @@ GRAPHICS_FRAME {
int count = count_neighbours(x, y);
uint8_t current_cell = field[x + y * WIDTH];
uint8_t next_cell = current_cell;
if (current_cell && count < 2) {
next_cell = 0;
} else if (current_cell && count > 3) {
next_cell = 0;
} else if (!current_cell && count == 3) {
next_cell = 1;
}
// if (current_cell && count < 2) {
// next_cell = 0;
// } else if (current_cell && count > 3) {
// next_cell = 0;
// } else if (!current_cell && count == 3) {
// next_cell = 1;
// }
next_cell = (count + current_cell) >= 5;
next_field[x + y * WIDTH] = next_cell;
}
@ -60,6 +63,7 @@ static int count_neighbours(int x, int y) {
}
GRAPHICS_INIT {
srand((uint32_t)time(NULL));
field = malloc(WIDTH * HEIGHT);
next_field = malloc(WIDTH * HEIGHT);
image_data = image_create(WIDTH, HEIGHT);

View File

@ -1,11 +1,11 @@
#include <cstddef>
#include <cstdint>
#include <cstdlib>
#include <format>
#include <iostream>
#include <js.h>
#include <stdlib.h>
#include <string>
#include <string_view>
#include <utility>
class bit {
@ -77,7 +77,7 @@ constexpr bit bit::nor(const bit& a, const bit& b) {
return result;
}
uint64_t EXPORT(awoo) {
JS_EXPORT uint64_t awoo() {
bit a{1, "a"};
bit b{1, "b"};
@ -88,7 +88,12 @@ uint64_t EXPORT(awoo) {
return sum;
}
void EXPORT(play) {
JS_EXPORT void play() {
auto awoo = std::format("{2} {1}{0}!\n", 23, "C++", "Hello");
std::puts(awoo.c_str());
}
int main() {
awoo();
play();
}