#pragma once #define VKFW_NO_STRUCT_CONSTRUCTORS // Use aggregate initialization for GLFW structs #include #define VULKAN_HPP_NO_CONSTRUCTORS #include #include "../util/types.hpp" class VulkanInstance { public: VulkanInstance() = default; VulkanInstance(const VulkanInstance&) = default; VulkanInstance(VulkanInstance&&) = delete; fn operator=(const VulkanInstance&)->VulkanInstance& = default; fn operator=(VulkanInstance&&)->VulkanInstance& = delete; ~VulkanInstance() = default; static fn create() -> vk::UniqueInstance; private: static fn getRequiredExtensions() -> std::vector; static fn checkValidationLayerSupport() -> bool; };