#pragma once

#include "../UI.hpp"
#include "forward.hpp"
#include "api/Images.hpp"
struct GLFWwindow;
class Window;

namespace render::vk {

/// ImGui Vulkan/GLFW interface
class UI final: public render::UI {
private:
    UI(GLFWwindow *window);
public:
    ~UI();

    static void Load(Window &);

    Actions draw(config::client::options &, state::state &, const state::reports &) override;
    void render() override;

    void setImageCount(uint32_t);

private:
    VkDevice device;

    std::unique_ptr<Texture> aimTexture;
    intptr_t aimHandle;
    VkDescriptorPool descriptorPool;
};
}