aboutsummaryrefslogtreecommitdiff
path: root/platform
diff options
context:
space:
mode:
authoriamcheeseman <[email protected]>2026-05-13 21:24:21 -0400
committeriamcheeseman <[email protected]>2026-05-13 21:24:21 -0400
commit8d2793e9ef7cf7f742ec23e77c44ac21a624d01f (patch)
treec8263278076d7c7fd575cfcf0dc35703e8dc426e /platform
parent13e6f3d8403f0fdbed4ead1d8eda4d9ed68ac080 (diff)
start ui
Diffstat (limited to 'platform')
-rw-r--r--platform/gl/gl.c56
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;
}