#pragma once
#include "../vulkan.h"

namespace vulkanapi {
	class Image;
	class SwapchainCreator;
	class Device;
	class VulkanContext;
	class Swapchain {
		friend class SwapchainCreator;
	protected:
		VkSwapchainKHR mPtr;
		Device& mDevice;
		vector<Image*> mSurfaces;
		VkSemaphore mSurfaceSemaphore;
		VkSemaphore mRenderSemaphore;
	public:
		Swapchain(SwapchainCreator& Creator);
		void Aquire(VulkanContext& ctx);
		void Present(VulkanContext& ctx);
		vector<Image*>& GetSurface(){
			return mSurfaces;
		}
	};
};