#pragma once

#include <vulkan/vulkan_core.h>
#define GLFW_INCLUDE_VULKAN
#include <GLFW/glfw3.h>

#include <vector>

struct FFramebufferConfig
{
	VkDevice				 Device;
	VkRenderPass			 RenderPass;
	std::vector<VkImageView> SwapChainImageViews;
	VkExtent2D				 SwapChainExtent;
};

class VulkanFramebuffers
{
public:
	void Initialize(FFramebufferConfig InConfig);

	void Cleanup();

	void CreateFramebuffers(VkImageView DepthImageView);

	std::vector<VkFramebuffer> GetSwapChainFrameBuffers() { return SwapChainFramebuffers; }

private:
	FFramebufferConfig FramebufferConfig;

	std::vector<VkFramebuffer> SwapChainFramebuffers;
};
