#pragma once #include #include namespace Donut { void vulkan_prepare_glfw(); class VulkanRenderer { public: VulkanRenderer(); ~VulkanRenderer(); bool init(void* glfwWindow, int width, int height); void shutdown(); bool init_im_gui(); void draw_frame(const glm::vec4& clear_color, const std::function& build_ui = {}); void on_resize(int width, int height); private: struct Impl; Impl* m_impl = nullptr; }; }