#pragma once namespace Donut { class VulkanContext { public: VulkanContext(); ~VulkanContext(); auto init() -> bool; auto shutdown() -> void; auto self_test_clear() -> bool; auto self_test_triangle() -> bool; auto render_geodesic(const char* pngPath) -> bool; private: struct Impl; Impl* m_impl = nullptr; }; auto vulkan_self_test() -> bool; }