mirror of
https://github.com/DrBeef/Raze.git
synced 2024-11-30 07:51:59 +00:00
37 lines
773 B
C
37 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;
|
||
|
};
|