diff options
| author | iamcheeseman <[email protected]> | 2026-05-13 21:24:21 -0400 |
|---|---|---|
| committer | iamcheeseman <[email protected]> | 2026-05-13 21:24:21 -0400 |
| commit | 8d2793e9ef7cf7f742ec23e77c44ac21a624d01f (patch) | |
| tree | c8263278076d7c7fd575cfcf0dc35703e8dc426e /platform | |
| parent | 13e6f3d8403f0fdbed4ead1d8eda4d9ed68ac080 (diff) | |
start ui
Diffstat (limited to 'platform')
| -rw-r--r-- | platform/gl/gl.c | 56 |
1 files changed, 34 insertions, 22 deletions
diff --git a/platform/gl/gl.c b/platform/gl/gl.c index 30ea49d..c6b8194 100644 --- a/platform/gl/gl.c +++ b/platform/gl/gl.c @@ -220,32 +220,44 @@ ty_Vec2i ty_platform_get_mouse(void) { double x, y; glfwGetCursorPos(p.win, &x, &y); - return ty_vec2i(x, y); + + + int win_width, win_height; + glfwGetWindowSize(p.win, &win_width, &win_height); + + double scalex = win_width / ctx.hints.scr_width; + double scaley = win_height / ctx.hints.scr_height; + return ty_vec2i(x / scalex, y / scaley); } -static -int button_to_glfw_key(ty_Button btn) +bool ty_platform_is_button_down(ty_Button btn) { + int res = -1; switch (btn) { - case TY_BTN_LEFT_UP: return GLFW_KEY_W; - case TY_BTN_LEFT_DOWN: return GLFW_KEY_S; - case TY_BTN_LEFT_LEFT: return GLFW_KEY_A; - case TY_BTN_LEFT_RIGHT: return GLFW_KEY_D; - case TY_BTN_RIGHT_UP: return GLFW_KEY_I; - case TY_BTN_RIGHT_DOWN: return GLFW_KEY_K; - case TY_BTN_RIGHT_LEFT: return GLFW_KEY_J; - case TY_BTN_RIGHT_RIGHT: return GLFW_KEY_L; - case TY_BTN_ACTION_1: return GLFW_KEY_Q; - case TY_BTN_ACTION_2: return GLFW_KEY_E; - case TY_BTN_ACTION_3: return GLFW_KEY_U; - case TY_BTN_ACTION_4: return GLFW_KEY_O; - case TY_BTN_DB_CTRL: return GLFW_KEY_LEFT_CONTROL; - case TY_BTN_DB_SHIFT: return GLFW_KEY_LEFT_SHIFT; + case TY_BTN_LEFT_UP: res = glfwGetKey(p.win, GLFW_KEY_W); break; + case TY_BTN_LEFT_DOWN: res = glfwGetKey(p.win, GLFW_KEY_S); break; + case TY_BTN_LEFT_LEFT: res = glfwGetKey(p.win, GLFW_KEY_A); break; + case TY_BTN_LEFT_RIGHT: res = glfwGetKey(p.win, GLFW_KEY_D); break; + case TY_BTN_RIGHT_UP: res = glfwGetKey(p.win, GLFW_KEY_I); break; + case TY_BTN_RIGHT_DOWN: res = glfwGetKey(p.win, GLFW_KEY_K); break; + case TY_BTN_RIGHT_LEFT: res = glfwGetKey(p.win, GLFW_KEY_J); break; + case TY_BTN_RIGHT_RIGHT: res = glfwGetKey(p.win, GLFW_KEY_L); break; + case TY_BTN_ACTION_1: res = glfwGetKey(p.win, GLFW_KEY_Q); break; + case TY_BTN_ACTION_2: res = glfwGetKey(p.win, GLFW_KEY_E); break; + case TY_BTN_ACTION_3: res = glfwGetKey(p.win, GLFW_KEY_U); break; + case TY_BTN_ACTION_4: res = glfwGetKey(p.win, GLFW_KEY_O); break; + case TY_BTN_DB_CTRL: res = glfwGetKey(p.win, GLFW_KEY_LEFT_CONTROL); break; + case TY_BTN_DB_SHIFT: res = glfwGetKey(p.win, GLFW_KEY_LEFT_SHIFT); break; + case TY_BTN_DB_LMB: + res = glfwGetMouseButton(p.win, GLFW_MOUSE_BUTTON_LEFT); + break; + case TY_BTN_DB_RMB: + res = glfwGetMouseButton(p.win, GLFW_MOUSE_BUTTON_RIGHT); + break; + case TY_BTN_DB_MMB: + res = glfwGetMouseButton(p.win, GLFW_MOUSE_BUTTON_MIDDLE); + break; } - return 0; -} -bool ty_platform_is_button_down(ty_Button btn) -{ - return glfwGetKey(p.win, button_to_glfw_key(btn)) == GLFW_PRESS; + return res == GLFW_PRESS; } |
