From 6045214b136244e0d35c17816c911b5eab5c2d5d Mon Sep 17 00:00:00 2001 From: maverickdgg Date: Fri, 24 Feb 2023 15:35:02 +0800 Subject: [PATCH] Camera width to resize with view port --- Assets/Scenes/MainMenu.shade | 3 +-- SHADE_Engine/src/Camera/SHCameraSystem.cpp | 21 +++++++++++++++++++++ SHADE_Engine/src/Camera/SHCameraSystem.h | 1 + 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/Assets/Scenes/MainMenu.shade b/Assets/Scenes/MainMenu.shade index 30ef368a..15df64f4 100644 --- a/Assets/Scenes/MainMenu.shade +++ b/Assets/Scenes/MainMenu.shade @@ -113,8 +113,7 @@ Pitch: 0 Yaw: 0 Roll: 0 - Width: 1319 - Height: 622 + Width: 1175 Near: 0.00999999978 Far: 10000 Perspective: true diff --git a/SHADE_Engine/src/Camera/SHCameraSystem.cpp b/SHADE_Engine/src/Camera/SHCameraSystem.cpp index e577207a..a574b47f 100644 --- a/SHADE_Engine/src/Camera/SHCameraSystem.cpp +++ b/SHADE_Engine/src/Camera/SHCameraSystem.cpp @@ -144,8 +144,24 @@ namespace SHADE //std::cout << EVENT_DATA->resizeWidth << std::endl; //std::cout << EVENT_DATA->resizeHeight << std::endl; screenAspectRatio = (float)EVENT_DATA->resizeWidth / (float)EVENT_DATA->resizeHeight; + +#ifdef SHEDITOR + auto editor = SHSystemManager::GetSystem(); + if (editor->editorState != SHEditor::State::PLAY) + return eventPtr->handle; +#endif // SHEDITOR + + for (auto& director : directorHandleList) + { + auto camera = SHComponentManager::GetComponent_s(director->mainCameraEID); + if (camera) + { + camera->SetWidth(EVENT_DATA->resizeWidth); + } + } + return eventPtr->handle; } @@ -574,4 +590,9 @@ namespace SHADE #endif } + SHCameraComponent* SHCameraSystem::GetMainCamera() const noexcept + { + return SHComponentManager::GetComponent_s(directorHandleList[0]->mainCameraEID); + } + } diff --git a/SHADE_Engine/src/Camera/SHCameraSystem.h b/SHADE_Engine/src/Camera/SHCameraSystem.h index 92728537..65761eb1 100644 --- a/SHADE_Engine/src/Camera/SHCameraSystem.h +++ b/SHADE_Engine/src/Camera/SHCameraSystem.h @@ -65,6 +65,7 @@ namespace SHADE void SetCameraViewMatrix(SHCameraComponent& camera, SHMatrix const& viewMatrix, bool takePos) noexcept; void CameraLookAt(SHCameraComponent& camera, SHVec3 target) noexcept; void UpdateEditorArm(double dt,bool active ,SHVec3 const& targetPos) noexcept; + SHCameraComponent* GetMainCamera() const noexcept; SHVec2 GetCameraWidthHeight(size_t index) noexcept; };