From 8e26b14aab5dad1dd66e6eec399478e79af67e82 Mon Sep 17 00:00:00 2001 From: Ari Vuollet Date: Thu, 2 Jan 2025 21:24:11 +0200 Subject: [PATCH] _relative warp fixes? --- Source/Engine/Platform/SDL/SDLInput.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Source/Engine/Platform/SDL/SDLInput.cpp b/Source/Engine/Platform/SDL/SDLInput.cpp index 4150e52f6..59de38ffd 100644 --- a/Source/Engine/Platform/SDL/SDLInput.cpp +++ b/Source/Engine/Platform/SDL/SDLInput.cpp @@ -376,7 +376,6 @@ public: void SetMousePosition(const Float2& newPosition) final override { SDL_WarpMouseGlobal(newPosition.X, newPosition.Y); - OnMouseMoved(newPosition); } @@ -385,17 +384,18 @@ public: if (relativeMode == _relativeMode) return; + auto sdlWindow = static_cast(window)->GetSDLWindow(); if (relativeMode) - SDL_GetGlobalMouseState(&oldPosition.X, &oldPosition.Y); + SDL_GetMouseState(&oldPosition.X, &oldPosition.Y); Mouse::SetRelativeMode(relativeMode, window); - if (!SDL_SetWindowRelativeMouseMode(static_cast(window)->_window, relativeMode)) + if (!SDL_SetWindowRelativeMouseMode(sdlWindow, relativeMode)) LOG(Error, "Failed to set mouse relative mode: {0}", String(SDL_GetError())); if (!relativeMode) { - //SDL_SyncWindow(static_cast(window)->_window); - //SetMousePosition(oldPosition); + SDL_WarpMouseInWindow(sdlWindow, oldPosition.X, oldPosition.Y); + OnMouseMoved(oldPosition); } } };