#pragma once #include "vulkan/basalt_window.h" #include "containers/basalt_darray.h" namespace basalt { class Context { public: Context(const Context& src) = delete; Context& operator=(const Context& src) = delete; Context(Context&& src) noexcept; Context& operator=(Context&& src) noexcept; Context(const char* app_name, const basalt::darray& required_layers, const basalt::darray& required_extensions, uint32_t app_version=VK_MAKE_API_VERSION(1, 1, 0, 0), uint32_t vulkan_version = VK_MAKE_API_VERSION(0, 1, 2, 0)); ~Context(); VkInstance inst = VK_NULL_HANDLE; VkAllocationCallbacks* vk_alloc = VK_NULL_HANDLE; VkDebugUtilsMessengerEXT dbg_msger = VK_NULL_HANDLE; bool should_free = true; bool using_validation_layers = false; }; }