#pragma once #include "zvulkan/vulkanobjects.h" #include #include class VulkanRenderDevice; enum class PPFilterMode; enum class PPWrapMode; class VkFramebufferManager { public: VkFramebufferManager(VulkanRenderDevice* fb); ~VkFramebufferManager(); void AcquireImage(); void QueuePresent(); std::map> Framebuffers; std::shared_ptr SwapChain; int PresentImageIndex = -1; std::unique_ptr SwapChainImageAvailableSemaphore; std::unique_ptr RenderFinishedSemaphore; private: VulkanRenderDevice* fb = nullptr; int CurrentWidth = 0; int CurrentHeight = 0; bool CurrentVSync = false; bool CurrentHdr = false; bool CurrentExclusiveFullscreen = false; };