From 6f3bdf7bf9069494facb18488167b362010ff55c Mon Sep 17 00:00:00 2001 From: Josh Morgenstern <josh@morgenstern.dev> Date: Mon, 28 Jun 2021 16:46:37 +0200 Subject: [PATCH] [#54] Add handling of NONE controller --- modules/camera/include/vkcv/camera/CameraManager.hpp | 11 ++++++++++- modules/camera/src/vkcv/camera/CameraManager.cpp | 6 +++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/modules/camera/include/vkcv/camera/CameraManager.hpp b/modules/camera/include/vkcv/camera/CameraManager.hpp index 43abd1fa..bd0d5d11 100644 --- a/modules/camera/include/vkcv/camera/CameraManager.hpp +++ b/modules/camera/include/vkcv/camera/CameraManager.hpp @@ -110,6 +110,15 @@ namespace vkcv::camera { */ CameraController& getActiveController(); + /** + * @brief Returns 'true' if the camera has a controller. + * + * @param cameraIndex + * @return true + * @return false + */ + bool CameraManager::cameraHasController(uint32_t cameraIndex); + public: /** @@ -184,7 +193,7 @@ namespace vkcv::camera { * @throws std::runtime_error If @p cameraIndex is not a valid camera index. */ ControllerType getControllerType(uint32_t cameraIndex); - + /** * @brief Updates all stored camera controllers in respect to @p deltaTime. * @param[in] deltaTime The time that has passed since last update. diff --git a/modules/camera/src/vkcv/camera/CameraManager.cpp b/modules/camera/src/vkcv/camera/CameraManager.cpp index f129f3a2..c0525d84 100644 --- a/modules/camera/src/vkcv/camera/CameraManager.cpp +++ b/modules/camera/src/vkcv/camera/CameraManager.cpp @@ -184,9 +184,13 @@ namespace vkcv::camera { } } + bool CameraManager::cameraHasController(uint32_t cameraIndex) { + return (m_cameraControllerTypes[cameraIndex] != ControllerType::NONE); + } + void CameraManager::update(double deltaTime) { m_frameTime = deltaTime; - if (glfwGetWindowAttrib(m_window.getWindow(), GLFW_FOCUSED) == GLFW_TRUE) { + if ((glfwGetWindowAttrib(m_window.getWindow(), GLFW_FOCUSED) == GLFW_TRUE) && cameraHasController(getActiveCameraIndex())) { getActiveController().updateCamera(deltaTime, getActiveCamera()); } } -- GitLab