dont serialize meta flag, wasm work
This commit is contained in:
@@ -255,27 +255,27 @@ type_t type__app_event_kind_t = { type_kind_enum, s8_const_lit("app_event_kind_t
|
||||
};
|
||||
type_t type__app_event_t = { type_kind_struct, s8_const_lit("app_event_t"), sizeof(app_event_t),
|
||||
.members = (type_member_t[]){
|
||||
{.name = s8_const_lit("next"), .type = &(type_t){type_kind_pointer, s8_const_lit("app_event_t*"), sizeof(void *), .base = &type__app_event_t}, .offset = offsetof(app_event_t, next)},
|
||||
{.name = s8_const_lit("kind"), .type = &type__app_event_kind_t, .offset = offsetof(app_event_t, kind)},
|
||||
{.name = s8_const_lit("mouse_button"), .type = &type__app_mouse_button_t, .offset = offsetof(app_event_t, mouse_button)},
|
||||
{.name = s8_const_lit("key"), .type = &type__app_key_t, .offset = offsetof(app_event_t, key)},
|
||||
{.name = s8_const_lit("text"), .type = &type__s8_t, .offset = offsetof(app_event_t, text)},
|
||||
{.name = s8_const_lit("mouse_wheel_delta"), .type = &type__v3f64_t, .offset = offsetof(app_event_t, mouse_wheel_delta)},
|
||||
{.name = s8_const_lit("ctrl"), .type = &type__b8, .offset = offsetof(app_event_t, ctrl)},
|
||||
{.name = s8_const_lit("shift"), .type = &type__b8, .offset = offsetof(app_event_t, shift)},
|
||||
{.name = s8_const_lit("alt"), .type = &type__b8, .offset = offsetof(app_event_t, alt)},
|
||||
{.name = s8_const_lit("meta"), .type = &type__b8, .offset = offsetof(app_event_t, meta)},
|
||||
{.name = s8_const_lit("dpr"), .type = &type__f64, .offset = offsetof(app_event_t, dpr)},
|
||||
{.name = s8_const_lit("window_size"), .type = &type__v2f64_t, .offset = offsetof(app_event_t, window_size)},
|
||||
{.name = s8_const_lit("mouse_pos"), .type = &type__v2f64_t, .offset = offsetof(app_event_t, mouse_pos)},
|
||||
{.name = s8_const_lit("next"), .type = &(type_t){type_kind_pointer, s8_const_lit("app_event_t*"), sizeof(void *), .base = &type__app_event_t}, .offset = offsetof(app_event_t, next), .dont_serialize = 0},
|
||||
{.name = s8_const_lit("kind"), .type = &type__app_event_kind_t, .offset = offsetof(app_event_t, kind), .dont_serialize = 0},
|
||||
{.name = s8_const_lit("mouse_button"), .type = &type__app_mouse_button_t, .offset = offsetof(app_event_t, mouse_button), .dont_serialize = 0},
|
||||
{.name = s8_const_lit("key"), .type = &type__app_key_t, .offset = offsetof(app_event_t, key), .dont_serialize = 0},
|
||||
{.name = s8_const_lit("text"), .type = &type__s8_t, .offset = offsetof(app_event_t, text), .dont_serialize = 0},
|
||||
{.name = s8_const_lit("mouse_wheel_delta"), .type = &type__v3f64_t, .offset = offsetof(app_event_t, mouse_wheel_delta), .dont_serialize = 0},
|
||||
{.name = s8_const_lit("ctrl"), .type = &type__b8, .offset = offsetof(app_event_t, ctrl), .dont_serialize = 0},
|
||||
{.name = s8_const_lit("shift"), .type = &type__b8, .offset = offsetof(app_event_t, shift), .dont_serialize = 0},
|
||||
{.name = s8_const_lit("alt"), .type = &type__b8, .offset = offsetof(app_event_t, alt), .dont_serialize = 0},
|
||||
{.name = s8_const_lit("meta"), .type = &type__b8, .offset = offsetof(app_event_t, meta), .dont_serialize = 0},
|
||||
{.name = s8_const_lit("dpr"), .type = &type__f64, .offset = offsetof(app_event_t, dpr), .dont_serialize = 0},
|
||||
{.name = s8_const_lit("window_size"), .type = &type__v2f64_t, .offset = offsetof(app_event_t, window_size), .dont_serialize = 0},
|
||||
{.name = s8_const_lit("mouse_pos"), .type = &type__v2f64_t, .offset = offsetof(app_event_t, mouse_pos), .dont_serialize = 0},
|
||||
},
|
||||
.count = 13,
|
||||
};
|
||||
type_t type__app_event_list_t = { type_kind_struct, s8_const_lit("app_event_list_t"), sizeof(app_event_list_t),
|
||||
.members = (type_member_t[]){
|
||||
{.name = s8_const_lit("first"), .type = &(type_t){type_kind_pointer, s8_const_lit("app_event_t*"), sizeof(void *), .base = &type__app_event_t}, .offset = offsetof(app_event_list_t, first)},
|
||||
{.name = s8_const_lit("last"), .type = &(type_t){type_kind_pointer, s8_const_lit("app_event_t*"), sizeof(void *), .base = &type__app_event_t}, .offset = offsetof(app_event_list_t, last)},
|
||||
{.name = s8_const_lit("len"), .type = &type__i32, .offset = offsetof(app_event_list_t, len)},
|
||||
{.name = s8_const_lit("first"), .type = &(type_t){type_kind_pointer, s8_const_lit("app_event_t*"), sizeof(void *), .base = &type__app_event_t}, .offset = offsetof(app_event_list_t, first), .dont_serialize = 1},
|
||||
{.name = s8_const_lit("last"), .type = &(type_t){type_kind_pointer, s8_const_lit("app_event_t*"), sizeof(void *), .base = &type__app_event_t}, .offset = offsetof(app_event_list_t, last), .dont_serialize = 0},
|
||||
{.name = s8_const_lit("len"), .type = &type__i32, .offset = offsetof(app_event_list_t, len), .dont_serialize = 0},
|
||||
},
|
||||
.count = 3,
|
||||
};
|
||||
@@ -182,7 +182,7 @@ void meta_app(ma_arena_t *arena) {
|
||||
};
|
||||
|
||||
struct app_event_list_t {
|
||||
app_event_t *first;
|
||||
app_event_t *first; @dont_serialize
|
||||
app_event_t *last;
|
||||
i32 len;
|
||||
};
|
||||
|
||||
@@ -47,6 +47,11 @@ fn void app_init(void);
|
||||
|
||||
fn void wasm_add_event(app_event_t event) {
|
||||
app_event_t *ev = ma_push_type(tcx.temp, app_event_t);
|
||||
ev->alt = wasm_cached.alt;
|
||||
ev->ctrl = wasm_cached.ctrl;
|
||||
ev->meta = wasm_cached.meta;
|
||||
ev->shift = wasm_cached.shift;
|
||||
ev->mouse_pos = wasm_cached.mouse_pos;
|
||||
SLLQ_APPEND(wasm_event_list.first, wasm_event_list.last, ev);
|
||||
wasm_event_list.len += 1;
|
||||
}
|
||||
@@ -56,11 +61,6 @@ fn_wasm_export void wasm_mouse_move(f64 x, f64 y, b32 ctrl, b32 shift, b32 alt,
|
||||
wasm_cached.ctrl = ctrl; wasm_cached.alt = alt; wasm_cached.meta = meta; wasm_cached.shift = shift;
|
||||
wasm_add_event((app_event_t){
|
||||
.kind = app_event_kind_mouse_move,
|
||||
.mouse_pos = {x, y},
|
||||
.ctrl = ctrl,
|
||||
.shift = shift,
|
||||
.alt = alt,
|
||||
.meta = meta,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -71,12 +71,7 @@ fn_wasm_export void wasm_mouse_down(f64 x, f64 y, i32 button, b32 ctrl, b32 shif
|
||||
wasm_cached.mouse_pos = (v2f64_t){x, y};
|
||||
wasm_add_event((app_event_t){
|
||||
.kind = app_event_kind_mouse_down,
|
||||
.mouse_pos = {x, y},
|
||||
.mouse_button = button,
|
||||
.ctrl = ctrl,
|
||||
.shift = shift,
|
||||
.alt = alt,
|
||||
.meta = meta,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -87,12 +82,7 @@ fn_wasm_export void wasm_mouse_up(f64 x, f64 y, i32 button, b32 ctrl, b32 shift,
|
||||
wasm_cached.mouse_pos = (v2f64_t){x, y};
|
||||
wasm_add_event((app_event_t){
|
||||
.kind = app_event_kind_mouse_up,
|
||||
.mouse_pos = {x, y},
|
||||
.mouse_button = button,
|
||||
.ctrl = ctrl,
|
||||
.shift = shift,
|
||||
.alt = alt,
|
||||
.meta = meta,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -102,11 +92,6 @@ fn_wasm_export void wasm_mouse_wheel(f64 x, f64 y, f64 delta_x, f64 delta_y, f64
|
||||
wasm_add_event((app_event_t){
|
||||
.kind = app_event_kind_mouse_wheel,
|
||||
.mouse_wheel_delta = {delta_x, delta_y, delta_z},
|
||||
.mouse_pos = {x, y},
|
||||
.ctrl = ctrl,
|
||||
.shift = shift,
|
||||
.alt = alt,
|
||||
.meta = meta,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -119,12 +104,7 @@ fn_wasm_export void wasm_key_down(char *key, b32 ctrl, b32 shift, b32 alt, b32 m
|
||||
if (map.key != app_key_null) {
|
||||
wasm_add_event((app_event_t){
|
||||
.kind = app_event_kind_key_down,
|
||||
.mouse_pos = wasm_cached.mouse_pos,
|
||||
.key = map.key,
|
||||
.ctrl = ctrl,
|
||||
.shift = shift,
|
||||
.alt = alt,
|
||||
.meta = meta,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -136,12 +116,7 @@ fn_wasm_export void wasm_key_down(char *key, b32 ctrl, b32 shift, b32 alt, b32 m
|
||||
s8_t text = s8_copy(tcx.temp, key8);
|
||||
wasm_add_event((app_event_t){
|
||||
.kind = app_event_kind_text,
|
||||
.mouse_pos = wasm_cached.mouse_pos,
|
||||
.text = text,
|
||||
.ctrl = ctrl,
|
||||
.shift = shift,
|
||||
.alt = alt,
|
||||
.meta = meta,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -155,12 +130,7 @@ fn_wasm_export void wasm_key_up(char *key, b32 ctrl, b32 shift, b32 alt, b32 met
|
||||
if (map.key != app_key_null) {
|
||||
wasm_add_event((app_event_t){
|
||||
.kind = app_event_kind_key_up,
|
||||
.mouse_pos = wasm_cached.mouse_pos,
|
||||
.key = map.key,
|
||||
.ctrl = ctrl,
|
||||
.shift = shift,
|
||||
.alt = alt,
|
||||
.meta = meta,
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -173,14 +143,7 @@ fn_wasm_export b32 wasm_update(f64 time, f64 width, f64 height, f64 dpr) {
|
||||
wasm_dpr = dpr;
|
||||
|
||||
if (wasm_event_list.first == NULL) {
|
||||
wasm_add_event((app_event_t){
|
||||
.kind = app_event_kind_update,
|
||||
.mouse_pos = wasm_cached.mouse_pos,
|
||||
.alt = wasm_cached.alt,
|
||||
.ctrl = wasm_cached.ctrl,
|
||||
.meta = wasm_cached.meta,
|
||||
.shift = wasm_cached.shift,
|
||||
});
|
||||
wasm_add_event((app_event_t){.kind = app_event_kind_update});
|
||||
}
|
||||
|
||||
for (app_event_t *ev = wasm_event_list.first; ev; ev = ev->next) {
|
||||
|
||||
@@ -212,6 +212,7 @@ const mem = new memory_t(new WebAssembly['Memory']({ initial: 2000, maximum: 655
|
||||
window.requestAnimationFrame(wasm_update);
|
||||
}
|
||||
|
||||
addEventListener("resize", (event) => { wake_up(); });
|
||||
addEventListener("keydown", (event) => {
|
||||
wasm_exports["wasm_key_down"](mem.write_string_to_cglobal("wasm_temp_buff1", event.key), event.ctrlKey, event.shiftKey, event.altKey, event.metaKey);
|
||||
wake_up();
|
||||
|
||||
Reference in New Issue
Block a user