// ============================================= // Aster: surface.cpp // Copyright (c) 2020-2024 Anish Bhobe // ============================================= #include "surface.h" #include "context.h" #include "window.h" void Surface::Init(Context *context, const Window *window) { assert(!m_Surface); VkSurfaceKHR surface; auto result = Cast( glfwCreateWindowSurface(Cast(context->m_Instance), window->m_Window, nullptr, &surface)); ERROR_IF(Failed(result), "Failed to create Surface with {}", result) THEN_ABORT(result) ELSE_DEBUG("Surface Created"); m_Surface = vk::SurfaceKHR(surface); } void Surface::Destroy(const Context *context) { if (!m_Surface) return; context->m_Instance.destroy(Take(m_Surface), nullptr); DEBUG("Surface Destroyed"); }