Fix jerky mouse delta on web

This commit is contained in:
sergeypdev 2025-08-02 21:21:12 +04:00
parent a958c1f50a
commit 6e600e9e6d

View File

@ -898,20 +898,23 @@ collect_camera_input :: proc() -> (delta: rl.Vector2, sense: f32, is_mouse: bool
} }
should_capture_mouse := rl.IsMouseButtonDown(.RIGHT) should_capture_mouse := rl.IsMouseButtonDown(.RIGHT)
@(static) last_mouse_pos: rl.Vector2 @(static) first_delta := true
if g_mem.mouse_captured != should_capture_mouse { if g_mem.mouse_captured != should_capture_mouse {
if should_capture_mouse { if should_capture_mouse {
rl.DisableCursor() rl.DisableCursor()
last_mouse_pos = rl.GetMousePosition() first_delta = true
} else { } else {
rl.EnableCursor() rl.EnableCursor()
} }
g_mem.mouse_captured = should_capture_mouse g_mem.mouse_captured = should_capture_mouse
} }
mouse_pos := rl.GetMousePosition() mouse_delta := g_mem.mouse_captured ? rl.GetMouseDelta() : 0
mouse_delta := g_mem.mouse_captured ? mouse_pos - last_mouse_pos : 0
last_mouse_pos = mouse_pos if mouse_delta != 0 && first_delta {
mouse_delta = 0
first_delta = false
}
MOUSE_SENSE :: 0.005 MOUSE_SENSE :: 0.005
GAMEPAD_SENSE :: 1 GAMEPAD_SENSE :: 1