diff --git a/include/vkcv/SwapchainManager.hpp b/include/vkcv/SwapchainManager.hpp index 5b1648a79d629b04bbd560c5df68c2389135da09..087f4ba9a9ae0390553b401b70f16ea81ca9393c 100644 --- a/include/vkcv/SwapchainManager.hpp +++ b/include/vkcv/SwapchainManager.hpp @@ -18,6 +18,7 @@ namespace vkcv { private: Context *m_context; + void destroySwapchainById(uint64_t id); public: diff --git a/include/vkcv/WindowManager.hpp b/include/vkcv/WindowManager.hpp index 0eae73b4b19786f812151507c59310a316f0d3d2..441b82d313fce810eb6133f6add02b897ce697c6 100644 --- a/include/vkcv/WindowManager.hpp +++ b/include/vkcv/WindowManager.hpp @@ -9,6 +9,7 @@ namespace vkcv { class Context; + class SwapchainManager; class WindowManager { @@ -31,7 +32,8 @@ namespace vkcv { WindowManager &operator=(const WindowManager &other) = delete; - WindowHandle createWindow( SwapchainManager &swapchainManager, const char *applicationName, uint32_t windowWidth, uint32_t windowHeight, + WindowHandle createWindow(SwapchainManager &swapchainManager, const char *applicationName, uint32_t windowWidth, + uint32_t windowHeight, bool resizeable); [[nodiscard]] diff --git a/src/vkcv/SwapchainManager.cpp b/src/vkcv/SwapchainManager.cpp index 6295c103206d69be91389852072ddcb89a9d87b5..7bf3518f248271a4a6d075f8a8c54b7b346bf190 100644 --- a/src/vkcv/SwapchainManager.cpp +++ b/src/vkcv/SwapchainManager.cpp @@ -34,12 +34,12 @@ namespace vkcv { vkcv_log(LogLevel::ERROR, "Invalid id"); return; } - Swapchain& swapchain = m_swapchains[id]; + Swapchain &swapchain = m_swapchains[id]; - if(swapchain.m_Swapchain){ + if (swapchain.m_Swapchain) { m_context->getDevice().destroySwapchainKHR(swapchain.m_Swapchain); } - if(swapchain.m_Surface.handle) { + if (swapchain.m_Surface.handle) { m_context->getInstance().destroySurfaceKHR(swapchain.m_Surface.handle); } swapchain.m_Swapchain = nullptr; @@ -54,23 +54,22 @@ namespace vkcv { return m_context->getDevice().getSwapchainImagesKHR(m_swapchains[handle.getId()].getSwapchain()); } - std::vector<vk::ImageView> SwapchainManager::createSwapchainImageViews(SwapchainHandle handle){ + std::vector<vk::ImageView> SwapchainManager::createSwapchainImageViews(SwapchainHandle handle) { std::vector<vk::Image> images = getSwapchainImages(handle); Swapchain &swapchain = m_swapchains[handle.getId()]; std::vector<vk::ImageView> imageViews; - imageViews.reserve( images.size() ); + imageViews.reserve(images.size()); //here can be swizzled with vk::ComponentSwizzle if needed vk::ComponentMapping componentMapping( vk::ComponentSwizzle::eR, vk::ComponentSwizzle::eG, vk::ComponentSwizzle::eB, - vk::ComponentSwizzle::eA ); + vk::ComponentSwizzle::eA); - vk::ImageSubresourceRange subResourceRange( vk::ImageAspectFlagBits::eColor, 0, 1, 0, 1 ); + vk::ImageSubresourceRange subResourceRange(vk::ImageAspectFlagBits::eColor, 0, 1, 0, 1); - for ( auto image : images ) - { + for (auto image : images) { vk::ImageViewCreateInfo imageViewCreateInfo( vk::ImageViewCreateFlags(), image,