#include #include #include #include #include #include namespace lt::renderer::vk { Context::Context(const ecs::Entity &surface_entity) : m_instance(Instance::get()) , m_surface(create_scope(m_instance, surface_entity)) , m_gpu(create_scope(m_instance)) , m_device(create_scope(m_gpu.get(), m_surface.get())) , m_swapchain(create_scope(m_surface.get(), m_gpu.get(), m_device.get())) { ensure( static_cast(m_instance)->vk(), "Failed to create vulkan context: null instance" ); ensure( static_cast(m_surface.get())->vk(), "Failed to create vulkan context: null surface" ); ensure(static_cast(m_gpu.get())->vk(), "Failed to create vulkan context: null gpu"); ensure( static_cast(m_device.get())->vk(), "Failed to create vulkan context: null device" ); ensure( static_cast(m_swapchain.get())->vk(), "Failed to create vulkan context: null swapchain" ); } } // namespace lt::renderer::vk