Mirai's Miscellaneous Misadventures

M54 / engines / wasm.c

1/* license: AGPLv3 or later */
2/* copyright 2024 zamfofex */
3
4#include "../mimimi.h"
5
6void mimimi_wasm(void);
7
8static void *mimimi_wasm_data;
9static void (*mimimi_wasm_tick0)(void *data, struct mimimi_input *input);
10
11struct mimimi_input *mimimi_wasm_tick(int left, int right, int width, int height)
12{
13	static struct mimimi_input input;
14	input.left = left;
15	input.right = right;
16	input.image.width = width;
17	input.image.height = height;
18	(*mimimi_wasm_tick0)(mimimi_wasm_data, &input);
19	return &input;
20}
21
22void mimimi_main(void (*tick)(void *data, struct mimimi_input *input), void *data)
23{
24	mimimi_wasm_tick0 = tick;
25	mimimi_wasm_data = data;
26	mimimi_wasm();
27}