#pragma once #include "rendering/rhi.h" namespace Donut::RHI { // Vulkan implementation of the RHI Device (MoltenVK on macOS). owns the // instance/device/swapchain and translates the RHI's baked pipelines + // recorded command lists into native Vulkan; the geometry it draws is the // shared SceneRenderer / BlackHoleRenderer, identical to every other backend. auto create_vulkan_device() -> Scope; // must run BEFORE glfwInit() when Vulkan is the selected API: points GLFW at // the loader the app links against (its own dlopen fails on macOS/Homebrew) // and configures the MoltenVK ICD / layer paths. auto vulkan_prepare_glfw() -> void; // whether a Vulkan loader exists on this machine at all. on windows vulkan-1.dll // is delay-loaded, so this has to say yes before any vk* call; true elsewhere. auto vulkan_runtime_available() -> bool; }