/* * SPDX-FileCopyrightText: Sebastiano Barezzi * SPDX-License-Identifier: Apache-2.0 */ #pragma once #include #include #include "./vkloader.h" class VkSession { public: VkSession(const VkSession &) = delete; ~VkSession(); VkSession &operator=(const VkSession &) = delete; std::vector vkEnumeratePhysicalDevices(); static std::unique_ptr create(const VkInstanceCreateInfo *pCreateInfo, const VkAllocationCallbacks *pAllocator); VkPhysicalDeviceProperties vkGetPhysicalDeviceProperties(VkPhysicalDevice device); private: VkSession(const VkInstanceCreateInfo *pCreateInfo, const VkAllocationCallbacks *pAllocator); VkInstance mInstance = nullptr; VulkanLoader* mLoader= nullptr; };