From 96b151602b9f7ba37f38656b76da2ce5d4cdf217 Mon Sep 17 00:00:00 2001 From: Tobias Frisch <tfrisch@uni-koblenz.de> Date: Tue, 15 Jun 2021 19:13:30 +0200 Subject: [PATCH] [#73] Fixed initial camera projection matrix Signed-off-by: Tobias Frisch <tfrisch@uni-koblenz.de> --- modules/camera/include/vkcv/camera/CameraManager.hpp | 4 +--- modules/camera/src/vkcv/camera/CameraManager.cpp | 6 ++++-- projects/cmd_sync_test/src/main.cpp | 2 +- projects/first_mesh/src/main.cpp | 2 +- projects/first_triangle/src/main.cpp | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/modules/camera/include/vkcv/camera/CameraManager.hpp b/modules/camera/include/vkcv/camera/CameraManager.hpp index 69c4b311..0c504179 100644 --- a/modules/camera/include/vkcv/camera/CameraManager.hpp +++ b/modules/camera/include/vkcv/camera/CameraManager.hpp @@ -105,10 +105,8 @@ namespace vkcv::camera { /** * @brief The constructor of the #CameraManager. * @param[in] window The window. - * @param[in] width The width of the window. - * @param[in] height The height of the window. */ - CameraManager(Window &window, float width, float height); + CameraManager(Window &window); /** * @brief The destructor of the #CameraManager. Destroying the #CameraManager leads to deletion of all stored diff --git a/modules/camera/src/vkcv/camera/CameraManager.cpp b/modules/camera/src/vkcv/camera/CameraManager.cpp index 977c61d0..561596c2 100644 --- a/modules/camera/src/vkcv/camera/CameraManager.cpp +++ b/modules/camera/src/vkcv/camera/CameraManager.cpp @@ -5,7 +5,7 @@ namespace vkcv::camera { - CameraManager::CameraManager(Window &window, float width, float height) + CameraManager::CameraManager(Window& window) : m_window(window) { bindCameraToEvents(); @@ -82,8 +82,10 @@ namespace vkcv::camera { } uint32_t CameraManager::addCamera(ControllerType controllerType) { + const float ratio = static_cast<float>(m_window.getWidth()) / static_cast<float>(m_window.getHeight()); + Camera camera; - camera.setPerspective(glm::radians(60.0f), m_window.getWidth() / m_window.getHeight(), 0.1f, 10.0f); + camera.setPerspective(glm::radians(60.0f), ratio, 0.1f, 10.0f); return addCamera(controllerType, camera); } diff --git a/projects/cmd_sync_test/src/main.cpp b/projects/cmd_sync_test/src/main.cpp index a02c4542..3c2ab00d 100644 --- a/projects/cmd_sync_test/src/main.cpp +++ b/projects/cmd_sync_test/src/main.cpp @@ -18,7 +18,7 @@ int main(int argc, const char** argv) { true ); - vkcv::camera::CameraManager cameraManager(window, windowWidth, windowHeight); + vkcv::camera::CameraManager cameraManager(window); uint32_t camIndex = cameraManager.addCamera(vkcv::camera::ControllerType::PILOT); uint32_t camIndex2 = cameraManager.addCamera(vkcv::camera::ControllerType::TRACKBALL); diff --git a/projects/first_mesh/src/main.cpp b/projects/first_mesh/src/main.cpp index 42b1f595..b01ed4a2 100644 --- a/projects/first_mesh/src/main.cpp +++ b/projects/first_mesh/src/main.cpp @@ -146,7 +146,7 @@ int main(int argc, const char** argv) { vkcv::DescriptorSetUsage descriptorUsage(0, core.getDescriptorSet(descriptorSet).vulkanHandle); vkcv::DrawcallInfo drawcall(renderMesh, { descriptorUsage }); - vkcv::camera::CameraManager cameraManager(window, windowWidth, windowHeight); + vkcv::camera::CameraManager cameraManager(window); uint32_t camIndex0 = cameraManager.addCamera(vkcv::camera::ControllerType::PILOT); uint32_t camIndex1 = cameraManager.addCamera(vkcv::camera::ControllerType::TRACKBALL); diff --git a/projects/first_triangle/src/main.cpp b/projects/first_triangle/src/main.cpp index dcb53c94..ffb07bf7 100644 --- a/projects/first_triangle/src/main.cpp +++ b/projects/first_triangle/src/main.cpp @@ -169,7 +169,7 @@ int main(int argc, const char** argv) { const vkcv::ImageHandle swapchainInput = vkcv::ImageHandle::createSwapchainImageHandle(); - vkcv::camera::CameraManager cameraManager(window, windowWidth, windowHeight); + vkcv::camera::CameraManager cameraManager(window); uint32_t camIndex = cameraManager.addCamera(vkcv::camera::ControllerType::PILOT); uint32_t camIndex2 = cameraManager.addCamera(vkcv::camera::ControllerType::TRACKBALL); -- GitLab