36 lines
877 B
C
36 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_;
|
||
|
};
|