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