#pragma once
/*
VulkanFramework
by John Ryland
Copyright (c) 2023
*/
////////////////////////////////////////////////////////////////////////////////////
// Vulkan Surface
#include "VulkanDevice.h"
struct GLFWwindow;
namespace Vulkan {
class Surface
{
public:
Surface(Device& device, GLFWwindow* window);
virtual ~Surface();
Device& m_owner;
VkSurfaceKHR m_surface;
VkSurfaceFormatKHR m_format;
VkPresentModeKHR m_presentMode;
protected:
virtual void Create(GLFWwindow* window);
virtual void Destroy();
virtual VkSurfaceFormatKHR SelectFormat();
virtual VkPresentModeKHR SelectPresentMode(); // TODO : probably belongs elsewhere
};
} // Vulkan namespace