#pragma once #include #include class Renderer; struct RenderTarget; class ImGuiPass { public: ImGuiPass(Renderer& renderer); ~ImGuiPass(); void render(VkCommandBuffer commandBuffer, RenderTarget* target); private: void createDescriptorSetLayout(); void createPipeline(); void createFontImage(); void createBuffer(VkBuffer& buffer, VkDeviceMemory& memory, VkDeviceSize size, VkBufferUsageFlagBits bufferUsage); VkDescriptorSetLayout setLayout_ = nullptr; VkPipelineLayout pipelineLayout_ = nullptr; VkPipeline pipeline_ = nullptr; VkImage fontImage_ = nullptr; VkDeviceMemory fontMemory_ = nullptr; VkImageView fontImageView_ = nullptr; VkSampler fontSampler_ = nullptr; std::map descriptorSets_ = {}; Renderer& renderer_; };