project-aster/samples/00_util/gui.h

44 lines
1.0 KiB
C++

// =============================================
// Aster: gui.h
// Copyright (c) 2020-2025 Anish Bhobe
// =============================================
#pragma once
#include "aster/aster.h"
#include "aster/core/device.h"
#include <imgui.h>
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;