// ============================================= // Aster: context.h // Copyright (c) 2020-2024 Anish Bhobe // ============================================= #pragma once #include "global.h" /** * @class Context * * @brief Vulkan context to handle device initialization logic. * * Handles the required hardware interactions. */ struct Context final { // Members vk::Instance m_Instance = nullptr; vk::DebugUtilsMessengerEXT m_DebugMessenger = nullptr; // Ctor/Dtor Context(cstr appName, Version version, bool enableValidation = true); ~Context(); // Move Context(Context &&other) noexcept; Context &operator=(Context &&other) noexcept; DISALLOW_COPY_AND_ASSIGN(Context); };