aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/Windows64/KeyboardMouseInput.h
diff options
context:
space:
mode:
authordaoge_cmd <3523206925@qq.com>2026-03-02 00:04:54 +0800
committerdaoge_cmd <3523206925@qq.com>2026-03-02 00:43:04 +0800
commit47e00f7b62b0717d09504d63e9d53404250609de (patch)
treed0024d39bea490bfca6f35df58c39f23e5d1c21d /Minecraft.Client/Windows64/KeyboardMouseInput.h
parente16600a3e6b497f520178a7cb8be7a06b5c6efad (diff)
feat: improve mouse input handling
Diffstat (limited to 'Minecraft.Client/Windows64/KeyboardMouseInput.h')
-rw-r--r--Minecraft.Client/Windows64/KeyboardMouseInput.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/Minecraft.Client/Windows64/KeyboardMouseInput.h b/Minecraft.Client/Windows64/KeyboardMouseInput.h
index 4d272f91..a09843f9 100644
--- a/Minecraft.Client/Windows64/KeyboardMouseInput.h
+++ b/Minecraft.Client/Windows64/KeyboardMouseInput.h
@@ -42,9 +42,16 @@ public:
// Use these from code that runs at game tick rate (20Hz).
bool ConsumeKeyPress(int vk);
bool ConsumeMousePress(int btn);
+ bool ConsumeMouseRelease(int btn);
void ConsumeMouseDelta(float &dx, float &dy);
int ConsumeScrollDelta();
+ // Absolute cursor position (client-area coordinates, for GUI when not captured)
+ void OnMouseMove(int x, int y);
+ int GetMouseX() const;
+ int GetMouseY() const;
+ HWND GetHWnd() const;
+
// Mouse capture for FPS look
void SetCapture(bool capture);
bool IsCaptured() const;
@@ -61,6 +68,7 @@ private:
// Sticky press accumulators (persist until consumed by game tick)
bool m_keyPressedAccum[256];
bool m_mousePressedAccum[3];
+ bool m_mouseReleasedAccum[3];
// Mouse delta accumulators (persist until consumed by game tick)
float m_mouseDeltaXAccum;
@@ -72,6 +80,10 @@ private:
bool m_captured;
HWND m_hWnd;
bool m_initialized;
+
+ // Absolute cursor position in client coordinates
+ int m_mouseX;
+ int m_mouseY;
};
extern KeyboardMouseInput KMInput;