_relative warp fixes?

This commit is contained in:
2025-01-02 21:24:11 +02:00
parent 4db1acaa9b
commit 8e26b14aab

View File

@@ -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<SDLWindow*>(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<SDLWindow*>(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<SDLWindow*>(window)->_window);
//SetMousePosition(oldPosition);
SDL_WarpMouseInWindow(sdlWindow, oldPosition.X, oldPosition.Y);
OnMouseMoved(oldPosition);
}
}
};