raze/source/common/rendering/vulkan/textures/vk_framebuffer.h
2022-12-11 18:30:01 +01:00

36 lines
773 B
C++

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