From 603e9dd5165a5d02bb72154a16e55936b160f4d6 Mon Sep 17 00:00:00 2001 From: t-rvw <429601557@qq.com> Date: Wed, 11 Oct 2023 01:43:06 +0800 Subject: [PATCH] update sdl3 --- Engine/Source/Editor/UILayers/SceneView.cpp | 8 +++----- Engine/Source/Editor/UILayers/SceneView.h | 8 ++++---- Engine/Source/Runtime/Window/Window.cpp | 5 +++-- Engine/Source/Runtime/Window/Window.h | 2 +- 4 files changed, 11 insertions(+), 12 deletions(-) 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();