diff options
author | Mitya Selivanov <automainint@guattari.tech> | 2025-04-15 08:11:38 +0200 |
---|---|---|
committer | Mitya Selivanov <automainint@guattari.tech> | 2025-04-15 08:11:38 +0200 |
commit | 01ea5ec5aeb50ed9801a457a7ced1c541d63f7c8 (patch) | |
tree | acbdc0ace86b40328fa15d199c625a1bc60366c9 /reduced_system_layer.c | |
parent | af8c9212a029ddaf8e7eef66cecaa762263ca0c5 (diff) | |
download | reduced_system_layer-01ea5ec5aeb50ed9801a457a7ced1c541d63f7c8.zip |
Update docs; Add key repeat flag; Fix fill rectangle
Diffstat (limited to 'reduced_system_layer.c')
-rwxr-xr-x | reduced_system_layer.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/reduced_system_layer.c b/reduced_system_layer.c index 131ee5c..63f647b 100755 --- a/reduced_system_layer.c +++ b/reduced_system_layer.c @@ -161,6 +161,8 @@ #/ #/ (C) 2025 Mitya Selivanov <guattari.tech> #/ +#/ Any use of this code is prohibited. +#/ #/ ================================================================ #/ #/ Self-testing shell script @@ -174,6 +176,9 @@ gcc \ -Wno-missing-braces \ -Wno-old-style-declaration \ -Wno-overlength-strings \ + -Wno-unused-parameter \ + -Wno-unused-variable \ + -Wno-unused-but-set-variable \ -O3 -D NDEBUG \ -fsanitize=undefined,address,leak \ -D REDUCED_SYSTEM_LAYER_TEST_SUITE \ @@ -594,6 +599,7 @@ typedef struct { b8 num : 1; b8 scroll : 1; b8 meta : 1; + b8 repeat : 1; u16 key; c32 c; } Input_Key; @@ -1509,9 +1515,14 @@ void PROFILER_init(u32 slot, c8 *name) { } void PROFILER_begin(u32 slot) { - if ((i64) (u64) slot >= _profiler_num_slots) + if ((i64) (u64) slot >= _profiler_num_slots && slot == PROFILE_MEMORY) return; + if ((i64) (u64) slot >= _profiler_num_slots) { + LOG_ERROR("Invalid slot: %d", (i32) slot); + return; + } + if (_profiler_slots[slot].count < 0) { LOG_ERROR("Sanity"); return; @@ -3533,6 +3544,7 @@ i32 handle_main_window_events(void) { .num = !!(ev.xkey.state & Mod2Mask), .scroll = !!(ev.xkey.state & Mod3Mask), .meta = !!(ev.xkey.state & Mod4Mask), + .repeat = _key_repeat[k], .key = k, .c = 0, }; @@ -3548,6 +3560,7 @@ i32 handle_main_window_events(void) { .num = !!(ev.xkey.state & Mod2Mask), .scroll = !!(ev.xkey.state & Mod3Mask), .meta = !!(ev.xkey.state & Mod4Mask), + .repeat = _key_repeat[k], .key = k, .c = utf8_read(len, buf).code, }; @@ -3566,6 +3579,7 @@ i32 handle_main_window_events(void) { g_platform.key_down[MOD_CTRL] = !!(ev.xkey.state & ControlMask); g_platform.key_down[MOD_SHIFT] = !!(ev.xkey.state & ShiftMask); + .repeat = , g_platform.key_down[MOD_ALT] = !!(ev.xkey.state & Mod1Mask); g_platform.key_down[MOD_CAPS] = !!(ev.xkey.state & LockMask); g_platform.key_down[MOD_NUM] = !!(ev.xkey.state & Mod2Mask); |