// ============================================= // Aster: gui.h // Copyright (c) 2020-2025 Anish Bhobe // ============================================= #pragma once #include "aster/aster.h" #include "aster/core/device.h" #include struct Device; struct Instance; struct Window; struct Swapchain; namespace systems { class Device; class GraphicsContext; struct Frame; } // ReSharper disable once CppInconsistentNaming namespace ImGui { void Init(systems::Device &device, Window &window); void Init(const Instance *context, const Device *device, const Window *window, vk::Format attachmentFormat, u32 imageCount, u32 queueFamily, vk::Queue queue); void Destroy(const systems::Device &device); void Destroy(const Device *device); void Recreate(); void StartBuild(); void EndBuild(); void Draw(vk::CommandBuffer commandBuffer, vk::Extent2D extent, vk::ImageView view); void Draw(systems::Frame &frame, systems::GraphicsContext &context); void PushDisable(); void PopDisable(); } // namespace ImGui namespace gui = ImGui;