35 lines
877 B
C++
35 lines
877 B
C++
#pragma once
|
|
|
|
#include <vulkan/vulkan.h>
|
|
#include <map>
|
|
|
|
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<VkImageView, VkDescriptorSet> descriptorSets_ = {};
|
|
|
|
Renderer& renderer_;
|
|
};
|