From a94a0949a7de40bd5ccf49b224b2a5bd70f9f70d Mon Sep 17 00:00:00 2001 From: Julia <145168563+julia-aph@users.noreply.github.com> Date: Fri, 19 Apr 2024 15:23:11 -0500 Subject: [PATCH] cleaning stuff, almost working woah --- run.py => build.py | 0 source/fumotris.h | 4 +-- source/io/ctrl.c | 50 +++++++++++++------------- source/io/ctrl.h | 8 ++--- source/io/input.c | 62 ++++++++++++++++++--------------- source/io/input.h | 21 +++++++++-- source/io/platforms/platform.h | 11 ++---- source/io/platforms/win.c | 42 ++++++++++++++++------ source/main.c | 23 ++++++++---- test.exe | Bin 82590 -> 82233 bytes 10 files changed, 133 insertions(+), 88 deletions(-) rename run.py => build.py (100%) diff --git a/run.py b/build.py similarity index 100% rename from run.py rename to build.py diff --git a/source/fumotris.h b/source/fumotris.h index fd37aa2..17ae408 100644 --- a/source/fumotris.h +++ b/source/fumotris.h @@ -28,7 +28,7 @@ typedef int_fast32_t i32f; typedef int64_t i64; typedef int_fast64_t i64f; -const u8 I[16] = { +/*const u8 I[16] = { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, @@ -68,4 +68,4 @@ const u8 L[9] = { 0, 0, 1, 1, 1, 1, 0, 0, 0 -}; \ No newline at end of file +};*/ \ No newline at end of file diff --git a/source/io/ctrl.c b/source/io/ctrl.c index 8467bad..7e25593 100644 --- a/source/io/ctrl.c +++ b/source/io/ctrl.c @@ -1,10 +1,12 @@ #include "ctrl.h" -bool NewCtrl(struct Controller *ctrl, size_t init_axes) +#define INIT_SIZE 16 + +bool CreateCtrl(struct Controller *ctrl) { - struct ctrl_bkt *code_bkts = calloc(init_axes, sizeof(struct ctrl_bkt)); - struct ctrl_bkt *bind_bkts = calloc(init_axes, sizeof(struct ctrl_bkt)); - struct InputAxis *axes = calloc(init_axes, sizeof(struct InputAxis)); + struct ctrl_bkt *code_bkts = calloc(INIT_SIZE, sizeof(struct ctrl_bkt)); + struct ctrl_bkt *bind_bkts = calloc(INIT_SIZE, sizeof(struct ctrl_bkt)); + struct InputAxis *axes = calloc(INIT_SIZE, sizeof(struct InputAxis)); if (code_bkts == nullptr or bind_bkts == nullptr or axes == nullptr) return false; @@ -13,15 +15,19 @@ bool NewCtrl(struct Controller *ctrl, size_t init_axes) .buf.len = 0, .pending_buf.len = 0, - .axis_vec.axes = axes, + .axis_vec = (struct ctrl_axis_vec) { + .axes = axes, + .size = INIT_SIZE, + .len = 0, + }, .codes = (struct ctrl_dict) { .bkts = code_bkts, - .capacity = init_axes, + .capacity = INIT_SIZE, .filled = 0, }, .binds = (struct ctrl_dict) { .bkts = bind_bkts, - .capacity = init_axes, + .capacity = INIT_SIZE, .filled = 0, }, }; @@ -35,22 +41,20 @@ void FreeCtrl(struct Controller *ctrl) free(ctrl->axis_vec.axes); } -struct ctrl_bkt *get_bkt(struct ctrl_dict *dict, size_t i) -{ +struct ctrl_bkt *get_bkt(struct ctrl_dict *dict, size_t i) { return &dict->bkts[i]; } -size_t wrap_index(size_t i, size_t max) -{ +size_t wrap_index(size_t i, size_t max) { return i % (SIZE_MAX - max + 1); } struct ctrl_bkt *find_or_set(struct ctrl_dict *dict, union InputID id) { - const size_t index = id.hash % dict->capacity; + size_t i = id.hash % dict->capacity; - size_t i = index; - while (i != wrap_index(index - 1, dict->capacity)) { + size_t last = wrap_index(i - 1, dict->capacity); + while (i != last) { struct ctrl_bkt *bkt = get_bkt(dict, i); if (bkt->axis == nullptr) { @@ -60,9 +64,8 @@ struct ctrl_bkt *find_or_set(struct ctrl_dict *dict, union InputID id) return bkt; } - if (bkt->id.hash == id.hash) { + if (bkt->id.hash == id.hash) return bkt; - } i = (i + 1) % dict->capacity; } @@ -72,10 +75,10 @@ struct ctrl_bkt *find_or_set(struct ctrl_dict *dict, union InputID id) struct ctrl_bkt *find(struct ctrl_dict *dict, union InputID id) { - const size_t index = id.hash % dict->capacity; + size_t i = id.hash % dict->capacity; - size_t i = index; - while (i != wrap_index(index - 1, dict->capacity)) { + size_t last = wrap_index(i - 1, dict->capacity); + while (i != last) { struct ctrl_bkt *bkt = get_bkt(dict, i); if (bkt->id.hash == id.hash) @@ -96,8 +99,7 @@ struct InputAxis *find_axis(struct ctrl_dict *dict, union InputID id) return bkt->axis; } -union InputID to_id(u16f value, u16f type) -{ +union InputID to_id(u16f value, u16f type) { return (union InputID) { .value = value, .type = type }; } @@ -167,10 +169,10 @@ bool CtrlPoll(struct Controller *ctrl) return true; } -int main() +/*int main() { struct Controller ctrl; - if (!NewCtrl(&ctrl, 3)) + if (!CreateCtrl(&ctrl)) return 1; CtrlMap(&ctrl, 123, BUTTON, 111); @@ -199,4 +201,4 @@ int main() printf("success"); return 0; -} \ No newline at end of file +}*/ \ No newline at end of file diff --git a/source/io/ctrl.h b/source/io/ctrl.h index 375a70f..ce82582 100644 --- a/source/io/ctrl.h +++ b/source/io/ctrl.h @@ -56,7 +56,7 @@ struct Controller { struct ctrl_dict binds; }; -bool NewCtrl(struct Controller *ctrl, size_t init_axes); +bool CreateCtrl(struct Controller *ctrl); void FreeCtrl(struct Controller *ctrl); @@ -87,8 +87,8 @@ struct ControlBind { u8 type; }; -const size_t code_count = 12; -const struct ControlBind ctrl_binds[12] = { +#define CODE_COUNT 12 +/*const struct ControlBind ctrl_binds[12] = { { LEFT, 0x25, BUTTON }, { RIGHT, 0x27, BUTTON }, { SOFT_DROP, 0x28, BUTTON }, @@ -101,4 +101,4 @@ const struct ControlBind ctrl_binds[12] = { { VSCROLL, 0, AXIS }, { HSCROLL, 1, AXIS }, { MOUSE, 0, JOYSTICK } -}; \ No newline at end of file +};*/ \ No newline at end of file diff --git a/source/io/input.c b/source/io/input.c index e75d2e3..73cc854 100644 --- a/source/io/input.c +++ b/source/io/input.c @@ -1,5 +1,4 @@ #include "input.h" -#include #include "platform.h" @@ -30,41 +29,46 @@ void InputBufferAdd(struct InputBuffer *buf, struct InputRecord *rec) *buf_get(buf, buf->len++) = *rec; } -struct input_args { - struct InputBuffer *buf; - pthread_mutex_t *mutex; -}; - -void *input_thread_loop(struct input_args *args) +void *input_thread_loop(struct InputThreadHandle *hand) { - struct InputBuffer *buf = args->buf; - pthread_mutex_t *mutex = args->mutex; - free(args); - struct InputBuffer tmp_buf = { .len = 0, .start = 0 }; - while (true) { - if (!PlatformReadInput(&tmp_buf)) - return false; - - pthread_mutex_lock(mutex); - { - InputBufferTransfer(&tmp_buf, buf); + while (!hand->is_terminating) { + if (!PlatformReadInput(&tmp_buf)) { + hand->err = true; + return; } - pthread_mutex_unlock(mutex); - } - return nullptr; + hand->err = pthread_mutex_lock(&hand->mutex); + if (hand->err) + return; + + InputBufferTransfer(&tmp_buf, hand->buf); + + hand->err = pthread_mutex_unlock(&hand->mutex); + if (hand->err) + return; + } } -bool CreateInputThread(struct InputBuffer *buf, pthread_mutex_t *mutex) +bool BeginInputThread(struct InputThreadHandle *hand, struct InputBuffer *buf) { - struct input_args *args = malloc(sizeof(struct input_args)); - *args = (struct input_args) { - .buf = buf, - .mutex = mutex, - }; + hand->mutex = PTHREAD_MUTEX_INITIALIZER; + return pthread_create(&hand->thread, nullptr, input_thread_loop, hand) == 0; +} - pthread_t thread; - return pthread_create(&thread, nullptr, input_thread_loop, args) == 0; +bool EndInputThread(struct InputThreadHandle *hand) +{ + hand->is_terminating = true; + + if (!PlatformStopInput()) + return false; + + if (!pthread_mutex_destroy(&hand->mutex)) + return false; + + if (!pthread_join(hand->thread, nullptr)) + return false; + + return true; } \ No newline at end of file diff --git a/source/io/input.h b/source/io/input.h index 61b80ca..48d40d2 100644 --- a/source/io/input.h +++ b/source/io/input.h @@ -4,6 +4,7 @@ #include #include #include +#include #include "fumotris.h" #include "gametime.h" @@ -19,7 +20,11 @@ enum InputType { union InputID { struct { - union { u16 code; u16 bind; u16 value }; + union { + u16 code; + u16 bind; + u16 value; + }; u16 type; }; u32 hash; @@ -66,8 +71,20 @@ struct InputBuffer { u8f start; }; +struct InputThreadHandle { + struct InputBuffer *buf; + + pthread_t thread; + pthread_mutex_t mutex; + + int err; + bool is_terminating; +}; + void InputBufferTransfer(struct InputBuffer *tmp, struct InputBuffer *dest); void InputBufferAdd(struct InputBuffer *buf, struct InputRecord *src); -bool InputStart(struct InputBuffer *buf, pthread_mutex_t *mutex); \ No newline at end of file +bool BeginInputThread(struct InputThreadHandle *hand, struct InputBuffer *buf); + +bool EndInputThread(struct InputThreadHandle *hand); \ No newline at end of file diff --git a/source/io/platforms/platform.h b/source/io/platforms/platform.h index 23750e7..ec995b9 100644 --- a/source/io/platforms/platform.h +++ b/source/io/platforms/platform.h @@ -12,19 +12,12 @@ #include "win.h" #endif -enum PlatformError { - PLTF_E_INITFAIL, -}; - -struct Error { - int e; - -}; - bool PlatformInit(); bool PlatformGetRefreshRate(u16f *out); bool PlatformReadInput(struct InputBuffer *buf); +bool PlatformStopInput(); + bool PlatformWait(struct Time relative); \ No newline at end of file diff --git a/source/io/platforms/win.c b/source/io/platforms/win.c index a736fd6..e683185 100644 --- a/source/io/platforms/win.c +++ b/source/io/platforms/win.c @@ -5,21 +5,31 @@ #include "gametime.h" #include "input.h" -static struct windows { +struct windows { + union { + HANDLE input_hands[2]; + struct { + HANDLE input_hand; + HANDLE early_exit_hand; + }; + }; HANDLE timer; - HANDLE input_handle; } win; bool init_handles() { - win.input_handle = GetStdHandle(STD_INPUT_HANDLE); - if (win.input_handle == INVALID_HANDLE_VALUE) + win.input_hand = GetStdHandle(STD_INPUT_HANDLE); + if (win.input_hand == INVALID_HANDLE_VALUE) return false; win.timer = CreateWaitableTimerW(NULL, TRUE, NULL); if (win.timer == NULL) return false; + win.early_exit_hand = CreateEventW(NULL, FALSE, FALSE, NULL); + if (win.early_exit_hand == NULL) + return false; + return true; } @@ -31,7 +41,7 @@ bool init_console() | ENABLE_MOUSE_INPUT | ENABLE_WINDOW_INPUT; - return SetConsoleMode(win.input_handle, mode) != 0; + return SetConsoleMode(win.input_hand, mode) != 0; } bool PlatformInit() @@ -47,11 +57,11 @@ bool PlatformInit() bool PlatformGetRefreshRate(u16f *out) { - DEVMODE mode; - mode.dmSize = sizeof(DEVMODE); + DEVMODEW mode; + mode.dmSize = sizeof(DEVMODEW); mode.dmDriverExtra = 0; - if(!EnumDisplaySettingsA(NULL, ENUM_CURRENT_SETTINGS, &mode)) + if(!EnumDisplaySettingsW(NULL, ENUM_CURRENT_SETTINGS, &mode)) return false; *out = mode.dmDisplayFrequency; @@ -110,11 +120,16 @@ bool copy_rec(struct InputRecord *rec, INPUT_RECORD *win_rec) bool PlatformReadInput(struct InputBuffer *buf) { + DWORD wait_status = WaitForMultipleObjects(2, win.input_hands, FALSE, 0); + + if (wait_status != 0) + return wait_status == 1; + DWORD max_records = IO_BUF_SIZE - buf->len; INPUT_RECORD win_buf[max_records]; - DWORD filled; - if (!ReadConsoleInputW(win.input_handle, win_buf, max_records, &filled)) + + if (!ReadConsoleInputW(win.input_hand, win_buf, max_records, &filled)) return false; struct InputRecord rec = { .time = TimeNow() }; @@ -129,12 +144,17 @@ bool PlatformReadInput(struct InputBuffer *buf) return true; } +bool PlatformStopInput() +{ + return SetEvent(win.early_exit_hand) == 0; +} + bool PlatformWait(struct Time relative) { LARGE_INTEGER duration; duration.QuadPart = -10000000 * relative.sec - relative.nsec / 100; - if (!SetWaitableTimer(win.timer, &duration, 0, NULL,NULL, FALSE)) + if (!SetWaitableTimer(win.timer, &duration, 0, NULL, NULL, FALSE)) return false; DWORD result = WaitForSingleObject(win.timer, INFINITE); diff --git a/source/main.c b/source/main.c index 7208218..ed8ea7a 100644 --- a/source/main.c +++ b/source/main.c @@ -14,17 +14,26 @@ #include "event.h" #include "platform.h" +void ErrorExit(char *message) +{ + printf(message); + exit(1); +} + int main() { - struct Instance game; - if (!Start(&game)) - exit(1); + if (!PlatformInit()) + ErrorExit("Platform failed to initialize"); - if(!PlatformInit()) - exit(1); + struct Controller ctrl; + if (!CreateCtrl(&ctrl)) + ErrorExit("Out of memory"); - CreateInputThread(&game.ctrl.buf, ); - Loop(&game); + struct InputThreadHandle input; + if (!BeginInputThread(&input, &ctrl.buf)) + ErrorExit("Input handle failed to initialize"); + + printf("woah"); return 0; } \ No newline at end of file diff --git a/test.exe b/test.exe index 3e4986bbff17579de7c10a51102407071e81eafd..78e8ad2f1138a1bebece1cb134dee3b2c0d134dd 100644 GIT binary patch literal 82233 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