diff --git a/Engine/Source/Editor/UILayers/SceneView.cpp b/Engine/Source/Editor/UILayers/SceneView.cpp index 49120ac6..c5eaae88 100644 --- a/Engine/Source/Editor/UILayers/SceneView.cpp +++ b/Engine/Source/Editor/UILayers/SceneView.cpp @@ -237,17 +237,15 @@ void SceneView::UpdateToolMenuButtons() ImGui::PopStyleColor(); } -void SceneView::PickSceneMesh(float regionWidth, float regionHeight) +void SceneView::PickSceneMesh(float screenWidth, float screenHeight) { if (m_currentOperation != SelectOperation) { return; } - float screenX = static_cast(m_mouseFixedPositionX - GetWindowPosX()); - float screenY = static_cast(m_mouseFixedPositionY - GetWindowPosY()); - float screenWidth = static_cast(regionWidth); - float screenHeight = static_cast(regionHeight); + float screenX = m_mouseFixedPositionX - GetWindowPosX(); + float screenY = m_mouseFixedPositionY - GetWindowPosY(); if (screenX < 0.0f || screenX > screenWidth || screenY < 0.0f || screenY > screenHeight) { diff --git a/Engine/Source/Editor/UILayers/SceneView.h b/Engine/Source/Editor/UILayers/SceneView.h index fbcb9e1f..2497dc33 100644 --- a/Engine/Source/Editor/UILayers/SceneView.h +++ b/Engine/Source/Editor/UILayers/SceneView.h @@ -66,8 +66,8 @@ class SceneView : public engine::ImGuiBaseLayer bool IsFirstClick() const { return m_isMouseDownFirstTime; } bool IsShowMouse() { return m_isMouseShow; } - uint32_t GetMouseFixedPositionX() const { return m_mouseFixedPositionX; } - uint32_t GetMouseFixedPositionY() const { return m_mouseFixedPositionY; } + float GetMouseFixedPositionX() const { return m_mouseFixedPositionX; } + float GetMouseFixedPositionY() const { return m_mouseFixedPositionY; } void SetCameraController(engine::CameraController* pCameraController) { m_pCameraController = pCameraController; } @@ -102,8 +102,8 @@ class SceneView : public engine::ImGuiBaseLayer engine::RenderTarget* m_pRenderTarget = nullptr; bool m_isMouseDownFirstTime = true; - int32_t m_mouseFixedPositionX = 0; - int32_t m_mouseFixedPositionY = 0; + float m_mouseFixedPositionX = 0.0f; + float m_mouseFixedPositionY = 0.0f; engine::CameraController* m_pCameraController = nullptr; }; diff --git a/Engine/Source/Runtime/Window/Window.cpp b/Engine/Source/Runtime/Window/Window.cpp index 453cc004..db2d482b 100644 --- a/Engine/Source/Runtime/Window/Window.cpp +++ b/Engine/Source/Runtime/Window/Window.cpp @@ -303,16 +303,17 @@ void Window::SetWindowIcon(const char* pFilePath) const //stbi_image_free(pImageData); } -void Window::SetMouseVisible(bool isVisible, uint32_t x, uint32_t y) +void Window::SetMouseVisible(bool isVisible, float x, float y) { - SDL_ShowCursor(isVisible); if (!isVisible) { + SDL_HideCursor(); SDL_SetRelativeMouseMode(SDL_TRUE); SDL_WarpMouseInWindow(m_pSDLWindow, x, y); } else { + SDL_ShowCursor(); SDL_SetRelativeMouseMode(SDL_FALSE); } } diff --git a/Engine/Source/Runtime/Window/Window.h b/Engine/Source/Runtime/Window/Window.h index edbf2efc..af37aab6 100644 --- a/Engine/Source/Runtime/Window/Window.h +++ b/Engine/Source/Runtime/Window/Window.h @@ -38,7 +38,7 @@ class Window void SetBordedLess(bool flag); void SetSize(uint16_t width, uint16_t height); void SetWindowIcon(const char* pFilePath) const; - void SetMouseVisible(bool isVisible, uint32_t x, uint32_t y); + void SetMouseVisible(bool isVisible, float x, float y); void Update(); diff --git a/Engine/Source/ThirdParty/sdl b/Engine/Source/ThirdParty/sdl index 35ad68e1..bf72704b 160000 --- a/Engine/Source/ThirdParty/sdl +++ b/Engine/Source/ThirdParty/sdl @@ -1 +1 @@ -Subproject commit 35ad68e126af6fc39f956c36077fb257439346b8 +Subproject commit bf72704bfdc546af3029bd8b65e68df1a567e884